From f9a8c51f99dae8f12e725577a39fcda81e5e741f Mon Sep 17 00:00:00 2001 From: Denis Roussel Date: Thu, 16 Apr 2026 10:26:14 +0200 Subject: [PATCH 01/40] [UPD] Copier [IMP] pos_order_to_sale_order: Added option to print sale pdf [UPD] Update pos_order_to_sale_order.pot [BOT] post-merge updates Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: pos-18.0/pos-18.0-pos_order_to_sale_order Translate-URL: https://translation.odoo-community.org/projects/pos-18-0/pos-18-0-pos_order_to_sale_order/ [FIX] pos_product_display_default_code: skip opening control in test tour [BOT] post-merge updates Initial check-in of the module pos_payment_terminal. Add dependancy on currency_iso_numeric. pos_customer_display bugfix : new massage on deleting orderLine and fixing unit_price computation on adding orderLine Fix copyright headers PEP8 stuff pos_payment_terminal : bigger button for start transaction with touchscreen pos_payment_terminal: add missing css file pos_customer_display: FIX JS code and make it more robust Remove currency_iso_numeric (replaced by pycountry) Adapt JS code of pos_payment_terminal Some cleanup Add Spanish translation by Alejandro Amador (thanks for your contribution !) Move CSS definition from pos_payment_terminal_view.xml to pos_payment_terminal.xml Small cleanups [FIX] Vicious bug that is invisible alone, but becomes visible when used with the module pos_pay_invoice PEP8 --- .copier-answers.yml | 3 +- .gitattributes | 1 + .github/workflows/pre-commit.yml | 2 + .github/workflows/test.yml | 9 ++- .pre-commit-config.yaml | 10 ++- .pylintrc | 69 ++++++++++--------- .pylintrc-mandatory | 50 +++++++------- README.md | 9 +-- checklog-odoo.cfg | 2 + eslint.config.cjs | 5 +- pos_order_to_sale_order/README.rst | 4 +- pos_order_to_sale_order/__manifest__.py | 2 +- pos_order_to_sale_order/i18n/ca.po | 65 +++++++++-------- pos_order_to_sale_order/i18n/es.po | 50 ++++++++------ pos_order_to_sale_order/i18n/fr.po | 50 ++++++++------ pos_order_to_sale_order/i18n/it.po | 50 ++++++++------ .../i18n/pos_order_to_sale_order.pot | 15 ++++ pos_order_to_sale_order/i18n/pt_BR.po | 54 +++++++++------ pos_order_to_sale_order/models/pos_config.py | 7 ++ .../models/res_config_settings.py | 4 ++ pos_order_to_sale_order/readme/CONFIGURE.md | 1 + .../static/description/index.html | 4 +- .../create_order_popup.esm.js | 24 +++++-- .../views/view_res_config_settings.xml | 4 ++ pos_payment_terminal/__init__.py | 1 + pos_payment_terminal/__openerp__.py | 56 +++++++++++++++ pos_payment_terminal/pos_payment_terminal.py | 38 ++++++++++ pos_payment_terminal/pos_payment_terminal.xml | 18 +++++ .../pos_payment_terminal_view.xml | 28 ++++++++ .../static/src/css/pos_payment_terminal.css | 12 ++++ .../static/src/js/pos_payment_terminal.js | 50 ++++++++++++++ .../static/src/xml/pos_payment_terminal.xml | 17 +++++ pos_product_display_default_code/README.rst | 2 +- .../__manifest__.py | 2 +- .../static/description/index.html | 2 +- .../tests/tours/product_screen_tour.esm.js | 2 - .../tests/test_frontend.py | 1 + 37 files changed, 531 insertions(+), 192 deletions(-) create mode 100644 .gitattributes create mode 100644 pos_payment_terminal/__init__.py create mode 100644 pos_payment_terminal/__openerp__.py create mode 100644 pos_payment_terminal/pos_payment_terminal.py create mode 100644 pos_payment_terminal/pos_payment_terminal.xml create mode 100644 pos_payment_terminal/pos_payment_terminal_view.xml create mode 100644 pos_payment_terminal/static/src/css/pos_payment_terminal.css create mode 100755 pos_payment_terminal/static/src/js/pos_payment_terminal.js create mode 100644 pos_payment_terminal/static/src/xml/pos_payment_terminal.xml diff --git a/.copier-answers.yml b/.copier-answers.yml index 4d3980ad3c..9c7d3ea0c3 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,8 +1,7 @@ # Do NOT update manually; changes here will be overwritten by Copier -_commit: v1.29 +_commit: v1.40 _src_path: git+https://github.com/OCA/oca-addons-repo-template additional_ruff_rules: [] -ci: GitHub convert_readme_fragments_to_markdown: true enable_checklog_odoo: true generate_requirements_txt: true diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..e0d56685a9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +test-requirements.txt merge=union diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 5eb021ef15..1291da527b 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -17,6 +17,8 @@ jobs: - uses: actions/setup-python@v5 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 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a06488079f..97ed5dfd4e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,7 +42,7 @@ jobs: makepot: "true" services: postgres: - image: postgres:12.0 + image: postgres:12 env: POSTGRES_USER: odoo POSTGRES_PASSWORD: odoo @@ -65,6 +65,13 @@ jobs: run: oca_init_test_database - name: Run tests run: oca_run_tests + - name: Upload screenshots from JS tests + uses: actions/upload-artifact@v4 + if: ${{ failure() }} + with: + name: Screenshots of failed JS tests - ${{ matrix.name }}${{ join(matrix.include) }} + path: /tmp/odoo_tests/${{ env.PGDATABASE }} + if-no-files-found: ignore - uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8f68985c64..82fa2c0083 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -38,12 +38,17 @@ repos: entry: found a en.po file language: fail files: '[a-zA-Z0-9_]*/i18n/en\.po$' + - id: obsolete dotfiles + name: obsolete dotfiles + entry: found obsolete files; remove them + files: '^(\.travis\.yml|\.t2d\.yml|CONTRIBUTING\.md|\.prettierrc\.yml|\.eslintrc\.yml)$' + language: fail - repo: https://github.com/sbidoul/whool - rev: v1.2 + rev: v1.3 hooks: - id: whool-init - repo: https://github.com/oca/maintainer-tools - rev: bf9ecb9938b6a5deca0ff3d870fbd3f33341fded + rev: b89f767503be6ab2b11e4f50a7557cb20066e667 hooks: # update the NOT INSTALLABLE ADDONS section above - id: oca-update-pre-commit-excluded-addons @@ -95,6 +100,7 @@ repos: additional_dependencies: - "eslint@9.12.0" - "eslint-plugin-jsdoc@50.3.1" + - "globals@16.0.0" - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: diff --git a/.pylintrc b/.pylintrc index 7c62b6d2ed..197cb67370 100644 --- a/.pylintrc +++ b/.pylintrc @@ -25,19 +25,25 @@ disable=all enable=anomalous-backslash-in-string, api-one-deprecated, api-one-multi-together, - assignment-from-none, - attribute-deprecated, class-camelcase, - dangerous-default-value, dangerous-view-replace-wo-priority, - development-status-allowed, duplicate-id-csv, - duplicate-key, duplicate-xml-fields, duplicate-xml-record-id, eval-referenced, - eval-used, incoherent-interpreter-exec-perm, + openerp-exception-warning, + redundant-modulename-xml, + relative-import, + rst-syntax-error, + wrong-tabs-instead-of-spaces, + xml-syntax-error, + assignment-from-none, + attribute-deprecated, + dangerous-default-value, + development-status-allowed, + duplicate-key, + eval-used, license-allowed, manifest-author-string, manifest-deprecated-key, @@ -48,73 +54,68 @@ 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, - 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, + missing-newline-extrafiles, + old-api7-method-defined, + po-msgstr-variables, + po-syntax-error, + str-format-used, + unnecessary-utf8-coding-comment, + xml-attribute-translatable, + xml-deprecated-qweb-directive, + xml-deprecated-tree-attribute, + attribute-string-redundant, + consider-merging-classes-inherited, + context-overridden, + except-pass, invalid-commit, manifest-maintainers-list, - missing-newline-extrafiles, missing-readme, missing-return, odoo-addons-relative-import, - old-api7-method-defined, - po-msgstr-variables, - po-syntax-error, 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, - # messages that do not cause the lint step to fail - consider-merging-classes-inherited, + missing-manifest-dependency, + too-complex,, 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, - odoo-addons-relative-import, old-api7-method-defined, + unnecessary-utf8-coding-comment, + # messages that do not cause the lint step to fail + consider-merging-classes-inherited, + deprecated-module, + invalid-commit, + missing-readme, + odoo-addons-relative-import, redefined-builtin, - too-complex, - unnecessary-utf8-coding-comment + manifest-external-assets [REPORTS] diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory index 018fd61cdd..73674c04d4 100644 --- a/.pylintrc-mandatory +++ b/.pylintrc-mandatory @@ -17,19 +17,25 @@ disable=all enable=anomalous-backslash-in-string, api-one-deprecated, api-one-multi-together, - assignment-from-none, - attribute-deprecated, class-camelcase, - dangerous-default-value, dangerous-view-replace-wo-priority, - development-status-allowed, duplicate-id-csv, - duplicate-key, duplicate-xml-fields, duplicate-xml-record-id, eval-referenced, - eval-used, incoherent-interpreter-exec-perm, + openerp-exception-warning, + redundant-modulename-xml, + relative-import, + rst-syntax-error, + wrong-tabs-instead-of-spaces, + xml-syntax-error, + assignment-from-none, + attribute-deprecated, + dangerous-default-value, + development-status-allowed, + duplicate-key, + eval-used, license-allowed, manifest-author-string, manifest-deprecated-key, @@ -40,56 +46,50 @@ 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, - 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, + missing-newline-extrafiles, + old-api7-method-defined, + po-msgstr-variables, + po-syntax-error, + str-format-used, + unnecessary-utf8-coding-comment, + xml-attribute-translatable, + xml-deprecated-qweb-directive, + xml-deprecated-tree-attribute, + attribute-string-redundant, + consider-merging-classes-inherited, + context-overridden, + except-pass, invalid-commit, manifest-maintainers-list, - missing-newline-extrafiles, missing-readme, missing-return, odoo-addons-relative-import, - old-api7-method-defined, - po-msgstr-variables, - po-syntax-error, 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 [REPORTS] diff --git a/README.md b/README.md index 593de361ab..3342e0fa19 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ +[![Support the OCA](https://odoo-community.org/readme-banner-image)](https://odoo-community.org/get-involved?utm_source=repo-readme) + +# pos [![Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)](https://runboat.odoo-community.org/builds?repo=OCA/pos&target_branch=18.0) [![Pre-commit Status](https://github.com/OCA/pos/actions/workflows/pre-commit.yml/badge.svg?branch=18.0)](https://github.com/OCA/pos/actions/workflows/pre-commit.yml?query=branch%3A18.0) [![Build Status](https://github.com/OCA/pos/actions/workflows/test.yml/badge.svg?branch=18.0)](https://github.com/OCA/pos/actions/workflows/test.yml?query=branch%3A18.0) @@ -7,8 +10,6 @@ -# pos - pos @@ -31,9 +32,9 @@ addon | version | maintainers | summary [pos_lot_barcode](pos_lot_barcode/) | 18.0.1.0.1 | | Scan barcode to enter lot/serial numbers [pos_margin](pos_margin/) | 18.0.1.0.0 | legalsylvain | Margin on PoS Order [pos_order_remove_line](pos_order_remove_line/) | 18.0.1.0.0 | robyf70 | Add button to remove POS order line. -[pos_order_to_sale_order](pos_order_to_sale_order/) | 18.0.1.0.0 | legalsylvain | PoS Order To Sale Order +[pos_order_to_sale_order](pos_order_to_sale_order/) | 18.0.1.1.0 | legalsylvain | PoS Order To Sale Order [pos_payment_method_cashdro](pos_payment_method_cashdro/) | 18.0.1.0.1 | | Allows to pay with CashDro Terminals on the Point of Sale -[pos_product_display_default_code](pos_product_display_default_code/) | 18.0.1.0.0 | | pos: display product default code before product name +[pos_product_display_default_code](pos_product_display_default_code/) | 18.0.1.0.1 | | pos: display product default code before product name [pos_product_multi_barcode](pos_product_multi_barcode/) | 18.0.1.0.0 | | Make product multi barcodes usable in the point of sale [pos_report_session_summary](pos_report_session_summary/) | 18.0.1.0.0 | | Adds a Session Summary PDF report on the POS session [pos_sale_picking_keep](pos_sale_picking_keep/) | 18.0.1.0.1 | pedrobaeza | Keep sale pickings from PoS diff --git a/checklog-odoo.cfg b/checklog-odoo.cfg index 0b55b7bf66..58d43aa666 100644 --- a/checklog-odoo.cfg +++ b/checklog-odoo.cfg @@ -1,3 +1,5 @@ [checklog-odoo] ignore= WARNING.* 0 failed, 0 error\(s\).* + WARNING .* Killing chrome descendants-or-self .* + WARNING.* Missing widget: res_partner_many2one for field of type many2one.* diff --git a/eslint.config.cjs b/eslint.config.cjs index 0d5731f89a..dd0cbe0aef 100644 --- a/eslint.config.cjs +++ b/eslint.config.cjs @@ -1,3 +1,4 @@ +var globals = require('globals'); jsdoc = require("eslint-plugin-jsdoc"); const config = [{ @@ -16,6 +17,8 @@ const config = [{ openerp: "readonly", owl: "readonly", luxon: "readonly", + QUnit: "readonly", + ...globals.browser, }, ecmaVersion: 2024, @@ -191,7 +194,7 @@ const config = [{ }, }, { - files: ["**/*.esm.js"], + files: ["**/*.esm.js", "**/*test.js"], languageOptions: { ecmaVersion: 2024, diff --git a/pos_order_to_sale_order/README.rst b/pos_order_to_sale_order/README.rst index 01d685681d..bc96dc2fe2 100644 --- a/pos_order_to_sale_order/README.rst +++ b/pos_order_to_sale_order/README.rst @@ -11,7 +11,7 @@ PoS Order To Sale Order !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ba21448582b7688cef7ddff23c1b0d0b5e70654f169bd61f173907b5285299f8 + !! source digest: sha256:267f1f8226f90a572e102969bf5c443975160b713c861111ed12040591b3840f !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png @@ -59,7 +59,7 @@ Configuration - Check the box 'Create Sale Orders' - Select the desired default behaviour -|image_setting| +New feature: **Print Sale Order PDF after creation** |image_setting| .. |image_setting| image:: https://raw.githubusercontent.com/OCA/pos/18.0/pos_order_to_sale_order/static/description/res_config_settings_form.png diff --git a/pos_order_to_sale_order/__manifest__.py b/pos_order_to_sale_order/__manifest__.py index 618202888a..666b4a33e1 100644 --- a/pos_order_to_sale_order/__manifest__.py +++ b/pos_order_to_sale_order/__manifest__.py @@ -4,7 +4,7 @@ { "name": "PoS Order To Sale Order", - "version": "18.0.1.0.0", + "version": "18.0.1.1.0", "author": "GRAP,Odoo Community Association (OCA)", "category": "Point Of Sale", "license": "AGPL-3", diff --git a/pos_order_to_sale_order/i18n/ca.po b/pos_order_to_sale_order/i18n/ca.po index a1b4b5d22a..9e63486dec 100644 --- a/pos_order_to_sale_order/i18n/ca.po +++ b/pos_order_to_sale_order/i18n/ca.po @@ -23,8 +23,7 @@ msgstr "Ajustos de configuració" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Confirmed Sale Order" msgstr "Crear comanda de venda confirmada" @@ -37,8 +36,7 @@ msgstr "Crear comandes de venda confirmades" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Delivered Sale Order" msgstr "Crear comanda de venda entregada" @@ -51,8 +49,7 @@ msgstr "Crear comandes de venda entregades" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Draft Sale Order" msgstr "Crear esborrany de comandes de venda" @@ -65,8 +62,7 @@ msgstr "Crear esborrany de comandes de venda" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Invoiced Sale Order" msgstr "Crear comanda de venda facturada" @@ -79,17 +75,13 @@ msgstr "Crear comandes de venda facturades" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0 -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0 -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_button/create_order_button.xml:0 msgid "Create Order" msgstr "Crear comanda de venda" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Sale Order" msgstr "Crear comanda de venda" @@ -98,19 +90,12 @@ msgstr "Crear comanda de venda" msgid "Create Sale Orders" msgstr "Crear comandes de venda" -#. module: pos_order_to_sale_order -#. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format -msgid "Discard" -msgstr "Descartar" - #. module: pos_order_to_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_confirmed_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_confirmed_sale_order msgid "" -"If checked, the cashier will have the possibility to create a confirmed Sale" -" Order, based on the current draft PoS Order." +"If checked, the cashier will have the possibility to create a confirmed Sale " +"Order, based on the current draft PoS Order." msgstr "" "Si es clica, el caixer tindrà la possibilitat de crear una comanda de venda " "confirmada, basada en l'esborrany actual de la comanda del TPV." @@ -119,7 +104,8 @@ msgstr "" #: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_invoiced_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_invoiced_sale_order msgid "" -"If checked, the cashier will have the possibility to create a confirmed sale Order, based on the current draft PoS Order.\n" +"If checked, the cashier will have the possibility to create a confirmed sale " +"Order, based on the current draft PoS Order.\n" " the according picking will be marked as delivered.\n" " The Invoice will be generated and confirm.\n" " Only invoice payment process will be possible." @@ -134,8 +120,10 @@ msgstr "" #: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_delivered_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_delivered_sale_order msgid "" -"If checked, the cashier will have the possibility to create a confirmed sale Order, based on the current draft PoS Order.\n" -" the according picking will be marked as delivered. Only invoices process will be possible." +"If checked, the cashier will have the possibility to create a confirmed sale " +"Order, based on the current draft PoS Order.\n" +" the according picking will be marked as delivered. Only invoices process " +"will be possible." msgstr "" "Si es clica, el caixer tindrà la possibilitat de crear una comanda de venda " "confirmada, basada en l'esborrany actual de la comanda del TPV.\n" @@ -152,10 +140,17 @@ msgstr "" "Si es clica, el caixer tindrà la possibilitat de crear una comanda de venda " "confirmada, basada en l'esborrany actual de la comanda del TPV." +#. module: pos_order_to_sale_order +#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +msgid "" +"If checked, the cashier will print the Sale Order PDF after creating a Sale " +"Order from the current draft PoS Order." +msgstr "" + #. module: pos_order_to_sale_order #. odoo-python #: code:addons/pos_order_to_sale_order/models/sale_order.py:0 -#, python-format msgid "Point of Sale %s" msgstr "Punt de venda %s" @@ -164,6 +159,18 @@ msgstr "Punt de venda %s" msgid "Point of Sale Configuration" msgstr "Configuració del punt de venda" +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_sale_order__pos_session_id +msgid "Pos Session" +msgstr "" + +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form +msgid "Print Sale Order PDF after creation" +msgstr "" + #. module: pos_order_to_sale_order #: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form msgid "Sale Order Creation" @@ -178,3 +185,7 @@ msgstr "Comandes de venda" #: model:ir.model,name:pos_order_to_sale_order.model_sale_order_line msgid "Sales Order Line" msgstr "Línia de la comanda de venda" + +#, python-format +#~ msgid "Discard" +#~ msgstr "Descartar" diff --git a/pos_order_to_sale_order/i18n/es.po b/pos_order_to_sale_order/i18n/es.po index a6f0e30620..6075834a68 100644 --- a/pos_order_to_sale_order/i18n/es.po +++ b/pos_order_to_sale_order/i18n/es.po @@ -23,8 +23,7 @@ msgstr "Ajustes de configuración" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Confirmed Sale Order" msgstr "Crear pedido de venta confirmado" @@ -37,8 +36,7 @@ msgstr "Crear pedidos de venta confirmados" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Delivered Sale Order" msgstr "Crear pedido de venta entregado" @@ -51,8 +49,7 @@ msgstr "Crear pedidos de venta entregados" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Draft Sale Order" msgstr "Crear borrador de orden de venta" @@ -65,8 +62,7 @@ msgstr "Crear borradores de pedidos de venta" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Invoiced Sale Order" msgstr "Crear pedido de venta facturado" @@ -79,15 +75,13 @@ msgstr "Crear órdenes de venta facturadas" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_button/create_order_button.xml:0 msgid "Create Order" msgstr "Crear pedido de venta" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Sale Order" msgstr "Crear pedido de venta" @@ -96,13 +90,6 @@ msgstr "Crear pedido de venta" msgid "Create Sale Orders" msgstr "Crear pedidos de venta" -#. module: pos_order_to_sale_order -#. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format -msgid "Discard" -msgstr "Descartar" - #. module: pos_order_to_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_confirmed_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_confirmed_sale_order @@ -153,10 +140,17 @@ msgstr "" "Si se marca, el cajero tendrá la posibilidad de crear un borrador de un " "pedido de venta, basado en el borrador actual de la orden de compra." +#. module: pos_order_to_sale_order +#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +msgid "" +"If checked, the cashier will print the Sale Order PDF after creating a Sale " +"Order from the current draft PoS Order." +msgstr "" + #. module: pos_order_to_sale_order #. odoo-python #: code:addons/pos_order_to_sale_order/models/sale_order.py:0 -#, python-format msgid "Point of Sale %s" msgstr "Punto de venta %s" @@ -165,6 +159,18 @@ msgstr "Punto de venta %s" msgid "Point of Sale Configuration" msgstr "Configuración del punto de venta" +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_sale_order__pos_session_id +msgid "Pos Session" +msgstr "" + +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form +msgid "Print Sale Order PDF after creation" +msgstr "" + #. module: pos_order_to_sale_order #: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form msgid "Sale Order Creation" @@ -180,6 +186,10 @@ msgstr "Órdenes de venta" msgid "Sales Order Line" msgstr "Línea de pedido de venta" +#, python-format +#~ msgid "Discard" +#~ msgstr "Descartar" + #, python-format #~ msgid "Back" #~ msgstr "Volver" diff --git a/pos_order_to_sale_order/i18n/fr.po b/pos_order_to_sale_order/i18n/fr.po index cf147a26a7..c29876117e 100644 --- a/pos_order_to_sale_order/i18n/fr.po +++ b/pos_order_to_sale_order/i18n/fr.po @@ -23,8 +23,7 @@ msgstr "Paramètres de config" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Confirmed Sale Order" msgstr "Créer une vente confirmée" @@ -37,8 +36,7 @@ msgstr "Créer des ventes confirmées" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Delivered Sale Order" msgstr "Créer une vente livrée" @@ -51,8 +49,7 @@ msgstr "Créer des ventes livrées" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Draft Sale Order" msgstr "Créer un devis en brouillon" @@ -65,8 +62,7 @@ msgstr "Créer des devis" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Invoiced Sale Order" msgstr "Créer une vente facturée" @@ -79,15 +75,13 @@ msgstr "Créer des ventes facturées" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_button/create_order_button.xml:0 msgid "Create Order" msgstr "Créer une vente" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Sale Order" msgstr "" @@ -96,13 +90,6 @@ msgstr "" msgid "Create Sale Orders" msgstr "Créer des ventes" -#. module: pos_order_to_sale_order -#. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format -msgid "Discard" -msgstr "Annuler" - #. module: pos_order_to_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_confirmed_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_confirmed_sale_order @@ -148,10 +135,17 @@ msgstr "" "En cochant la case, le caissier aura la possibilité de créer une vente en " "brouillon, à partir du ticket de caisse en cours." +#. module: pos_order_to_sale_order +#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +msgid "" +"If checked, the cashier will print the Sale Order PDF after creating a Sale " +"Order from the current draft PoS Order." +msgstr "" + #. module: pos_order_to_sale_order #. odoo-python #: code:addons/pos_order_to_sale_order/models/sale_order.py:0 -#, python-format msgid "Point of Sale %s" msgstr "Point de vente %s" @@ -160,6 +154,18 @@ msgstr "Point de vente %s" msgid "Point of Sale Configuration" msgstr "Paramétrage du point de vente" +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_sale_order__pos_session_id +msgid "Pos Session" +msgstr "" + +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form +msgid "Print Sale Order PDF after creation" +msgstr "" + #. module: pos_order_to_sale_order #: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form msgid "Sale Order Creation" @@ -174,3 +180,7 @@ msgstr "Bon de commande" #: model:ir.model,name:pos_order_to_sale_order.model_sale_order_line msgid "Sales Order Line" msgstr "Ligne de bons de commande" + +#, python-format +#~ msgid "Discard" +#~ msgstr "Annuler" diff --git a/pos_order_to_sale_order/i18n/it.po b/pos_order_to_sale_order/i18n/it.po index 784bc2fa9f..43282561ca 100644 --- a/pos_order_to_sale_order/i18n/it.po +++ b/pos_order_to_sale_order/i18n/it.po @@ -23,8 +23,7 @@ msgstr "Impostazioni configurazione" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Confirmed Sale Order" msgstr "Crea ordine di vendita confermato" @@ -37,8 +36,7 @@ msgstr "Crea ordini di vendita confermati" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Delivered Sale Order" msgstr "Crea ordine vendita consegnato" @@ -51,8 +49,7 @@ msgstr "Crea ordini di vendita consegnati" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Draft Sale Order" msgstr "Crea bozza ordine di vendita" @@ -65,8 +62,7 @@ msgstr "Crea bozze ordini di vendita" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Invoiced Sale Order" msgstr "Crea ordine di vendita fatturato" @@ -79,15 +75,13 @@ msgstr "Crea ordini di vendita fatturati" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_button/create_order_button.xml:0 msgid "Create Order" msgstr "Crea ordine" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Sale Order" msgstr "Crea ordine di vendita" @@ -96,13 +90,6 @@ msgstr "Crea ordine di vendita" msgid "Create Sale Orders" msgstr "Crea ordini di vendita" -#. module: pos_order_to_sale_order -#. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format -msgid "Discard" -msgstr "Abbandona" - #. module: pos_order_to_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_confirmed_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_confirmed_sale_order @@ -153,10 +140,17 @@ msgstr "" "Se impostato, il cassiere avrà la possibilità di creare una bozza di ordine " "di vendita, in base alla bozza attuale di ordine PoS." +#. module: pos_order_to_sale_order +#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +msgid "" +"If checked, the cashier will print the Sale Order PDF after creating a Sale " +"Order from the current draft PoS Order." +msgstr "" + #. module: pos_order_to_sale_order #. odoo-python #: code:addons/pos_order_to_sale_order/models/sale_order.py:0 -#, python-format msgid "Point of Sale %s" msgstr "Punto vendita %s" @@ -165,6 +159,18 @@ msgstr "Punto vendita %s" msgid "Point of Sale Configuration" msgstr "Configurazione punto vendita" +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_sale_order__pos_session_id +msgid "Pos Session" +msgstr "" + +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form +msgid "Print Sale Order PDF after creation" +msgstr "" + #. module: pos_order_to_sale_order #: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form msgid "Sale Order Creation" @@ -179,3 +185,7 @@ msgstr "Ordine di vendita" #: model:ir.model,name:pos_order_to_sale_order.model_sale_order_line msgid "Sales Order Line" msgstr "Riga ordine di vendita" + +#, python-format +#~ msgid "Discard" +#~ msgstr "Abbandona" diff --git a/pos_order_to_sale_order/i18n/pos_order_to_sale_order.pot b/pos_order_to_sale_order/i18n/pos_order_to_sale_order.pot index e4dc3e160e..8ecaf92ad9 100644 --- a/pos_order_to_sale_order/i18n/pos_order_to_sale_order.pot +++ b/pos_order_to_sale_order/i18n/pos_order_to_sale_order.pot @@ -121,6 +121,14 @@ msgid "" "Order, based on the current draft PoS Order." msgstr "" +#. module: pos_order_to_sale_order +#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +msgid "" +"If checked, the cashier will print the Sale Order PDF after creating a Sale " +"Order from the current draft PoS Order." +msgstr "" + #. module: pos_order_to_sale_order #. odoo-python #: code:addons/pos_order_to_sale_order/models/sale_order.py:0 @@ -137,6 +145,13 @@ msgstr "" msgid "Pos Session" msgstr "" +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form +msgid "Print Sale Order PDF after creation" +msgstr "" + #. module: pos_order_to_sale_order #: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form msgid "Sale Order Creation" diff --git a/pos_order_to_sale_order/i18n/pt_BR.po b/pos_order_to_sale_order/i18n/pt_BR.po index 54bcd3c6bc..c99a32f9a4 100644 --- a/pos_order_to_sale_order/i18n/pt_BR.po +++ b/pos_order_to_sale_order/i18n/pt_BR.po @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "PO-Revision-Date: 2024-05-23 01:18+0000\n" -"Last-Translator: Rodrigo Macedo \n" +"Last-Translator: Rodrigo Macedo " +"\n" "Language-Team: none\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" @@ -24,8 +24,7 @@ msgstr "Configurações" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Confirmed Sale Order" msgstr "Criar ordem de venda confirmada" @@ -38,8 +37,7 @@ msgstr "Criar Ordem de Venda confirmada" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Delivered Sale Order" msgstr "Criar Ordem de Venda Entregue" @@ -52,8 +50,7 @@ msgstr "Criar Ordem de Venda entregue" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Draft Sale Order" msgstr "Criar Cotação" @@ -66,8 +63,7 @@ msgstr "Criar Cotação" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Invoiced Sale Order" msgstr "Criar pedido de venda com fatura" @@ -80,15 +76,13 @@ msgstr "Criar pedidos de vendas com fatura" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderButton.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_button/create_order_button.xml:0 msgid "Create Order" msgstr "Criar pedido" #. module: pos_order_to_sale_order #. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format +#: code:addons/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.xml:0 msgid "Create Sale Order" msgstr "Criar Ordem de Venda" @@ -97,13 +91,6 @@ msgstr "Criar Ordem de Venda" msgid "Create Sale Orders" msgstr "Criar Ordem de Venda" -#. module: pos_order_to_sale_order -#. odoo-javascript -#: code:addons/pos_order_to_sale_order/static/src/xml/CreateOrderPopup.xml:0 -#, python-format -msgid "Discard" -msgstr "Descartar" - #. module: pos_order_to_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_create_confirmed_sale_order #: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_create_confirmed_sale_order @@ -154,10 +141,17 @@ msgstr "" "Se marcado, o caixa terá a possibilidade de criar um rascunho de pedido de " "venda, com base no rascunho atual de pedido de PDV." +#. module: pos_order_to_sale_order +#: model:ir.model.fields,help:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,help:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +msgid "" +"If checked, the cashier will print the Sale Order PDF after creating a Sale " +"Order from the current draft PoS Order." +msgstr "" + #. module: pos_order_to_sale_order #. odoo-python #: code:addons/pos_order_to_sale_order/models/sale_order.py:0 -#, python-format msgid "Point of Sale %s" msgstr "Ponto de Venda %s" @@ -166,6 +160,18 @@ msgstr "Ponto de Venda %s" msgid "Point of Sale Configuration" msgstr "Configuração de Ponto de Venda" +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_sale_order__pos_session_id +msgid "Pos Session" +msgstr "" + +#. module: pos_order_to_sale_order +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_pos_config__iface_print_sale_order_pdf +#: model:ir.model.fields,field_description:pos_order_to_sale_order.field_res_config_settings__pos_iface_print_sale_order_pdf +#: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form +msgid "Print Sale Order PDF after creation" +msgstr "" + #. module: pos_order_to_sale_order #: model_terms:ir.ui.view,arch_db:pos_order_to_sale_order.view_res_config_settings_form msgid "Sale Order Creation" @@ -181,6 +187,10 @@ msgstr "Pedidos de Vendas" msgid "Sales Order Line" msgstr "Linha da Ordem de Venda" +#, python-format +#~ msgid "Discard" +#~ msgstr "Descartar" + #, python-format #~ msgid "Back" #~ msgstr "Voltar" diff --git a/pos_order_to_sale_order/models/pos_config.py b/pos_order_to_sale_order/models/pos_config.py index 4550447489..39e8794352 100644 --- a/pos_order_to_sale_order/models/pos_config.py +++ b/pos_order_to_sale_order/models/pos_config.py @@ -47,6 +47,13 @@ class PosConfig(models.Model): " Only invoice payment process will be possible.", ) + iface_print_sale_order_pdf = fields.Boolean( + string="Print Sale Order PDF after creation", + default=False, + help="If checked, the cashier will print the Sale Order PDF" + " after creating a Sale Order from the current draft PoS Order.", + ) + @api.depends( "iface_create_draft_sale_order", "iface_create_confirmed_sale_order", diff --git a/pos_order_to_sale_order/models/res_config_settings.py b/pos_order_to_sale_order/models/res_config_settings.py index e2c50a278f..615de0087e 100644 --- a/pos_order_to_sale_order/models/res_config_settings.py +++ b/pos_order_to_sale_order/models/res_config_settings.py @@ -23,3 +23,7 @@ class ResConfigSettings(models.TransientModel): pos_iface_create_invoiced_sale_order = fields.Boolean( related="pos_config_id.iface_create_invoiced_sale_order", readonly=False ) + + pos_iface_print_sale_order_pdf = fields.Boolean( + related="pos_config_id.iface_print_sale_order_pdf", readonly=False + ) diff --git a/pos_order_to_sale_order/readme/CONFIGURE.md b/pos_order_to_sale_order/readme/CONFIGURE.md index ab058b1e3c..db4e9a6ce7 100644 --- a/pos_order_to_sale_order/readme/CONFIGURE.md +++ b/pos_order_to_sale_order/readme/CONFIGURE.md @@ -2,4 +2,5 @@ - Check the box 'Create Sale Orders' - Select the desired default behaviour +New feature: **Print Sale Order PDF after creation** ![image_setting](../static/description/res_config_settings_form.png) diff --git a/pos_order_to_sale_order/static/description/index.html b/pos_order_to_sale_order/static/description/index.html index 37f7219bc3..58f6c70b90 100644 --- a/pos_order_to_sale_order/static/description/index.html +++ b/pos_order_to_sale_order/static/description/index.html @@ -372,7 +372,7 @@

PoS Order To Sale Order

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:ba21448582b7688cef7ddff23c1b0d0b5e70654f169bd61f173907b5285299f8 +!! source digest: sha256:267f1f8226f90a572e102969bf5c443975160b713c861111ed12040591b3840f !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Production/Stable License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

This module extends the functionality of point of sale to allow sale @@ -410,7 +410,7 @@

Configuration

  • Check the box ‘Create Sale Orders’
  • Select the desired default behaviour
  • -

    image_setting

    +

    New feature: Print Sale Order PDF after creation image_setting

    Usage

    diff --git a/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.esm.js b/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.esm.js index b155593f14..aea504f48d 100644 --- a/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.esm.js +++ b/pos_order_to_sale_order/static/src/components/create_order_popup/create_order_popup.esm.js @@ -1,8 +1,7 @@ -import {useService} from "@web/core/utils/hooks"; - +import {Component} from "@odoo/owl"; import {Dialog} from "@web/core/dialog/dialog"; import {usePos} from "@point_of_sale/app/store/pos_hook"; -import {Component} from "@odoo/owl"; +import {useService} from "@web/core/utils/hooks"; export class CreateOrderPopup extends Component { static template = "pos_order_to_sale_order.CreateOrderPopup"; @@ -14,6 +13,7 @@ export class CreateOrderPopup extends Component { this.pos = usePos(); this.ui = useService("ui"); this.orm = useService("orm"); + this.action = useService("action"); } async createDraftSaleOrder() { @@ -34,7 +34,10 @@ export class CreateOrderPopup extends Component { async _actionCreateSaleOrder(order_state) { // Create Sale Order - await this._createSaleOrder(order_state); + const sale_order = await this._createSaleOrder(order_state); + if (this.pos.config.iface_print_sale_order_pdf) { + await this._printSaleOrder(sale_order.sale_order_id); + } // Delete current order const current_order = this.pos.get_order(); @@ -61,4 +64,17 @@ export class CreateOrderPopup extends Component { this.ui.unblock(); }); } + + async _printSaleOrder(sale_order_id) { + const url = await this.orm.call("sale.order", "get_portal_url", [ + sale_order_id, + null, + "pdf", + true, + ]); + return await this.action.doAction({ + type: "ir.actions.act_url", + url: url, + }); + } } diff --git a/pos_order_to_sale_order/views/view_res_config_settings.xml b/pos_order_to_sale_order/views/view_res_config_settings.xml index 5d02a4c36c..56497a1b4d 100644 --- a/pos_order_to_sale_order/views/view_res_config_settings.xml +++ b/pos_order_to_sale_order/views/view_res_config_settings.xml @@ -21,6 +21,10 @@ + + + + diff --git a/pos_payment_terminal/__init__.py b/pos_payment_terminal/__init__.py new file mode 100644 index 0000000000..9e67b3d9d1 --- /dev/null +++ b/pos_payment_terminal/__init__.py @@ -0,0 +1 @@ +from . import pos_payment_terminal diff --git a/pos_payment_terminal/__openerp__.py b/pos_payment_terminal/__openerp__.py new file mode 100644 index 0000000000..ab46d83e56 --- /dev/null +++ b/pos_payment_terminal/__openerp__.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# POS Payment Terminal module for Odoo +# Copyright (C) 2014 Aurélien DUMAINE +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +{ + 'name': 'POS Payment Terminal', + 'version': '0.1', + 'category': 'Point Of Sale', + 'summary': 'Manage Payment Terminal device from POS front end', + 'description': """ +POS Payment Terminal +==================== + +This module adds support for credit card reader and checks printer +in the Point of Sale. This module is designed to be installed on the +*main Odoo server*. On the *POSbox*, you should install the module +*hw_x* depending on the protocol implemented in your device. Ingenico +and Sagem devices support the Telium protocol implemented in the +*hw_telium_payment_terminal* module. + +This module support two payment methods : cards and checks. The payment +method should be configured on the main Odoo server, in the menu Point +of Sale > Configuration > Payment Methods. + +This module has been developped during a POS code sprint at Akretion +France from July 7th to July 10th 2014. This module is part of the POS +project of the Odoo Community Association http://odoo-community.org/. +You are invited to become a member and/or get involved in the +Association ! + """, + 'author': 'Aurélien DUMAINE', + 'depends': ['point_of_sale'], + 'data': [ + 'pos_payment_terminal.xml', + 'pos_payment_terminal_view.xml', + ], + 'qweb': ['static/src/xml/pos_payment_terminal.xml'], +} diff --git a/pos_payment_terminal/pos_payment_terminal.py b/pos_payment_terminal/pos_payment_terminal.py new file mode 100644 index 0000000000..a54252ad5e --- /dev/null +++ b/pos_payment_terminal/pos_payment_terminal.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# POS Payment Terminal module for Odoo +# Copyright (C) 2014 Aurélien DUMAINE +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp import models, fields + + +class account_journal(models.Model): + _inherit = 'account.journal' + + payment_mode = fields.Selection( + (('card', 'Card'), ('check', 'Check')), 'Payment mode', + help="Select the payment mode sent to the payment terminal") + + +class pos_config(models.Model): + _inherit = 'pos.config' + + iface_payment_terminal = fields.Boolean( + 'Payment Terminal', + help="A payment terminal is available on the Proxy") diff --git a/pos_payment_terminal/pos_payment_terminal.xml b/pos_payment_terminal/pos_payment_terminal.xml new file mode 100644 index 0000000000..6f46ad0149 --- /dev/null +++ b/pos_payment_terminal/pos_payment_terminal.xml @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/pos_payment_terminal/pos_payment_terminal_view.xml b/pos_payment_terminal/pos_payment_terminal_view.xml new file mode 100644 index 0000000000..f04d4648d1 --- /dev/null +++ b/pos_payment_terminal/pos_payment_terminal_view.xml @@ -0,0 +1,28 @@ + + + + + + pos.payment.terminal.config.form + pos.config + + + + + + + + + + pos.payment.terminal.journal.form + account.journal + + + + + + + + + + diff --git a/pos_payment_terminal/static/src/css/pos_payment_terminal.css b/pos_payment_terminal/static/src/css/pos_payment_terminal.css new file mode 100644 index 0000000000..bfec68ef4f --- /dev/null +++ b/pos_payment_terminal/static/src/css/pos_payment_terminal.css @@ -0,0 +1,12 @@ +.pos .payment-terminal-transaction-start button { + width: 150px; + height: 60px; + font-size: 18px; + cursor: pointer; + text-align:center; + box-sizing: border-box; + -moz-box-sizing: border-box; + left: 105%; + bottom: 10px; + position: absolute; +} diff --git a/pos_payment_terminal/static/src/js/pos_payment_terminal.js b/pos_payment_terminal/static/src/js/pos_payment_terminal.js new file mode 100755 index 0000000000..f63f6f3ee9 --- /dev/null +++ b/pos_payment_terminal/static/src/js/pos_payment_terminal.js @@ -0,0 +1,50 @@ +openerp.pos_payment_terminal = function(instance){ + module = instance.point_of_sale; + + module.ProxyDevice = module.ProxyDevice.extend({ + payment_terminal_transaction_start: function(line, currency_iso){ + var data = {'amount' : line.get_amount(), + 'currency_iso' : currency_iso, + 'payment_mode' : line.cashregister.journal.payment_mode}; +// alert(JSON.stringify(data)); + this.message('payment_terminal_transaction_start', {'payment_info' : JSON.stringify(data)}); + }, + }); + + //TODO make the button bigger and with better name + + var _super_PaymentScreenWidget_init_ = module.PaymentScreenWidget.prototype.init; + module.PaymentScreenWidget.prototype.init = function(parent, options){ + _super_PaymentScreenWidget_init_.call(this, parent, options); + var self = this; + this.payment_terminal_transaction_start = function(event){ + var node = this; + while (node && !node.classList.contains('paymentline')){ + node = node.parentNode; + } + if (node && !_.isEmpty(node.line) && self.pos.config.iface_payment_terminal){ + self.pos.proxy.payment_terminal_transaction_start(node.line, self.pos.currency.name); + } + event.stopPropagation(); + }; + }; + + var _super_renderPaymentline_ = module.PaymentScreenWidget.prototype.render_paymentline; + module.PaymentScreenWidget.prototype.render_paymentline = function(line){ + var el_node = _super_renderPaymentline_.call(this, line); + if (line.cashregister.journal.payment_mode && this.pos.config.iface_payment_terminal){ + if (!this.pos.currency.name){ + var self = this; + var currencies = new instance.web.Model('res.currency').query(['name']) + .filter([['id','=',this.pos.currency.id]]) + .all().then(function (currency) { + self.pos.currency.name = currency[0].name; + }); + } + el_node.querySelector('.payment-terminal-transaction-start') + .addEventListener('click', this.payment_terminal_transaction_start); + } + return el_node; + }; + +}; diff --git a/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml b/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml new file mode 100644 index 0000000000..ce7459c459 --- /dev/null +++ b/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + diff --git a/pos_product_display_default_code/README.rst b/pos_product_display_default_code/README.rst index 97c566630d..f820e1846d 100644 --- a/pos_product_display_default_code/README.rst +++ b/pos_product_display_default_code/README.rst @@ -11,7 +11,7 @@ PoS Product Display Default Code !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:3a794299f4809f57b39b212a1aec97d2dfc307e08e685035978e1934c127a4e4 + !! source digest: sha256:1ad717dfbd45ebbc7f1819902d6740233d0c6415d1e7ca0b5411523a84215bab !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/pos_product_display_default_code/__manifest__.py b/pos_product_display_default_code/__manifest__.py index 3424dde30f..f7dcf19d50 100644 --- a/pos_product_display_default_code/__manifest__.py +++ b/pos_product_display_default_code/__manifest__.py @@ -1,7 +1,7 @@ { "name": "PoS Product Display Default Code", "summary": "pos: display product default code before product name", - "version": "18.0.1.0.0", + "version": "18.0.1.0.1", "category": "Point of Sale", "website": "https://github.com/OCA/pos", "author": "Odoo Community Association (OCA), Akretion, FactorLibre", diff --git a/pos_product_display_default_code/static/description/index.html b/pos_product_display_default_code/static/description/index.html index 631de4c94f..4a1dba8b0e 100644 --- a/pos_product_display_default_code/static/description/index.html +++ b/pos_product_display_default_code/static/description/index.html @@ -372,7 +372,7 @@

    PoS Product Display Default Code

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:3a794299f4809f57b39b212a1aec97d2dfc307e08e685035978e1934c127a4e4 +!! source digest: sha256:1ad717dfbd45ebbc7f1819902d6740233d0c6415d1e7ca0b5411523a84215bab !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

    Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runboat

    This module makes Odoo show the internal reference of the product in the diff --git a/pos_product_display_default_code/static/tests/tours/product_screen_tour.esm.js b/pos_product_display_default_code/static/tests/tours/product_screen_tour.esm.js index 3fa3f21597..8a5f4eb0fa 100644 --- a/pos_product_display_default_code/static/tests/tours/product_screen_tour.esm.js +++ b/pos_product_display_default_code/static/tests/tours/product_screen_tour.esm.js @@ -1,5 +1,4 @@ import * as Chrome from "@point_of_sale/../tests/tours/utils/chrome_util"; -import * as Dialog from "@point_of_sale/../tests/tours/utils/dialog_util"; import * as ProductScreen from "@point_of_sale/../tests/tours/utils/product_screen_util"; import {registry} from "@web/core/registry"; @@ -7,7 +6,6 @@ registry.category("web_tour.tours").add("SearchProductByDefaultCode", { steps: () => [ Chrome.startPoS(), - Dialog.confirm("Open Register"), ProductScreen.searchProduct("chair"), ProductScreen.clickDisplayedProduct("[CHAIR_01] Test sofa"), Chrome.endTour(), diff --git a/pos_product_display_default_code/tests/test_frontend.py b/pos_product_display_default_code/tests/test_frontend.py index 0fc6985ade..c57281173f 100644 --- a/pos_product_display_default_code/tests/test_frontend.py +++ b/pos_product_display_default_code/tests/test_frontend.py @@ -15,6 +15,7 @@ def test_product_search_by_default_code(self): ) self.main_pos_config.display_default_code = True self.main_pos_config.with_user(self.pos_user).open_ui() + self.main_pos_config.current_session_id.set_opening_control(0, "") self.start_tour( "/pos/ui?config_id=%d" % self.main_pos_config.id, "SearchProductByDefaultCode", From 5ad4136bb9c746a82d5a3a919604a6808f93e205 Mon Sep 17 00:00:00 2001 From: Yannick Vaucher Date: Fri, 6 Feb 2015 15:30:44 +0100 Subject: [PATCH 02/40] Update module info Add OCA as author of OCA addons In order to get visibility on https://www.odoo.com/apps the OCA board has decided to add the OCA as author of all the addons maintained as part of the association. pos_payment_terminal: Add POT file, FR translation and demo data Better XML header --- pos_payment_terminal/__openerp__.py | 4 +- pos_payment_terminal/i18n/fr.po | 49 +++++++++++++++++++ .../i18n/pos_payment_terminal.pot | 49 +++++++++++++++++++ .../pos_payment_terminal_demo.xml | 10 ++++ .../pos_payment_terminal_view.xml | 2 +- 5 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 pos_payment_terminal/i18n/fr.po create mode 100644 pos_payment_terminal/i18n/pos_payment_terminal.pot create mode 100644 pos_payment_terminal/pos_payment_terminal_demo.xml diff --git a/pos_payment_terminal/__openerp__.py b/pos_payment_terminal/__openerp__.py index ab46d83e56..cc29b53398 100644 --- a/pos_payment_terminal/__openerp__.py +++ b/pos_payment_terminal/__openerp__.py @@ -46,11 +46,13 @@ You are invited to become a member and/or get involved in the Association ! """, - 'author': 'Aurélien DUMAINE', + 'author': "Aurélien DUMAINE,Odoo Community Association (OCA)", + 'license': 'AGPL-3', 'depends': ['point_of_sale'], 'data': [ 'pos_payment_terminal.xml', 'pos_payment_terminal_view.xml', ], + 'demo': ['pos_payment_terminal_demo.xml'], 'qweb': ['static/src/xml/pos_payment_terminal.xml'], } diff --git a/pos_payment_terminal/i18n/fr.po b/pos_payment_terminal/i18n/fr.po new file mode 100644 index 0000000000..f247bbc6ff --- /dev/null +++ b/pos_payment_terminal/i18n/fr.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_payment_terminal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-04-30 10:04+0000\n" +"PO-Revision-Date: 2015-04-30 10:04+0000\n" +"Last-Translator: Alexis de Lattre \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Card" +msgstr "Carte" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Check" +msgstr "Chèque" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_account_journal +msgid "Journal" +msgstr "Journal" + +#. module: pos_payment_terminal +#: field:account.journal,payment_mode:0 +msgid "Payment mode" +msgstr "Mode de paiement" + +#. module: pos_payment_terminal +#: help:account.journal,payment_mode:0 +msgid "Select the payment mode sent to the payment terminal" +msgstr "Sélectionner le mode de paiement envoyé au terminal de paiement" + +#. module: pos_payment_terminal +#. openerp-web +#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:8 +#, python-format +msgid "Start transaction" +msgstr "Démarrer la transaction" + diff --git a/pos_payment_terminal/i18n/pos_payment_terminal.pot b/pos_payment_terminal/i18n/pos_payment_terminal.pot new file mode 100644 index 0000000000..18c841e4ff --- /dev/null +++ b/pos_payment_terminal/i18n/pos_payment_terminal.pot @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_payment_terminal +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-04-30 10:03+0000\n" +"PO-Revision-Date: 2015-04-30 10:03+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Card" +msgstr "" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Check" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_account_journal +msgid "Journal" +msgstr "" + +#. module: pos_payment_terminal +#: field:account.journal,payment_mode:0 +msgid "Payment mode" +msgstr "" + +#. module: pos_payment_terminal +#: help:account.journal,payment_mode:0 +msgid "Select the payment mode sent to the payment terminal" +msgstr "" + +#. module: pos_payment_terminal +#. openerp-web +#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:8 +#, python-format +msgid "Start transaction" +msgstr "" + diff --git a/pos_payment_terminal/pos_payment_terminal_demo.xml b/pos_payment_terminal/pos_payment_terminal_demo.xml new file mode 100644 index 0000000000..e51595b86f --- /dev/null +++ b/pos_payment_terminal/pos_payment_terminal_demo.xml @@ -0,0 +1,10 @@ + + + + + + check + + + + diff --git a/pos_payment_terminal/pos_payment_terminal_view.xml b/pos_payment_terminal/pos_payment_terminal_view.xml index f04d4648d1..8a72bd1a75 100644 --- a/pos_payment_terminal/pos_payment_terminal_view.xml +++ b/pos_payment_terminal/pos_payment_terminal_view.xml @@ -1,4 +1,4 @@ - + From 4a78305dbb5908c910b09f68150b5321f7842762 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Sun, 17 May 2015 01:51:59 +0200 Subject: [PATCH 03/40] pos_customer_display: Add button "Display Total to Customer" and port to new API pos_payment_terminal: code cleanup --- .../static/src/js/pos_payment_terminal.js | 2 -- .../static/src/xml/pos_payment_terminal.xml | 19 +++++++------------ 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/pos_payment_terminal/static/src/js/pos_payment_terminal.js b/pos_payment_terminal/static/src/js/pos_payment_terminal.js index f63f6f3ee9..250e3d994b 100755 --- a/pos_payment_terminal/static/src/js/pos_payment_terminal.js +++ b/pos_payment_terminal/static/src/js/pos_payment_terminal.js @@ -11,8 +11,6 @@ openerp.pos_payment_terminal = function(instance){ }, }); - //TODO make the button bigger and with better name - var _super_PaymentScreenWidget_init_ = module.PaymentScreenWidget.prototype.init; module.PaymentScreenWidget.prototype.init = function(parent, options){ _super_PaymentScreenWidget_init_.call(this, parent, options); diff --git a/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml b/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml index ce7459c459..48ff65a64a 100644 --- a/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml +++ b/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml @@ -2,16 +2,11 @@ - - - - - - - - - + + + + + + + From 8dd23c589c4b858b052de3f41b010a55e0fdf2c4 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Tue, 9 Jun 2015 00:26:50 +0200 Subject: [PATCH 04/40] pos_payment_terminal: smiplify JS code Move description from __openerp__.py to README.rst Update demo data FIX my previous commit: sent currency to POSbox [FIX] bug #36 : take advantage of the recent update in the odoo codebase to properly get the 'name' of the currency --- pos_payment_terminal/README.rst | 59 +++++++++++++++++++ pos_payment_terminal/__openerp__.py | 24 +------- pos_payment_terminal/pos_payment_terminal.py | 5 +- .../pos_payment_terminal_demo.xml | 4 ++ .../static/src/js/pos_payment_terminal.js | 54 +++++++---------- 5 files changed, 88 insertions(+), 58 deletions(-) create mode 100644 pos_payment_terminal/README.rst diff --git a/pos_payment_terminal/README.rst b/pos_payment_terminal/README.rst new file mode 100644 index 0000000000..6c1c22da09 --- /dev/null +++ b/pos_payment_terminal/README.rst @@ -0,0 +1,59 @@ +POS Payment Terminal +==================== + +This module adds support for credit card reader and checks printer +in the Point of Sale. + +This module has been developped during a POS code sprint at Akretion +France from July 7th to July 10th 2014. This module is part of the POS +project of the Odoo Community Association http://odoo-community.org/. +You are invited to become a member and/or get involved in the +Association ! + +Installation +============ + +This module is designed to be installed on the +*main Odoo server*. On the *POSbox*, you should install the module +*hw_x* depending on the protocol implemented in your device. +`Ingenico ` +and old Sagem devices support the Telium protocol implemented in the +*hw_telium_payment_terminal* module. + +This module requires an up-to-date version of Odoo v8 that includes +`this pull request ` which was +merged in the *8.0* branch of Odoo on Github on July 2nd 2015. + +Configuration +============= + +This module support two payment modes : *card* and *check*. The payment +mode should be configured on the main Odoo server, in the menu *Point +of Sale > Configuration > Payment Methods*, under the *Point of Sale* tab. + +Usage +===== + +In the frontend of the POS, when you select a payment method that has a payment mode *card* or *check*, you will have a *Start Transaction* button : if you click on that button, the amount, the currency and the payment mode will be sent to the POSbox. + +Credits +======= + +Contributors +------------ + +* Aurelien Dumaine +* Alexis de Lattre + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/pos_payment_terminal/__openerp__.py b/pos_payment_terminal/__openerp__.py index cc29b53398..79327d622e 100644 --- a/pos_payment_terminal/__openerp__.py +++ b/pos_payment_terminal/__openerp__.py @@ -3,6 +3,7 @@ # # POS Payment Terminal module for Odoo # Copyright (C) 2014 Aurélien DUMAINE +# Copyright (C) 2015 Akretion (www.akretion.com) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -25,28 +26,7 @@ 'version': '0.1', 'category': 'Point Of Sale', 'summary': 'Manage Payment Terminal device from POS front end', - 'description': """ -POS Payment Terminal -==================== - -This module adds support for credit card reader and checks printer -in the Point of Sale. This module is designed to be installed on the -*main Odoo server*. On the *POSbox*, you should install the module -*hw_x* depending on the protocol implemented in your device. Ingenico -and Sagem devices support the Telium protocol implemented in the -*hw_telium_payment_terminal* module. - -This module support two payment methods : cards and checks. The payment -method should be configured on the main Odoo server, in the menu Point -of Sale > Configuration > Payment Methods. - -This module has been developped during a POS code sprint at Akretion -France from July 7th to July 10th 2014. This module is part of the POS -project of the Odoo Community Association http://odoo-community.org/. -You are invited to become a member and/or get involved in the -Association ! - """, - 'author': "Aurélien DUMAINE,Odoo Community Association (OCA)", + 'author': "Aurélien DUMAINE,Akretion,Odoo Community Association (OCA)", 'license': 'AGPL-3', 'depends': ['point_of_sale'], 'data': [ diff --git a/pos_payment_terminal/pos_payment_terminal.py b/pos_payment_terminal/pos_payment_terminal.py index a54252ad5e..1d2bd4ec45 100644 --- a/pos_payment_terminal/pos_payment_terminal.py +++ b/pos_payment_terminal/pos_payment_terminal.py @@ -3,6 +3,7 @@ # # POS Payment Terminal module for Odoo # Copyright (C) 2014 Aurélien DUMAINE +# Copyright (C) 2015 Akretion (www.akretion.com) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -22,7 +23,7 @@ from openerp import models, fields -class account_journal(models.Model): +class AccountJournal(models.Model): _inherit = 'account.journal' payment_mode = fields.Selection( @@ -30,7 +31,7 @@ class account_journal(models.Model): help="Select the payment mode sent to the payment terminal") -class pos_config(models.Model): +class PosConfig(models.Model): _inherit = 'pos.config' iface_payment_terminal = fields.Boolean( diff --git a/pos_payment_terminal/pos_payment_terminal_demo.xml b/pos_payment_terminal/pos_payment_terminal_demo.xml index e51595b86f..1788dae44b 100644 --- a/pos_payment_terminal/pos_payment_terminal_demo.xml +++ b/pos_payment_terminal/pos_payment_terminal_demo.xml @@ -6,5 +6,9 @@ check + + + + diff --git a/pos_payment_terminal/static/src/js/pos_payment_terminal.js b/pos_payment_terminal/static/src/js/pos_payment_terminal.js index 250e3d994b..39ae910f0b 100755 --- a/pos_payment_terminal/static/src/js/pos_payment_terminal.js +++ b/pos_payment_terminal/static/src/js/pos_payment_terminal.js @@ -1,3 +1,12 @@ +/* + POS Payment Terminal module for Odoo + Copyright (C) 2014 Aurélien DUMAINE + Copyright (C) 2014-2015 Akretion (www.akretion.com) + @author: Aurélien DUMAINE + @author: Alexis de Lattre + The licence is in the file __openerp__.py +*/ + openerp.pos_payment_terminal = function(instance){ module = instance.point_of_sale; @@ -6,43 +15,20 @@ openerp.pos_payment_terminal = function(instance){ var data = {'amount' : line.get_amount(), 'currency_iso' : currency_iso, 'payment_mode' : line.cashregister.journal.payment_mode}; -// alert(JSON.stringify(data)); this.message('payment_terminal_transaction_start', {'payment_info' : JSON.stringify(data)}); }, }); - var _super_PaymentScreenWidget_init_ = module.PaymentScreenWidget.prototype.init; - module.PaymentScreenWidget.prototype.init = function(parent, options){ - _super_PaymentScreenWidget_init_.call(this, parent, options); - var self = this; - this.payment_terminal_transaction_start = function(event){ - var node = this; - while (node && !node.classList.contains('paymentline')){ - node = node.parentNode; - } - if (node && !_.isEmpty(node.line) && self.pos.config.iface_payment_terminal){ - self.pos.proxy.payment_terminal_transaction_start(node.line, self.pos.currency.name); - } - event.stopPropagation(); - }; - }; - - var _super_renderPaymentline_ = module.PaymentScreenWidget.prototype.render_paymentline; - module.PaymentScreenWidget.prototype.render_paymentline = function(line){ - var el_node = _super_renderPaymentline_.call(this, line); - if (line.cashregister.journal.payment_mode && this.pos.config.iface_payment_terminal){ - if (!this.pos.currency.name){ - var self = this; - var currencies = new instance.web.Model('res.currency').query(['name']) - .filter([['id','=',this.pos.currency.id]]) - .all().then(function (currency) { - self.pos.currency.name = currency[0].name; - }); - } - el_node.querySelector('.payment-terminal-transaction-start') - .addEventListener('click', this.payment_terminal_transaction_start); - } - return el_node; - }; + module.PaymentScreenWidget.include({ + render_paymentline: function(line){ + el_node = this._super(line); + var self = this; + if (line.cashregister.journal.payment_mode && this.pos.config.iface_payment_terminal){ + el_node.querySelector('.payment-terminal-transaction-start') + .addEventListener('click', function(){self.pos.proxy.payment_terminal_transaction_start(line, self.pos.currency.name)}); + } + return el_node; + }, + }); }; From 6962bfcccd541cdf4ca2f107a6992ae54bfc2abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Fri, 9 Oct 2015 10:01:54 +0200 Subject: [PATCH 05/40] [UPD] prefix versions with 8.0 [MIG] Make modules uninstallable [MIG] Rename manifest files --- pos_payment_terminal/{__openerp__.py => __manifest__.py} | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename pos_payment_terminal/{__openerp__.py => __manifest__.py} (96%) diff --git a/pos_payment_terminal/__openerp__.py b/pos_payment_terminal/__manifest__.py similarity index 96% rename from pos_payment_terminal/__openerp__.py rename to pos_payment_terminal/__manifest__.py index 79327d622e..6538c81d99 100644 --- a/pos_payment_terminal/__openerp__.py +++ b/pos_payment_terminal/__manifest__.py @@ -23,7 +23,7 @@ { 'name': 'POS Payment Terminal', - 'version': '0.1', + 'version': '8.0.0.1.0', 'category': 'Point Of Sale', 'summary': 'Manage Payment Terminal device from POS front end', 'author': "Aurélien DUMAINE,Akretion,Odoo Community Association (OCA)", @@ -35,4 +35,5 @@ ], 'demo': ['pos_payment_terminal_demo.xml'], 'qweb': ['static/src/xml/pos_payment_terminal.xml'], + 'installable': False, } From 888d4e90cb18fc6adbf3faf04558752cd2d800ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20DUMAINE?= Date: Tue, 17 May 2016 03:35:29 +0200 Subject: [PATCH 06/40] begin of porting pos_payment_terminal to Odoo 9.0 --- pos_payment_terminal/__manifest__.py | 6 +- pos_payment_terminal/pos_payment_terminal.xml | 18 ---- .../pos_payment_terminal_view.xml | 2 +- .../static/src/js/pos_payment_terminal.js | 96 +++++++++++++++---- .../static/src/xml/pos_payment_terminal.xml | 13 ++- 5 files changed, 91 insertions(+), 44 deletions(-) delete mode 100644 pos_payment_terminal/pos_payment_terminal.xml diff --git a/pos_payment_terminal/__manifest__.py b/pos_payment_terminal/__manifest__.py index 6538c81d99..acfd166873 100644 --- a/pos_payment_terminal/__manifest__.py +++ b/pos_payment_terminal/__manifest__.py @@ -23,17 +23,17 @@ { 'name': 'POS Payment Terminal', - 'version': '8.0.0.1.0', + 'version': '9.0.0.1.0', 'category': 'Point Of Sale', 'summary': 'Manage Payment Terminal device from POS front end', 'author': "Aurélien DUMAINE,Akretion,Odoo Community Association (OCA)", 'license': 'AGPL-3', 'depends': ['point_of_sale'], 'data': [ - 'pos_payment_terminal.xml', 'pos_payment_terminal_view.xml', + 'static/src/xml/templates.xml', ], 'demo': ['pos_payment_terminal_demo.xml'], 'qweb': ['static/src/xml/pos_payment_terminal.xml'], - 'installable': False, + 'installable': True, } diff --git a/pos_payment_terminal/pos_payment_terminal.xml b/pos_payment_terminal/pos_payment_terminal.xml deleted file mode 100644 index 6f46ad0149..0000000000 --- a/pos_payment_terminal/pos_payment_terminal.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - diff --git a/pos_payment_terminal/pos_payment_terminal_view.xml b/pos_payment_terminal/pos_payment_terminal_view.xml index 8a72bd1a75..509ee3dcd7 100644 --- a/pos_payment_terminal/pos_payment_terminal_view.xml +++ b/pos_payment_terminal/pos_payment_terminal_view.xml @@ -18,7 +18,7 @@ account.journal - + diff --git a/pos_payment_terminal/static/src/js/pos_payment_terminal.js b/pos_payment_terminal/static/src/js/pos_payment_terminal.js index 39ae910f0b..82bdc8b456 100755 --- a/pos_payment_terminal/static/src/js/pos_payment_terminal.js +++ b/pos_payment_terminal/static/src/js/pos_payment_terminal.js @@ -1,34 +1,96 @@ /* POS Payment Terminal module for Odoo - Copyright (C) 2014 Aurélien DUMAINE + Copyright (C) 2014-2016 Aurélien DUMAINE Copyright (C) 2014-2015 Akretion (www.akretion.com) @author: Aurélien DUMAINE @author: Alexis de Lattre The licence is in the file __openerp__.py */ -openerp.pos_payment_terminal = function(instance){ - module = instance.point_of_sale; +odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { + "use strict"; + + var screens = require('point_of_sale.screens'); + var devices = require('point_of_sale.devices'); + var models = require('point_of_sale.models'); +// var gui = require('point_of_sale.gui'); + var core = require('web.core'); + var _t = core._t; + var QWeb = core.qweb; + +/* + //TODO : surcharger models.exports.PosModel.load_server_data pour récupérer le champ 'payement_mode' des journaux + var _r_ = models.exports.PosModel.prototype.load_server_data; + models.exports.PosModel.prototype.load_server_data = function(){ + var self = this; + for (var i = 0; i < self.models.length; i++){ + if (self.models[i].model== 'account.journal'){ + self.models[i].fields.push('payment_mode'); + } + } + _r_.call(this); + }); +*/ + devices.ProxyDevice.include({ + payment_terminal_transaction_start: function(line_cid, currency_iso){ + var lines = this.pos.get_order().get_paymentlines(); + var line; + for ( var i = 0; i < lines.length; i++ ) { + if (lines[i].cid === line_cid) { + line = lines[i]; + } + } - module.ProxyDevice = module.ProxyDevice.extend({ - payment_terminal_transaction_start: function(line, currency_iso){ var data = {'amount' : line.get_amount(), 'currency_iso' : currency_iso, 'payment_mode' : line.cashregister.journal.payment_mode}; +alert(JSON.stringify(data)); this.message('payment_terminal_transaction_start', {'payment_info' : JSON.stringify(data)}); }, }); - module.PaymentScreenWidget.include({ - render_paymentline: function(line){ - el_node = this._super(line); - var self = this; - if (line.cashregister.journal.payment_mode && this.pos.config.iface_payment_terminal){ - el_node.querySelector('.payment-terminal-transaction-start') - .addEventListener('click', function(){self.pos.proxy.payment_terminal_transaction_start(line, self.pos.currency.name)}); - } - return el_node; - }, - }); -}; +// TODO : overload instead of redefine +// var _render_paymentlines_ = screens.PaymentScreenWidget.prototype.render_paymentlines; + screens.PaymentScreenWidget.prototype.render_paymentlines = function(){ +// _render_paymentlines_.call(this); + var self = this; + var order = this.pos.get_order(); + if (!order) { + return; + } + + var lines = order.get_paymentlines(); + var due = order.get_due(); + var extradue = 0; + if (due && lines.length && due !== order.get_due(lines[lines.length-1])) { + extradue = due; + } + + + this.$('.paymentlines-container').empty(); + var lines = $(QWeb.render('PaymentScreen-Paymentlines', { + widget: this, + order: order, + paymentlines: lines, + extradue: extradue, + })); + + lines.on('click','.delete-button',function(){ + self.click_delete_paymentline($(this).data('cid')); + }); + + lines.on('click','.paymentline',function(){ + self.click_paymentline($(this).data('cid')); + }); + + lines.on('click','.payment-terminal-transaction-start',function(){ + self.pos.proxy.payment_terminal_transaction_start($(this).data('cid'), self.pos.currency.name); + }); + + + lines.appendTo(this.$('.paymentlines-container')); + //if (line.cashregister.journal.payment_mode && this.pos.config.iface_payment_terminal){ + + }; +}); diff --git a/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml b/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml index 48ff65a64a..2d5aa824ae 100644 --- a/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml +++ b/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml @@ -1,11 +1,14 @@ - - + + + - - - + From 984ed137bf8923d3f7a3ad9b13a28c41fe7da906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20DUMAINE?= Date: Tue, 17 May 2016 05:31:45 +0200 Subject: [PATCH 07/40] overload render_paymentlines --- .../static/src/js/pos_payment_terminal.js | 38 +++++++++---------- .../static/src/xml/pos_payment_terminal.xml | 7 +--- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/pos_payment_terminal/static/src/js/pos_payment_terminal.js b/pos_payment_terminal/static/src/js/pos_payment_terminal.js index 82bdc8b456..ff81aa8297 100755 --- a/pos_payment_terminal/static/src/js/pos_payment_terminal.js +++ b/pos_payment_terminal/static/src/js/pos_payment_terminal.js @@ -18,23 +18,12 @@ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { var _t = core._t; var QWeb = core.qweb; -/* - //TODO : surcharger models.exports.PosModel.load_server_data pour récupérer le champ 'payement_mode' des journaux - var _r_ = models.exports.PosModel.prototype.load_server_data; - models.exports.PosModel.prototype.load_server_data = function(){ - var self = this; - for (var i = 0; i < self.models.length; i++){ - if (self.models[i].model== 'account.journal'){ - self.models[i].fields.push('payment_mode'); - } - } - _r_.call(this); - }); -*/ + models.load_fields("account.journal",['payment_mode']); + devices.ProxyDevice.include({ payment_terminal_transaction_start: function(line_cid, currency_iso){ - var lines = this.pos.get_order().get_paymentlines(); var line; + var lines = this.pos.get_order().get_paymentlines(); for ( var i = 0; i < lines.length; i++ ) { if (lines[i].cid === line_cid) { line = lines[i]; @@ -44,16 +33,23 @@ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { var data = {'amount' : line.get_amount(), 'currency_iso' : currency_iso, 'payment_mode' : line.cashregister.journal.payment_mode}; -alert(JSON.stringify(data)); +//alert(JSON.stringify(data)); this.message('payment_terminal_transaction_start', {'payment_info' : JSON.stringify(data)}); }, }); // TODO : overload instead of redefine -// var _render_paymentlines_ = screens.PaymentScreenWidget.prototype.render_paymentlines; - screens.PaymentScreenWidget.prototype.render_paymentlines = function(){ -// _render_paymentlines_.call(this); +// BUG : its works fine when redefine but calls 5 times the function is overload + screens.PaymentScreenWidget.include({ + render_paymentlines : function(){ + this._super.apply(this, arguments); + var self = this; + this.$('.paymentlines-container').on('click','.payment-terminal-transaction-start',function(){ + self.pos.proxy.payment_terminal_transaction_start($(this).data('cid'), self.pos.currency.name); + }); + +/* var self = this; var order = this.pos.get_order(); if (!order) { @@ -88,9 +84,9 @@ alert(JSON.stringify(data)); self.pos.proxy.payment_terminal_transaction_start($(this).data('cid'), self.pos.currency.name); }); - lines.appendTo(this.$('.paymentlines-container')); - //if (line.cashregister.journal.payment_mode && this.pos.config.iface_payment_terminal){ +*/ + }, - }; + }); }); diff --git a/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml b/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml index 2d5aa824ae..b0b197bd08 100644 --- a/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml +++ b/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml @@ -2,12 +2,7 @@ - - + From 6cf9c4887bc37951b94847fb6925727c3f02b3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20DUMAINE?= Date: Sat, 21 May 2016 17:19:34 +0200 Subject: [PATCH 08/40] FIX : multiple calls to action on 'start transaction' click event --- .../static/src/css/pos_payment_terminal.css | 2 +- .../static/src/js/pos_payment_terminal.js | 59 ++++--------------- 2 files changed, 12 insertions(+), 49 deletions(-) diff --git a/pos_payment_terminal/static/src/css/pos_payment_terminal.css b/pos_payment_terminal/static/src/css/pos_payment_terminal.css index bfec68ef4f..d3f4284cc7 100644 --- a/pos_payment_terminal/static/src/css/pos_payment_terminal.css +++ b/pos_payment_terminal/static/src/css/pos_payment_terminal.css @@ -1,4 +1,4 @@ -.pos .payment-terminal-transaction-start button { +.payment-terminal-transaction-start button { width: 150px; height: 60px; font-size: 18px; diff --git a/pos_payment_terminal/static/src/js/pos_payment_terminal.js b/pos_payment_terminal/static/src/js/pos_payment_terminal.js index ff81aa8297..7cae07fbf1 100755 --- a/pos_payment_terminal/static/src/js/pos_payment_terminal.js +++ b/pos_payment_terminal/static/src/js/pos_payment_terminal.js @@ -33,60 +33,23 @@ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { var data = {'amount' : line.get_amount(), 'currency_iso' : currency_iso, 'payment_mode' : line.cashregister.journal.payment_mode}; -//alert(JSON.stringify(data)); + //console.log(JSON.stringify(data)); this.message('payment_terminal_transaction_start', {'payment_info' : JSON.stringify(data)}); }, }); -// TODO : overload instead of redefine -// BUG : its works fine when redefine but calls 5 times the function is overload screens.PaymentScreenWidget.include({ - render_paymentlines : function(){ - this._super.apply(this, arguments); - var self = this; - this.$('.paymentlines-container').on('click','.payment-terminal-transaction-start',function(){ - self.pos.proxy.payment_terminal_transaction_start($(this).data('cid'), self.pos.currency.name); - }); - -/* - var self = this; - var order = this.pos.get_order(); - if (!order) { - return; - } - - var lines = order.get_paymentlines(); - var due = order.get_due(); - var extradue = 0; - if (due && lines.length && due !== order.get_due(lines[lines.length-1])) { - extradue = due; - } - - - this.$('.paymentlines-container').empty(); - var lines = $(QWeb.render('PaymentScreen-Paymentlines', { - widget: this, - order: order, - paymentlines: lines, - extradue: extradue, - })); - - lines.on('click','.delete-button',function(){ - self.click_delete_paymentline($(this).data('cid')); - }); - - lines.on('click','.paymentline',function(){ - self.click_paymentline($(this).data('cid')); - }); - - lines.on('click','.payment-terminal-transaction-start',function(){ - self.pos.proxy.payment_terminal_transaction_start($(this).data('cid'), self.pos.currency.name); - }); - - lines.appendTo(this.$('.paymentlines-container')); -*/ - }, + render_paymentlines : function(){ + this._super.apply(this, arguments); + var self = this; + this.$('.paymentlines-container').unbind('click').on('click','.payment-terminal-transaction-start',function(event){ + // Why this "on" thing links severaltime the button to the action if I don't use "unlink" to reset the button links before ? + //console.log(event.target); + self.pos.proxy.payment_terminal_transaction_start($(this).data('cid'), self.pos.currency.name); + }); + + }, }); }); From 389cb50c5200ad46d9f331d44c3a25efc7db5137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20DUMAINE?= Date: Sun, 10 Jul 2016 21:08:52 +0200 Subject: [PATCH 09/40] Add static/src/xml/templates.xml --- pos_payment_terminal/static/src/xml/templates.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 pos_payment_terminal/static/src/xml/templates.xml diff --git a/pos_payment_terminal/static/src/xml/templates.xml b/pos_payment_terminal/static/src/xml/templates.xml new file mode 100644 index 0000000000..019396379e --- /dev/null +++ b/pos_payment_terminal/static/src/xml/templates.xml @@ -0,0 +1,13 @@ + + + + + + + + From 2d6b08301ff3489a6cb836f2ecbd36c682246f2d Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 10 Oct 2016 21:14:04 +0200 Subject: [PATCH 10/40] FIX crash on demo data --- pos_payment_terminal/pos_payment_terminal_demo.xml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pos_payment_terminal/pos_payment_terminal_demo.xml b/pos_payment_terminal/pos_payment_terminal_demo.xml index 1788dae44b..fb3dbd39fb 100644 --- a/pos_payment_terminal/pos_payment_terminal_demo.xml +++ b/pos_payment_terminal/pos_payment_terminal_demo.xml @@ -1,14 +1,8 @@ - - - - - check - + - - + From 216329d5d7a8f78ffdb9626f1b40511f58c920ba Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 10 Oct 2016 22:50:58 +0200 Subject: [PATCH 11/40] Port pos_payment_terminal to v10 OCA Transbot updated translations from Transifex OCA Transbot updated translations from Transifex OCA Transbot updated translations from Transifex OCA Transbot updated translations from Transifex [FIX] fixes currencies with decimals <>2 OCA Transbot updated translations from Transifex remove obsolete .pot files [ci skip] [UPD] Update pos_payment_terminal.pot --- pos_payment_terminal/README.rst | 31 +++++++--- pos_payment_terminal/__init__.py | 4 +- pos_payment_terminal/__manifest__.py | 33 +++-------- .../{ => demo}/pos_payment_terminal_demo.xml | 0 pos_payment_terminal/i18n/es.po | 57 ++++++++++++++++++ pos_payment_terminal/i18n/fr.po | 32 ++++++---- pos_payment_terminal/i18n/hr_HR.po | 58 +++++++++++++++++++ pos_payment_terminal/i18n/it.po | 56 ++++++++++++++++++ pos_payment_terminal/i18n/nl_NL.po | 57 ++++++++++++++++++ .../i18n/pos_payment_terminal.pot | 17 +++--- pos_payment_terminal/models/__init__.py | 4 ++ .../models/account_journal.py | 15 +++++ pos_payment_terminal/models/pos_config.py | 15 +++++ pos_payment_terminal/pos_payment_terminal.py | 39 ------------- .../pos_payment_terminal_view.xml | 28 --------- .../static/src/js/pos_payment_terminal.js | 28 +++++---- .../static/src/xml/templates.xml | 13 ----- .../views/account_journal.xml | 15 +++++ pos_payment_terminal/views/pos_config.xml | 15 +++++ .../views/pos_payment_terminal_template.xml | 11 ++++ 20 files changed, 380 insertions(+), 148 deletions(-) rename pos_payment_terminal/{ => demo}/pos_payment_terminal_demo.xml (100%) create mode 100644 pos_payment_terminal/i18n/es.po create mode 100644 pos_payment_terminal/i18n/hr_HR.po create mode 100644 pos_payment_terminal/i18n/it.po create mode 100644 pos_payment_terminal/i18n/nl_NL.po create mode 100644 pos_payment_terminal/models/__init__.py create mode 100644 pos_payment_terminal/models/account_journal.py create mode 100644 pos_payment_terminal/models/pos_config.py delete mode 100644 pos_payment_terminal/pos_payment_terminal.py delete mode 100644 pos_payment_terminal/pos_payment_terminal_view.xml delete mode 100644 pos_payment_terminal/static/src/xml/templates.xml create mode 100644 pos_payment_terminal/views/account_journal.xml create mode 100644 pos_payment_terminal/views/pos_config.xml create mode 100644 pos_payment_terminal/views/pos_payment_terminal_template.xml diff --git a/pos_payment_terminal/README.rst b/pos_payment_terminal/README.rst index 6c1c22da09..b8139ea060 100644 --- a/pos_payment_terminal/README.rst +++ b/pos_payment_terminal/README.rst @@ -1,3 +1,8 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +==================== POS Payment Terminal ==================== @@ -20,10 +25,6 @@ This module is designed to be installed on the and old Sagem devices support the Telium protocol implemented in the *hw_telium_payment_terminal* module. -This module requires an up-to-date version of Odoo v8 that includes -`this pull request ` which was -merged in the *8.0* branch of Odoo on Github on July 2nd 2015. - Configuration ============= @@ -36,6 +37,18 @@ Usage In the frontend of the POS, when you select a payment method that has a payment mode *card* or *check*, you will have a *Start Transaction* button : if you click on that button, the amount, the currency and the payment mode will be sent to the POSbox. +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/184/10.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + Credits ======= @@ -48,12 +61,14 @@ Contributors Maintainer ---------- -.. image:: http://odoo-community.org/logo.png +.. image:: https://odoo-community.org/logo.png :alt: Odoo Community Association - :target: http://odoo-community.org + :target: https://odoo-community.org This module is maintained by the OCA. -OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. -To contribute to this module, please visit http://odoo-community.org. +To contribute to this module, please visit https://odoo-community.org. diff --git a/pos_payment_terminal/__init__.py b/pos_payment_terminal/__init__.py index 9e67b3d9d1..cde864bae2 100644 --- a/pos_payment_terminal/__init__.py +++ b/pos_payment_terminal/__init__.py @@ -1 +1,3 @@ -from . import pos_payment_terminal +# -*- coding: utf-8 -*- + +from . import models diff --git a/pos_payment_terminal/__manifest__.py b/pos_payment_terminal/__manifest__.py index acfd166873..850a8e8425 100644 --- a/pos_payment_terminal/__manifest__.py +++ b/pos_payment_terminal/__manifest__.py @@ -1,39 +1,22 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# POS Payment Terminal module for Odoo -# Copyright (C) 2014 Aurélien DUMAINE -# Copyright (C) 2015 Akretion (www.akretion.com) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - +# © 2014-2016 Aurélien DUMAINE +# © 2015-2016 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { 'name': 'POS Payment Terminal', - 'version': '9.0.0.1.0', + 'version': '10.0.0.1.0', 'category': 'Point Of Sale', 'summary': 'Manage Payment Terminal device from POS front end', 'author': "Aurélien DUMAINE,Akretion,Odoo Community Association (OCA)", 'license': 'AGPL-3', 'depends': ['point_of_sale'], 'data': [ - 'pos_payment_terminal_view.xml', - 'static/src/xml/templates.xml', + 'views/pos_config.xml', + 'views/account_journal.xml', + 'views/pos_payment_terminal_template.xml', ], - 'demo': ['pos_payment_terminal_demo.xml'], + 'demo': ['demo/pos_payment_terminal_demo.xml'], 'qweb': ['static/src/xml/pos_payment_terminal.xml'], 'installable': True, } diff --git a/pos_payment_terminal/pos_payment_terminal_demo.xml b/pos_payment_terminal/demo/pos_payment_terminal_demo.xml similarity index 100% rename from pos_payment_terminal/pos_payment_terminal_demo.xml rename to pos_payment_terminal/demo/pos_payment_terminal_demo.xml diff --git a/pos_payment_terminal/i18n/es.po b/pos_payment_terminal/i18n/es.po new file mode 100644 index 0000000000..1f2a1ec70c --- /dev/null +++ b/pos_payment_terminal/i18n/es.po @@ -0,0 +1,57 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_payment_terminal +# +# Translators: +# OCA Transbot , 2017 +# enjolras , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-01 02:01+0000\n" +"PO-Revision-Date: 2018-03-01 02:01+0000\n" +"Last-Translator: enjolras , 2018\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Card" +msgstr "Tarjeta" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Check" +msgstr "Talón" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_account_journal +msgid "Journal" +msgstr "Diario" + +#. module: pos_payment_terminal +#: model:ir.model.fields,field_description:pos_payment_terminal.field_account_journal_payment_mode +msgid "Payment Mode" +msgstr "Forma de pago" + +#. module: pos_payment_terminal +#: model:ir.model.fields,help:pos_payment_terminal.field_account_journal_payment_mode +msgid "Select the payment mode sent to the payment terminal" +msgstr "Seleccione la forma de pega enviada al terminal de pago" + +#. module: pos_payment_terminal +#. openerp-web +#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:6 +#, python-format +msgid "Start transaction" +msgstr "Iniciar transacción" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_pos_config +msgid "pos.config" +msgstr "Configuración del TPV" diff --git a/pos_payment_terminal/i18n/fr.po b/pos_payment_terminal/i18n/fr.po index f247bbc6ff..1f814fc114 100644 --- a/pos_payment_terminal/i18n/fr.po +++ b/pos_payment_terminal/i18n/fr.po @@ -1,19 +1,23 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * pos_payment_terminal +# * pos_payment_terminal # +# Translators: +# OCA Transbot , 2017 +# leemannd , 2017 msgid "" msgstr "" -"Project-Id-Version: Odoo Server 8.0\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-04-30 10:04+0000\n" -"PO-Revision-Date: 2015-04-30 10:04+0000\n" -"Last-Translator: Alexis de Lattre \n" -"Language-Team: \n" +"POT-Creation-Date: 2018-03-01 02:01+0000\n" +"PO-Revision-Date: 2018-03-01 02:01+0000\n" +"Last-Translator: leemannd , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: pos_payment_terminal #: selection:account.journal,payment_mode:0 @@ -31,19 +35,23 @@ msgid "Journal" msgstr "Journal" #. module: pos_payment_terminal -#: field:account.journal,payment_mode:0 -msgid "Payment mode" -msgstr "Mode de paiement" +#: model:ir.model.fields,field_description:pos_payment_terminal.field_account_journal_payment_mode +msgid "Payment Mode" +msgstr "Moyen de paiement" #. module: pos_payment_terminal -#: help:account.journal,payment_mode:0 +#: model:ir.model.fields,help:pos_payment_terminal.field_account_journal_payment_mode msgid "Select the payment mode sent to the payment terminal" msgstr "Sélectionner le mode de paiement envoyé au terminal de paiement" #. module: pos_payment_terminal #. openerp-web -#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:8 +#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:6 #, python-format msgid "Start transaction" msgstr "Démarrer la transaction" +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_pos_config +msgid "pos.config" +msgstr "pos.config" diff --git a/pos_payment_terminal/i18n/hr_HR.po b/pos_payment_terminal/i18n/hr_HR.po new file mode 100644 index 0000000000..aa8f3348dd --- /dev/null +++ b/pos_payment_terminal/i18n/hr_HR.po @@ -0,0 +1,58 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_payment_terminal +# +# Translators: +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-13 19:51+0000\n" +"PO-Revision-Date: 2016-12-13 19:51+0000\n" +"Last-Translator: Bole , 2017\n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/" +"hr_HR/)\n" +"Language: hr_HR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Card" +msgstr "Kartica" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Check" +msgstr "Ček" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_account_journal +msgid "Journal" +msgstr "Dnevnik" + +#. module: pos_payment_terminal +#: model:ir.model.fields,field_description:pos_payment_terminal.field_account_journal_payment_mode +msgid "Payment Mode" +msgstr "Način plaćanja" + +#. module: pos_payment_terminal +#: model:ir.model.fields,help:pos_payment_terminal.field_account_journal_payment_mode +msgid "Select the payment mode sent to the payment terminal" +msgstr "Odaberite način plaćanja korišten na naplatnom terminalu" + +#. module: pos_payment_terminal +#. openerp-web +#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:6 +#, python-format +msgid "Start transaction" +msgstr "Započni transakciju" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_pos_config +msgid "pos.config" +msgstr "pos.config" diff --git a/pos_payment_terminal/i18n/it.po b/pos_payment_terminal/i18n/it.po new file mode 100644 index 0000000000..db1d4f752b --- /dev/null +++ b/pos_payment_terminal/i18n/it.po @@ -0,0 +1,56 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_payment_terminal +# +# Translators: +# Francesco Fresta , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-01 02:01+0000\n" +"PO-Revision-Date: 2018-03-01 02:01+0000\n" +"Last-Translator: Francesco Fresta , 2018\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Card" +msgstr "" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Check" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_account_journal +msgid "Journal" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model.fields,field_description:pos_payment_terminal.field_account_journal_payment_mode +msgid "Payment Mode" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model.fields,help:pos_payment_terminal.field_account_journal_payment_mode +msgid "Select the payment mode sent to the payment terminal" +msgstr "" + +#. module: pos_payment_terminal +#. openerp-web +#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:6 +#, python-format +msgid "Start transaction" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_pos_config +msgid "pos.config" +msgstr "pos.config" diff --git a/pos_payment_terminal/i18n/nl_NL.po b/pos_payment_terminal/i18n/nl_NL.po new file mode 100644 index 0000000000..9d417f9988 --- /dev/null +++ b/pos_payment_terminal/i18n/nl_NL.po @@ -0,0 +1,57 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_payment_terminal +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-30 02:44+0000\n" +"PO-Revision-Date: 2017-05-30 02:44+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Card" +msgstr "" + +#. module: pos_payment_terminal +#: selection:account.journal,payment_mode:0 +msgid "Check" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_account_journal +msgid "Journal" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model.fields,field_description:pos_payment_terminal.field_account_journal_payment_mode +msgid "Payment Mode" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model.fields,help:pos_payment_terminal.field_account_journal_payment_mode +msgid "Select the payment mode sent to the payment terminal" +msgstr "" + +#. module: pos_payment_terminal +#. openerp-web +#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:6 +#, python-format +msgid "Start transaction" +msgstr "" + +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_pos_config +msgid "pos.config" +msgstr "pos.config" diff --git a/pos_payment_terminal/i18n/pos_payment_terminal.pot b/pos_payment_terminal/i18n/pos_payment_terminal.pot index 18c841e4ff..c544330985 100644 --- a/pos_payment_terminal/i18n/pos_payment_terminal.pot +++ b/pos_payment_terminal/i18n/pos_payment_terminal.pot @@ -4,10 +4,8 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 8.0\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-04-30 10:03+0000\n" -"PO-Revision-Date: 2015-04-30 10:03+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -31,19 +29,24 @@ msgid "Journal" msgstr "" #. module: pos_payment_terminal -#: field:account.journal,payment_mode:0 -msgid "Payment mode" +#: model:ir.model.fields,field_description:pos_payment_terminal.field_account_journal_payment_mode +msgid "Payment Mode" msgstr "" #. module: pos_payment_terminal -#: help:account.journal,payment_mode:0 +#: model:ir.model.fields,help:pos_payment_terminal.field_account_journal_payment_mode msgid "Select the payment mode sent to the payment terminal" msgstr "" #. module: pos_payment_terminal #. openerp-web -#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:8 +#: code:addons/pos_payment_terminal/static/src/xml/pos_payment_terminal.xml:6 #, python-format msgid "Start transaction" msgstr "" +#. module: pos_payment_terminal +#: model:ir.model,name:pos_payment_terminal.model_pos_config +msgid "pos.config" +msgstr "" + diff --git a/pos_payment_terminal/models/__init__.py b/pos_payment_terminal/models/__init__.py new file mode 100644 index 0000000000..3b0e3a1a7c --- /dev/null +++ b/pos_payment_terminal/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import pos_config +from . import account_journal diff --git a/pos_payment_terminal/models/account_journal.py b/pos_payment_terminal/models/account_journal.py new file mode 100644 index 0000000000..6f7c96788b --- /dev/null +++ b/pos_payment_terminal/models/account_journal.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Aurélien DUMAINE +# © 2015-2016 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +from odoo import models, fields + + +class AccountJournal(models.Model): + _inherit = 'account.journal' + + payment_mode = fields.Selection( + [('card', 'Card'), ('check', 'Check')], 'Payment Mode', + help="Select the payment mode sent to the payment terminal") diff --git a/pos_payment_terminal/models/pos_config.py b/pos_payment_terminal/models/pos_config.py new file mode 100644 index 0000000000..2d7da41aba --- /dev/null +++ b/pos_payment_terminal/models/pos_config.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Aurélien DUMAINE +# © 2015-2016 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +from odoo import models, fields + + +class PosConfig(models.Model): + _inherit = 'pos.config' + + iface_payment_terminal = fields.Boolean( + 'Payment Terminal', + help="A payment terminal is available on the Proxy") diff --git a/pos_payment_terminal/pos_payment_terminal.py b/pos_payment_terminal/pos_payment_terminal.py deleted file mode 100644 index 1d2bd4ec45..0000000000 --- a/pos_payment_terminal/pos_payment_terminal.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# POS Payment Terminal module for Odoo -# Copyright (C) 2014 Aurélien DUMAINE -# Copyright (C) 2015 Akretion (www.akretion.com) -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp import models, fields - - -class AccountJournal(models.Model): - _inherit = 'account.journal' - - payment_mode = fields.Selection( - (('card', 'Card'), ('check', 'Check')), 'Payment mode', - help="Select the payment mode sent to the payment terminal") - - -class PosConfig(models.Model): - _inherit = 'pos.config' - - iface_payment_terminal = fields.Boolean( - 'Payment Terminal', - help="A payment terminal is available on the Proxy") diff --git a/pos_payment_terminal/pos_payment_terminal_view.xml b/pos_payment_terminal/pos_payment_terminal_view.xml deleted file mode 100644 index 509ee3dcd7..0000000000 --- a/pos_payment_terminal/pos_payment_terminal_view.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - pos.payment.terminal.config.form - pos.config - - - - - - - - - - pos.payment.terminal.journal.form - account.journal - - - - - - - - - - diff --git a/pos_payment_terminal/static/src/js/pos_payment_terminal.js b/pos_payment_terminal/static/src/js/pos_payment_terminal.js index 7cae07fbf1..ba99956a8b 100755 --- a/pos_payment_terminal/static/src/js/pos_payment_terminal.js +++ b/pos_payment_terminal/static/src/js/pos_payment_terminal.js @@ -1,10 +1,10 @@ /* POS Payment Terminal module for Odoo Copyright (C) 2014-2016 Aurélien DUMAINE - Copyright (C) 2014-2015 Akretion (www.akretion.com) + Copyright (C) 2014-2016 Akretion (www.akretion.com) @author: Aurélien DUMAINE @author: Alexis de Lattre - The licence is in the file __openerp__.py + License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { @@ -13,15 +13,14 @@ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { var screens = require('point_of_sale.screens'); var devices = require('point_of_sale.devices'); var models = require('point_of_sale.models'); -// var gui = require('point_of_sale.gui'); var core = require('web.core'); var _t = core._t; var QWeb = core.qweb; - models.load_fields("account.journal",['payment_mode']); + models.load_fields('account.journal', ['payment_mode']); devices.ProxyDevice.include({ - payment_terminal_transaction_start: function(line_cid, currency_iso){ + payment_terminal_transaction_start: function(line_cid, currency_iso, currency_decimals){ var line; var lines = this.pos.get_order().get_paymentlines(); for ( var i = 0; i < lines.length; i++ ) { @@ -32,6 +31,7 @@ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { var data = {'amount' : line.get_amount(), 'currency_iso' : currency_iso, + 'currency_decimals' : currency_decimals, 'payment_mode' : line.cashregister.journal.payment_mode}; //console.log(JSON.stringify(data)); this.message('payment_terminal_transaction_start', {'payment_info' : JSON.stringify(data)}); @@ -40,16 +40,14 @@ odoo.define('pos_payment_terminal.pos_payment_terminal', function (require) { screens.PaymentScreenWidget.include({ - render_paymentlines : function(){ - this._super.apply(this, arguments); - var self = this; - this.$('.paymentlines-container').unbind('click').on('click','.payment-terminal-transaction-start',function(event){ + render_paymentlines : function(){ + this._super.apply(this, arguments); + var self = this; + this.$('.paymentlines-container').unbind('click').on('click', '.payment-terminal-transaction-start', function(event){ // Why this "on" thing links severaltime the button to the action if I don't use "unlink" to reset the button links before ? - //console.log(event.target); - self.pos.proxy.payment_terminal_transaction_start($(this).data('cid'), self.pos.currency.name); - }); - - }, - + //console.log(event.target); + self.pos.proxy.payment_terminal_transaction_start($(this).data('cid'), self.pos.currency.name, self.pos.currency.decimals); + }); + }, }); }); diff --git a/pos_payment_terminal/static/src/xml/templates.xml b/pos_payment_terminal/static/src/xml/templates.xml deleted file mode 100644 index 019396379e..0000000000 --- a/pos_payment_terminal/static/src/xml/templates.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/pos_payment_terminal/views/account_journal.xml b/pos_payment_terminal/views/account_journal.xml new file mode 100644 index 0000000000..0e62aa9f23 --- /dev/null +++ b/pos_payment_terminal/views/account_journal.xml @@ -0,0 +1,15 @@ + + + + + pos.payment.terminal.journal.form + account.journal + + + + + + + + + diff --git a/pos_payment_terminal/views/pos_config.xml b/pos_payment_terminal/views/pos_config.xml new file mode 100644 index 0000000000..6339b39624 --- /dev/null +++ b/pos_payment_terminal/views/pos_config.xml @@ -0,0 +1,15 @@ + + + + + pos.payment.terminal.config.form + pos.config + + + + + + + + + diff --git a/pos_payment_terminal/views/pos_payment_terminal_template.xml b/pos_payment_terminal/views/pos_payment_terminal_template.xml new file mode 100644 index 0000000000..976acc2d40 --- /dev/null +++ b/pos_payment_terminal/views/pos_payment_terminal_template.xml @@ -0,0 +1,11 @@ + + + + + + From 0da8ba78401162b0c6bb3abc10b06ba15d1f246f Mon Sep 17 00:00:00 2001 From: hparfr Date: Mon, 8 Oct 2018 12:04:25 +0200 Subject: [PATCH 12/40] Fix JS loading : module should only be loaded in pos Fix indentation Increment version number [ADD] icon.png --- pos_payment_terminal/__manifest__.py | 2 +- pos_payment_terminal/static/description/icon.png | Bin 0 -> 9455 bytes .../views/pos_payment_terminal_template.xml | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 pos_payment_terminal/static/description/icon.png diff --git a/pos_payment_terminal/__manifest__.py b/pos_payment_terminal/__manifest__.py index 850a8e8425..9ffb03a97d 100644 --- a/pos_payment_terminal/__manifest__.py +++ b/pos_payment_terminal/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'POS Payment Terminal', - 'version': '10.0.0.1.0', + 'version': '10.0.0.1.1', 'category': 'Point Of Sale', 'summary': 'Manage Payment Terminal device from POS front end', 'author': "Aurélien DUMAINE,Akretion,Odoo Community Association (OCA)", diff --git a/pos_payment_terminal/static/description/icon.png b/pos_payment_terminal/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/pos_payment_terminal/views/pos_payment_terminal_template.xml b/pos_payment_terminal/views/pos_payment_terminal_template.xml index 976acc2d40..0b619aff83 100644 --- a/pos_payment_terminal/views/pos_payment_terminal_template.xml +++ b/pos_payment_terminal/views/pos_payment_terminal_template.xml @@ -1,10 +1,10 @@ -