diff --git a/.copier-answers.yml b/.copier-answers.yml index 4e4dda35851..0a6a07c01a8 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,8 +1,8 @@ # Do NOT update manually; changes here will be overwritten by Copier -_commit: v1.14.2 +_commit: v1.21.1 _src_path: gh:oca/oca-addons-repo-template ci: GitHub -dependency_installation_mode: PIP +convert_readme_fragments_to_markdown: false generate_requirements_txt: true github_check_license: true github_ci_extra_env: {} @@ -11,14 +11,16 @@ github_enable_makepot: true github_enable_stale_action: true github_enforce_dev_status_compatibility: true include_wkhtmltopdf: false +odoo_test_flavor: Both odoo_version: 16.0 org_name: Odoo Community Association (OCA) org_slug: OCA -rebel_module_groups: [] +rebel_module_groups: +- purchase_security,purchase_order_qty_change_no_recompute repo_description: 'TODO: add repo description.' repo_name: purchase-workflow repo_slug: purchase-workflow repo_website: https://github.com/OCA/purchase-workflow -travis_apt_packages: [] -travis_apt_sources: [] +use_pyproject_toml: false +use_ruff: false diff --git a/.eslintrc.yml b/.eslintrc.yml index 9429bc688aa..fed88d70d23 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -22,6 +22,7 @@ globals: odoo: readonly openerp: readonly owl: readonly + luxon: readonly # Styling is handled by Prettier, so we only need to enable AST rules; # see https://github.com/OCA/maintainer-quality-tools/pull/618#issuecomment-558576890 diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 23e6e58d6bc..38b0ba110e8 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -13,8 +13,10 @@ jobs: pre-commit: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-python@v2 + with: + python-version: "3.11" - name: Get python version run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV - uses: actions/cache@v1 @@ -25,6 +27,15 @@ jobs: run: pip install pre-commit - name: Run pre-commit run: pre-commit run --all-files --show-diff-on-failure --color=always + env: + # Consider valid a PR that changes README fragments but doesn't + # change the README.rst file itself. It's not really a problem + # because the bot will update it anyway after merge. This way, we + # lower the barrier for functional contributors that want to fix the + # readme fragments, while still letting developers get README + # auto-generated (which also helps functionals when using runboat). + # DOCS https://pre-commit.com/#temporarily-disabling-hooks + SKIP: oca-gen-addon-readme - name: Check that all files generated by pre-commit are in git run: | newfiles="$(git ls-files --others --exclude-from=.gitignore)" diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 1693a1253bd..fa17fcd4e85 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Stale PRs and issues policy - uses: actions/stale@v4 + uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} # General settings. @@ -48,7 +48,7 @@ jobs: # * Issues that are pending more information # * Except Issues marked as "no stale" - name: Needs more information stale issues policy - uses: actions/stale@v4 + uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} ascending: true diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f1b2b9fd6cc..61e9f72859b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest name: Detect unreleased dependencies steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: | for reqfile in requirements.txt test-requirements.txt ; do if [ -f ${reqfile} ] ; then @@ -36,10 +36,19 @@ jobs: matrix: include: - container: ghcr.io/oca/oca-ci/py3.10-odoo16.0:latest + include: "purchase_security,purchase_order_qty_change_no_recompute" + name: test with Odoo + - container: ghcr.io/oca/oca-ci/py3.10-ocb16.0:latest + include: "purchase_security,purchase_order_qty_change_no_recompute" + name: test with OCB makepot: "true" + - container: ghcr.io/oca/oca-ci/py3.10-odoo16.0:latest + exclude: "purchase_security,purchase_order_qty_change_no_recompute" name: test with Odoo - container: ghcr.io/oca/oca-ci/py3.10-ocb16.0:latest + exclude: "purchase_security,purchase_order_qty_change_no_recompute" name: test with OCB + makepot: "true" services: postgres: image: postgres:12.0 @@ -49,8 +58,11 @@ jobs: POSTGRES_DB: odoo ports: - 5432:5432 + env: + INCLUDE: "${{ matrix.include }}" + EXCLUDE: "${{ matrix.exclude }}" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: persist-credentials: false - name: Install addons and dependencies @@ -63,7 +75,9 @@ jobs: run: oca_init_test_database - name: Run tests run: oca_run_tests - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} - name: Update .pot files run: oca_export_and_push_pot https://x-access-token:${{ secrets.GIT_PUSH_TOKEN }}@github.com/${{ github.repository }} if: ${{ matrix.makepot == 'true' && github.event_name == 'push' && github.repository_owner == 'OCA' }} diff --git a/.gitignore b/.gitignore index 9c283fd41f6..0090721f5d2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ __pycache__/ *.py[cod] /.venv /.pytest_cache +/.ruff_cache # C extensions *.so diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fb2731eeb3f..bd9606c5bdb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,6 +12,12 @@ exclude: | /static/(src/)?lib/| # Repos using Sphinx to generate docs don't need prettying ^docs/_templates/.*\.html$| + # Don't bother non-technical authors with formatting issues in docs + readme/.*\.(rst|md)$| + # Ignore build and dist directories in addons + /build/|/dist/| + # Ignore test files in addons + /tests/samples/.*| # You don't usually want a bot to modify your legal texts (LICENSE.*|COPYING.*) default_language_version: @@ -33,12 +39,25 @@ repos: language: fail files: '[a-zA-Z0-9_]*/i18n/en\.po$' - repo: https://github.com/oca/maintainer-tools - rev: 4cd2b852214dead80822e93e6749b16f2785b2fe + rev: 9a170331575a265c092ee6b24b845ec508e8ef75 hooks: # update the NOT INSTALLABLE ADDONS section above - id: oca-update-pre-commit-excluded-addons - id: oca-fix-manifest-website args: ["https://github.com/OCA/purchase-workflow"] + - id: oca-gen-addon-readme + args: + - --addons-dir=. + - --branch=16.0 + - --org-name=OCA + - --repo-name=purchase-workflow + - --if-source-changed + - --keep-source-digest + - repo: https://github.com/OCA/odoo-pre-commit-hooks + rev: v0.0.25 + hooks: + - id: oca-checks-odoo-module + - id: oca-checks-po - repo: https://github.com/myint/autoflake rev: v1.6.1 hooks: @@ -125,7 +144,7 @@ repos: name: flake8 additional_dependencies: ["flake8-bugbear==21.9.2"] - repo: https://github.com/OCA/pylint-odoo - rev: 7.0.2 + rev: v8.0.19 hooks: - id: pylint_odoo name: pylint with optional checks diff --git a/.pylintrc b/.pylintrc index cad9c2f1b2b..554913276b4 100644 --- a/.pylintrc +++ b/.pylintrc @@ -5,12 +5,12 @@ load-plugins=pylint_odoo score=n [ODOOLINT] -readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" -manifest_required_authors=Odoo Community Association (OCA) -manifest_required_keys=license -manifest_deprecated_keys=description,active -license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 -valid_odoo_versions=16.0 +readme-template-url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +manifest-required-authors=Odoo Community Association (OCA) +manifest-required-keys=license +manifest-deprecated-keys=description,active +license-allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 +valid-odoo-versions=16.0 [MESSAGES CONTROL] disable=all diff --git a/.pylintrc-mandatory b/.pylintrc-mandatory index fa4b81c41e6..7a0cd4efefe 100644 --- a/.pylintrc-mandatory +++ b/.pylintrc-mandatory @@ -4,12 +4,12 @@ load-plugins=pylint_odoo score=n [ODOOLINT] -readme_template_url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" -manifest_required_authors=Odoo Community Association (OCA) -manifest_required_keys=license -manifest_deprecated_keys=description,active -license_allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 -valid_odoo_versions=16.0 +readme-template-url="https://github.com/OCA/maintainer-tools/blob/master/template/module/README.rst" +manifest-required-authors=Odoo Community Association (OCA) +manifest-required-keys=license +manifest-deprecated-keys=description,active +license-allowed=AGPL-3,GPL-2,GPL-2 or any later version,GPL-3,GPL-3 or any later version,LGPL-3 +valid-odoo-versions=16.0 [MESSAGES CONTROL] disable=all diff --git a/README.md b/README.md index 947cb4a4b9c..098afbad4dd 100644 --- a/README.md +++ b/README.md @@ -21,42 +21,85 @@ Available addons ---------------- addon | version | maintainers | summary --- | --- | --- | --- -[purchase_advance_payment](purchase_advance_payment/) | 16.0.1.0.0 | | Allow to add advance payments on purchase orders +[partner_supplierinfo_smartbutton](partner_supplierinfo_smartbutton/) | 16.0.1.0.0 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) | Access supplied products from the vendor +[procurement_purchase_no_grouping](procurement_purchase_no_grouping/) | 16.0.1.0.0 | | Procurement Purchase No Grouping +[product_supplier_code_purchase](product_supplier_code_purchase/) | 16.0.1.0.0 | | This module adds to the purchase order line the supplier code defined in the product. +[product_supplierinfo_purchase_contact](product_supplierinfo_purchase_contact/) | 16.0.1.0.0 | | Add Purchase Contact in product supplier info +[product_supplierinfo_qty_multiplier](product_supplierinfo_qty_multiplier/) | 16.0.1.0.0 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) [![legalsylvain](https://github.com/legalsylvain.png?size=30px)](https://github.com/legalsylvain) | Product supplierinfo qty multiplier +[purchase_advance_payment](purchase_advance_payment/) | 16.0.1.2.0 | [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Allow to add advance payments on purchase orders [purchase_all_shipments](purchase_all_shipments/) | 16.0.1.0.0 | | Purchase All Shipments -[purchase_allowed_product](purchase_allowed_product/) | 16.0.2.0.0 | | This module allows to select only products that can be supplied by the vendor +[purchase_allowed_product](purchase_allowed_product/) | 16.0.2.1.0 | | This module allows to select only products that can be supplied by the vendor +[purchase_blanket_order](purchase_blanket_order/) | 16.0.2.1.0 | | Purchase Blanket Orders +[purchase_cancel_reason](purchase_cancel_reason/) | 16.0.1.0.0 | | Purchase Cancel Reason [purchase_commercial_partner](purchase_commercial_partner/) | 16.0.1.0.0 | [![alexis-via](https://github.com/alexis-via.png?size=30px)](https://github.com/alexis-via) | Add stored related field 'Commercial Supplier' on POs -[purchase_default_terms_conditions](purchase_default_terms_conditions/) | 16.0.1.0.2 | | This module allows purchase default terms & conditions -[purchase_delivery_split_date](purchase_delivery_split_date/) | 16.0.1.0.0 | | Allows Purchase Order you confirm to generate one Incoming Shipment for each expected date indicated in the Purchase Order Lines -[purchase_deposit](purchase_deposit/) | 16.0.1.0.0 | | Option to create deposit from purchase order -[purchase_discount](purchase_discount/) | 16.0.1.1.0 | | Purchase order lines with discounts -[purchase_exception](purchase_exception/) | 16.0.1.0.0 | | Custom exceptions on purchase order -[purchase_force_invoiced](purchase_force_invoiced/) | 16.0.1.0.0 | | Allows to force the billing status of the purchase order to "Invoiced" -[purchase_last_price_info](purchase_last_price_info/) | 16.0.1.0.0 | [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Purchase Product Last Price Info +[purchase_date_planned_manual](purchase_date_planned_manual/) | 16.0.1.0.0 | [![lreficent](https://github.com/lreficent.png?size=30px)](https://github.com/lreficent) | This module makes the system to always respect the planned (or scheduled) date in PO lines. +[purchase_default_terms_conditions](purchase_default_terms_conditions/) | 16.0.1.0.3 | | This module allows purchase default terms & conditions +[purchase_delivery_split_date](purchase_delivery_split_date/) | 16.0.1.0.3 | | Allows Purchase Order you confirm to generate one Incoming Shipment for each expected date indicated in the Purchase Order Lines +[purchase_deposit](purchase_deposit/) | 16.0.1.0.2 | | Option to create deposit from purchase order +[purchase_discount](purchase_discount/) | 16.0.2.0.0 | | Purchase order lines with discounts +[purchase_exception](purchase_exception/) | 16.0.1.0.1 | | Custom exceptions on purchase order +[purchase_fop_shipping](purchase_fop_shipping/) | 16.0.1.0.1 | | Purchase Free-Of-Payment shipping +[purchase_force_invoiced](purchase_force_invoiced/) | 16.0.1.0.1 | | Allows to force the billing status of the purchase order to "Invoiced" +[purchase_invoice_method](purchase_invoice_method/) | 16.0.1.0.0 | | Allow to force the invoice method of a purchase +[purchase_invoice_plan](purchase_invoice_plan/) | 16.0.1.0.0 | [![kittiu](https://github.com/kittiu.png?size=30px)](https://github.com/kittiu) | Add to purchases order, ability to manage future invoice plan +[purchase_landed_cost](purchase_landed_cost/) | 16.0.1.0.0 | | Purchase cost distribution +[purchase_last_price_info](purchase_last_price_info/) | 16.0.1.0.1 | [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Purchase Product Last Price Info [purchase_line_procurement_group](purchase_line_procurement_group/) | 16.0.1.0.0 | | Group purchase order line according to procurement group [purchase_location_by_line](purchase_location_by_line/) | 16.0.1.0.0 | | Allows to define a specific destination location on each PO line [purchase_lot](purchase_lot/) | 16.0.1.0.0 | [![florian-dacosta](https://github.com/florian-dacosta.png?size=30px)](https://github.com/florian-dacosta) | Purchase Lot -[purchase_merge](purchase_merge/) | 16.0.1.0.0 | | Wizard to merge purchase with required conditions +[purchase_manual_delivery](purchase_manual_delivery/) | 16.0.1.1.4 | | Prevents pickings to be auto generated upon Purchase Order confirmation and adds the ability to manually generate them as the supplier confirms the different purchase order lines. +[purchase_merge](purchase_merge/) | 16.0.1.0.3 | | Wizard to merge purchase with required conditions [purchase_no_rfq](purchase_no_rfq/) | 16.0.1.0.0 | [![legalsylvain](https://github.com/legalsylvain.png?size=30px)](https://github.com/legalsylvain) | Purchase Order - No Request For Quotation -[purchase_open_qty](purchase_open_qty/) | 16.0.2.0.1 | | Allows to identify the purchase orders that have quantities pending to invoice or to receive. +[purchase_only_by_packaging](purchase_only_by_packaging/) | 16.0.1.0.1 | | Manage purchase of packaging +[purchase_open_qty](purchase_open_qty/) | 16.0.3.0.0 | | Allows to identify the purchase orders that have quantities pending to invoice or to receive. [purchase_order_approved](purchase_order_approved/) | 16.0.1.0.0 | | Add a new state 'Approved' in purchase orders. -[purchase_order_line_menu](purchase_order_line_menu/) | 16.0.1.1.0 | | Adds Purchase Order Lines Menu -[purchase_order_no_zero_price](purchase_order_no_zero_price/) | 16.0.1.0.0 | | Prevent zero price lines on Purchase Orders +[purchase_order_archive](purchase_order_archive/) | 16.0.1.0.0 | | Archive Purchase Orders +[purchase_order_downpayment](purchase_order_downpayment/) | 16.0.1.0.0 | | Allow to add payments from Purchase order view +[purchase_order_general_discount](purchase_order_general_discount/) | 16.0.1.0.0 | | General discount per purchase order +[purchase_order_hide_receipt_status](purchase_order_hide_receipt_status/) | 16.0.1.0.1 | | Purchase Order Hide Receipt Status +[purchase_order_line_menu](purchase_order_line_menu/) | 16.0.2.1.0 | | Adds Purchase Order Lines Menu +[purchase_order_line_receipt_status](purchase_order_line_receipt_status/) | 16.0.1.0.0 | | Manage customizations on purchase order line +[purchase_order_line_stock_available](purchase_order_line_stock_available/) | 16.0.1.0.0 | | Purchase order line stock available +[purchase_order_no_zero_price](purchase_order_no_zero_price/) | 16.0.1.0.1 | | Prevent zero price lines on Purchase Orders [purchase_order_owner](purchase_order_owner/) | 16.0.1.0.0 | | Purchase Order Owner -[purchase_order_product_recommendation](purchase_order_product_recommendation/) | 16.0.1.0.0 | | Recommend products to buy to supplier based on history -[purchase_order_supplierinfo_update](purchase_order_supplierinfo_update/) | 16.0.1.0.0 | [![ernestotejeda](https://github.com/ernestotejeda.png?size=30px)](https://github.com/ernestotejeda) | Update product supplierinfo with the last purchase price -[purchase_order_type](purchase_order_type/) | 16.0.1.0.0 | | Purchase Order Type +[purchase_order_price_recalculation](purchase_order_price_recalculation/) | 16.0.1.0.0 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) | Price recalculation in purchases orders +[purchase_order_product_attachment_mgmt](purchase_order_product_attachment_mgmt/) | 16.0.1.0.0 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) | Purchase Order Product Attachment Mgmt +[purchase_order_product_recommendation](purchase_order_product_recommendation/) | 16.0.1.1.0 | | Recommend products to buy to supplier based on history +[purchase_order_purchase_manager](purchase_order_purchase_manager/) | 16.0.1.0.1 | [![EmilioPascual](https://github.com/EmilioPascual.png?size=30px)](https://github.com/EmilioPascual) | Purchase Manager from Supplier in Purchase Order +[purchase_order_qty_change_no_recompute](purchase_order_qty_change_no_recompute/) | 16.0.1.0.0 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) | Prevent recompute if only quantity has changed in purchase order line +[purchase_order_supplier_return](purchase_order_supplier_return/) | 16.0.1.0.0 | | Return product to supplier and update quantiy received +[purchase_order_supplierinfo_update](purchase_order_supplierinfo_update/) | 16.0.1.0.1 | [![ernestotejeda](https://github.com/ernestotejeda.png?size=30px)](https://github.com/ernestotejeda) | Update product supplierinfo with the last purchase price +[purchase_order_type](purchase_order_type/) | 16.0.1.0.2 | | Purchase Order Type [purchase_order_type_dashboard](purchase_order_type_dashboard/) | 16.0.1.0.0 | [![dalonsod](https://github.com/dalonsod.png?size=30px)](https://github.com/dalonsod) | Purchase Order Type Dashboard -[purchase_order_uninvoiced_amount](purchase_order_uninvoiced_amount/) | 16.0.1.0.0 | | Purchase Order Univoiced Amount +[purchase_order_uninvoiced_amount](purchase_order_uninvoiced_amount/) | 16.0.1.0.1 | | Purchase Order Univoiced Amount +[purchase_order_weight_volume](purchase_order_weight_volume/) | 16.0.2.2.0 | [![ilyasProgrammer](https://github.com/ilyasProgrammer.png?size=30px)](https://github.com/ilyasProgrammer) | Display purchase order weight and volume +[purchase_packaging_default](purchase_packaging_default/) | 16.0.1.0.0 | | Set default packaging in purchase +[purchase_packaging_level_qty](purchase_packaging_level_qty/) | 16.0.1.0.0 | | Display purchase order packaging level quantity [purchase_partner_incoterm](purchase_partner_incoterm/) | 16.0.1.0.0 | [![TDu](https://github.com/TDu.png?size=30px)](https://github.com/TDu) [![bealdav](https://github.com/bealdav.png?size=30px)](https://github.com/bealdav) | Add a an incoterm field for supplier and use it on purchase order -[purchase_partner_selectable_option](purchase_partner_selectable_option/) | 16.0.1.0.2 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) | Purchase Partner Selectable Option -[purchase_request](purchase_request/) | 16.0.1.0.0 | | Use this module to have notification of requirements of materials and/or external services and keep track of such requirements. +[purchase_partner_selectable_option](purchase_partner_selectable_option/) | 16.0.1.0.3 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) | Purchase Partner Selectable Option +[purchase_product_packaging_container_deposit](purchase_product_packaging_container_deposit/) | 16.0.1.0.0 | | Purchase Product Packaging Container Deposit +[purchase_reception_status](purchase_reception_status/) | 16.0.1.0.1 | [![alexis-via](https://github.com/alexis-via.png?size=30px)](https://github.com/alexis-via) | Add reception status on purchase orders +[purchase_reorder_control](purchase_reorder_control/) | 16.0.1.0.0 | | Restrict reordering unpurchaseable product +[purchase_request](purchase_request/) | 16.0.2.0.0 | | Use this module to have notification of requirements of materials and/or external services and keep track of such requirements. +[purchase_request_exception](purchase_request_exception/) | 16.0.1.0.0 | | Custom exceptions on purchase request [purchase_request_tier_validation](purchase_request_tier_validation/) | 16.0.1.0.0 | | Extends the functionality of Purchase Requests to support a tier validation process. +[purchase_request_type](purchase_request_type/) | 16.0.1.0.0 | | Purchase Request Type [purchase_requisition_tier_validation](purchase_requisition_tier_validation/) | 16.0.1.0.0 | | Extends the functionality of Purchase Agreements to support a tier validation process. -[purchase_security](purchase_security/) | 16.0.1.0.0 | [![pilarvargas-tecnativa](https://github.com/pilarvargas-tecnativa.png?size=30px)](https://github.com/pilarvargas-tecnativa) | See only your purchase orders +[purchase_return](purchase_return/) | 16.0.1.0.1 | [![JordiBForgeFlow](https://github.com/JordiBForgeFlow.png?size=30px)](https://github.com/JordiBForgeFlow) | Manage return orders. +[purchase_sale_link_by_origin](purchase_sale_link_by_origin/) | 16.0.1.0.0 | | Link PO/SO by the PO's Origin in addition to the default behavior that only links them by their lines +[purchase_security](purchase_security/) | 16.0.2.0.0 | [![pilarvargas-tecnativa](https://github.com/pilarvargas-tecnativa.png?size=30px)](https://github.com/pilarvargas-tecnativa) | See only your purchase orders +[purchase_sign](purchase_sign/) | 16.0.1.0.0 | | Purchase Sign [purchase_stock_packaging](purchase_stock_packaging/) | 16.0.1.0.0 | [![rousseldenis](https://github.com/rousseldenis.png?size=30px)](https://github.com/rousseldenis) | Allows to transmit the product packaging from the procurement values to the generated purchase order line -[purchase_tag](purchase_tag/) | 16.0.1.0.0 | | Allows to add multiple tags to purchase orders -[purchase_tier_validation](purchase_tier_validation/) | 16.0.1.0.0 | | Extends the functionality of Purchase Orders to support a tier validation process. -[purchase_triple_discount](purchase_triple_discount/) | 16.0.1.0.0 | | Manage triple discount on purchase order lines +[purchase_stock_price_unit_sync](purchase_stock_price_unit_sync/) | 16.0.1.0.0 | | Update cost price in stock moves already done +[purchase_tag](purchase_tag/) | 16.0.1.1.0 | | Allows to add multiple tags to purchase orders +[purchase_tier_validation](purchase_tier_validation/) | 16.0.1.1.0 | | Extends the functionality of Purchase Orders to support a tier validation process. +[purchase_transport_mode](purchase_transport_mode/) | 16.0.1.0.0 | | Purchase expection based on constraints +[purchase_triple_discount](purchase_triple_discount/) | 16.0.2.0.0 | | Manage triple discount on purchase order lines +[purchase_vendor_promotion](purchase_vendor_promotion/) | 16.0.1.0.0 | | Purchase Vendor Promotion +[purchase_warn_message](purchase_warn_message/) | 16.0.1.0.0 | | Add a popup warning on purchase to ensure warning is populated +[purchase_work_acceptance](purchase_work_acceptance/) | 16.0.1.0.0 | [![ps-tubtim](https://github.com/ps-tubtim.png?size=30px)](https://github.com/ps-tubtim) | Purchase Work Acceptance +[sale_purchase_force_vendor](sale_purchase_force_vendor/) | 16.0.1.0.1 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) | Sale Purchase Force Vendor +[supplier_calendar](supplier_calendar/) | 16.0.1.0.1 | [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Supplier Calendar [//]: # (end addons) diff --git a/partner_supplierinfo_smartbutton/README.rst b/partner_supplierinfo_smartbutton/README.rst new file mode 100644 index 00000000000..8d29b002e33 --- /dev/null +++ b/partner_supplierinfo_smartbutton/README.rst @@ -0,0 +1,107 @@ +======================================== +Access supplied products from the vendor +======================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:2f731f08305c9ee083f02176c7efc0bd6a58a9ef3e95c7f56c1678a1e5dd152c + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/partner_supplierinfo_smartbutton + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-partner_supplierinfo_smartbutton + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This addon adds a smart-button in the vendors with the supplied products. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +To use this module, you need to install "contacts" and "purchase" addons. + +Configuration +============= + +#. Go to *Purchase > Products > Products*. +#. Access one of them clicking on it. +#. Go to "Purchase" tab and add some vendors (Azure Interior for example). + +Usage +===== + +#. Go to *Contacts* or *Purchase > Orders > Vendors*. +#. Access one of them clicking on it. +#. If it has supplier products, you will see an smart-button in the top part called "Products Supplied". +#. Clicking on it, you will be see all products supplied. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-victoralmau| image:: https://github.com/victoralmau.png?size=40px + :target: https://github.com/victoralmau + :alt: victoralmau + +Current `maintainer `__: + +|maintainer-victoralmau| + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/partner_supplierinfo_smartbutton/__init__.py b/partner_supplierinfo_smartbutton/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/partner_supplierinfo_smartbutton/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/partner_supplierinfo_smartbutton/__manifest__.py b/partner_supplierinfo_smartbutton/__manifest__.py new file mode 100644 index 00000000000..c3923df4c18 --- /dev/null +++ b/partner_supplierinfo_smartbutton/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2022 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Access supplied products from the vendor", + "version": "16.0.1.0.0", + "category": "Purchase Management", + "website": "https://github.com/OCA/purchase-workflow", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": ["product"], + "installable": True, + "data": [ + "views/res_partner_view.xml", + ], + "maintainers": ["victoralmau"], +} diff --git a/partner_supplierinfo_smartbutton/i18n/es.po b/partner_supplierinfo_smartbutton/i18n/es.po new file mode 100644 index 00000000000..b469a67df19 --- /dev/null +++ b/partner_supplierinfo_smartbutton/i18n/es.po @@ -0,0 +1,43 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_supplierinfo_smartbutton +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-29 13:03+0000\n" +"PO-Revision-Date: 2022-04-29 16:03+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 2.3\n" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model,name:partner_supplierinfo_smartbutton.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_partner__product_supplied_count +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_users__product_supplied_count +msgid "Product Supplied Count" +msgstr "Total productos suministrados" + +#. module: partner_supplierinfo_smartbutton +#: model_terms:ir.ui.view,arch_db:partner_supplierinfo_smartbutton.view_partner_form +msgid "Products Supplied" +msgstr "Productos suministrados" + +#~ msgid "Display Name" +#~ msgstr "Nombre mostrado" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificación el" diff --git a/partner_supplierinfo_smartbutton/i18n/es_419.po b/partner_supplierinfo_smartbutton/i18n/es_419.po new file mode 100644 index 00000000000..10e04dedf53 --- /dev/null +++ b/partner_supplierinfo_smartbutton/i18n/es_419.po @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_supplierinfo_smartbutton +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es_419\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: partner_supplierinfo_smartbutton +#: model:ir.model,name:partner_supplierinfo_smartbutton.model_res_partner +msgid "Contact" +msgstr "" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_partner__product_supplied_count +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_users__product_supplied_count +msgid "Product Supplied Count" +msgstr "" + +#. module: partner_supplierinfo_smartbutton +#: model_terms:ir.ui.view,arch_db:partner_supplierinfo_smartbutton.view_partner_form +msgid "Products Supplied" +msgstr "" diff --git a/partner_supplierinfo_smartbutton/i18n/fr.po b/partner_supplierinfo_smartbutton/i18n/fr.po new file mode 100644 index 00000000000..b4cea90a415 --- /dev/null +++ b/partner_supplierinfo_smartbutton/i18n/fr.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_supplierinfo_smartbutton +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-01-02 15:44+0000\n" +"Last-Translator: Paul_Goubert \n" +"Language-Team: none\n" +"Language: fr\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" +"X-Generator: Weblate 4.14.1\n" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model,name:partner_supplierinfo_smartbutton.model_res_partner +msgid "Contact" +msgstr "Contact" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_partner__product_supplied_count +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_users__product_supplied_count +msgid "Product Supplied Count" +msgstr "Articles fournis somme" + +#. module: partner_supplierinfo_smartbutton +#: model_terms:ir.ui.view,arch_db:partner_supplierinfo_smartbutton.view_partner_form +msgid "Products Supplied" +msgstr "Articles fournis" + +#~ msgid "Display Name" +#~ msgstr "Nom affiché" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Dernière modification le" diff --git a/partner_supplierinfo_smartbutton/i18n/it.po b/partner_supplierinfo_smartbutton/i18n/it.po new file mode 100644 index 00000000000..bc9860a2ae8 --- /dev/null +++ b/partner_supplierinfo_smartbutton/i18n/it.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_supplierinfo_smartbutton +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-01-20 13:45+0000\n" +"Last-Translator: Francesco Foresti \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.14.1\n" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model,name:partner_supplierinfo_smartbutton.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_partner__product_supplied_count +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_users__product_supplied_count +msgid "Product Supplied Count" +msgstr "Conteggio prodotti forniti" + +#. module: partner_supplierinfo_smartbutton +#: model_terms:ir.ui.view,arch_db:partner_supplierinfo_smartbutton.view_partner_form +msgid "Products Supplied" +msgstr "Prodotti forniti" + +#~ msgid "Display Name" +#~ msgstr "Nome visualizzato" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Ultima modifica il" diff --git a/partner_supplierinfo_smartbutton/i18n/partner_supplierinfo_smartbutton.pot b/partner_supplierinfo_smartbutton/i18n/partner_supplierinfo_smartbutton.pot new file mode 100644 index 00000000000..a8f87f4def3 --- /dev/null +++ b/partner_supplierinfo_smartbutton/i18n/partner_supplierinfo_smartbutton.pot @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_supplierinfo_smartbutton +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model,name:partner_supplierinfo_smartbutton.model_res_partner +msgid "Contact" +msgstr "" + +#. module: partner_supplierinfo_smartbutton +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_partner__product_supplied_count +#: model:ir.model.fields,field_description:partner_supplierinfo_smartbutton.field_res_users__product_supplied_count +msgid "Product Supplied Count" +msgstr "" + +#. module: partner_supplierinfo_smartbutton +#: model_terms:ir.ui.view,arch_db:partner_supplierinfo_smartbutton.view_partner_form +msgid "Products Supplied" +msgstr "" diff --git a/partner_supplierinfo_smartbutton/models/__init__.py b/partner_supplierinfo_smartbutton/models/__init__.py new file mode 100644 index 00000000000..91fed54d404 --- /dev/null +++ b/partner_supplierinfo_smartbutton/models/__init__.py @@ -0,0 +1 @@ +from . import res_partner diff --git a/partner_supplierinfo_smartbutton/models/res_partner.py b/partner_supplierinfo_smartbutton/models/res_partner.py new file mode 100644 index 00000000000..e648811d1a9 --- /dev/null +++ b/partner_supplierinfo_smartbutton/models/res_partner.py @@ -0,0 +1,34 @@ +# Copyright 2022 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + product_supplied_count = fields.Integer(compute="_compute_product_supplied_count") + + def _compute_product_supplied_count(self): + data = self.env["product.supplierinfo"].read_group( + [("partner_id", "in", self.ids)], ["partner_id"], ["partner_id"] + ) + mapping = {d["partner_id"][0]: d["partner_id_count"] for d in data} + for item in self: + item.product_supplied_count = mapping.get(item.id, 0) + + def action_see_products_by_seller(self): + domain = [("partner_id", "=", self.id)] + action = self.env["ir.actions.act_window"]._for_xml_id( + "product.product_supplierinfo_type_action" + ) + ctx = dict(self.env.context) + ctx.update( + { + "default_partner_id": self.id, + "search_default_partner_id": self.id, + "visible_product_tmpl_id": False, + } + ) + action.update({"domain": domain, "context": ctx}) + return action diff --git a/partner_supplierinfo_smartbutton/readme/CONFIGURE.rst b/partner_supplierinfo_smartbutton/readme/CONFIGURE.rst new file mode 100644 index 00000000000..52de9dc54e1 --- /dev/null +++ b/partner_supplierinfo_smartbutton/readme/CONFIGURE.rst @@ -0,0 +1,3 @@ +#. Go to *Purchase > Products > Products*. +#. Access one of them clicking on it. +#. Go to "Purchase" tab and add some vendors (Azure Interior for example). diff --git a/partner_supplierinfo_smartbutton/readme/CONTRIBUTORS.rst b/partner_supplierinfo_smartbutton/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..5fb71305308 --- /dev/null +++ b/partner_supplierinfo_smartbutton/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza diff --git a/partner_supplierinfo_smartbutton/readme/DESCRIPTION.rst b/partner_supplierinfo_smartbutton/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..7fa5d04f786 --- /dev/null +++ b/partner_supplierinfo_smartbutton/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This addon adds a smart-button in the vendors with the supplied products. diff --git a/partner_supplierinfo_smartbutton/readme/INSTALL.rst b/partner_supplierinfo_smartbutton/readme/INSTALL.rst new file mode 100644 index 00000000000..199f106c103 --- /dev/null +++ b/partner_supplierinfo_smartbutton/readme/INSTALL.rst @@ -0,0 +1 @@ +To use this module, you need to install "contacts" and "purchase" addons. diff --git a/partner_supplierinfo_smartbutton/readme/USAGE.rst b/partner_supplierinfo_smartbutton/readme/USAGE.rst new file mode 100644 index 00000000000..10e559bd873 --- /dev/null +++ b/partner_supplierinfo_smartbutton/readme/USAGE.rst @@ -0,0 +1,4 @@ +#. Go to *Contacts* or *Purchase > Orders > Vendors*. +#. Access one of them clicking on it. +#. If it has supplier products, you will see an smart-button in the top part called "Products Supplied". +#. Clicking on it, you will be see all products supplied. diff --git a/partner_supplierinfo_smartbutton/static/description/icon.png b/partner_supplierinfo_smartbutton/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/partner_supplierinfo_smartbutton/static/description/icon.png differ diff --git a/partner_supplierinfo_smartbutton/static/description/index.html b/partner_supplierinfo_smartbutton/static/description/index.html new file mode 100644 index 00000000000..8386127b5c1 --- /dev/null +++ b/partner_supplierinfo_smartbutton/static/description/index.html @@ -0,0 +1,450 @@ + + + + + +Access supplied products from the vendor + + + +
+

Access supplied products from the vendor

+ + +

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

+

This addon adds a smart-button in the vendors with the supplied products.

+

Table of contents

+ +
+

Installation

+

To use this module, you need to install “contacts” and “purchase” addons.

+
+
+

Configuration

+
    +
  1. Go to Purchase > Products > Products.
  2. +
  3. Access one of them clicking on it.
  4. +
  5. Go to “Purchase” tab and add some vendors (Azure Interior for example).
  6. +
+
+
+

Usage

+
    +
  1. Go to Contacts or Purchase > Orders > Vendors.
  2. +
  3. Access one of them clicking on it.
  4. +
  5. If it has supplier products, you will see an smart-button in the top part called “Products Supplied”.
  6. +
  7. Clicking on it, you will be see all products supplied.
  8. +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Víctor Martínez
    • +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

Current maintainer:

+

victoralmau

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/partner_supplierinfo_smartbutton/tests/__init__.py b/partner_supplierinfo_smartbutton/tests/__init__.py new file mode 100644 index 00000000000..25d205bc2ed --- /dev/null +++ b/partner_supplierinfo_smartbutton/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from . import test_partner_supplierinfo_smartbutton diff --git a/partner_supplierinfo_smartbutton/tests/test_partner_supplierinfo_smartbutton.py b/partner_supplierinfo_smartbutton/tests/test_partner_supplierinfo_smartbutton.py new file mode 100644 index 00000000000..12850f93613 --- /dev/null +++ b/partner_supplierinfo_smartbutton/tests/test_partner_supplierinfo_smartbutton.py @@ -0,0 +1,90 @@ +# Copyright 2022 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo.addons.base.tests.common import BaseCommon + + +class TestPartnerSupplierinfoSmartbutton(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner_a = cls.env["res.partner"].create({"name": "Partner A"}) + cls.partner_b = cls.env["res.partner"].create({"name": "Partner B"}) + cls.partner_c = cls.env["res.partner"].create({"name": "Partner C"}) + cls.product_model = cls.env["product.product"] + cls.product_supplierinfo_model = cls.env["product.supplierinfo"] + cls.product_a = cls.product_model.create( + { + "name": "Test product A", + "seller_ids": [ + ( + 0, + False, + {"partner_id": cls.partner_a.id, "min_qty": 1, "price": 10}, + ), + ], + } + ) + cls.product_b = cls.product_model.create( + { + "name": "Test product B", + "seller_ids": [ + ( + 0, + False, + {"partner_id": cls.partner_b.id, "min_qty": 1, "price": 10}, + ), + ], + } + ) + cls.product_a_b = cls.product_model.create( + { + "name": "Test product A+B", + "seller_ids": [ + ( + 0, + False, + {"partner_id": cls.partner_a.id, "min_qty": 1, "price": 10}, + ), + ( + 0, + False, + {"partner_id": cls.partner_b.id, "min_qty": 1, "price": 20}, + ), + ], + } + ) + cls.product_c = cls.product_model.create({"name": "Test product C"}) + + def _get_products_from_action(self, action): + return self.product_supplierinfo_model.search(action["domain"]).mapped( + "product_tmpl_id" + ) + + def test_product_supplied_count(self): + # Partner A + products = self._get_products_from_action( + self.partner_a.action_see_products_by_seller() + ) + self.assertIn(self.product_a.product_tmpl_id, products) + self.assertNotIn(self.product_b.product_tmpl_id, products) + self.assertIn(self.product_a_b.product_tmpl_id, products) + self.assertNotIn(self.product_c.product_tmpl_id, products) + self.assertEqual(self.partner_a.product_supplied_count, 2) + # Partner B + products = self._get_products_from_action( + self.partner_b.action_see_products_by_seller() + ) + self.assertNotIn(self.product_a.product_tmpl_id, products) + self.assertIn(self.product_b.product_tmpl_id, products) + self.assertIn(self.product_a_b.product_tmpl_id, products) + self.assertNotIn(self.product_c.product_tmpl_id, products) + self.assertEqual(self.partner_b.product_supplied_count, 2) + # Partner C + products = self._get_products_from_action( + self.partner_c.action_see_products_by_seller() + ) + self.assertNotIn(self.product_a.product_tmpl_id, products) + self.assertNotIn(self.product_b.product_tmpl_id, products) + self.assertNotIn(self.product_a_b.product_tmpl_id, products) + self.assertNotIn(self.product_c.product_tmpl_id, products) + self.assertEqual(self.partner_c.product_supplied_count, 0) diff --git a/partner_supplierinfo_smartbutton/views/res_partner_view.xml b/partner_supplierinfo_smartbutton/views/res_partner_view.xml new file mode 100644 index 00000000000..c90aa301e9e --- /dev/null +++ b/partner_supplierinfo_smartbutton/views/res_partner_view.xml @@ -0,0 +1,25 @@ + + + + res.partner.form + res.partner + + +
+ +
+
+
+
diff --git a/procurement_purchase_no_grouping/README.rst b/procurement_purchase_no_grouping/README.rst new file mode 100644 index 00000000000..be8600458de --- /dev/null +++ b/procurement_purchase_no_grouping/README.rst @@ -0,0 +1,120 @@ +================================ +Procurement Purchase No Grouping +================================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:320e503a366f31483300d63b61168d29779c1266aebb61a4c752b20ed5a171ab + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/procurement_purchase_no_grouping + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-procurement_purchase_no_grouping + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to not group generated purchase orders from procurements. +The grouping behaviour can be configurable at product category level or fall back +to system default. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +Go to each product category, and select one of these values in the field +"Procured purchase grouping": + +* *Standard grouping*: With this option, procurements will generate + purchase orders as always, grouping lines and orders when possible. +* *No line grouping*: With this value, if there are any open purchase order + for the same supplier, it will be reused, but lines won't be merged. +* *No order grouping*: This option will prevent any kind of grouping. +* **: If you select nothing, default value set up in System + settings will be applied. +* *Product category grouping*: This option groups products in the same purchase order that belongs to the same product category. + +System default behaviour can be set up in System settings / Purchase / Procurement +Purchase Grouping + +Known issues / Roadmap +====================== + +- If you reuse the same procurement group between several sales orders, and + using "No line grouping", they will be grouped anyways, as the criteria for + grouping or not should be kept to the same procurement group, as it's the only + way to get proper quantities updates after confirming the sales order. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* AvanzOSC +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Pedro M. Baeza + * Sergio Teruel + * Carlos Dauden + * Alexandre Díaz + * Víctor Martínez + * César A. Sánchez + +* Ana Juaristi +* Alfredo de la Fuente +* Radovan Skolnik + +* `Pesol `__: + + * Jonathan Oscategui Taza + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/procurement_purchase_no_grouping/__init__.py b/procurement_purchase_no_grouping/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/procurement_purchase_no_grouping/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/procurement_purchase_no_grouping/__manifest__.py b/procurement_purchase_no_grouping/__manifest__.py new file mode 100644 index 00000000000..a1c659970f4 --- /dev/null +++ b/procurement_purchase_no_grouping/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2015 AvanzOsc (http://www.avanzosc.es) +# Copyright 2015-2017 Tecnativa - Pedro M. Baeza +# Copyright 2018 Tecnativa - Carlos Dauden +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +{ + "name": "Procurement Purchase No Grouping", + "version": "16.0.1.0.0", + "author": "AvanzOSC, Tecnativa, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/purchase-workflow", + "category": "Procurements", + "depends": ["purchase_stock"], + "data": ["views/product_category_view.xml", "views/res_config_settings_views.xml"], + "installable": True, + "license": "AGPL-3", +} diff --git a/procurement_purchase_no_grouping/i18n/de.po b/procurement_purchase_no_grouping/i18n/de.po new file mode 100644 index 00000000000..eb0437cab9f --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/de.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Bestellposition" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/es.po b/procurement_purchase_no_grouping/i18n/es.po new file mode 100644 index 00000000000..bb966a77181 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/es.po @@ -0,0 +1,163 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-02 12:31+0000\n" +"PO-Revision-Date: 2024-01-11 13:36+0000\n" +"Last-Translator: Ivorra78 \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: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" +"Agrupando\n" +" " + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "Agrupación" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "Sin agrupación de líneas" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "Sin agrupación de pedidos" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "Agrupación de la Compra Abastecida" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "Adquisiciones Agrupación de compras" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "Configuración de la agrupación de compras" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "Categoría de producto" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "Agrupación por categoría de producto" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Línea orden de compra" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" +"Seleccione el comportamiento para agrupar las compras adquiridas para los " +"productos de esta categoría:\n" +"* Agrupación estándar (por defecto): Las adquisiciones generarán pedidos de " +"compra como siempre, agrupando líneas y pedidos cuando sea posible.\n" +"* Sin agrupación de líneas: Si hay algún pedido abierto para el mismo " +"proveedor, se reutilizará, pero las líneas no se agruparán.\n" +"* Sin agrupación de pedidos: Esta opción impedirá cualquier tipo de " +"agrupación.\n" +": Si no se selecciona ningún valor, se utilizará el valor por defecto " +"del sistema.\n" +"* Agrupación por categorías de productos: Esta opción agrupa los productos " +"de un mismo pedido que pertenezcan a la misma categoría de producto." + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" +"Seleccione el comportamiento para agrupar las compras adquiridas para los " +"productos de esta categoría:\n" +"* Agrupación estándar: Las adquisiciones generarán pedidos de compra como " +"siempre, agrupando líneas y pedidos cuando sea posible.\n" +"* Sin agrupación de líneas: Si hay algún pedido abierto para el mismo " +"proveedor, se reutilizará, pero las líneas no se agruparán.\n" +"* Sin agrupación de pedidos: Esta opción impedirá cualquier tipo de " +"agrupación.\n" +": Si no se selecciona ningún valor, se utilizará el valor por defecto " +"del sistema.\n" +"* Agrupación por categorías de productos: Esta opción agrupa los productos " +"de un mismo pedido que pertenezcan a la misma categoría de producto." + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" +"Establecer el tipo de agrupación de compras de aprovisionamiento " +"predeterminado" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "Agrupación estándar" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "Regla de inventario" diff --git a/procurement_purchase_no_grouping/i18n/es_ES.po b/procurement_purchase_no_grouping/i18n/es_ES.po new file mode 100644 index 00000000000..5142d5d7c5b --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/es_ES.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# Daniel , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-26 11:55+0000\n" +"PO-Revision-Date: 2017-07-26 11:55+0000\n" +"Last-Translator: Daniel , 2017\n" +"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/" +"es_ES/)\n" +"Language: es_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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "Categoría de producto" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/es_MX.po b/procurement_purchase_no_grouping/i18n/es_MX.po new file mode 100644 index 00000000000..c51b9cc87bf --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/es_MX.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/" +"es_MX/)\n" +"Language: es_MX\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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Línea de orden de compra" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/es_PE.po b/procurement_purchase_no_grouping/i18n/es_PE.po new file mode 100644 index 00000000000..735cd9b8566 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/es_PE.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# Henry Garcia , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: Henry Garcia , 2017\n" +"Language-Team: Spanish (Peru) (https://www.transifex.com/oca/teams/23907/" +"es_PE/)\n" +"Language: es_PE\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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linea de orden de compra" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/fi.po b/procurement_purchase_no_grouping/i18n/fi.po new file mode 100644 index 00000000000..2fdd2408b6e --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/fi.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"Language: fi\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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Ostotilausrivi" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/fr.po b/procurement_purchase_no_grouping/i18n/fr.po new file mode 100644 index 00000000000..ea0fd44690e --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/fr.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: OCA Transbot , 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: nplurals=2; plural=(n > 1);\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Ligne de commande d'achat" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/fr_BE.po b/procurement_purchase_no_grouping/i18n/fr_BE.po new file mode 100644 index 00000000000..5c5087ba786 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/fr_BE.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: French (Belgium) (https://www.transifex.com/oca/teams/23907/" +"fr_BE/)\n" +"Language: fr_BE\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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/fr_FR.po b/procurement_purchase_no_grouping/i18n/fr_FR.po new file mode 100644 index 00000000000..e7b75eb5e92 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/fr_FR.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-16 02:54+0000\n" +"PO-Revision-Date: 2017-07-16 02:54+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (France) (https://www.transifex.com/oca/teams/23907/" +"fr_FR/)\n" +"Language: fr_FR\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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/gl.po b/procurement_purchase_no_grouping/i18n/gl.po new file mode 100644 index 00000000000..97b45618af9 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/gl.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# Alejandro Santana , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-16 02:54+0000\n" +"PO-Revision-Date: 2017-07-16 02:54+0000\n" +"Last-Translator: Alejandro Santana , 2017\n" +"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n" +"Language: gl\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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/hr.po b/procurement_purchase_no_grouping/i18n/hr.po new file mode 100644 index 00000000000..94323c98716 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/hr.po @@ -0,0 +1,133 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2021-10-08 12:34+0000\n" +"Last-Translator: Matija Krolo \n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: 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" +"X-Generator: Weblate 4.3.2\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "Kompanije" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "Grupiranje" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "Bez grupiranja redaka" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "Bez grupiranja naloga" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "Kategorija proizvoda" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "Grupiranje kategorije proizvoda" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Stavka naloga za nabavu" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "Standardno grupiranje" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/it.po b/procurement_purchase_no_grouping/i18n/it.po new file mode 100644 index 00000000000..8f6ef1c8a36 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/it.po @@ -0,0 +1,164 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2024-03-05 14:35+0000\n" +"Last-Translator: mymage \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" +"X-Generator: Weblate 4.17\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" +"Ragguppamento\n" +" " + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "Aziende" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "Raggruppamento" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "Non ragguppamento per riga" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "Non raggruppa gli ordini" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "Raggruppamento acquisti procurati" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "Raggruppamento acquisti approvvigionamento" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "Impostazioni raggruppamento approvvigionamento acquisti" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "Categoria prodotto" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "Raggruppamento categoria prodotto" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Riga ordine di acquisto" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" +"Selezionare il comportamento per la procedura di raggruppamento acquisti per " +"i prodotti di questa categoria:\n" +"* Raggruppamento standard (predefinito): gli approvvigionamenti genereranno " +"ordini di acquisto come sempre, raggruppando righe e ordini quando possibile." +"\n" +"* Non raggruppare righe: se esiste un ordine di acquisto aperto per lo " +"stesso fornitore, verrà riutilizzato, ma le righe non verranno unite.\n" +"* Non raggruppare ordine: questa opzione preverrà qualsiasi tipo di " +"raggruppamento.\n" +"* : se non è selezionato un valore, verrà utilizzato il valore " +"predefinito di sistema.\n" +"* Raggruppamento categoria prodotto: questa opzione raggruppa i prodotti " +"nello stesso ordine di acquisto che appartiene alla stessa categoria " +"prodotto." + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" +"Selezionare il comportamento per la procedura di raggruppamento acquisti per " +"i prodotti di questa categoria:\n" +"* Raggruppamento standard: gli approvvigionamenti genereranno ordini di " +"acquisto come sempre, raggruppando righe e ordini quando possibile.\n" +"* Non raggruppare righe: se esiste un ordine di acquisto aperto per lo " +"stesso fornitore, verrà riutilizzato, ma le righe non verranno unite.\n" +"* Non raggruppare ordine: questa opzione preverrà qualsiasi tipo di " +"raggruppamento.\n" +"* : se non è selezionato un valore, verrà utilizzato il valore " +"predefinito di sistema.\n" +"* Raggruppamento categoria prodotto: questa opzione raggruppa i prodotti " +"nello stesso ordine di acquisto che appartiene alla stessa categoria " +"prodotto." + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "Imposta il tipo raggruppamento approvvigionamento acquisto predefinito" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "Raggruppamento standard" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "Regola di giacenza" diff --git a/procurement_purchase_no_grouping/i18n/nl.po b/procurement_purchase_no_grouping/i18n/nl.po new file mode 100644 index 00000000000..db880c9b1ec --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/nl.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# Erwin van der Ploeg , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: Erwin van der Ploeg , 2017\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" +"Language: 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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/nl_NL.po b/procurement_purchase_no_grouping/i18n/nl_NL.po new file mode 100644 index 00000000000..d4445b6e27b --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/nl_NL.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Inkooporderregel" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/procurement_purchase_no_grouping.pot b/procurement_purchase_no_grouping/i18n/procurement_purchase_no_grouping.pot new file mode 100644 index 00000000000..fe6b45f1ec1 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/procurement_purchase_no_grouping.pot @@ -0,0 +1,115 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/pt_BR.po b/procurement_purchase_no_grouping/i18n/pt_BR.po new file mode 100644 index 00000000000..78abb418e50 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/pt_BR.po @@ -0,0 +1,163 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2024-05-29 18:37+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/" +"23907/pt_BR/)\n" +"Language: pt_BR\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" +"X-Generator: Weblate 4.17\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" +"Agrupamento\n" +" " + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "Empresas" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "Agrupamento" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "Sem linha de agrupamento" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "Sem agrupamento de pedidos" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "Agrupamento de compras adquiridas" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "Agrupamento de compras de compras" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "Configurações de agrupamento de compras de compras" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "Categoria de Produto" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "Agrupamento de categorias de produtos" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linha do Pedido de Compra" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" +"Selecione o comportamento de agrupamento das compras adquiridas para os " +"produtos desta categoria:\n" +"* Agrupamento padrão (padrão): O Procurements gerará pedidos de compra como " +"sempre, agrupando linhas e pedidos quando possível.\n" +"* Sem agrupamento de linhas: Caso haja algum pedido de compra aberto para o " +"mesmo fornecedor, ele será reutilizado, mas as linhas não serão mescladas.\n" +"* Sem agrupamento de pedidos: Esta opção impedirá qualquer tipo de " +"agrupamento.\n" +"* : Se nenhum valor for selecionado, o padrão de todo o sistema será " +"usado.\n" +"* Agrupamento de categorias de produtos: Esta opção agrupa produtos do mesmo " +"pedido de compra que pertencem à mesma categoria de produto." + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" +"Selecione o comportamento de agrupamento das compras adquiridas para os " +"produtos desta categoria:\n" +"* Agrupamento padrão: As compras gerarão pedidos de compra como sempre, " +"agrupando linhas e pedidos quando possível.\n" +"* Sem agrupamento de linhas: Caso haja algum pedido de compra aberto para o " +"mesmo fornecedor, ele será reutilizado, mas as linhas não serão mescladas.\n" +"* Sem agrupamento de pedidos: Esta opção impedirá qualquer tipo de " +"agrupamento.\n" +"* : Se nenhum valor for selecionado, o padrão de todo o sistema será " +"usado.\n" +"* Agrupamento de categorias de produtos: Esta opção agrupa produtos do mesmo " +"pedido de compra que pertencem à mesma categoria de produto." + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "Definir o tipo de agrupamento de compras padrão" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "Agrupamento padrão" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "Regra de Estoque" diff --git a/procurement_purchase_no_grouping/i18n/pt_PT.po b/procurement_purchase_no_grouping/i18n/pt_PT.po new file mode 100644 index 00000000000..f2cc4e6953d --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/pt_PT.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/" +"teams/23907/pt_PT/)\n" +"Language: pt_PT\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: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linha de Encomenda de Compra" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/ro.po b/procurement_purchase_no_grouping/i18n/ro.po new file mode 100644 index 00000000000..241cc6d9f61 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/ro.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linie comandă achiziție" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/sl.po b/procurement_purchase_no_grouping/i18n/sl.po new file mode 100644 index 00000000000..50f87f4bb9a --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/sl.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Postavka nabavnega naloga" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/tr_TR.po b/procurement_purchase_no_grouping/i18n/tr_TR.po new file mode 100644 index 00000000000..b8ef8a367eb --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/tr_TR.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-16 02:54+0000\n" +"PO-Revision-Date: 2017-07-16 02:54+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/" +"tr_TR/)\n" +"Language: tr_TR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/vi_VN.po b/procurement_purchase_no_grouping/i18n/vi_VN.po new file mode 100644 index 00000000000..aafa128bcd7 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/vi_VN.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-11-24 07:53+0000\n" +"PO-Revision-Date: 2017-11-24 07:53+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/oca/" +"teams/23907/vi_VN/)\n" +"Language: vi_VN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "" diff --git a/procurement_purchase_no_grouping/i18n/zh_CN.po b/procurement_purchase_no_grouping/i18n/zh_CN.po new file mode 100644 index 00000000000..f852cb13938 --- /dev/null +++ b/procurement_purchase_no_grouping/i18n/zh_CN.po @@ -0,0 +1,133 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_purchase_no_grouping +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-16 02:54+0000\n" +"PO-Revision-Date: 2020-03-23 13:13+0000\n" +"Last-Translator: Dong \n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/" +"zh_CN/)\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 3.10\n" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "" +"Grouping\n" +" " +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_company +msgid "Companies" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__line +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__line +msgid "No line grouping" +msgstr "明细不合并" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__order +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__order +msgid "No order grouping" +msgstr "订单不合并" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,field_description:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "Procured Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Procurement Purchase Grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_product_category +msgid "Product Category" +msgstr "产品分类" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__product_category +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__product_category +msgid "Product category grouping" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "采购订单明细" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_product_category__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping (default): Procurements will generate purchase orders as " +"always, grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_company__procured_purchase_grouping +#: model:ir.model.fields,help:procurement_purchase_no_grouping.field_res_config_settings__procured_purchase_grouping +msgid "" +"Select the behaviour for grouping procured purchases for the the products of " +"this category:\n" +"* Standard grouping: Procurements will generate purchase orders as always, " +"grouping lines and orders when possible.\n" +"* No line grouping: If there are any open purchase order for the same " +"supplier, it will be reused, but lines won't be merged.\n" +"* No order grouping: This option will prevent any kind of grouping.\n" +"* : If no value is selected, system-wide default will be used.\n" +"* Product category grouping: This option groups products in the same " +"purchase order that belongs to the same product category." +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model_terms:ir.ui.view,arch_db:procurement_purchase_no_grouping.res_config_settings_view_form_procurement_purchase_grouping +msgid "Set the default procurement purchase grouping type" +msgstr "" + +#. module: procurement_purchase_no_grouping +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__product_category__procured_purchase_grouping__standard +#: model:ir.model.fields.selection,name:procurement_purchase_no_grouping.selection__res_company__procured_purchase_grouping__standard +msgid "Standard grouping" +msgstr "标准合并" + +#. module: procurement_purchase_no_grouping +#: model:ir.model,name:procurement_purchase_no_grouping.model_stock_rule +msgid "Stock Rule" +msgstr "库存规则" diff --git a/procurement_purchase_no_grouping/models/__init__.py b/procurement_purchase_no_grouping/models/__init__.py new file mode 100644 index 00000000000..28849b428d7 --- /dev/null +++ b/procurement_purchase_no_grouping/models/__init__.py @@ -0,0 +1,5 @@ +from . import product_category +from . import stock_rule +from . import purchase_order +from . import res_config_settings +from . import res_company diff --git a/procurement_purchase_no_grouping/models/product_category.py b/procurement_purchase_no_grouping/models/product_category.py new file mode 100644 index 00000000000..f1b6fd80611 --- /dev/null +++ b/procurement_purchase_no_grouping/models/product_category.py @@ -0,0 +1,32 @@ +# Copyright 2015 AvanzOsc (http://www.avanzosc.es) +# Copyright 2015-2016 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import fields, models + + +class ProductCategory(models.Model): + _inherit = "product.category" + + procured_purchase_grouping = fields.Selection( + [ + ("standard", "Standard grouping"), + ("line", "No line grouping"), + ("order", "No order grouping"), + ("product_category", "Product category grouping"), + ], + default="standard", + help="Select the behaviour for grouping procured purchases for the " + "the products of this category:\n" + "* Standard grouping (default): Procurements will generate " + "purchase orders as always, grouping lines and orders when " + "possible.\n" + "* No line grouping: If there are any open purchase order for " + "the same supplier, it will be reused, but lines won't be " + "merged.\n" + "* No order grouping: This option will prevent any kind of " + "grouping.\n" + "* : If no value is selected, system-wide default will be used.\n" + "* Product category grouping: This option groups products in the " + "same purchase order that belongs to the same product category.", + ) diff --git a/procurement_purchase_no_grouping/models/purchase_order.py b/procurement_purchase_no_grouping/models/purchase_order.py new file mode 100644 index 00000000000..6d9422e3268 --- /dev/null +++ b/procurement_purchase_no_grouping/models/purchase_order.py @@ -0,0 +1,45 @@ +# Copyright 2015 AvanzOsc (http://www.avanzosc.es) +# Copyright 2018 Tecnativa - Carlos Dauden +# Copyright 2015-2021 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import models + + +class PurchaseOrderLine(models.Model): + _inherit = "purchase.order.line" + + def _find_candidate( + self, + product_id, + product_qty, + product_uom, + location_id, + name, + origin, + company_id, + values, + ): + """If not grouping by line, we should make an exception when you update an + existing sales order line, so we filter a bit more by procurement group. + + NOTE: This makes that if you manually assign the same procurement group to + several different sales orders, the grouping will be done no matter the grouping + criteria, but this is the only way to do it without having to put a lot of glue + modules, and on standard operation mode, procurement groups are not reused + between sales orders. + """ + if values.get("grouping") == "line": + self = self.filtered( + lambda x: x.order_id.group_id == values.get("group_id") + ) + return super()._find_candidate( + product_id, + product_qty, + product_uom, + location_id, + name, + origin, + company_id, + values, + ) diff --git a/procurement_purchase_no_grouping/models/res_company.py b/procurement_purchase_no_grouping/models/res_company.py new file mode 100644 index 00000000000..7d90f4b74fc --- /dev/null +++ b/procurement_purchase_no_grouping/models/res_company.py @@ -0,0 +1,31 @@ +# Copyright 2020 - Radovan Skolnik +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + procured_purchase_grouping = fields.Selection( + [ + ("standard", "Standard grouping"), + ("line", "No line grouping"), + ("order", "No order grouping"), + ("product_category", "Product category grouping"), + ], + default="standard", + help="Select the behaviour for grouping procured purchases for the " + "the products of this category:\n" + "* Standard grouping: Procurements will generate " + "purchase orders as always, grouping lines and orders when " + "possible.\n" + "* No line grouping: If there are any open purchase order for " + "the same supplier, it will be reused, but lines won't be " + "merged.\n" + "* No order grouping: This option will prevent any kind of " + "grouping.\n" + "* : If no value is selected, system-wide default will be used.\n" + "* Product category grouping: This option groups products in the " + "same purchase order that belongs to the same product category.", + ) diff --git a/procurement_purchase_no_grouping/models/res_config_settings.py b/procurement_purchase_no_grouping/models/res_config_settings.py new file mode 100644 index 00000000000..abd8f959b68 --- /dev/null +++ b/procurement_purchase_no_grouping/models/res_config_settings.py @@ -0,0 +1,16 @@ +# Copyright 2020 - Radovan Skolnik +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + """Configuration of default value for procurement purchase grouping.""" + + _inherit = "res.config.settings" + _description = "Procurement purchase grouping settings" + + procured_purchase_grouping = fields.Selection( + related="company_id.procured_purchase_grouping", + readonly=False, + ) diff --git a/procurement_purchase_no_grouping/models/stock_rule.py b/procurement_purchase_no_grouping/models/stock_rule.py new file mode 100644 index 00000000000..46edbdbfcbb --- /dev/null +++ b/procurement_purchase_no_grouping/models/stock_rule.py @@ -0,0 +1,45 @@ +# Copyright 2015 AvanzOsc (http://www.avanzosc.es) +# Copyright 2015-2016 Tecnativa - Pedro M. Baeza +# Copyright 2018 Tecnativa - Carlos Dauden +# Copyright 2020 Radovan Skolnik +# Copyright 2020 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +import random + +from odoo import models + + +class StockRule(models.Model): + _inherit = "stock.rule" + + def _run_buy(self, procurements): + for procurement, _rule in procurements: + procurement.values["grouping"] = ( + procurement.product_id.categ_id.procured_purchase_grouping + or self.env.company.procured_purchase_grouping + ) + return super()._run_buy(procurements) + + def _make_po_get_domain(self, company_id, values, partner): + """Inject an impossible domain for not getting match in case of no order + grouping. + + We try to make it the more unique possible for avoiding coincidences for not + overlapping in a batch procurement run (like a sales order with multiple MTO + lines confirmation). + """ + domain = super()._make_po_get_domain(company_id, values, partner) + if values.get("grouping") == "product_category": + if values.get("supplier"): + suppinfo = values["supplier"] + product = suppinfo.product_id or suppinfo.product_tmpl_id + domain += ( + ("order_line.product_id.categ_id", "=", product.categ_id.id), + ) + elif values.get("grouping") == "order": + if values.get("move_dest_ids"): + domain += (("id", "=", -values["move_dest_ids"][:1].id),) + # The minimum is imposed by PG int4 limit + domain += (("id", "=", random.randint(-2147483648, 0)),) + return domain diff --git a/procurement_purchase_no_grouping/readme/CONFIGURE.rst b/procurement_purchase_no_grouping/readme/CONFIGURE.rst new file mode 100644 index 00000000000..5da84f1fb9d --- /dev/null +++ b/procurement_purchase_no_grouping/readme/CONFIGURE.rst @@ -0,0 +1,14 @@ +Go to each product category, and select one of these values in the field +"Procured purchase grouping": + +* *Standard grouping*: With this option, procurements will generate + purchase orders as always, grouping lines and orders when possible. +* *No line grouping*: With this value, if there are any open purchase order + for the same supplier, it will be reused, but lines won't be merged. +* *No order grouping*: This option will prevent any kind of grouping. +* **: If you select nothing, default value set up in System + settings will be applied. +* *Product category grouping*: This option groups products in the same purchase order that belongs to the same product category. + +System default behaviour can be set up in System settings / Purchase / Procurement +Purchase Grouping diff --git a/procurement_purchase_no_grouping/readme/CONTRIBUTORS.rst b/procurement_purchase_no_grouping/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..eb3721a0218 --- /dev/null +++ b/procurement_purchase_no_grouping/readme/CONTRIBUTORS.rst @@ -0,0 +1,16 @@ +* `Tecnativa `_: + + * Pedro M. Baeza + * Sergio Teruel + * Carlos Dauden + * Alexandre Díaz + * Víctor Martínez + * César A. Sánchez + +* Ana Juaristi +* Alfredo de la Fuente +* Radovan Skolnik + +* `Pesol `__: + + * Jonathan Oscategui Taza diff --git a/procurement_purchase_no_grouping/readme/DESCRIPTION.rst b/procurement_purchase_no_grouping/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..e7f9e9359cc --- /dev/null +++ b/procurement_purchase_no_grouping/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module allows to not group generated purchase orders from procurements. +The grouping behaviour can be configurable at product category level or fall back +to system default. diff --git a/procurement_purchase_no_grouping/readme/ROADMAP.rst b/procurement_purchase_no_grouping/readme/ROADMAP.rst new file mode 100644 index 00000000000..2cffa937137 --- /dev/null +++ b/procurement_purchase_no_grouping/readme/ROADMAP.rst @@ -0,0 +1,4 @@ +- If you reuse the same procurement group between several sales orders, and + using "No line grouping", they will be grouped anyways, as the criteria for + grouping or not should be kept to the same procurement group, as it's the only + way to get proper quantities updates after confirming the sales order. diff --git a/procurement_purchase_no_grouping/static/description/icon.png b/procurement_purchase_no_grouping/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/procurement_purchase_no_grouping/static/description/icon.png differ diff --git a/procurement_purchase_no_grouping/static/description/index.html b/procurement_purchase_no_grouping/static/description/index.html new file mode 100644 index 00000000000..46ab0dbe515 --- /dev/null +++ b/procurement_purchase_no_grouping/static/description/index.html @@ -0,0 +1,466 @@ + + + + + +Procurement Purchase No Grouping + + + +
+

Procurement Purchase No Grouping

+ + +

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

+

This module allows to not group generated purchase orders from procurements. +The grouping behaviour can be configurable at product category level or fall back +to system default.

+

Table of contents

+ +
+

Configuration

+

Go to each product category, and select one of these values in the field +“Procured purchase grouping”:

+
    +
  • Standard grouping: With this option, procurements will generate +purchase orders as always, grouping lines and orders when possible.
  • +
  • No line grouping: With this value, if there are any open purchase order +for the same supplier, it will be reused, but lines won’t be merged.
  • +
  • No order grouping: This option will prevent any kind of grouping.
  • +
  • <empty>: If you select nothing, default value set up in System +settings will be applied.
  • +
  • Product category grouping: This option groups products in the same purchase order that belongs to the same product category.
  • +
+

System default behaviour can be set up in System settings / Purchase / Procurement +Purchase Grouping

+
+
+

Known issues / Roadmap

+
    +
  • If you reuse the same procurement group between several sales orders, and +using “No line grouping”, they will be grouped anyways, as the criteria for +grouping or not should be kept to the same procurement group, as it’s the only +way to get proper quantities updates after confirming the sales order.
  • +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • AvanzOSC
  • +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/procurement_purchase_no_grouping/tests/__init__.py b/procurement_purchase_no_grouping/tests/__init__.py new file mode 100644 index 00000000000..20b09e1f40e --- /dev/null +++ b/procurement_purchase_no_grouping/tests/__init__.py @@ -0,0 +1 @@ +from . import test_procurement_purchase_no_grouping diff --git a/procurement_purchase_no_grouping/tests/test_procurement_purchase_no_grouping.py b/procurement_purchase_no_grouping/tests/test_procurement_purchase_no_grouping.py new file mode 100644 index 00000000000..016a5eb9526 --- /dev/null +++ b/procurement_purchase_no_grouping/tests/test_procurement_purchase_no_grouping.py @@ -0,0 +1,194 @@ +# Copyright 2015-2017 Tecnativa - Pedro M. Baeza +# Copyright 2021 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo import fields + +from odoo.addons.base.tests.common import BaseCommon + + +class TestProcurementPurchaseNoGrouping(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.category = cls.env["product.category"].create({"name": "Test category"}) + cls.partner = cls.env["res.partner"].create({"name": "Test partner"}) + cls.product_1 = cls._create_product( + cls, "Test product 1", cls.category, cls.partner + ) + cls.product_2 = cls._create_product( + cls, "Test product 2", cls.category, cls.partner + ) + cls.location = cls.env.ref("stock.stock_location_stock") + cls.picking_type = cls.env.ref("stock.picking_type_in") + cls.origin = "Manual Replenishment" + cls.prev_orders = cls.env["purchase.order"].search( + [("origin", "=", cls.origin)] + ) + cls.stock_location_route = cls.env.ref("purchase_stock.route_warehouse0_buy") + cls.stock_rule = cls.stock_location_route.rule_ids[0] + cls.values = { + # FIXME: Core doesn't find correctly supplier if not recordset + "company_id": cls.env.user.company_id, + "date_planned": fields.Datetime.now(), + } + + def _create_product(self, name, category, partner): + product = self.env["product.product"].create( + { + "name": name, + "categ_id": category.id, + "seller_ids": [(0, 0, {"partner_id": partner.id, "min_qty": 1.0})], + } + ) + return product + + def _run_procurement(self, product): + procurement_group_obj = self.env["procurement.group"] + procurement = procurement_group_obj.Procurement( + product, + 1, + product.uom_id, + self.location, + False, + self.origin, + self.env.company, + self.values, + ) + rule = procurement_group_obj._get_rule( + procurement.product_id, procurement.location_id, procurement.values + ) + self.stock_rule._run_buy([(procurement, rule)]) + + def _set_system_grouping(self, grouping): + self.env.company.procured_purchase_grouping = grouping + + def _search_purchases(self): + return self.env["purchase.order"].search( + [("origin", "=", self.origin), ("id", "not in", self.prev_orders.ids)] + ) + + def test_procurement_grouped_purchase(self): + self.category.procured_purchase_grouping = "standard" + self._run_procurement(self.product_1) + self._run_procurement(self.product_1) + self._run_procurement(self.product_2) + orders = self._search_purchases() + self.assertEqual( + len(orders), + 1, + "Procured purchase orders are not the same", + ) + self.assertEqual( + len(orders.order_line), + 2, + "Procured purchase orders lines are not the same", + ) + + def test_procurement_system_grouped_purchase(self): + self.category.procured_purchase_grouping = None + self._set_system_grouping("standard") + self._run_procurement(self.product_1) + self._run_procurement(self.product_1) + self._run_procurement(self.product_2) + orders = self._search_purchases() + self.assertEqual(len(orders), 1, "Procured purchase orders are not the same") + self.assertEqual( + len(orders.order_line), + 2, + "Procured purchase orders lines are the same", + ) + + def test_procurement_no_grouping_line_purchase(self): + self.category.procured_purchase_grouping = "line" + self._run_procurement(self.product_1) + self._run_procurement(self.product_1) + self._run_procurement(self.product_2) + orders = self._search_purchases() + self.assertEqual(len(orders), 1, "Procured purchase orders are not the same") + self.assertEqual( + len(orders.order_line), 3, "Procured purchase orders lines are the same" + ) + + def test_procurement_system_no_grouping_line_purchase(self): + self.category.procured_purchase_grouping = None + self._set_system_grouping("line") + self._run_procurement(self.product_1) + self._run_procurement(self.product_1) + self._run_procurement(self.product_2) + orders = self._search_purchases() + self.assertEqual(len(orders), 1, "Procured purchase orders are not the same") + self.assertEqual( + len(orders.order_line), 3, "Procured purchase orders lines are the same" + ) + + def test_procurement_no_grouping_order_purchase(self): + self.category.procured_purchase_grouping = "order" + self._run_procurement(self.product_1) + self._run_procurement(self.product_1) + self._run_procurement(self.product_2) + orders = self._search_purchases() + self.assertEqual( + len(orders), + 3, + "Procured purchase orders are the same", + ) + self.assertEqual( + len(orders.mapped("order_line")), + 3, + "Procured purchase orders lines are the same", + ) + + def test_procurement_system_no_grouping_order_purchase(self): + self.category.procured_purchase_grouping = None + self._set_system_grouping("order") + self._run_procurement(self.product_1) + self._run_procurement(self.product_1) + self._run_procurement(self.product_2) + orders = self._search_purchases() + self.assertEqual(len(orders), 3, "Procured purchase orders are the same") + self.assertEqual( + len(orders.mapped("order_line")), + 3, + "Procured purchase orders lines are the same", + ) + + def test_procurement_products_same_category(self): + self.category.procured_purchase_grouping = "product_category" + self._run_procurement(self.product_1) + self._run_procurement(self.product_2) + self._run_procurement(self.product_1) + orders = self._search_purchases() + self.assertEqual(len(orders), 1) + self.assertEqual(len(orders.mapped("order_line")), 2) + + def test_procurement_system_products_same_category(self): + self.category.procured_purchase_grouping = None + self._set_system_grouping("product_category") + self._run_procurement(self.product_1) + self._run_procurement(self.product_2) + self._run_procurement(self.product_1) + orders = self._search_purchases() + self.assertEqual(len(orders), 1) + self.assertEqual(len(orders.mapped("order_line")), 2) + + def test_procurement_products_distinct_category(self): + self.category.procured_purchase_grouping = "product_category" + category2 = self.category.copy() + self._run_procurement(self.product_1) + self.product_2.categ_id = category2.id + self._run_procurement(self.product_2) + self._run_procurement(self.product_1) + orders = self._search_purchases() + self.assertEqual(len(orders), 2) + + def test_procurement_system_products_distinct_category(self): + self.category.procured_purchase_grouping = None + self._set_system_grouping("product_category") + category2 = self.category.copy() + self._run_procurement(self.product_1) + self.product_2.categ_id = category2.id + self._run_procurement(self.product_2) + self._run_procurement(self.product_1) + orders = self._search_purchases() + self.assertEqual(len(orders), 2) diff --git a/procurement_purchase_no_grouping/views/product_category_view.xml b/procurement_purchase_no_grouping/views/product_category_view.xml new file mode 100644 index 00000000000..06e38f110c8 --- /dev/null +++ b/procurement_purchase_no_grouping/views/product_category_view.xml @@ -0,0 +1,14 @@ + + + + product.category + + + + + + + + + + diff --git a/procurement_purchase_no_grouping/views/res_config_settings_views.xml b/procurement_purchase_no_grouping/views/res_config_settings_views.xml new file mode 100644 index 00000000000..eca07a0a72d --- /dev/null +++ b/procurement_purchase_no_grouping/views/res_config_settings_views.xml @@ -0,0 +1,52 @@ + + + + res.config.settings.view.form.inherit.procurement.purchase.grouping + res.config.settings + + + + +

Procurement Purchase Grouping

+
+
+
+ Grouping + +
+ Set the default procurement purchase grouping type +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/product_supplier_code_purchase/README.rst b/product_supplier_code_purchase/README.rst new file mode 100644 index 00000000000..dc740937bea --- /dev/null +++ b/product_supplier_code_purchase/README.rst @@ -0,0 +1,90 @@ +================================= +Product Supplier Code in Purchase +================================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:8887936c389b08eb78e16b8a1004c228be555e29578f611db35b4e0ce836da8b + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/product_supplier_code_purchase + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-product_supplier_code_purchase + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds to the purchase order line the supplier code defined in the +product. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module: + +#. Go to 'Purchase' and open a Purchase Order. +#. If the vendor has defined some code for any purchase order line they will be + displayed in the line under the column 'Product Supplier Code'. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* ForgeFlow + +Contributors +~~~~~~~~~~~~ + +* Jordi Ballester +* Lois Rilo Antelo +* Serpent Consulting Services Pvt. Ltd. +* Aaron Henriquez +* Carlos Reyes + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_supplier_code_purchase/__init__.py b/product_supplier_code_purchase/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/product_supplier_code_purchase/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/product_supplier_code_purchase/__manifest__.py b/product_supplier_code_purchase/__manifest__.py new file mode 100644 index 00000000000..b4f31d52b73 --- /dev/null +++ b/product_supplier_code_purchase/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2015-20 ForgeFlow, S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Product Supplier Code in Purchase", + "summary": """This module adds to the purchase order line the supplier + code defined in the product.""", + "version": "16.0.1.0.0", + "author": "ForgeFlow, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/purchase-workflow", + "category": "Purchase Management", + "license": "AGPL-3", + "depends": ["purchase"], + "data": ["views/purchase_order_view.xml"], + "installable": True, +} diff --git a/product_supplier_code_purchase/i18n/de.po b/product_supplier_code_purchase/i18n/de.po new file mode 100644 index 00000000000..1cac1ecec5f --- /dev/null +++ b/product_supplier_code_purchase/i18n/de.po @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2017-08-29 03:23+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\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: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +#, fuzzy +msgid "Purchase Order" +msgstr "Bestellposition" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Bestellposition" diff --git a/product_supplier_code_purchase/i18n/es.po b/product_supplier_code_purchase/i18n/es.po new file mode 100644 index 00000000000..5687563d863 --- /dev/null +++ b/product_supplier_code_purchase/i18n/es.po @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2023-12-29 10:35+0000\n" +"Last-Translator: Ivorra78 \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" +"X-Generator: Weblate 4.17\n" + +#. module: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "Código Producto Proveedor" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +msgid "Purchase Order" +msgstr "Orden de Compra" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Línea pedido de compra" diff --git a/product_supplier_code_purchase/i18n/es_MX.po b/product_supplier_code_purchase/i18n/es_MX.po new file mode 100644 index 00000000000..5094e521e9b --- /dev/null +++ b/product_supplier_code_purchase/i18n/es_MX.po @@ -0,0 +1,36 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# Juan González , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2017-08-29 03:23+0000\n" +"Last-Translator: Juan González , 2017\n" +"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/" +"es_MX/)\n" +"Language: es_MX\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: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +#, fuzzy +msgid "Purchase Order" +msgstr "Línea de orden de compra" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Línea de orden de compra" diff --git a/product_supplier_code_purchase/i18n/fi.po b/product_supplier_code_purchase/i18n/fi.po new file mode 100644 index 00000000000..cde7f10c3e0 --- /dev/null +++ b/product_supplier_code_purchase/i18n/fi.po @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# Timo Talvitie , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2017-08-29 03:23+0000\n" +"Last-Translator: Timo Talvitie , 2017\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"Language: fi\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: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +#, fuzzy +msgid "Purchase Order" +msgstr "Ostotilausrivi" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Ostotilausrivi" diff --git a/product_supplier_code_purchase/i18n/fr.po b/product_supplier_code_purchase/i18n/fr.po new file mode 100644 index 00000000000..ee38c60cb9f --- /dev/null +++ b/product_supplier_code_purchase/i18n/fr.po @@ -0,0 +1,36 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# OCA Transbot , 2017 +# Quentin THEURET , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2020-08-28 16:59+0000\n" +"Last-Translator: Sandie FAVRE \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: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.10\n" + +#. module: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "Code fournisseur du produit" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +msgid "Purchase Order" +msgstr "Bon de commande" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Ligne de commande d'achat" diff --git a/product_supplier_code_purchase/i18n/it.po b/product_supplier_code_purchase/i18n/it.po new file mode 100644 index 00000000000..a56d22ec175 --- /dev/null +++ b/product_supplier_code_purchase/i18n/it.po @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2024-01-02 11:41+0000\n" +"Last-Translator: mymage \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" +"X-Generator: Weblate 4.17\n" + +#. module: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "Codice fornitore prodotto" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +msgid "Purchase Order" +msgstr "Ordine di acquisto" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Riga ordine di acquisto" diff --git a/product_supplier_code_purchase/i18n/nl_NL.po b/product_supplier_code_purchase/i18n/nl_NL.po new file mode 100644 index 00000000000..dce162e57a7 --- /dev/null +++ b/product_supplier_code_purchase/i18n/nl_NL.po @@ -0,0 +1,36 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2017-08-29 03:23+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: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +#, fuzzy +msgid "Purchase Order" +msgstr "Inkooporderregel" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Inkooporderregel" diff --git a/product_supplier_code_purchase/i18n/product_supplier_code_purchase.pot b/product_supplier_code_purchase/i18n/product_supplier_code_purchase.pot new file mode 100644 index 00000000000..55b64f9114a --- /dev/null +++ b/product_supplier_code_purchase/i18n/product_supplier_code_purchase.pot @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" diff --git a/product_supplier_code_purchase/i18n/pt_BR.po b/product_supplier_code_purchase/i18n/pt_BR.po new file mode 100644 index 00000000000..d919d6d8fc5 --- /dev/null +++ b/product_supplier_code_purchase/i18n/pt_BR.po @@ -0,0 +1,37 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2024-05-22 13:40+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/" +"23907/pt_BR/)\n" +"Language: pt_BR\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" +"X-Generator: Weblate 4.17\n" + +#. module: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "Código do fornecedor do produto" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +msgid "Purchase Order" +msgstr "Pedido de Compra" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linha da Ordem de Compra" diff --git a/product_supplier_code_purchase/i18n/pt_PT.po b/product_supplier_code_purchase/i18n/pt_PT.po new file mode 100644 index 00000000000..5357f2787d1 --- /dev/null +++ b/product_supplier_code_purchase/i18n/pt_PT.po @@ -0,0 +1,36 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# Pedro Castro Silva , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2017-08-29 03:23+0000\n" +"Last-Translator: Pedro Castro Silva , 2017\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/" +"teams/23907/pt_PT/)\n" +"Language: pt_PT\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: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +#, fuzzy +msgid "Purchase Order" +msgstr "Linha de Encomenda de Compra" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linha de Encomenda de Compra" diff --git a/product_supplier_code_purchase/i18n/ro.po b/product_supplier_code_purchase/i18n/ro.po new file mode 100644 index 00000000000..e49f06eb1f4 --- /dev/null +++ b/product_supplier_code_purchase/i18n/ro.po @@ -0,0 +1,36 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2017-08-29 03:23+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +#. module: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +#, fuzzy +msgid "Purchase Order" +msgstr "Linie comandă achiziție" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linie comandă achiziție" diff --git a/product_supplier_code_purchase/i18n/sl.po b/product_supplier_code_purchase/i18n/sl.po new file mode 100644 index 00000000000..d793d876723 --- /dev/null +++ b/product_supplier_code_purchase/i18n/sl.po @@ -0,0 +1,36 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplier_code_purchase +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 9.0c\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-29 03:23+0000\n" +"PO-Revision-Date: 2021-02-24 11:45+0000\n" +"Last-Translator: Matjaz Mozetic \n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: product_supplier_code_purchase +#: model:ir.model.fields,field_description:product_supplier_code_purchase.field_purchase_order_line__product_supplier_code +msgid "Product Supplier Code" +msgstr "Dobaviteljeva koda proizvoda" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order +msgid "Purchase Order" +msgstr "Nabavni nalog" + +#. module: product_supplier_code_purchase +#: model:ir.model,name:product_supplier_code_purchase.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Postavka nabavnega naloga" diff --git a/product_supplier_code_purchase/models/__init__.py b/product_supplier_code_purchase/models/__init__.py new file mode 100644 index 00000000000..9f03530643d --- /dev/null +++ b/product_supplier_code_purchase/models/__init__.py @@ -0,0 +1 @@ +from . import purchase_order diff --git a/product_supplier_code_purchase/models/purchase_order.py b/product_supplier_code_purchase/models/purchase_order.py new file mode 100644 index 00000000000..fbfb74a25fb --- /dev/null +++ b/product_supplier_code_purchase/models/purchase_order.py @@ -0,0 +1,60 @@ +# Copyright 2015-17 ForgeFlow, S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from odoo import api, fields, models +from odoo.exceptions import AccessError + + +class PurchaseOrderLine(models.Model): + _inherit = "purchase.order.line" + + product_supplier_code = fields.Char( + compute="_compute_product_supplier_code", store=True, readonly=False + ) + + @api.depends("partner_id", "product_id") + def _compute_product_supplier_code(self): + for line in self: + code = "" + supplier_info = line.product_id.seller_ids.filtered( + lambda s: ( + s.product_id == line.product_id and s.partner_id == line.partner_id + ) + ) + if supplier_info: + code = supplier_info[0].product_code or "" + else: + supplier_info = line.product_id.seller_ids.filtered( + lambda s: ( + s.product_tmpl_id == line.product_id.product_tmpl_id + and s.partner_id == line.partner_id + ) + ) + if supplier_info: + code = supplier_info[0].product_code or "" + line.product_supplier_code = code + + +class PurchaseOrder(models.Model): + _inherit = "purchase.order" + + def _add_supplier_to_product(self): + res = super()._add_supplier_to_product() + for line in self.order_line: + partner = ( + self.partner_id + if not self.partner_id.parent_id + else self.partner_id.parent_id + ) + if partner in line.product_id.seller_ids.mapped("partner_id"): + seller = line.product_id._select_seller( + partner_id=line.partner_id, + quantity=line.product_qty, + date=line.order_id.date_order and line.order_id.date_order.date(), + uom_id=line.product_uom, + ) + if seller: + try: + seller["product_code"] = line.product_supplier_code + except AccessError: + break + return res diff --git a/product_supplier_code_purchase/readme/CONTRIBUTORS.rst b/product_supplier_code_purchase/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..4dd558b397e --- /dev/null +++ b/product_supplier_code_purchase/readme/CONTRIBUTORS.rst @@ -0,0 +1,5 @@ +* Jordi Ballester +* Lois Rilo Antelo +* Serpent Consulting Services Pvt. Ltd. +* Aaron Henriquez +* Carlos Reyes diff --git a/product_supplier_code_purchase/readme/DESCRIPTION.rst b/product_supplier_code_purchase/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..9666b932020 --- /dev/null +++ b/product_supplier_code_purchase/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module adds to the purchase order line the supplier code defined in the +product. diff --git a/product_supplier_code_purchase/readme/USAGE.rst b/product_supplier_code_purchase/readme/USAGE.rst new file mode 100644 index 00000000000..572fb0bf962 --- /dev/null +++ b/product_supplier_code_purchase/readme/USAGE.rst @@ -0,0 +1,5 @@ +To use this module: + +#. Go to 'Purchase' and open a Purchase Order. +#. If the vendor has defined some code for any purchase order line they will be + displayed in the line under the column 'Product Supplier Code'. diff --git a/product_supplier_code_purchase/static/description/icon.png b/product_supplier_code_purchase/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/product_supplier_code_purchase/static/description/icon.png differ diff --git a/product_supplier_code_purchase/static/description/index.html b/product_supplier_code_purchase/static/description/index.html new file mode 100644 index 00000000000..2386111d6e0 --- /dev/null +++ b/product_supplier_code_purchase/static/description/index.html @@ -0,0 +1,435 @@ + + + + + +Product Supplier Code in Purchase + + + +
+

Product Supplier Code in Purchase

+ + +

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

+

This module adds to the purchase order line the supplier code defined in the +product.

+

Table of contents

+ +
+

Usage

+

To use this module:

+
    +
  1. Go to ‘Purchase’ and open a Purchase Order.
  2. +
  3. If the vendor has defined some code for any purchase order line they will be +displayed in the line under the column ‘Product Supplier Code’.
  4. +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • ForgeFlow
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/product_supplier_code_purchase/tests/__init__.py b/product_supplier_code_purchase/tests/__init__.py new file mode 100644 index 00000000000..11b6cba2bef --- /dev/null +++ b/product_supplier_code_purchase/tests/__init__.py @@ -0,0 +1 @@ +from . import test_product_supplier_code_purchase diff --git a/product_supplier_code_purchase/tests/test_product_supplier_code_purchase.py b/product_supplier_code_purchase/tests/test_product_supplier_code_purchase.py new file mode 100644 index 00000000000..1bfca22ff9f --- /dev/null +++ b/product_supplier_code_purchase/tests/test_product_supplier_code_purchase.py @@ -0,0 +1,77 @@ +# Copyright 2015-17 ForgeFlow, S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from odoo import fields +from odoo.tests.common import TransactionCase + + +class TestProductSupplierCodePurchase(TransactionCase): + def setUp(self): + super(TestProductSupplierCodePurchase, self).setUp() + self.supplierinfo_model = self.env["product.supplierinfo"] + self.supplier = self.env["res.partner"].create( + {"name": "name", "email": "example@yourcompany.com", "phone": 123456} + ) + self.product = self.env["product.product"].create({"name": "Test product"}) + self.seller = self.env["product.supplierinfo"].create( + { + "partner_id": self.supplier.id, + "product_id": self.product.id, + "product_tmpl_id": self.product.product_tmpl_id.id, + "product_code": "00001", + "price": 100.0, + } + ) + self.purchase_model = self.env["purchase.order"] + + def test_product_supplier_code_purchase(self): + purchase_order = self.purchase_model.create( + { + "partner_id": self.supplier.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "price_unit": self.product.standard_price, + "name": self.product.name, + "date_planned": fields.Datetime.now(), + "product_qty": 1, + }, + ) + ], + } + ) + self.assertEqual( + purchase_order.order_line[0].product_supplier_code, + "00001", + "Wrong supplier code", + ) + + def test_supplierinfo_update(self): + new_product = self.env["product.product"].create({"name": "Test product"}) + purchase_order = self.purchase_model.create( + { + "partner_id": self.supplier.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": new_product.id, + "product_uom": new_product.uom_id.id, + "price_unit": new_product.standard_price, + "name": new_product.name, + "date_planned": fields.Datetime.now(), + "product_qty": 1, + "product_supplier_code": "01000", + }, + ) + ], + } + ) + purchase_order.button_confirm() + self.assertEqual( + new_product.seller_ids[0].product_code, "01000", "Wrong supplier code" + ) diff --git a/product_supplier_code_purchase/views/purchase_order_view.xml b/product_supplier_code_purchase/views/purchase_order_view.xml new file mode 100644 index 00000000000..a1e4b6c74d0 --- /dev/null +++ b/product_supplier_code_purchase/views/purchase_order_view.xml @@ -0,0 +1,29 @@ + + + + + purchase.order.form + purchase.order + + + + + + + + + + purchase.order.line.tree + purchase.order.line + + + + + + + + + diff --git a/product_supplierinfo_purchase_contact/README.rst b/product_supplierinfo_purchase_contact/README.rst new file mode 100644 index 00000000000..820b509dbcd --- /dev/null +++ b/product_supplierinfo_purchase_contact/README.rst @@ -0,0 +1,87 @@ +================================= +Product Supplier Purchase Contact +================================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:d1598d26a4766084ce5484761197815fadc9fbd2f45764a9dfdc3ef360c3df6b + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/product_supplierinfo_purchase_contact + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-product_supplierinfo_purchase_contact + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds Purchase contact field on supplier rates (product.supplierinfo) +and allows you to use this contact when creating the purchase order from supplies (replacement or to order). + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Go to Purchase > Configuration > Vendor pricelist and create new Vendor pricelist and complete Purchase contact. +* Go to Inventory > Operations > Replenishment and create a new replenishment for product with Vendor pricelist created before. +* Press button "Order once" and will create a new purchase order for Purchase contact instead of Vendor from Vendor Pricelist. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Carolina Fernandez + * Pedro M. Baeza + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_supplierinfo_purchase_contact/__init__.py b/product_supplierinfo_purchase_contact/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/product_supplierinfo_purchase_contact/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/product_supplierinfo_purchase_contact/__manifest__.py b/product_supplierinfo_purchase_contact/__manifest__.py new file mode 100644 index 00000000000..c186b76f3b7 --- /dev/null +++ b/product_supplierinfo_purchase_contact/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright 2024 Tecnativa - Carolina Fernandez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Product Supplier Purchase Contact", + "version": "16.0.1.0.0", + "category": "Purchase Management", + "author": "Tecnativa,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/purchase-workflow", + "license": "AGPL-3", + "summary": "Add Purchase Contact in product supplier info", + "depends": [ + "purchase_stock", + ], + "data": [ + "views/product_supplierinfo_view.xml", + ], + "installable": True, +} diff --git a/product_supplierinfo_purchase_contact/i18n/es.po b/product_supplierinfo_purchase_contact/i18n/es.po new file mode 100644 index 00000000000..bf2e068882c --- /dev/null +++ b/product_supplierinfo_purchase_contact/i18n/es.po @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_purchase_contact +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-21 14:32+0000\n" +"PO-Revision-Date: 2024-05-21 14:32+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model.fields,field_description:product_supplierinfo_purchase_contact.field_product_supplierinfo__purchase_partner_id +msgid "Purchase contact" +msgstr "Contacto de compra" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model,name:product_supplierinfo_purchase_contact.model_stock_rule +msgid "Stock Rule" +msgstr "Regla de Inventario" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model,name:product_supplierinfo_purchase_contact.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "Tarifa de proveedor" diff --git a/product_supplierinfo_purchase_contact/i18n/it.po b/product_supplierinfo_purchase_contact/i18n/it.po new file mode 100644 index 00000000000..d8b8a01aaba --- /dev/null +++ b/product_supplierinfo_purchase_contact/i18n/it.po @@ -0,0 +1,32 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_purchase_contact +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-06-04 15:38+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model.fields,field_description:product_supplierinfo_purchase_contact.field_product_supplierinfo__purchase_partner_id +msgid "Purchase contact" +msgstr "Contratto di acquisto" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model,name:product_supplierinfo_purchase_contact.model_stock_rule +msgid "Stock Rule" +msgstr "Regola di giacenza" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model,name:product_supplierinfo_purchase_contact.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "Listino prezzi fornitore" diff --git a/product_supplierinfo_purchase_contact/i18n/product_supplierinfo_purchase_contact.pot b/product_supplierinfo_purchase_contact/i18n/product_supplierinfo_purchase_contact.pot new file mode 100644 index 00000000000..4fbd6859f76 --- /dev/null +++ b/product_supplierinfo_purchase_contact/i18n/product_supplierinfo_purchase_contact.pot @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_purchase_contact +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model.fields,field_description:product_supplierinfo_purchase_contact.field_product_supplierinfo__purchase_partner_id +msgid "Purchase contact" +msgstr "" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model,name:product_supplierinfo_purchase_contact.model_stock_rule +msgid "Stock Rule" +msgstr "" + +#. module: product_supplierinfo_purchase_contact +#: model:ir.model,name:product_supplierinfo_purchase_contact.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "" diff --git a/product_supplierinfo_purchase_contact/models/__init__.py b/product_supplierinfo_purchase_contact/models/__init__.py new file mode 100644 index 00000000000..0fb42bc1623 --- /dev/null +++ b/product_supplierinfo_purchase_contact/models/__init__.py @@ -0,0 +1,2 @@ +from . import product_supplierinfo +from . import stock_rule diff --git a/product_supplierinfo_purchase_contact/models/product_supplierinfo.py b/product_supplierinfo_purchase_contact/models/product_supplierinfo.py new file mode 100644 index 00000000000..aa21cfdc554 --- /dev/null +++ b/product_supplierinfo_purchase_contact/models/product_supplierinfo.py @@ -0,0 +1,11 @@ +# Copyright 2024 Tecnativa - Carolina Fernandez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class ProductSupplierInfo(models.Model): + _inherit = "product.supplierinfo" + + purchase_partner_id = fields.Many2one( + comodel_name="res.partner", string="Purchase contact" + ) diff --git a/product_supplierinfo_purchase_contact/models/stock_rule.py b/product_supplierinfo_purchase_contact/models/stock_rule.py new file mode 100644 index 00000000000..c940d12615f --- /dev/null +++ b/product_supplierinfo_purchase_contact/models/stock_rule.py @@ -0,0 +1,19 @@ +# Copyright 2024 Tecnativa - Carolina Fernandez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo import models + + +class StockRule(models.Model): + _inherit = "stock.rule" + + def _make_po_get_domain(self, company_id, values, partner): + if values.get("supplier") and values["supplier"].purchase_partner_id: + partner = values["supplier"].purchase_partner_id + return super()._make_po_get_domain(company_id, values, partner) + + def _prepare_purchase_order(self, company_id, origins, values): + res = super()._prepare_purchase_order(company_id, origins, values) + values = values[0] + if "supplier" in values and values["supplier"].purchase_partner_id: + res["partner_id"] = values["supplier"].purchase_partner_id.id + return res diff --git a/product_supplierinfo_purchase_contact/readme/CONTRIBUTORS.rst b/product_supplierinfo_purchase_contact/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..7d431b589ad --- /dev/null +++ b/product_supplierinfo_purchase_contact/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `_: + + * Carolina Fernandez + * Pedro M. Baeza diff --git a/product_supplierinfo_purchase_contact/readme/DESCRIPTION.rst b/product_supplierinfo_purchase_contact/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..bf8de8f3d6a --- /dev/null +++ b/product_supplierinfo_purchase_contact/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module adds Purchase contact field on supplier rates (product.supplierinfo) +and allows you to use this contact when creating the purchase order from supplies (replacement or to order). diff --git a/product_supplierinfo_purchase_contact/readme/USAGE.rst b/product_supplierinfo_purchase_contact/readme/USAGE.rst new file mode 100644 index 00000000000..f150dfe2d45 --- /dev/null +++ b/product_supplierinfo_purchase_contact/readme/USAGE.rst @@ -0,0 +1,3 @@ +* Go to Purchase > Configuration > Vendor pricelist and create new Vendor pricelist and complete Purchase contact. +* Go to Inventory > Operations > Replenishment and create a new replenishment for product with Vendor pricelist created before. +* Press button "Order once" and will create a new purchase order for Purchase contact instead of Vendor from Vendor Pricelist. diff --git a/product_supplierinfo_purchase_contact/static/description/icon.png b/product_supplierinfo_purchase_contact/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/product_supplierinfo_purchase_contact/static/description/icon.png differ diff --git a/product_supplierinfo_purchase_contact/static/description/index.html b/product_supplierinfo_purchase_contact/static/description/index.html new file mode 100644 index 00000000000..6a281c8a7d3 --- /dev/null +++ b/product_supplierinfo_purchase_contact/static/description/index.html @@ -0,0 +1,437 @@ + + + + + +Product Supplier Purchase Contact + + + +
+

Product Supplier Purchase Contact

+ + +

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

+

This module adds Purchase contact field on supplier rates (product.supplierinfo) +and allows you to use this contact when creating the purchase order from supplies (replacement or to order).

+

Table of contents

+ +
+

Usage

+
    +
  • Go to Purchase > Configuration > Vendor pricelist and create new Vendor pricelist and complete Purchase contact.
  • +
  • Go to Inventory > Operations > Replenishment and create a new replenishment for product with Vendor pricelist created before.
  • +
  • Press button “Order once” and will create a new purchase order for Purchase contact instead of Vendor from Vendor Pricelist.
  • +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:

    +
    +
      +
    • Carolina Fernandez
    • +
    • Pedro M. Baeza
    • +
    +
    +
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/product_supplierinfo_purchase_contact/tests/__init__.py b/product_supplierinfo_purchase_contact/tests/__init__.py new file mode 100644 index 00000000000..892a4c70ec7 --- /dev/null +++ b/product_supplierinfo_purchase_contact/tests/__init__.py @@ -0,0 +1 @@ +from . import test_stock_rule diff --git a/product_supplierinfo_purchase_contact/tests/test_stock_rule.py b/product_supplierinfo_purchase_contact/tests/test_stock_rule.py new file mode 100644 index 00000000000..72d8d55a508 --- /dev/null +++ b/product_supplierinfo_purchase_contact/tests/test_stock_rule.py @@ -0,0 +1,94 @@ +# Copyright 2024 Tecnativa - Carolina Fernandez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests import common + + +class TestStockRule(common.TransactionCase): + @classmethod + def setUpClass(cls): + super(TestStockRule, cls).setUpClass() + cls.supplierinfo_obj = cls.env["product.supplierinfo"] + cls.partner = cls.env["res.partner"].create( + { + "name": "Mr. Odoo", + } + ) + cls.partner2 = cls.env["res.partner"].create( + { + "name": "Mrs. Odoo 2", + } + ) + cls.product1 = cls.env["product.product"].create( + { + "name": "Test Product 1", + "purchase_method": "purchase", + } + ) + cls.product2 = cls.env["product.product"].create( + { + "name": "Test Product 2", + "purchase_method": "purchase", + } + ) + cls.supplierinfo = cls.supplierinfo_obj.create( + { + "partner_id": cls.partner2.id, + "purchase_partner_id": cls.partner.id, + "product_tmpl_id": cls.product1.product_tmpl_id.id, + "price": 100, + } + ) + cls.supplierinfo2 = cls.supplierinfo_obj.create( + { + "partner_id": cls.partner2.id, + "product_tmpl_id": cls.product2.product_tmpl_id.id, + "price": 50, + } + ) + cls.warehouse = cls.env["stock.warehouse"].search( + [("company_id", "=", cls.env.company.id)], limit=1 + ) + cls.stock_location_id = cls.warehouse.lot_stock_id.id + + def test_replenishment_with_vendor_purchase(self): + op = self.env["stock.warehouse.orderpoint"].create( + { + "name": self.product1.name, + "location_id": self.stock_location_id, + "product_id": self.product1.id, + "product_min_qty": 1, + "product_max_qty": 8, + "trigger": "manual", + } + ) + op.action_replenish() + purchase = self.env["purchase.order"].search( + [("partner_id", "=", self.partner.id)], order="id desc", limit=1 + ) + self.assertEqual(purchase.partner_id, self.supplierinfo.purchase_partner_id) + self.assertEqual(purchase.order_line.product_id, self.product1) + self.assertEqual(purchase.order_line.price_unit, self.supplierinfo.price) + self.assertEqual(purchase.order_line.product_qty, 8) + self.assertEqual(purchase.currency_id, self.supplierinfo.currency_id) + + def test_replenishment_without_vendor_purchase(self): + op = self.env["stock.warehouse.orderpoint"].create( + { + "name": self.product2.name, + "location_id": self.stock_location_id, + "product_id": self.product2.id, + "product_min_qty": 1, + "product_max_qty": 10, + "trigger": "manual", + } + ) + op.action_replenish() + purchase = self.env["purchase.order"].search( + [("partner_id", "=", self.partner2.id)], order="id desc", limit=1 + ) + self.assertEqual(purchase.partner_id, self.supplierinfo2.partner_id) + self.assertEqual(purchase.order_line.product_id, self.product2) + self.assertEqual(purchase.order_line.price_unit, self.supplierinfo2.price) + self.assertEqual(purchase.order_line.product_qty, 10) + self.assertEqual(purchase.currency_id, self.supplierinfo2.currency_id) diff --git a/product_supplierinfo_purchase_contact/views/product_supplierinfo_view.xml b/product_supplierinfo_purchase_contact/views/product_supplierinfo_view.xml new file mode 100644 index 00000000000..45e8301570a --- /dev/null +++ b/product_supplierinfo_purchase_contact/views/product_supplierinfo_view.xml @@ -0,0 +1,27 @@ + + + product.supplierinfo + + + + + + + + + product.supplierinfo + + + + + + + + + diff --git a/product_supplierinfo_qty_multiplier/README.rst b/product_supplierinfo_qty_multiplier/README.rst new file mode 100644 index 00000000000..b9447b2fde9 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/README.rst @@ -0,0 +1,116 @@ +=================================== +Product supplierinfo qty multiplier +=================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:82f9392de8bbde163cbf660d474182d343dd8c0f1e4c4955ea02ae79b05d4977 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/product_supplierinfo_qty_multiplier + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-product_supplierinfo_qty_multiplier + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to define multiplier quantities at the supplier level in the +products to apply it in the purchase order lines. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +* Go to Purchase > Products > Products. +* Select a product. +* Go to the 'Purchase' tab and edit a vendor pricelist line to set 'Multiplier Qty' to 6.0 + +(If you can't find that column, you can activate it by clicking the three dots at the corner of the table and enabling it). + +.. figure:: https://raw.githubusercontent.com/OCA/purchase-workflow/16.0/product_supplierinfo_qty_multiplier/static/description/product_product_form.png + +Usage +===== + +* Create a new purchase order. +* Assign it to the partner where the multiplier quantity was previously set. +* Add a product line with the previously edited product. +* Quantity is set to 6.0. +* If you set 9.0 in the quantity field, the quantity will be rounded up to 12.0 + +.. figure:: https://raw.githubusercontent.com/OCA/purchase-workflow/16.0/product_supplierinfo_qty_multiplier/static/description/purchase_order_form.png + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa +* GRAP + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza + +* Sylvain LE GAL (https://twitter.com/legalsylvain) + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-victoralmau| image:: https://github.com/victoralmau.png?size=40px + :target: https://github.com/victoralmau + :alt: victoralmau +.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px + :target: https://github.com/legalsylvain + :alt: legalsylvain + +Current `maintainers `__: + +|maintainer-victoralmau| |maintainer-legalsylvain| + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_supplierinfo_qty_multiplier/__init__.py b/product_supplierinfo_qty_multiplier/__init__.py new file mode 100644 index 00000000000..31660d6a965 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import models diff --git a/product_supplierinfo_qty_multiplier/__manifest__.py b/product_supplierinfo_qty_multiplier/__manifest__.py new file mode 100644 index 00000000000..b39b3159849 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2021 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Product supplierinfo qty multiplier", + "version": "16.0.1.0.0", + "category": "Inventory/Purchase", + "website": "https://github.com/OCA/purchase-workflow", + "author": "Tecnativa,GRAP, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "depends": ["purchase", "web_notify"], + "maintainers": ["victoralmau", "legalsylvain"], + "data": ["views/product_supplierinfo_view.xml"], + "demo": [ + "demo/res_partner_demo.xml", + "demo/product_product_demo.xml", + "demo/product_supplierinfo_demo.xml", + ], +} diff --git a/product_supplierinfo_qty_multiplier/demo/product_product_demo.xml b/product_supplierinfo_qty_multiplier/demo/product_product_demo.xml new file mode 100644 index 00000000000..a494addc321 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/demo/product_product_demo.xml @@ -0,0 +1,9 @@ + + + + + + Delta IPA + + + diff --git a/product_supplierinfo_qty_multiplier/demo/product_supplierinfo_demo.xml b/product_supplierinfo_qty_multiplier/demo/product_supplierinfo_demo.xml new file mode 100644 index 00000000000..30a0c25e67e --- /dev/null +++ b/product_supplierinfo_qty_multiplier/demo/product_supplierinfo_demo.xml @@ -0,0 +1,16 @@ + + + + + + + + 6 + 13 + + + diff --git a/product_supplierinfo_qty_multiplier/demo/res_partner_demo.xml b/product_supplierinfo_qty_multiplier/demo/res_partner_demo.xml new file mode 100644 index 00000000000..a27636fc1a8 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/demo/res_partner_demo.xml @@ -0,0 +1,9 @@ + + + + + + Brussels Beer Project (Brewery) + + + diff --git a/product_supplierinfo_qty_multiplier/i18n/es.po b/product_supplierinfo_qty_multiplier/i18n/es.po new file mode 100644 index 00000000000..2577921bf93 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/i18n/es.po @@ -0,0 +1,57 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_qty_multiplier +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-02-11 19:34+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: product_supplierinfo_qty_multiplier +#: model:product.template,name:product_supplierinfo_qty_multiplier.delta_ipa_product_template +msgid "Delta IPA" +msgstr "IPA Delta" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model.fields,field_description:product_supplierinfo_qty_multiplier.field_product_supplierinfo__multiplier_qty +msgid "Multiplier Qty" +msgstr "Ctd multiplicadora" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model,name:product_supplierinfo_qty_multiplier.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Línea de Orden de Compra" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model,name:product_supplierinfo_qty_multiplier.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "Lista de precios de Proveedor" + +#. module: product_supplierinfo_qty_multiplier +#. odoo-python +#: code:addons/product_supplierinfo_qty_multiplier/models/purchase_order_line.py:0 +#, python-format +msgid "" +"The selected supplier only sells this product by %(multiplier_qty)s %(uom_name)s.\n" +"The quantity has been automatically changed to %(new_product_qty)s %(uom_name)s." +msgstr "" +"El proveedor seleccionado solo vende este producto por %(multiplier_qty)s " +"%(uom_name)s.\n" +"La cantidad se ha cambiado automáticamente a %(new_product_qty)s " +"%(uom_name)s." + +#. module: product_supplierinfo_qty_multiplier +#. odoo-python +#: code:addons/product_supplierinfo_qty_multiplier/models/purchase_order_line.py:0 +#, python-format +msgid "Warning" +msgstr "Aviso" diff --git a/product_supplierinfo_qty_multiplier/i18n/fr.po b/product_supplierinfo_qty_multiplier/i18n/fr.po new file mode 100644 index 00000000000..102535b09ac --- /dev/null +++ b/product_supplierinfo_qty_multiplier/i18n/fr.po @@ -0,0 +1,59 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_qty_multiplier +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-18 10:04+0000\n" +"PO-Revision-Date: 2023-12-18 10:04+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: product_supplierinfo_qty_multiplier +#: model:product.template,name:product_supplierinfo_qty_multiplier.delta_ipa_product_template +msgid "Delta IPA" +msgstr "" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model.fields,field_description:product_supplierinfo_qty_multiplier.field_product_supplierinfo__multiplier_qty +msgid "Multiplier Qty" +msgstr "Conditionnement" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model,name:product_supplierinfo_qty_multiplier.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Ligne de bon de commande" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model,name:product_supplierinfo_qty_multiplier.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "Liste de prix du fournisseur" + +#. module: product_supplierinfo_qty_multiplier +#. odoo-python +#: code:addons/product_supplierinfo_qty_multiplier/models/purchase_order_line.py:0 +#, python-format +msgid "" +"The selected supplier only sells this product by %(multiplier_qty)s " +"%(uom_name)s.\n" +"The quantity has been automatically changed to %(new_product_qty)s " +"%(uom_name)s." +msgstr "" +"Le fournisseur sélectionné vend seulement ce produit par %(multiplier_qty)s " +"%(uom_name)s.\n" +"La quantité a été automatiquement changé par %(new_product_qty)s " +"%(uom_name)s." + +#. module: product_supplierinfo_qty_multiplier +#. odoo-python +#: code:addons/product_supplierinfo_qty_multiplier/models/purchase_order_line.py:0 +#, python-format +msgid "Warning" +msgstr "Attention" diff --git a/product_supplierinfo_qty_multiplier/i18n/it.po b/product_supplierinfo_qty_multiplier/i18n/it.po new file mode 100644 index 00000000000..546514c1653 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/i18n/it.po @@ -0,0 +1,57 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_qty_multiplier +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-02-01 09:35+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: product_supplierinfo_qty_multiplier +#: model:product.template,name:product_supplierinfo_qty_multiplier.delta_ipa_product_template +msgid "Delta IPA" +msgstr "Delta IPA" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model.fields,field_description:product_supplierinfo_qty_multiplier.field_product_supplierinfo__multiplier_qty +msgid "Multiplier Qty" +msgstr "Q.tà moltiplicazione" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model,name:product_supplierinfo_qty_multiplier.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Riga ordine di acquisto" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model,name:product_supplierinfo_qty_multiplier.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "Listino prezzi fornitore" + +#. module: product_supplierinfo_qty_multiplier +#. odoo-python +#: code:addons/product_supplierinfo_qty_multiplier/models/purchase_order_line.py:0 +#, python-format +msgid "" +"The selected supplier only sells this product by %(multiplier_qty)s %(uom_name)s.\n" +"The quantity has been automatically changed to %(new_product_qty)s %(uom_name)s." +msgstr "" +"Il fornitore selezionato vende questo prodotto solo in %(multiplier_qty)s " +"%(uom_name)s.\n" +"La quantità è stata automaticamente modificata in %(new_product_qty)s " +"%(uom_name)s." + +#. module: product_supplierinfo_qty_multiplier +#. odoo-python +#: code:addons/product_supplierinfo_qty_multiplier/models/purchase_order_line.py:0 +#, python-format +msgid "Warning" +msgstr "Attenzione" diff --git a/product_supplierinfo_qty_multiplier/i18n/product_supplierinfo_qty_multiplier.pot b/product_supplierinfo_qty_multiplier/i18n/product_supplierinfo_qty_multiplier.pot new file mode 100644 index 00000000000..22f63fafeeb --- /dev/null +++ b/product_supplierinfo_qty_multiplier/i18n/product_supplierinfo_qty_multiplier.pot @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_supplierinfo_qty_multiplier +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: product_supplierinfo_qty_multiplier +#: model:product.template,name:product_supplierinfo_qty_multiplier.delta_ipa_product_template +msgid "Delta IPA" +msgstr "" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model.fields,field_description:product_supplierinfo_qty_multiplier.field_product_supplierinfo__multiplier_qty +msgid "Multiplier Qty" +msgstr "" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model,name:product_supplierinfo_qty_multiplier.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + +#. module: product_supplierinfo_qty_multiplier +#: model:ir.model,name:product_supplierinfo_qty_multiplier.model_product_supplierinfo +msgid "Supplier Pricelist" +msgstr "" + +#. module: product_supplierinfo_qty_multiplier +#. odoo-python +#: code:addons/product_supplierinfo_qty_multiplier/models/purchase_order_line.py:0 +#, python-format +msgid "" +"The selected supplier only sells this product by %(multiplier_qty)s %(uom_name)s.\n" +"The quantity has been automatically changed to %(new_product_qty)s %(uom_name)s." +msgstr "" + +#. module: product_supplierinfo_qty_multiplier +#. odoo-python +#: code:addons/product_supplierinfo_qty_multiplier/models/purchase_order_line.py:0 +#, python-format +msgid "Warning" +msgstr "" diff --git a/product_supplierinfo_qty_multiplier/models/__init__.py b/product_supplierinfo_qty_multiplier/models/__init__.py new file mode 100644 index 00000000000..78f8d69fc9e --- /dev/null +++ b/product_supplierinfo_qty_multiplier/models/__init__.py @@ -0,0 +1,2 @@ +from . import product_supplierinfo +from . import purchase_order_line diff --git a/product_supplierinfo_qty_multiplier/models/product_supplierinfo.py b/product_supplierinfo_qty_multiplier/models/product_supplierinfo.py new file mode 100644 index 00000000000..bc5809b8bb5 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/models/product_supplierinfo.py @@ -0,0 +1,12 @@ +# Copyright 2015 FactorLibre - Hugo Santos +# Copyright 2021 Tecnativa - Víctor Martínez +# Copyright 2021 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ProductSupplierinfo(models.Model): + _inherit = "product.supplierinfo" + + multiplier_qty = fields.Float(digits="Product Unit of Measure") diff --git a/product_supplierinfo_qty_multiplier/models/purchase_order_line.py b/product_supplierinfo_qty_multiplier/models/purchase_order_line.py new file mode 100644 index 00000000000..1ad5d0369e1 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/models/purchase_order_line.py @@ -0,0 +1,44 @@ +# Copyright 2015 FactorLibre - Hugo Santos +# Copyright 2021 Tecnativa - Víctor Martínez +# Copyright 2021 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from math import ceil + +from odoo import _, api, models + + +class PurchaseOrderLine(models.Model): + _inherit = "purchase.order.line" + + @api.onchange("product_qty") + def _onchange_product_qty_multiplier_qty(self): + if not self.product_id: + return + seller = self.product_id._select_seller( + partner_id=self.partner_id, + quantity=self.product_qty, + date=self.order_id.date_order and self.order_id.date_order.date(), + uom_id=self.product_uom, + params={"order_id": self.order_id}, + ) + qty = self.product_qty + if seller and seller.multiplier_qty and qty % seller.multiplier_qty: + # Change Ordered Quantity + self.product_qty = ceil(qty / seller.multiplier_qty) * seller.multiplier_qty + self.env.user.notify_warning( + title=_("Warning"), + message=_( + "The selected supplier only sells this product" + " by %(multiplier_qty)s %(uom_name)s.\n" + "The quantity has been automatically changed" + " to %(new_product_qty)s %(uom_name)s." + ) + % ( + { + "multiplier_qty": seller.multiplier_qty, + "uom_name": seller.product_uom.name, + "new_product_qty": self.product_qty, + } + ), + ) + return diff --git a/product_supplierinfo_qty_multiplier/readme/CONFIGURE.rst b/product_supplierinfo_qty_multiplier/readme/CONFIGURE.rst new file mode 100644 index 00000000000..6f6c49b88cf --- /dev/null +++ b/product_supplierinfo_qty_multiplier/readme/CONFIGURE.rst @@ -0,0 +1,7 @@ +* Go to Purchase > Products > Products. +* Select a product. +* Go to the 'Purchase' tab and edit a vendor pricelist line to set 'Multiplier Qty' to 6.0 + +(If you can't find that column, you can activate it by clicking the three dots at the corner of the table and enabling it). + +.. figure:: ../static/description/product_product_form.png diff --git a/product_supplierinfo_qty_multiplier/readme/CONTRIBUTORS.rst b/product_supplierinfo_qty_multiplier/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..3e0673f2281 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/readme/CONTRIBUTORS.rst @@ -0,0 +1,6 @@ +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza + +* Sylvain LE GAL (https://twitter.com/legalsylvain) diff --git a/product_supplierinfo_qty_multiplier/readme/DESCRIPTION.rst b/product_supplierinfo_qty_multiplier/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..14c0e5e75e7 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module allows to define multiplier quantities at the supplier level in the +products to apply it in the purchase order lines. diff --git a/product_supplierinfo_qty_multiplier/readme/USAGE.rst b/product_supplierinfo_qty_multiplier/readme/USAGE.rst new file mode 100644 index 00000000000..ed7019728ac --- /dev/null +++ b/product_supplierinfo_qty_multiplier/readme/USAGE.rst @@ -0,0 +1,7 @@ +* Create a new purchase order. +* Assign it to the partner where the multiplier quantity was previously set. +* Add a product line with the previously edited product. +* Quantity is set to 6.0. +* If you set 9.0 in the quantity field, the quantity will be rounded up to 12.0 + +.. figure:: ../static/description/purchase_order_form.png diff --git a/product_supplierinfo_qty_multiplier/static/description/icon.png b/product_supplierinfo_qty_multiplier/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/product_supplierinfo_qty_multiplier/static/description/icon.png differ diff --git a/product_supplierinfo_qty_multiplier/static/description/index.html b/product_supplierinfo_qty_multiplier/static/description/index.html new file mode 100644 index 00000000000..ce5d8ab33e8 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/static/description/index.html @@ -0,0 +1,456 @@ + + + + + +Product supplierinfo qty multiplier + + + +
+

Product supplierinfo qty multiplier

+ + +

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

+

This module allows to define multiplier quantities at the supplier level in the +products to apply it in the purchase order lines.

+

Table of contents

+ +
+

Configuration

+
    +
  • Go to Purchase > Products > Products.
  • +
  • Select a product.
  • +
  • Go to the ‘Purchase’ tab and edit a vendor pricelist line to set ‘Multiplier Qty’ to 6.0
  • +
+

(If you can’t find that column, you can activate it by clicking the three dots at the corner of the table and enabling it).

+
+https://raw.githubusercontent.com/OCA/purchase-workflow/16.0/product_supplierinfo_qty_multiplier/static/description/product_product_form.png +
+
+
+

Usage

+
    +
  • Create a new purchase order.
  • +
  • Assign it to the partner where the multiplier quantity was previously set.
  • +
  • Add a product line with the previously edited product.
  • +
  • Quantity is set to 6.0.
  • +
  • If you set 9.0 in the quantity field, the quantity will be rounded up to 12.0
  • +
+
+https://raw.githubusercontent.com/OCA/purchase-workflow/16.0/product_supplierinfo_qty_multiplier/static/description/purchase_order_form.png +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
  • GRAP
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

Current maintainers:

+

victoralmau legalsylvain

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/product_supplierinfo_qty_multiplier/static/description/product_product_form.png b/product_supplierinfo_qty_multiplier/static/description/product_product_form.png new file mode 100644 index 00000000000..4666f489ec9 Binary files /dev/null and b/product_supplierinfo_qty_multiplier/static/description/product_product_form.png differ diff --git a/product_supplierinfo_qty_multiplier/static/description/purchase_order_form.png b/product_supplierinfo_qty_multiplier/static/description/purchase_order_form.png new file mode 100644 index 00000000000..484df8eef29 Binary files /dev/null and b/product_supplierinfo_qty_multiplier/static/description/purchase_order_form.png differ diff --git a/product_supplierinfo_qty_multiplier/tests/__init__.py b/product_supplierinfo_qty_multiplier/tests/__init__.py new file mode 100644 index 00000000000..9f1e1e13973 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from . import test_purchase_order diff --git a/product_supplierinfo_qty_multiplier/tests/test_purchase_order.py b/product_supplierinfo_qty_multiplier/tests/test_purchase_order.py new file mode 100644 index 00000000000..91a196e6834 --- /dev/null +++ b/product_supplierinfo_qty_multiplier/tests/test_purchase_order.py @@ -0,0 +1,73 @@ +# Copyright 2021 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo.tests import Form, common + + +class TestPurchaseOrder(common.TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner = cls.env["res.partner"].create({"name": "Supplier test"}) + cls.product_a = cls.env["product.product"].create({"name": "Product A"}) + cls.product_b = cls.env["product.product"].create( + { + "name": "Product B", + "seller_ids": [ + ( + 0, + False, + { + "partner_id": cls.partner.id, + "min_qty": 1, + "multiplier_qty": 2, + "price": 100, + }, + ), + ( + 0, + False, + { + "partner_id": cls.partner.id, + "min_qty": 100, + "multiplier_qty": 2, + "price": 95, + }, + ), + ], + } + ) + + def _create_purchase_order(self): + purchase_form = Form(self.env["purchase.order"]) + purchase_form.partner_id = self.partner + with purchase_form.order_line.new() as line_form: + line_form.product_id = self.product_a + with purchase_form.order_line.new() as line_form: + line_form.product_id = self.product_b + purchase = purchase_form.save() + purchase.button_confirm() + return purchase + + def test_purchase_qty_multiplier(self): + purchase = self._create_purchase_order() + line_a = purchase.order_line.filtered(lambda x: x.product_id == self.product_a) + self.assertEqual(line_a.product_qty, 1) + line_b = purchase.order_line.filtered(lambda x: x.product_id == self.product_b) + self.assertEqual(line_b.product_qty, 2) + + def test_various_prices(self): + purchase_form = Form(self.env["purchase.order"]) + purchase_form.partner_id = self.partner + with purchase_form.order_line.new() as line_form_1: + line_form_1.product_id = self.product_b + line_form_1.product_qty = 3 + purchase_form.save() + self.assertEqual(line_form_1.product_qty, 4) + self.assertEqual(line_form_1.price_unit, 100) + + with purchase_form.order_line.new() as line_form_2: + line_form_2.product_id = self.product_b + line_form_2.product_qty = 99 + purchase_form.save() + self.assertEqual(line_form_2.product_qty, 100) + self.assertEqual(line_form_2.price_unit, 95) diff --git a/product_supplierinfo_qty_multiplier/views/product_supplierinfo_view.xml b/product_supplierinfo_qty_multiplier/views/product_supplierinfo_view.xml new file mode 100644 index 00000000000..8fadff7c35f --- /dev/null +++ b/product_supplierinfo_qty_multiplier/views/product_supplierinfo_view.xml @@ -0,0 +1,28 @@ + + + + + + product.supplierinfo + + + + + + + + product.supplierinfo + + + + + + + + + diff --git a/purchase_advance_payment/README.rst b/purchase_advance_payment/README.rst index 4e589857b37..916356523be 100644 --- a/purchase_advance_payment/README.rst +++ b/purchase_advance_payment/README.rst @@ -2,10 +2,13 @@ Purchase Advance Payment ======================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:2afb1ce77ca393178f0017cafe4f497d22ca86b5b1ffbecf3b031c496a631e1c + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Purchase Advance Payment .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_advance_payment :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| The module allows to add advance payments on purchase orders and Request for Quotation. The advance payments are allowed even before confirmation @@ -51,7 +54,7 @@ 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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -91,6 +94,14 @@ 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. +.. |maintainer-LoisRForgeFlow| image:: https://github.com/LoisRForgeFlow.png?size=40px + :target: https://github.com/LoisRForgeFlow + :alt: LoisRForgeFlow + +Current `maintainer `__: + +|maintainer-LoisRForgeFlow| + This module is part of the `OCA/purchase-workflow `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_advance_payment/__manifest__.py b/purchase_advance_payment/__manifest__.py index 0821aa4fb22..4f10d0b8918 100644 --- a/purchase_advance_payment/__manifest__.py +++ b/purchase_advance_payment/__manifest__.py @@ -3,17 +3,21 @@ { "name": "Purchase Advance Payment", - "version": "16.0.1.0.0", + "version": "16.0.1.2.0", "author": "Forgeflow, Odoo Community Association (OCA)", "website": "https://github.com/OCA/purchase-workflow", "category": "Purchase", + "maintainers": ["LoisRForgeFlow"], "license": "AGPL-3", "summary": "Allow to add advance payments on purchase orders", "depends": ["purchase"], "data": [ + "data/ir_config_parameter.xml", "wizard/purchase_advance_payment_wizard_view.xml", + "views/res_config_settings_views.xml", "views/purchase_view.xml", "security/ir.model.access.csv", + "views/account_payment_views.xml", ], "installable": True, } diff --git a/purchase_advance_payment/data/ir_config_parameter.xml b/purchase_advance_payment/data/ir_config_parameter.xml new file mode 100644 index 00000000000..a74212cfce7 --- /dev/null +++ b/purchase_advance_payment/data/ir_config_parameter.xml @@ -0,0 +1,9 @@ + + + + + purchase_advance_payment.auto_post_advance_payments + True + + + diff --git a/purchase_advance_payment/i18n/es.po b/purchase_advance_payment/i18n/es.po index 6fc5ff90c64..5ad8bbe5bbc 100644 --- a/purchase_advance_payment/i18n/es.po +++ b/purchase_advance_payment/i18n/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-07-20 10:15+0000\n" +"PO-Revision-Date: 2024-04-18 08:37+0000\n" "Last-Translator: Ivorra78 \n" "Language-Team: none\n" "Language: es\n" @@ -32,6 +32,12 @@ msgstr "Pago por Adelantado" msgid "Advance Payment Status" msgstr "Estado del pago anticipado" +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_account_advance_payments_payable +#: model:ir.ui.menu,name:purchase_advance_payment.menu_account_advance_payments_payable +msgid "Advance Payments" +msgstr "" + #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_kpis_tree #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_view_tree @@ -67,6 +73,16 @@ msgstr "El importe anticipado es mayor que el importe pendiente del pedido" msgid "Amount of advance must be positive." msgstr "El importe del anticipo debe ser positivo." +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_res_config_settings__auto_post_purchase_advance_payments +msgid "Auto Post Purchase Advance Payments" +msgstr "" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__available_payment_method_line_ids +msgid "Available Payment Method Line" +msgstr "" + #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Cancel" @@ -108,6 +124,11 @@ msgstr "Nombre mostrado" msgid "ID" msgstr "ID" +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.res_config_settings_view_form_purchase +msgid "If enabled, advance payments created from POs are automatically posted." +msgstr "" + #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_id msgid "Journal" @@ -144,20 +165,20 @@ msgid "Not Paid" msgstr "No pagado" #. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard -msgid "Operation" -msgstr "Operación" +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Reconciled" +msgstr "" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Sent" +msgstr "" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__order_id msgid "Order" msgstr "Pedido" -#. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard -msgid "Order Currency" -msgstr "Moneda del pedido" - #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Order Due Amount" @@ -174,16 +195,20 @@ msgid "Partially Paid" msgstr "Pagado parcialmente" #. module: purchase_advance_payment -#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form msgid "Pay purchase advanced" msgstr "Pagar anticipo de compra" #. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_method_line_id msgid "Payment Method" msgstr "Método de pago" +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_supplier_payment_tree +msgid "Payment Sent?" +msgstr "" + #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form msgid "Payment advances" @@ -199,6 +224,11 @@ msgstr "Líneas de asiento de pago" msgid "Payments" msgstr "Pagos" +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_payment__purchase_id msgid "Purchase" @@ -209,6 +239,11 @@ msgstr "Compra" msgid "Purchase Order" msgstr "Pedido de compra" +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "Pago de la Compra" + #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_ref msgid "Ref." @@ -218,3 +253,14 @@ msgstr "Ref." #: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__amount_residual msgid "Residual amount" msgstr "Importe pendiente" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Vendor Advance Payments" +msgstr "" + +#~ msgid "Operation" +#~ msgstr "Operación" + +#~ msgid "Order Currency" +#~ msgstr "Moneda del pedido" diff --git a/purchase_advance_payment/i18n/fr.po b/purchase_advance_payment/i18n/fr.po index 837ff265e93..07d5ad91339 100644 --- a/purchase_advance_payment/i18n/fr.po +++ b/purchase_advance_payment/i18n/fr.po @@ -6,90 +6,109 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-03-15 15:37+0000\n" +"Last-Translator: Pierre-François Teyssier \n" "Language-Team: none\n" "Language: fr\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" +"X-Generator: Weblate 4.17\n" #. module: purchase_advance_payment #: model:ir.model,name:purchase_advance_payment.model_account_voucher_wizard_purchase +#, fuzzy msgid "Account Voucher Wizard Purchase" -msgstr "" +msgstr "Wizard de justificatif comptable d'achat" #. module: purchase_advance_payment #: model:ir.actions.act_window,name:purchase_advance_payment.action_view_account_voucher_wizard #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Advance Payment" -msgstr "" +msgstr "Acompte" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__advance_payment_status msgid "Advance Payment Status" +msgstr "Statut de l'acompte" + +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_account_advance_payments_payable +#: model:ir.ui.menu,name:purchase_advance_payment.menu_account_advance_payments_payable +msgid "Advance Payments" msgstr "" #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_kpis_tree #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_view_tree msgid "Amount Residual" -msgstr "" +msgstr "Montant résiduel" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__amount_total msgid "Amount Total" -msgstr "" +msgstr "Montant total" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__amount_advance msgid "Amount advanced" -msgstr "" +msgstr "Montant avancé" #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Amount in Order Currency" -msgstr "" +msgstr "Montant en devise de la commande" #. module: purchase_advance_payment #. odoo-python #: code:addons/purchase_advance_payment/wizard/purchase_advance_payment_wizard.py:0 #, python-format msgid "Amount of advance is greater than residual amount on purchase" -msgstr "" +msgstr "Le montant de l'acompte est supérieur au montant résiduel de l'achat" #. module: purchase_advance_payment #. odoo-python #: code:addons/purchase_advance_payment/wizard/purchase_advance_payment_wizard.py:0 #, python-format msgid "Amount of advance must be positive." +msgstr "Le montant de l'acompte doit être positif." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_res_config_settings__auto_post_purchase_advance_payments +msgid "Auto Post Purchase Advance Payments" +msgstr "" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__available_payment_method_line_ids +msgid "Available Payment Method Line" msgstr "" #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Cancel" -msgstr "" +msgstr "Annuler" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__create_uid msgid "Created by" -msgstr "" +msgstr "Créé par" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__create_date msgid "Created on" -msgstr "" +msgstr "Créé le" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__currency_amount msgid "Curr. amount" -msgstr "" +msgstr "Montant en devise" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__currency_id #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Currency" -msgstr "" +msgstr "Devise" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__date @@ -99,13 +118,18 @@ msgstr "" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__display_name msgid "Display Name" -msgstr "" +msgstr "Nom d'affichage" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__id msgid "ID" msgstr "" +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.res_config_settings_view_form_purchase +msgid "If enabled, advance payments created from POs are automatically posted." +msgstr "" + #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_id msgid "Journal" @@ -114,98 +138,112 @@ msgstr "" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_currency_id msgid "Journal Currency" -msgstr "" +msgstr "Devise du journal" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase____last_update msgid "Last Modified on" -msgstr "" +msgstr "Dernière modification le" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Dernière mise à jour par" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__write_date msgid "Last Updated on" -msgstr "" +msgstr "Dernière mise à jour le" #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Make advance payment" -msgstr "" +msgstr "Faire un paiement d'acompte" #. module: purchase_advance_payment #: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__not_paid msgid "Not Paid" -msgstr "" +msgstr "Non payé" #. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard -msgid "Operation" +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Reconciled" msgstr "" #. module: purchase_advance_payment -#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__order_id -msgid "Order" +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Sent" msgstr "" #. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard -msgid "Order Currency" -msgstr "" +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__order_id +msgid "Order" +msgstr "Commande" #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Order Due Amount" -msgstr "" +msgstr "Montant dû de la commande" #. module: purchase_advance_payment #: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__paid msgid "Paid" -msgstr "" +msgstr "Payé" #. module: purchase_advance_payment #: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__partial msgid "Partially Paid" -msgstr "" +msgstr "Partiellement réglé" #. module: purchase_advance_payment -#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form msgid "Pay purchase advanced" -msgstr "" +msgstr "Payer un acompte d'achat" #. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_method_line_id msgid "Payment Method" +msgstr "Mode de paiement" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_supplier_payment_tree +msgid "Payment Sent?" msgstr "" #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form msgid "Payment advances" -msgstr "" +msgstr "Paiements d'acomptes" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__payment_line_ids msgid "Payment move lines" -msgstr "" +msgstr "Lignes de paiements" #. module: purchase_advance_payment #: model:ir.model,name:purchase_advance_payment.model_account_payment msgid "Payments" +msgstr "Paiements" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_res_config_settings +msgid "Procurement purchase grouping settings" msgstr "" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_payment__purchase_id msgid "Purchase" -msgstr "" +msgstr "Achat" #. module: purchase_advance_payment #: model:ir.model,name:purchase_advance_payment.model_purchase_order msgid "Purchase Order" -msgstr "" +msgstr "Bon de commande" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "Paiement d'achat" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_ref @@ -215,4 +253,15 @@ msgstr "" #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__amount_residual msgid "Residual amount" +msgstr "Montant résiduel" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Vendor Advance Payments" msgstr "" + +#~ msgid "Operation" +#~ msgstr "Opération" + +#~ msgid "Order Currency" +#~ msgstr "Devise de la commande" diff --git a/purchase_advance_payment/i18n/it.po b/purchase_advance_payment/i18n/it.po new file mode 100644 index 00000000000..954f514077f --- /dev/null +++ b/purchase_advance_payment/i18n/it.po @@ -0,0 +1,268 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_advance_payment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-07-30 16:58+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_account_voucher_wizard_purchase +msgid "Account Voucher Wizard Purchase" +msgstr "Conto buono procedura guidata acquisto" + +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_view_account_voucher_wizard +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Advance Payment" +msgstr "Pagamento anticipato" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__advance_payment_status +msgid "Advance Payment Status" +msgstr "Stato pagamento anticipato" + +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_account_advance_payments_payable +#: model:ir.ui.menu,name:purchase_advance_payment.menu_account_advance_payments_payable +msgid "Advance Payments" +msgstr "Anticipo pagamenti" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_kpis_tree +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_view_tree +msgid "Amount Residual" +msgstr "Importo residuo" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__amount_total +msgid "Amount Total" +msgstr "Importo totale" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__amount_advance +msgid "Amount advanced" +msgstr "Importo anticipato" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Amount in Order Currency" +msgstr "Importo nella valuta dell'ordine" + +#. module: purchase_advance_payment +#. odoo-python +#: code:addons/purchase_advance_payment/wizard/purchase_advance_payment_wizard.py:0 +#, python-format +msgid "Amount of advance is greater than residual amount on purchase" +msgstr "L'importo dell'anticipo è superiore all'importo residuo in vendita" + +#. module: purchase_advance_payment +#. odoo-python +#: code:addons/purchase_advance_payment/wizard/purchase_advance_payment_wizard.py:0 +#, python-format +msgid "Amount of advance must be positive." +msgstr "L'importo dell'anticipo deve essere positivo." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_res_config_settings__auto_post_purchase_advance_payments +msgid "Auto Post Purchase Advance Payments" +msgstr "Inserimento automatico anticipo pagamento acquisto" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__available_payment_method_line_ids +msgid "Available Payment Method Line" +msgstr "Riga metodo pagamento disponibile" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Cancel" +msgstr "Annulla" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__currency_amount +msgid "Curr. amount" +msgstr "Importo valuta" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__currency_id +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Currency" +msgstr "Valuta" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__date +msgid "Date" +msgstr "Data" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__id +msgid "ID" +msgstr "ID" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.res_config_settings_view_form_purchase +msgid "If enabled, advance payments created from POs are automatically posted." +msgstr "" +"Se abilitata, gli anticipi pagamenti creati dai POS sono inseriti " +"automaticamente." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_id +msgid "Journal" +msgstr "Registro" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_currency_id +msgid "Journal Currency" +msgstr "Valuta registro" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Make advance payment" +msgstr "Effettua il pagamento anticipato" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__not_paid +msgid "Not Paid" +msgstr "Non pagato" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Reconciled" +msgstr "Non riconciliata" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Sent" +msgstr "Non inviato" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__order_id +msgid "Order" +msgstr "Ordine" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Order Due Amount" +msgstr "Importo dovuto dell'ordine" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__paid +msgid "Paid" +msgstr "Pagato" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__partial +msgid "Partially Paid" +msgstr "Pagato parzialmente" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form +msgid "Pay purchase advanced" +msgstr "Paga anticipo acquisto" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_method_line_id +msgid "Payment Method" +msgstr "Metodo di pagamento" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_supplier_payment_tree +msgid "Payment Sent?" +msgstr "Pagamento inviato?" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form +msgid "Payment advances" +msgstr "Pagamenti anticipati" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__payment_line_ids +msgid "Payment move lines" +msgstr "Righe movimento pagamento" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_account_payment +msgid "Payments" +msgstr "Pagamenti" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "Impostazioni raggruppamento approvvigionamento acquisti" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_payment__purchase_id +msgid "Purchase" +msgstr "Acquisto" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_purchase_order +msgid "Purchase Order" +msgstr "Ordine di acquisto" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "Pagamento acquisto" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_ref +msgid "Ref." +msgstr "Rif." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__amount_residual +msgid "Residual amount" +msgstr "Importo residuo" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Vendor Advance Payments" +msgstr "Anticipo pagamenti fornitore" + +#~ msgid "Operation" +#~ msgstr "Operazione" + +#~ msgid "Order Currency" +#~ msgstr "Valuta ordine" diff --git a/purchase_advance_payment/i18n/pt.po b/purchase_advance_payment/i18n/pt.po new file mode 100644 index 00000000000..69981593aa5 --- /dev/null +++ b/purchase_advance_payment/i18n/pt.po @@ -0,0 +1,263 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_advance_payment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-21 12:20+0000\n" +"Last-Translator: Peter Romão \n" +"Language-Team: none\n" +"Language: pt\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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_account_voucher_wizard_purchase +msgid "Account Voucher Wizard Purchase" +msgstr "Assistente de Compra com Vale na Conta" + +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_view_account_voucher_wizard +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Advance Payment" +msgstr "Adiantamento" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__advance_payment_status +msgid "Advance Payment Status" +msgstr "Estado do Adiantamento" + +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_account_advance_payments_payable +#: model:ir.ui.menu,name:purchase_advance_payment.menu_account_advance_payments_payable +msgid "Advance Payments" +msgstr "Adiantamentos" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_kpis_tree +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_view_tree +msgid "Amount Residual" +msgstr "Valor Residual" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__amount_total +msgid "Amount Total" +msgstr "Valor Total" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__amount_advance +msgid "Amount advanced" +msgstr "Valor adiantado" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Amount in Order Currency" +msgstr "Valor na Moeda da Encomenda" + +#. module: purchase_advance_payment +#. odoo-python +#: code:addons/purchase_advance_payment/wizard/purchase_advance_payment_wizard.py:0 +#, python-format +msgid "Amount of advance is greater than residual amount on purchase" +msgstr "Valor do adiantamento é supeior ao valor residual da compra" + +#. module: purchase_advance_payment +#. odoo-python +#: code:addons/purchase_advance_payment/wizard/purchase_advance_payment_wizard.py:0 +#, python-format +msgid "Amount of advance must be positive." +msgstr "O valor do adiantamento deve ser positivo." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_res_config_settings__auto_post_purchase_advance_payments +msgid "Auto Post Purchase Advance Payments" +msgstr "Lançar Automaticamente Adiantamentos de Compra" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__available_payment_method_line_ids +msgid "Available Payment Method Line" +msgstr "Linha de Método de Pagamento Disponível" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Cancel" +msgstr "Cancelar" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__currency_amount +msgid "Curr. amount" +msgstr "Valor Moeda" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__currency_id +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Currency" +msgstr "Moeda" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__date +msgid "Date" +msgstr "Data" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__display_name +msgid "Display Name" +msgstr "Nome" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__id +msgid "ID" +msgstr "ID" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.res_config_settings_view_form_purchase +msgid "" +"If enabled, advance payments created from POs are automatically posted." +msgstr "" +"Caso esteja ativo, os adiantamentos criados a partir de encomendas serão " +"automaticamente lançados." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_id +msgid "Journal" +msgstr "Diário" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_currency_id +msgid "Journal Currency" +msgstr "Moeda do Diário" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase____last_update +msgid "Last Modified on" +msgstr "Última Modificação em" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__write_uid +msgid "Last Updated by" +msgstr "Última Modificação por" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__write_date +msgid "Last Updated on" +msgstr "Última Atualização em" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Make advance payment" +msgstr "Fazer adiantamento" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__not_paid +msgid "Not Paid" +msgstr "Não Pago" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Reconciled" +msgstr "Não Reconciliado" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Sent" +msgstr "Não Enviado" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__order_id +msgid "Order" +msgstr "Encomenda" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Order Due Amount" +msgstr "Valor em Dívida da Encomenda" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__paid +msgid "Paid" +msgstr "Pago" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__partial +msgid "Partially Paid" +msgstr "Pago Parcialmente" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form +msgid "Pay purchase advanced" +msgstr "Adiantamento de compra" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_method_line_id +msgid "Payment Method" +msgstr "Método de Pagamento" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_supplier_payment_tree +msgid "Payment Sent?" +msgstr "Pagamento Enviado?" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form +msgid "Payment advances" +msgstr "Adiantamentos" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__payment_line_ids +msgid "Payment move lines" +msgstr "Linhas de movimentos de adiantamento" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_account_payment +msgid "Payments" +msgstr "Pagamentos" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "Configurações de agrupamento de compras no aprovisionamento" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_payment__purchase_id +msgid "Purchase" +msgstr "Compra" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_purchase_order +msgid "Purchase Order" +msgstr "Encomenda" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "Pagamento de Compra" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_ref +msgid "Ref." +msgstr "Ref.ª" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__amount_residual +msgid "Residual amount" +msgstr "Valor Residual" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Vendor Advance Payments" +msgstr "Adiantamentos de Fornecedor" diff --git a/purchase_advance_payment/i18n/pt_BR.po b/purchase_advance_payment/i18n/pt_BR.po new file mode 100644 index 00000000000..999958a65dc --- /dev/null +++ b/purchase_advance_payment/i18n/pt_BR.po @@ -0,0 +1,269 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_advance_payment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-07 01:58+0000\n" +"Last-Translator: Rodrigo Sottomaior Macedo " +"\n" +"Language-Team: none\n" +"Language: pt_BR\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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_account_voucher_wizard_purchase +msgid "Account Voucher Wizard Purchase" +msgstr "Compra do assistente de voucher de conta" + +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_view_account_voucher_wizard +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Advance Payment" +msgstr "Pagamento Antecipado" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__advance_payment_status +msgid "Advance Payment Status" +msgstr "Situação Pagamento Antecipado" + +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_account_advance_payments_payable +#: model:ir.ui.menu,name:purchase_advance_payment.menu_account_advance_payments_payable +msgid "Advance Payments" +msgstr "Pagamentos antecipados" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_kpis_tree +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_view_tree +msgid "Amount Residual" +msgstr "Valor Residual" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__amount_total +msgid "Amount Total" +msgstr "Valor Total" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__amount_advance +msgid "Amount advanced" +msgstr "Valor Antecipado" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Amount in Order Currency" +msgstr "Valor na Moeda do Pedido" + +#. module: purchase_advance_payment +#. odoo-python +#: code:addons/purchase_advance_payment/wizard/purchase_advance_payment_wizard.py:0 +#, python-format +msgid "Amount of advance is greater than residual amount on purchase" +msgstr "O valor do adiantamento é maior que o valor residual na compra" + +#. module: purchase_advance_payment +#. odoo-python +#: code:addons/purchase_advance_payment/wizard/purchase_advance_payment_wizard.py:0 +#, python-format +msgid "Amount of advance must be positive." +msgstr "O valor do adiantamento deve ser positivo." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_res_config_settings__auto_post_purchase_advance_payments +msgid "Auto Post Purchase Advance Payments" +msgstr "Pagamentos antecipados de pós-compra automáticos" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__available_payment_method_line_ids +msgid "Available Payment Method Line" +msgstr "Linha de método de pagamento disponível" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Cancel" +msgstr "Cancelar" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__currency_amount +msgid "Curr. amount" +msgstr "Valor moeda" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__currency_id +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Currency" +msgstr "Moeda" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__date +msgid "Date" +msgstr "Data" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__display_name +msgid "Display Name" +msgstr "Nome Exibição" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__id +msgid "ID" +msgstr "ID" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.res_config_settings_view_form_purchase +msgid "If enabled, advance payments created from POs are automatically posted." +msgstr "" +"Se ativado, os adiantamentos criados a partir de pedidos de compra serão " +"lançados automaticamente." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_id +msgid "Journal" +msgstr "Diário" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_currency_id +msgid "Journal Currency" +msgstr "Moeda Díario" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase____last_update +msgid "Last Modified on" +msgstr "Última Modificação em" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__write_uid +msgid "Last Updated by" +msgstr "Última Atualização por" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__write_date +msgid "Last Updated on" +msgstr "Última Atualização em" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Make advance payment" +msgstr "Faça o Pagamento Antecipado" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__not_paid +msgid "Not Paid" +msgstr "Não Pago" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Reconciled" +msgstr "Não reconciliado" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Sent" +msgstr "Não enviado" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__order_id +msgid "Order" +msgstr "Pedido" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +msgid "Order Due Amount" +msgstr "Valor Devido do Pedido" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__paid +msgid "Paid" +msgstr "Pago" + +#. module: purchase_advance_payment +#: model:ir.model.fields.selection,name:purchase_advance_payment.selection__purchase_order__advance_payment_status__partial +msgid "Partially Paid" +msgstr "Parcialmente Pago" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form +msgid "Pay purchase advanced" +msgstr "Pagar Compra Antecipadamente" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_method_line_id +msgid "Payment Method" +msgstr "Forma de Pagamento" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_supplier_payment_tree +msgid "Payment Sent?" +msgstr "Pagamento enviado?" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form +msgid "Payment advances" +msgstr "Adiantamentos de pagamento" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__payment_line_ids +msgid "Payment move lines" +msgstr "Linhas Movimento Pagamento" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_account_payment +msgid "Payments" +msgstr "Pagamentos" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "Configurações de agrupamento de compras de compras" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_payment__purchase_id +msgid "Purchase" +msgstr "Compra" + +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_purchase_order +msgid "Purchase Order" +msgstr "Pedido Compra" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "Pagamento de compra" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_ref +msgid "Ref." +msgstr "Ref." + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__amount_residual +msgid "Residual amount" +msgstr "Valor Residual" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Vendor Advance Payments" +msgstr "Pagamentos antecipados do fornecedor" + +#~ msgid "Operation" +#~ msgstr "Operação" + +#~ msgid "Order Currency" +#~ msgstr "Moeda Pedido" diff --git a/purchase_advance_payment/i18n/purchase_advance_payment.pot b/purchase_advance_payment/i18n/purchase_advance_payment.pot index b8b69c32c05..bf96902306c 100644 --- a/purchase_advance_payment/i18n/purchase_advance_payment.pot +++ b/purchase_advance_payment/i18n/purchase_advance_payment.pot @@ -29,6 +29,12 @@ msgstr "" msgid "Advance Payment Status" msgstr "" +#. module: purchase_advance_payment +#: model:ir.actions.act_window,name:purchase_advance_payment.action_account_advance_payments_payable +#: model:ir.ui.menu,name:purchase_advance_payment.menu_account_advance_payments_payable +msgid "Advance Payments" +msgstr "" + #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_kpis_tree #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_view_tree @@ -64,6 +70,16 @@ msgstr "" msgid "Amount of advance must be positive." msgstr "" +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_res_config_settings__auto_post_purchase_advance_payments +msgid "Auto Post Purchase Advance Payments" +msgstr "" + +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__available_payment_method_line_ids +msgid "Available Payment Method Line" +msgstr "" + #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard msgid "Cancel" @@ -105,6 +121,12 @@ msgstr "" msgid "ID" msgstr "" +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.res_config_settings_view_form_purchase +msgid "" +"If enabled, advance payments created from POs are automatically posted." +msgstr "" + #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__journal_id msgid "Journal" @@ -141,18 +163,18 @@ msgid "Not Paid" msgstr "" #. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard -msgid "Operation" +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Reconciled" msgstr "" #. module: purchase_advance_payment -#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__order_id -msgid "Order" +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Not Sent" msgstr "" #. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard -msgid "Order Currency" +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__order_id +msgid "Order" msgstr "" #. module: purchase_advance_payment @@ -171,16 +193,20 @@ msgid "Partially Paid" msgstr "" #. module: purchase_advance_payment -#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form msgid "Pay purchase advanced" msgstr "" #. module: purchase_advance_payment -#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_voucher_wizard +#: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_method_line_id msgid "Payment Method" msgstr "" +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_supplier_payment_tree +msgid "Payment Sent?" +msgstr "" + #. module: purchase_advance_payment #: model_terms:ir.ui.view,arch_db:purchase_advance_payment.purchase_order_form msgid "Payment advances" @@ -196,6 +222,11 @@ msgstr "" msgid "Payments" msgstr "" +#. module: purchase_advance_payment +#: model:ir.model,name:purchase_advance_payment.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_payment__purchase_id msgid "Purchase" @@ -206,6 +237,11 @@ msgstr "" msgid "Purchase Order" msgstr "" +#. module: purchase_advance_payment +#: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "" + #. module: purchase_advance_payment #: model:ir.model.fields,field_description:purchase_advance_payment.field_account_voucher_wizard_purchase__payment_ref msgid "Ref." @@ -215,3 +251,8 @@ msgstr "" #: model:ir.model.fields,field_description:purchase_advance_payment.field_purchase_order__amount_residual msgid "Residual amount" msgstr "" + +#. module: purchase_advance_payment +#: model_terms:ir.ui.view,arch_db:purchase_advance_payment.view_account_payment_search +msgid "Vendor Advance Payments" +msgstr "" diff --git a/purchase_advance_payment/models/__init__.py b/purchase_advance_payment/models/__init__.py index 2a7a713d96d..0c3cdd7fe78 100644 --- a/purchase_advance_payment/models/__init__.py +++ b/purchase_advance_payment/models/__init__.py @@ -1,2 +1,3 @@ from . import payment from . import purchase_order +from . import res_config_settings diff --git a/purchase_advance_payment/models/res_config_settings.py b/purchase_advance_payment/models/res_config_settings.py new file mode 100644 index 00000000000..1e362472fdf --- /dev/null +++ b/purchase_advance_payment/models/res_config_settings.py @@ -0,0 +1,12 @@ +# Copyright 2024 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html) + +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + auto_post_purchase_advance_payments = fields.Boolean( + config_parameter="purchase_advance_payment.auto_post_advance_payments", + ) diff --git a/purchase_advance_payment/static/description/index.html b/purchase_advance_payment/static/description/index.html index b0f5f98337f..c8795678b07 100644 --- a/purchase_advance_payment/static/description/index.html +++ b/purchase_advance_payment/static/description/index.html @@ -1,20 +1,20 @@ - - + Purchase Advance Payment + + +
+

Purchase Blanket Orders

+ + +

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

+

A purchase blanket order is a pre-agreement to purchase a certain number of +quantities of products at a specific price. From a confirmed blanket order, +the users can create new purchase orders at such price, until the blanket +order expires due to reaching the validity date.

+

Table of contents

+ +
+

Usage

+

A new menu in the Purchase area is created, allowing users to create new blanket orders.

+

To create a new Purchase Blanket Order go to the purchase menu in the Purchase section:

+Blanket Orders menu +

Hitting the button create will open the form view in which we can introduce the following +information:

+
    +
  • Vendor
  • +
  • Payment Terms
  • +
  • Ordering and Validity dates
  • +
  • +
    Order lines:
    +
      +
    • Product
    • +
    • Accorded price
    • +
    • Original, Ordered, Invoiced, Received and Remaining quantities
    • +
    +
    +
    +
  • +
  • Terms and Conditions of the Blanket Order
  • +
+Blanket Orders form +

From the form, once the Blanket Order has been confirmed and its state is open, the user can +create a Purchase Order, check the Purchase Orders associated to the Blanket Order and/or +see the Blanket Order lines associated to the BO.

+Actions that can be done from Blanket Order +

Hitting the button Create Purchase Order will open a wizard that will ask for the amount of each +product in the BO lines for which the Purchase Order will be created.

+Create Purchase Order from Blanket Order +

Installing this module will add an additional menu which will show all the blanket order lines +currently defined in the system. From this list the user can create customized Purchase Orders +selecting the lines for which the PO (or POs if the vendors are different) is (are) created.

+Blanket Order lines and actions +

In the Purchase Order form one field is added in the PO lines, the Blanket Order line field. This +field keeps track to which Blanket Order line the PO line is associated. Upon adding a new product +in a newly created Purchase Order a blanket order line will be suggested depending on the following +factors:

+
    +
  • Closer Validity date
  • +
  • Remaining quantity > Quantity introduced in the Purchase Order line
  • +
+New field added in Purchase Order Line +
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • ForgeFlow
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_blanket_order/tests/__init__.py b/purchase_blanket_order/tests/__init__.py new file mode 100644 index 00000000000..21834e24230 --- /dev/null +++ b/purchase_blanket_order/tests/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_purchase_blanket_order +from . import test_purchase_order diff --git a/purchase_blanket_order/tests/test_purchase_blanket_order.py b/purchase_blanket_order/tests/test_purchase_blanket_order.py new file mode 100644 index 00000000000..48e36724332 --- /dev/null +++ b/purchase_blanket_order/tests/test_purchase_blanket_order.py @@ -0,0 +1,298 @@ +# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from datetime import date, timedelta + +from odoo import fields +from odoo.exceptions import UserError +from odoo.tests import common + + +class TestPurchaseBlanketOrders(common.TransactionCase): + def setUp(self): + super().setUp() + self.blanket_order_obj = self.env["purchase.blanket.order"] + self.blanket_order_line_obj = self.env["purchase.blanket.order.line"] + self.blanket_order_wiz_obj = self.env["purchase.blanket.order.wizard"] + + self.user_test = self.env["res.users"].create( + {"name": "Test user", "login": "test_login"} + ) + self.partner = self.env["res.partner"].create( + {"name": "TEST SUPPLIER", "supplier_rank": 1} + ) + self.payment_term = self.env.ref("account.account_payment_term_30days") + + # Seller IDS + seller = self.env["product.supplierinfo"].create( + {"partner_id": self.partner.id, "price": 30.0} + ) + + self.product = self.env["product.product"].create( + { + "name": "Demo", + "categ_id": self.env.ref("product.product_category_1").id, + "standard_price": 35.0, + "seller_ids": [(6, 0, [seller.id])], + "type": "consu", + "uom_id": self.env.ref("uom.product_uom_unit").id, + "default_code": "PROD_DEL01", + "description_purchase": "Purchase Description", + } + ) + self.product2 = self.env["product.product"].create( + { + "name": "Demo 2", + "categ_id": self.env.ref("product.product_category_1").id, + "standard_price": 50.0, + "type": "consu", + "uom_id": self.env.ref("uom.product_uom_unit").id, + "default_code": "PROD_DEL02", + } + ) + + self.yesterday = date.today() - timedelta(days=1) + self.tomorrow = date.today() + timedelta(days=1) + + def _get_po_from_wizard(self, res): + return self.env[res["res_model"]].search(res["domain"]) + + def test_01_create_blanket_order_flow(self): + """We create a blanket order and check constrains to confirm BO""" + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "validity_date": fields.Date.to_string(self.yesterday), + "payment_term_id": self.payment_term.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "original_uom_qty": 20.0, + "price_unit": 0.0, # will be updated later + "product_uom": self.product.uom_id.id, + }, + ) + ], + } + ) + blanket_order.sudo().onchange_partner_id() + blanket_order.line_ids[0].write({"product_uom": False}) + blanket_order.line_ids[0].sudo().onchange_product() + blanket_order._compute_line_count() + blanket_order._compute_uom_qty() + name = ( + "[{}] {}".format(self.product.name, self.product.code) + + "\n" + + self.product.description_purchase + ) + self.assertEqual(blanket_order.line_ids[0].name, name) + self.assertEqual(blanket_order.line_ids[0].product_uom, self.product.uom_id) + + self.assertEqual(blanket_order.state, "draft") + self.assertEqual(blanket_order.line_ids[0].price_unit, 30.0) + self.assertEqual(blanket_order.original_uom_qty, 20.0) + self.assertEqual(blanket_order.ordered_uom_qty, 0.0) + self.assertEqual(blanket_order.remaining_uom_qty, 20.0) + + # date in the past + with self.assertRaises(UserError): + blanket_order.sudo().action_confirm() + + blanket_order.validity_date = fields.Date.to_string(self.tomorrow) + initial_name = blanket_order.name + blanket_order.sudo().action_confirm() + self.assertNotEqual(initial_name, blanket_order.name) + + blanket_order.sudo().action_cancel() + self.assertEqual(blanket_order.state, "expired") + blanket_order.sudo().set_to_draft() + self.assertEqual(blanket_order.state, "draft") + previous_name = blanket_order.name + blanket_order.sudo().action_confirm() + self.assertEqual(previous_name, blanket_order.name) + + self.assertEqual(blanket_order.state, "open") + blanket_order.action_view_purchase_blanket_order_line() + + # Search view check + blanket_order._search_original_uom_qty(">=", 0.0) + blanket_order._search_ordered_uom_qty(">=", 0.0) + blanket_order._search_invoiced_uom_qty(">=", 0.0) + blanket_order._search_received_uom_qty(">=", 0.0) + blanket_order._search_remaining_uom_qty(">=", 0.0) + + def test_02_create_purchase_orders_from_blanket_order(self): + """We create a blanket order and create two purchase orders""" + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "partner_ref": "REF", + "validity_date": fields.Date.to_string(self.tomorrow), + "payment_term_id": self.payment_term.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "original_uom_qty": 20.0, + "price_unit": 30.0, + }, + ) + ], + } + ) + blanket_order.sudo().onchange_partner_id() + + with self.assertRaises(UserError): + # Blanket order is not confirmed + self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="purchase.blanket.order" + ).create({}) + blanket_order.sudo().action_confirm() + + wizard1 = self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="purchase.blanket.order" + ).create({}) + wizard1.line_ids[0].write({"qty": 30.0}) + + with self.assertRaises(UserError): + # Wizard quantity greater than remaining quantity + wizard1.sudo().create_purchase_order() + wizard1.line_ids[0].write({"qty": 10.0}) + res = wizard1.sudo().create_purchase_order() + po = self._get_po_from_wizard(res) + self.assertEqual(po.partner_ref, "REF") + + wizard2 = self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="purchase.blanket.order" + ).create({}) + wizard2.line_ids[0].write({"qty": 10.0}) + res = wizard2.sudo().create_purchase_order() + po = self._get_po_from_wizard(res) + self.assertEqual(po.partner_ref, "REF") + + with self.assertRaises(UserError): + # Blanket order already completed + self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="purchase.blanket.order" + ).create({}) + + self.assertEqual(blanket_order.state, "done") + + self.assertEqual(blanket_order.purchase_count, 2) + + view_action = blanket_order.action_view_purchase_orders() + domain_ids = view_action["domain"][0][2] + self.assertEqual(len(domain_ids), 2) + + def test_03_create_purchase_orders_from_blanket_order_line(self): + """We create a blanket order and create two purchase orders + from the blanket order lines""" + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "partner_ref": "REF", + "validity_date": fields.Date.to_string(self.tomorrow), + "payment_term_id": self.payment_term.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "original_uom_qty": 20.0, + "price_unit": 30.0, + }, + ), + ( + 0, + 0, + { + "product_id": self.product2.id, + "product_uom": self.product2.uom_id.id, + "original_uom_qty": 50.0, + "price_unit": 60.0, + }, + ), + ], + } + ) + blanket_order.sudo().onchange_partner_id() + blanket_order.sudo().action_confirm() + + bo_lines = blanket_order.line_ids + self.assertEqual(blanket_order.line_count, 2) + + wizard1 = self.blanket_order_wiz_obj.with_context( + active_ids=[bo_lines[0].id, bo_lines[1].id] + ).create({}) + self.assertEqual(len(wizard1.line_ids), 2) + wizard1.line_ids[0].write({"qty": 10.0}) + wizard1.line_ids[1].write({"qty": 20.0}) + wizard1.sudo().create_purchase_order() + + self.assertEqual(bo_lines[0].remaining_uom_qty, 10.0) + self.assertEqual(bo_lines[1].remaining_uom_qty, 30.0) + + def test_04_constraints_blanket_order(self): + """We create a blanket order and check constraints""" + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "partner_ref": "REF", + "validity_date": fields.Date.to_string(self.tomorrow), + "payment_term_id": self.payment_term.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "original_uom_qty": 20.0, + "price_unit": 30.0, + }, + ) + ], + } + ) + blanket_order.write({"partner_id": False}) + blanket_order.onchange_partner_id() + self.assertFalse(blanket_order.payment_term_id) + self.assertFalse(blanket_order.fiscal_position_id) + + self.partner.user_id = self.user_test + blanket_order.write({"partner_id": self.partner.id}) + blanket_order.onchange_partner_id() + self.assertEqual(blanket_order.user_id, self.user_test) + blanket_order.sudo().action_confirm() + self.assertEqual(blanket_order.state, "open") + + # remove open BO + with self.assertRaises(UserError): + blanket_order.sudo().unlink() + + wizard1 = self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="purchase.blanket.order" + ).create({}) + wizard1.line_ids[0].write({"qty": 10.0}) + res = wizard1.sudo().create_purchase_order() + po = self._get_po_from_wizard(res) + + # cancel BO with PO not cancelled + with self.assertRaises(UserError): + blanket_order.sudo().action_cancel() + + po.button_cancel() + blanket_order.sudo().action_cancel() + + with self.assertRaises(UserError): + # Blanket order expired + self.blanket_order_wiz_obj.with_context( + active_id=blanket_order.id, active_model="purchase.blanket.order" + ).create({}) diff --git a/purchase_blanket_order/tests/test_purchase_order.py b/purchase_blanket_order/tests/test_purchase_order.py new file mode 100644 index 00000000000..4051b5bdd20 --- /dev/null +++ b/purchase_blanket_order/tests/test_purchase_order.py @@ -0,0 +1,217 @@ +# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from datetime import date, timedelta + +from odoo import fields +from odoo.exceptions import ValidationError +from odoo.tests import common + + +class TestPurchaseOrder(common.TransactionCase): + def setUp(self): + super().setUp() + self.blanket_order_obj = self.env["purchase.blanket.order"] + self.blanket_order_line_obj = self.env["purchase.blanket.order.line"] + self.purchase_order_obj = self.env["purchase.order"] + self.purchase_order_line_obj = self.env["purchase.order.line"] + + self.partner = self.env["res.partner"].create( + {"name": "TEST SUPPLIER", "supplier_rank": 1} + ) + self.partner_2 = self.env["res.partner"].create( + {"name": "TEST SUPPLIER 2", "supplier_rank": 2} + ) + self.payment_term = self.env.ref("account.account_payment_term_30days") + + # Seller IDS + seller = self.env["product.supplierinfo"].create( + {"partner_id": self.partner.id, "price": 30.0} + ) + + self.product = self.env["product.product"].create( + { + "name": "Demo", + "categ_id": self.env.ref("product.product_category_1").id, + "standard_price": 35.0, + "seller_ids": [(6, 0, [seller.id])], + "type": "consu", + "uom_id": self.env.ref("uom.product_uom_unit").id, + "default_code": "PROD_DEL01", + } + ) + self.product_2 = self.env["product.product"].create( + { + "name": "Demo 2", + "categ_id": self.env.ref("product.product_category_1").id, + "standard_price": 35.0, + "seller_ids": [(6, 0, [seller.id])], + "type": "consu", + "uom_id": self.env.ref("uom.product_uom_unit").id, + "default_code": "PROD_DEL02", + } + ) + self.validity = date.today() + timedelta(days=365) + self.date_schedule_1 = date.today() + timedelta(days=10) + self.date_schedule_2 = date.today() + timedelta(days=20) + self.currency_test = self.env["res.currency"].create( + {"name": "Test Currency", "symbol": "T"} + ) + + def create_blanket_order_01(self): + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "validity_date": fields.Date.to_string(self.validity), + "payment_term_id": self.payment_term.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "date_schedule": fields.Date.to_string( + self.date_schedule_1 + ), + "original_uom_qty": 20.0, + "price_unit": 30.0, + }, + ), + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "date_schedule": fields.Date.to_string( + self.date_schedule_2 + ), + "original_uom_qty": 20.0, + "price_unit": 30.0, + }, + ), + ], + } + ) + blanket_order.sudo().onchange_partner_id() + return blanket_order + + def create_blanket_order_02(self): + blanket_order = self.blanket_order_obj.create( + { + "partner_id": self.partner.id, + "validity_date": fields.Date.to_string(self.validity), + "payment_term_id": self.payment_term.id, + "line_ids": [ + ( + 0, + 0, + { + "product_id": self.product.id, + "product_uom": self.product.uom_id.id, + "original_uom_qty": 20.0, + "price_unit": 30.0, + }, + ), + ( + 0, + 0, + { + "product_id": self.product_2.id, + "product_uom": self.product.uom_id.id, + "original_uom_qty": 20.0, + "price_unit": 30.0, + }, + ), + ], + } + ) + blanket_order.sudo().onchange_partner_id() + return blanket_order + + def test_01_create_purchase_order(self): + blanket_order = self.create_blanket_order_01() + blanket_order.sudo().action_confirm() + bo_lines = self.blanket_order_line_obj.search( + [("order_id", "=", blanket_order.id)] + ) + self.assertEqual(len(bo_lines), 2) + + po = self.purchase_order_obj.create( + { + "partner_id": self.partner.id, + "order_line": [ + ( + 0, + 0, + { + "name": self.product.name, + "product_id": self.product.id, + "product_qty": 5.0, + "product_uom": self.product.uom_po_id.id, + "date_planned": date.today(), + "price_unit": 10.0, + }, + ) + ], + } + ) + po_line = po.order_line[0] + po_line.with_context(from_purchase_order=True).name_get() + po_line.onchange_product_id() + self.assertEqual(po_line._get_eligible_bo_lines(), bo_lines) + bo_line_assigned = self.blanket_order_line_obj.search( + [("date_schedule", "=", fields.Date.to_string(self.date_schedule_1))] + ) + self.assertEqual(po_line.blanket_order_line, bo_line_assigned) + + def test_02_create_purchase_order(self): + blanket_order = self.create_blanket_order_02() + blanket_order.sudo().action_confirm() + bo_lines = self.blanket_order_line_obj.search( + [("order_id", "=", blanket_order.id)] + ) + self.assertEqual(len(bo_lines), 2) + + po = self.purchase_order_obj.create( + { + "partner_id": self.partner.id, + "order_line": [ + ( + 0, + 0, + { + "name": self.product.name, + "product_id": self.product.id, + "product_qty": 5.0, + "product_uom": self.product.uom_po_id.id, + "date_planned": date.today(), + "price_unit": 10.0, + }, + ) + ], + } + ) + po_line = po.order_line[0] + po_line.with_context(from_purchase_order=True).name_get() + po_line.onchange_product_id() + self.assertEqual( + po_line._get_eligible_bo_lines(), + bo_lines.filtered(lambda l: l.product_id == self.product), + ) + bo_line_assigned = self.blanket_order_line_obj.search( + [ + ("order_id", "=", blanket_order.id), + ("product_id", "=", self.product.id), + ("date_schedule", "=", False), + ] + ) + self.assertEqual(po_line.blanket_order_line, bo_line_assigned) + + # change currency of the PO line + with self.assertRaises(ValidationError): + po.write({"currency_id": self.currency_test}) + + # change partner of the PO line + with self.assertRaises(ValidationError): + po.write({"partner_id": self.partner_2}) diff --git a/purchase_blanket_order/views/purchase_blanket_order_views.xml b/purchase_blanket_order/views/purchase_blanket_order_views.xml new file mode 100644 index 00000000000..dbb09affb06 --- /dev/null +++ b/purchase_blanket_order/views/purchase_blanket_order_views.xml @@ -0,0 +1,455 @@ + + + + + purchase.blanket.order.tree + purchase.blanket.order + + + + + + + + + + + + + + + purchase.blanket.order.form + purchase.blanket.order + +
+
+
+ + +
+ + +
+
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + +
+ + + +
+ + + + + purchase.blanket.order.search + purchase.blanket.order + + + + + + + + + + + + + + + + + + + Blanket Orders + ir.actions.act_window + purchase.blanket.order + tree,form + + [] + {} + +

+ Click to create a blanket order that can be converted into a purchase order. +

+

+ Use this menu to search within your blanket orders. For each blanket order, + you can track the related discussion with the vendor, control + the products received and control the vendor bills. +

+
+
+ + purchase.blanket.order.line.tree + purchase.blanket.order.line + + + + + + + + + + + + + + + + + + + + purchase.blanket.order.line.form + purchase.blanket.order.line + + +
+ +

+ +

+ + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+ + purchase.blanket.order.line.search + purchase.blanket.order.line + + + + + + + + + Blanket Order Lines + ir.actions.act_window + purchase.blanket.order.line + tree,form + + + + + diff --git a/purchase_blanket_order/views/purchase_config_settings.xml b/purchase_blanket_order/views/purchase_config_settings.xml new file mode 100644 index 00000000000..a9657d84ee2 --- /dev/null +++ b/purchase_blanket_order/views/purchase_config_settings.xml @@ -0,0 +1,34 @@ + + + + + res.config.settings.form (in purchase_blanket_order) + res.config.settings + + + +

Blanket Orders

+
+
+
+ +
+
+
+
+
+
+
+
+
diff --git a/purchase_blanket_order/views/purchase_order_views.xml b/purchase_blanket_order/views/purchase_order_views.xml new file mode 100644 index 00000000000..f635a650293 --- /dev/null +++ b/purchase_blanket_order/views/purchase_order_views.xml @@ -0,0 +1,43 @@ + + + + + purchase.order.from.blanket.form + purchase.order + + + + + + + {'from_purchase_order': True} + + + + + purchase.order.from.blanket.form - disable adding lines + purchase.order + + + + blanket_order_id==False + + + + + diff --git a/purchase_blanket_order/wizard/__init__.py b/purchase_blanket_order/wizard/__init__.py new file mode 100644 index 00000000000..c45a6c80631 --- /dev/null +++ b/purchase_blanket_order/wizard/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import create_purchase_orders diff --git a/purchase_blanket_order/wizard/create_purchase_orders.py b/purchase_blanket_order/wizard/create_purchase_orders.py new file mode 100644 index 00000000000..ece0f18a1b5 --- /dev/null +++ b/purchase_blanket_order/wizard/create_purchase_orders.py @@ -0,0 +1,221 @@ +# Copyright (C) 2018 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from collections import defaultdict + +from odoo import _, api, fields, models +from odoo.exceptions import UserError +from odoo.tools import float_is_zero + + +class BlanketOrderWizard(models.TransientModel): + _name = "purchase.blanket.order.wizard" + _description = "Blanket Order Wizard" + + @api.model + def _default_order(self): + # in case the cron hasn't run + active_model = self.env.context.get("active_model", False) + self.env["purchase.blanket.order"].expire_orders() + if ( + not self.env.context.get("active_id") + or active_model != "purchase.blanket.order" + ): + return False + blanket_order = self.env["purchase.blanket.order"].search( + [("id", "=", self.env.context["active_id"])], limit=1 + ) + if blanket_order.state == "expired": + raise UserError( + _("You can't create a purchase order from an expired blanket order!") + ) + return blanket_order + + @api.model + def _check_valid_blanket_order_line(self, bo_lines): + precision = self.env["decimal.precision"].precision_get( + "Product Unit of Measure" + ) + company_id = False + + if float_is_zero( + sum(bo_lines.mapped("remaining_uom_qty")), precision_digits=precision + ): + raise UserError(_("All lines have already been completed.")) + + for line in bo_lines: + + if line.order_id.state != "open": + raise UserError( + _("Purchase Blanket Order %s is not open") % line.order_id.name + ) + + line_company_id = line.company_id and line.company_id.id or False + if company_id is not False and line_company_id != company_id: + raise UserError(_("You have to select lines from the same company.")) + else: + company_id = line_company_id + + @api.model + def _default_lines(self): + blanket_order_line_obj = self.env["purchase.blanket.order.line"] + blanket_order_line_ids = self.env.context.get("active_ids", False) + active_model = self.env.context.get("active_model", False) + + if active_model == "purchase.blanket.order": + bo_lines = self._default_order().line_ids + else: + bo_lines = blanket_order_line_obj.browse(blanket_order_line_ids) + + self._check_valid_blanket_order_line(bo_lines) + + lines = [ + ( + 0, + 0, + { + "blanket_line_id": line.id, + "product_id": line.product_id.id, + "date_schedule": line.date_schedule, + "remaining_uom_qty": line.remaining_uom_qty, + "price_unit": line.price_unit, + "product_uom": line.product_uom, + "qty": line.remaining_uom_qty, + "partner_id": line.partner_id, + }, + ) + for line in bo_lines + if line.remaining_uom_qty > 0 + ] + return lines + + blanket_order_id = fields.Many2one( + "purchase.blanket.order", readonly=True, default=_default_order + ) + purchase_order_id = fields.Many2one( + "purchase.order", + string="Purchase Order", + domain=[("state", "=", "draft")], + ) + line_ids = fields.One2many( + "purchase.blanket.order.wizard.line", + "wizard_id", + string="Lines", + default=_default_lines, + ) + + def create_purchase_order(self): + + order_lines_by_supplier = defaultdict(list) + currency_id = 0 + payment_term_id = 0 + for line in self.line_ids: + if line.qty == 0.0: + continue + + if line.qty > line.remaining_uom_qty: + raise UserError(_("You can't order more than the remaining quantities")) + + date_planned = line.blanket_line_id.date_schedule + + vals = { + "product_id": line.product_id.id, + "name": line.product_id.name, + "date_planned": date_planned + if date_planned + else line.blanket_line_id.order_id.date_start, + "product_uom": line.product_uom.id, + "sequence": line.blanket_line_id.sequence, + "price_unit": line.blanket_line_id.price_unit, + "blanket_order_line": line.blanket_line_id.id, + "product_qty": line.qty, + "taxes_id": [(6, 0, line.taxes_id.ids)], + } + order_lines_by_supplier[line.partner_id.id].append((0, 0, vals)) + + if currency_id == 0: + currency_id = line.blanket_line_id.order_id.currency_id.id + elif currency_id != line.blanket_line_id.order_id.currency_id.id: + currency_id = False + + if payment_term_id == 0: + payment_term_id = line.blanket_line_id.payment_term_id.id + elif payment_term_id != line.blanket_line_id.payment_term_id.id: + payment_term_id = False + + if not order_lines_by_supplier: + raise UserError(_("An order can't be empty")) + + if not currency_id: + raise UserError( + _( + "Can not create Purchase Order from Blanket " + "Order lines with different currencies" + ) + ) + + res = [] + for supplier in order_lines_by_supplier: + order_vals = { + "partner_id": int(supplier), + } + if self.blanket_order_id: + order_vals.update( + { + "partner_ref": self.blanket_order_id.partner_ref, + "origin": self.blanket_order_id.name, + } + ) + order_vals.update( + { + "currency_id": currency_id if currency_id else False, + "payment_term_id": (payment_term_id if payment_term_id else False), + "order_line": order_lines_by_supplier[supplier], + } + ) + purchase_order = self.env["purchase.order"].create(order_vals) + res.append(purchase_order.id) + return { + "domain": [("id", "in", res)], + "name": _("RFQ"), + "view_mode": "tree,form", + "res_model": "purchase.order", + "view_id": False, + "context": {"from_purchase_order": True}, + "type": "ir.actions.act_window", + } + + +class BlanketOrderWizardLine(models.TransientModel): + _name = "purchase.blanket.order.wizard.line" + _description = "Purchase Blanket Order Wizard Line" + + wizard_id = fields.Many2one("purchase.blanket.order.wizard") + blanket_line_id = fields.Many2one("purchase.blanket.order.line") + product_id = fields.Many2one( + "product.product", + related="blanket_line_id.product_id", + string="Product", + readonly=True, + ) + product_uom = fields.Many2one( + "uom.uom", + related="blanket_line_id.product_uom", + string="Unit of Measure", + readonly=True, + ) + date_schedule = fields.Date(related="blanket_line_id.date_schedule", readonly=True) + remaining_uom_qty = fields.Float( + related="blanket_line_id.remaining_uom_qty", readonly=True + ) + qty = fields.Float(string="Quantity to Order", required=True) + price_unit = fields.Float(related="blanket_line_id.price_unit", readonly=True) + currency_id = fields.Many2one("res.currency", related="blanket_line_id.currency_id") + partner_id = fields.Many2one( + "res.partner", + related="blanket_line_id.partner_id", + string="Vendor", + readonly=True, + ) + taxes_id = fields.Many2many( + "account.tax", related="blanket_line_id.taxes_id", readonly=True + ) diff --git a/purchase_blanket_order/wizard/create_purchase_orders.xml b/purchase_blanket_order/wizard/create_purchase_orders.xml new file mode 100644 index 00000000000..7750a32d78f --- /dev/null +++ b/purchase_blanket_order/wizard/create_purchase_orders.xml @@ -0,0 +1,45 @@ + + + + Create Purchase Order + purchase.blanket.order.wizard + +
+
+ + + + + + + + + + + + +
+
+
+
+
+
+ + Create RFQ + ir.actions.act_window + purchase.blanket.order.wizard + form + new + + +
diff --git a/purchase_cancel_reason/README.rst b/purchase_cancel_reason/README.rst new file mode 100644 index 00000000000..16a8b2d8691 --- /dev/null +++ b/purchase_cancel_reason/README.rst @@ -0,0 +1,90 @@ +====================== +Purchase Cancel Reason +====================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:46f98df02187dd3f0d778ab4eead1bf8e931916c7d7ce2f408885e4cacc3e08e + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_cancel_reason + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_cancel_reason + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +When a purchase order is canceled, a reason must be given, it is chosen from a configured list. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* During purchase order state equal to Draft, RFQ Sent or Purchase Order +* Click at "Cancel" button, a wizard will show a list of cancel reasons +* Choose a reason and confirm cancellation, the reason will be stamped in the purchase order + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Camptocamp +* Okia SPRL + +Contributors +~~~~~~~~~~~~ + +* Guewen Baconnier, Camptocamp SA +* Sylvain Van Hoof + +* `Ecosoft `_: + + * Kitti U. + * Tharathip C. + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_cancel_reason/__init__.py b/purchase_cancel_reason/__init__.py new file mode 100644 index 00000000000..19fb56ee181 --- /dev/null +++ b/purchase_cancel_reason/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2013 Guewen Baconnier, Camptocamp SA +# Copyright 2017 Okia SPRL +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import wizard +from . import models diff --git a/purchase_cancel_reason/__manifest__.py b/purchase_cancel_reason/__manifest__.py new file mode 100644 index 00000000000..248a6092cf7 --- /dev/null +++ b/purchase_cancel_reason/__manifest__.py @@ -0,0 +1,22 @@ +# Copyright 2013 Guewen Baconnier, Camptocamp SA +# Copyright 2017 Okia SPRL +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + "name": "Purchase Cancel Reason", + "version": "16.0.1.0.0", + "author": "Camptocamp, Okia SPRL, Odoo Community Association (OCA)", + "category": "Purchase", + "license": "AGPL-3", + "complexity": "normal", + "website": "https://github.com/OCA/purchase-workflow", + "depends": ["purchase"], + "data": [ + "security/ir.model.access.csv", + "wizard/purchase_order_cancel.xml", + "views/purchase_order.xml", + "views/purchase_order_cancel_reason.xml", + "data/purchase_order_cancel_reason.xml", + ], + "auto_install": False, + "installable": True, +} diff --git a/purchase_cancel_reason/data/purchase_order_cancel_reason.xml b/purchase_cancel_reason/data/purchase_order_cancel_reason.xml new file mode 100644 index 00000000000..0ba3084b72f --- /dev/null +++ b/purchase_cancel_reason/data/purchase_order_cancel_reason.xml @@ -0,0 +1,12 @@ + + + + Just for Quotation + + + Service no longer needed + + + Other Service Provider selected + + diff --git a/purchase_cancel_reason/i18n/am.po b/purchase_cancel_reason/i18n/am.po new file mode 100644 index 00000000000..8aadc811a31 --- /dev/null +++ b/purchase_cancel_reason/i18n/am.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Amharic (https://www.transifex.com/oca/teams/23907/am/)\n" +"Language: am\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/ar.po b/purchase_cancel_reason/i18n/ar.po new file mode 100644 index 00000000000..abcaa659a62 --- /dev/null +++ b/purchase_cancel_reason/i18n/ar.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Arabic (https://www.transifex.com/oca/teams/23907/ar/)\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "أنشئ بواسطة" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "أنشئ في" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "المعرف" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "آخر تحديث بواسطة" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "آخر تحديث في" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/bg.po b/purchase_cancel_reason/i18n/bg.po new file mode 100644 index 00000000000..26bed732aa5 --- /dev/null +++ b/purchase_cancel_reason/i18n/bg.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Bulgarian (https://www.transifex.com/oca/teams/23907/bg/)\n" +"Language: bg\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Създадено от" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Създадено на" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Последно обновено от" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Последно обновено на" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/bs.po b/purchase_cancel_reason/i18n/bs.po new file mode 100644 index 00000000000..e585883ebef --- /dev/null +++ b/purchase_cancel_reason/i18n/bs.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Bosnian (https://www.transifex.com/oca/teams/23907/bs/)\n" +"Language: bs\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/ca.po b/purchase_cancel_reason/i18n/ca.po new file mode 100644 index 00000000000..c048447168e --- /dev/null +++ b/purchase_cancel_reason/i18n/ca.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n" +"Language: ca\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creat per" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creat el" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Darrera Actualització per" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Darrera Actualització el" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/cs.po b/purchase_cancel_reason/i18n/cs.po new file mode 100644 index 00000000000..a50e172ae23 --- /dev/null +++ b/purchase_cancel_reason/i18n/cs.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Czech (https://www.transifex.com/oca/teams/23907/cs/)\n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Vytvořil(a)" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Vytvořeno" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Naposled upraveno" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Naposled upraveno" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/da.po b/purchase_cancel_reason/i18n/da.po new file mode 100644 index 00000000000..305db173107 --- /dev/null +++ b/purchase_cancel_reason/i18n/da.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Danish (https://www.transifex.com/oca/teams/23907/da/)\n" +"Language: da\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Oprettet af" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Oprettet den" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "Id" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Sidst opdateret af" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Sidst opdateret den" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/de.po b/purchase_cancel_reason/i18n/de.po new file mode 100644 index 00000000000..a4c464abeab --- /dev/null +++ b/purchase_cancel_reason/i18n/de.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Erstellt von" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Erstellt am:" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Anzeigebezeichnung" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Zuletzt geändert am" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert von" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Bestellauftrag" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/el_GR.po b/purchase_cancel_reason/i18n/el_GR.po new file mode 100644 index 00000000000..51ab4351953 --- /dev/null +++ b/purchase_cancel_reason/i18n/el_GR.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/" +"el_GR/)\n" +"Language: el_GR\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Δημιουργήθηκε από " + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Δημιουργήθηκε στις" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "Κωδικός" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Τελευταία ενημέρωση από" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Τελευταία ενημέρωση στις" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/en_GB.po b/purchase_cancel_reason/i18n/en_GB.po new file mode 100644 index 00000000000..22903e46edb --- /dev/null +++ b/purchase_cancel_reason/i18n/en_GB.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: English (United Kingdom) (https://www.transifex.com/oca/" +"teams/23907/en_GB/)\n" +"Language: en_GB\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Created by" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Created on" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Last Updated by" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Last Updated on" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es.po b/purchase_cancel_reason/i18n/es.po new file mode 100644 index 00000000000..a2f465b5f97 --- /dev/null +++ b/purchase_cancel_reason/i18n/es.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Última actualización de" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Orden de Compra" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_AR.po b/purchase_cancel_reason/i18n/es_AR.po new file mode 100644 index 00000000000..6a9092743ae --- /dev/null +++ b/purchase_cancel_reason/i18n/es_AR.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Argentina) (https://www.transifex.com/oca/" +"teams/23907/es_AR/)\n" +"Language: es_AR\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Última actualización realizada por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_CO.po b/purchase_cancel_reason/i18n/es_CO.po new file mode 100644 index 00000000000..28991c9bbc8 --- /dev/null +++ b/purchase_cancel_reason/i18n/es_CO.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Colombia) (https://www.transifex.com/oca/teams/23907/" +"es_CO/)\n" +"Language: es_CO\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_CR.po b/purchase_cancel_reason/i18n/es_CR.po new file mode 100644 index 00000000000..80b6a769ebe --- /dev/null +++ b/purchase_cancel_reason/i18n/es_CR.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Costa Rica) (https://www.transifex.com/oca/" +"teams/23907/es_CR/)\n" +"Language: es_CR\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Ultima actualización por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Ultima actualización en" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_DO.po b/purchase_cancel_reason/i18n/es_DO.po new file mode 100644 index 00000000000..602a7d36441 --- /dev/null +++ b/purchase_cancel_reason/i18n/es_DO.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Dominican Republic) (https://www.transifex.com/oca/" +"teams/23907/es_DO/)\n" +"Language: es_DO\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID (identificación)" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_EC.po b/purchase_cancel_reason/i18n/es_EC.po new file mode 100644 index 00000000000..3a5e86243ae --- /dev/null +++ b/purchase_cancel_reason/i18n/es_EC.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Ecuador) (https://www.transifex.com/oca/teams/23907/" +"es_EC/)\n" +"Language: es_EC\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_ES.po b/purchase_cancel_reason/i18n/es_ES.po new file mode 100644 index 00000000000..1caad4a1554 --- /dev/null +++ b/purchase_cancel_reason/i18n/es_ES.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/" +"es_ES/)\n" +"Language: es_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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_MX.po b/purchase_cancel_reason/i18n/es_MX.po new file mode 100644 index 00000000000..c8f466990f0 --- /dev/null +++ b/purchase_cancel_reason/i18n/es_MX.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Mexico) (https://www.transifex.com/oca/teams/23907/" +"es_MX/)\n" +"Language: es_MX\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Ultima actualización por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Ultima actualización en" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_PE.po b/purchase_cancel_reason/i18n/es_PE.po new file mode 100644 index 00000000000..94d9e54c5a1 --- /dev/null +++ b/purchase_cancel_reason/i18n/es_PE.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# Henry Garcia , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: Henry Garcia , 2018\n" +"Language-Team: Spanish (Peru) (https://www.transifex.com/oca/teams/23907/" +"es_PE/)\n" +"Language: es_PE\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "Cancelar" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Nombre a mostrar" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Última modificación" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Última actualización realizada por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Última actualización" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Orden de compra" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "o" diff --git a/purchase_cancel_reason/i18n/es_PY.po b/purchase_cancel_reason/i18n/es_PY.po new file mode 100644 index 00000000000..9f6c927bb4c --- /dev/null +++ b/purchase_cancel_reason/i18n/es_PY.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Paraguay) (https://www.transifex.com/oca/teams/23907/" +"es_PY/)\n" +"Language: es_PY\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/es_VE.po b/purchase_cancel_reason/i18n/es_VE.po new file mode 100644 index 00000000000..87c99e4e3e5 --- /dev/null +++ b/purchase_cancel_reason/i18n/es_VE.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Spanish (Venezuela) (https://www.transifex.com/oca/" +"teams/23907/es_VE/)\n" +"Language: es_VE\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Ultima actualización por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Ultima actualización en" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/et.po b/purchase_cancel_reason/i18n/et.po new file mode 100644 index 00000000000..8a727326fb8 --- /dev/null +++ b/purchase_cancel_reason/i18n/et.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Estonian (https://www.transifex.com/oca/teams/23907/et/)\n" +"Language: et\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Loodud" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/eu.po b/purchase_cancel_reason/i18n/eu.po new file mode 100644 index 00000000000..57f52a6cf3f --- /dev/null +++ b/purchase_cancel_reason/i18n/eu.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Basque (https://www.transifex.com/oca/teams/23907/eu/)\n" +"Language: eu\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/fa.po b/purchase_cancel_reason/i18n/fa.po new file mode 100644 index 00000000000..27fa4594e71 --- /dev/null +++ b/purchase_cancel_reason/i18n/fa.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Persian (https://www.transifex.com/oca/teams/23907/fa/)\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "ایجاد شده توسط" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "ایجاد شده در" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "شناسه" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "آخرین به روز رسانی توسط" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "آخرین به روز رسانی در" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/fi.po b/purchase_cancel_reason/i18n/fi.po new file mode 100644 index 00000000000..36898ae429e --- /dev/null +++ b/purchase_cancel_reason/i18n/fi.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"Language: fi\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Luonut" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Luotu" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Nimi" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Viimeksi muokattu" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Viimeksi päivittänyt" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Viimeksi päivitetty" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/fr.po b/purchase_cancel_reason/i18n/fr.po new file mode 100644 index 00000000000..a392eb0723b --- /dev/null +++ b/purchase_cancel_reason/i18n/fr.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +# Quentin THEURET , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: Quentin THEURET , 2018\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: nplurals=2; plural=(n > 1);\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "Annuler" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "Motif de l'annulation :" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "Confirmer" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Display Name" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "Juste un devis" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Dernière modification le" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "Un autre fournisseur de service a été sélectionné" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Bon de commande" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "Motif de l'annulation du bon de commande" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "Motifs de l'annulation du bon de commande" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "Motif" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "Motif d'annulation" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "Motif de l'annulation" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "Le service n'est plus requis" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "ou" + +#~ msgid " Ask a reason for the purchase order cancellation." +#~ msgstr "Demander une motif lors de l'annulation du bon de commande." + +#~ msgid "" +#~ "Choose the reason for the cancellation of the\n" +#~ " purchase order." +#~ msgstr "" +#~ "Choisissez le motif de l'annulation du \n" +#~ " bon de commande." diff --git a/purchase_cancel_reason/i18n/fr_BE.po b/purchase_cancel_reason/i18n/fr_BE.po new file mode 100644 index 00000000000..a1910917e5c --- /dev/null +++ b/purchase_cancel_reason/i18n/fr_BE.po @@ -0,0 +1,154 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: French (Belgium) (https://www.transifex.com/oca/teams/23907/" +"fr_BE/)\n" +"Language: fr_BE\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "Annuler" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "Cause de l'annulation:" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "Confirmer" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "Juste pour une offre" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Derniere fois mis à jour par" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Dernière mis à jour le" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "Autre fournisseur sélectionné" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Commande fournisseur" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "Cause d'annulation pour un bon de commande" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "Cause d'annulation pour un bon de commande" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "Cause" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "Cause de l'annulation" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "Cause de l'annulation" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "Le service n'est plus nécessaire" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "ou" + +#~ msgid " Ask a reason for the purchase order cancellation." +#~ msgstr " Demande une cause de l'annulation de la commande." + +#~ msgid "" +#~ "Choose the reason for the cancellation of the\n" +#~ " purchase order." +#~ msgstr "" +#~ "Veuillez choisir la cause de l'annulation\n" +#~ " de la commande." diff --git a/purchase_cancel_reason/i18n/fr_CA.po b/purchase_cancel_reason/i18n/fr_CA.po new file mode 100644 index 00000000000..e5771043dc2 --- /dev/null +++ b/purchase_cancel_reason/i18n/fr_CA.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: French (Canada) (https://www.transifex.com/oca/teams/23907/" +"fr_CA/)\n" +"Language: fr_CA\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Afficher le nom" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "Identifiant" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/fr_CH.po b/purchase_cancel_reason/i18n/fr_CH.po new file mode 100644 index 00000000000..f83e69cae54 --- /dev/null +++ b/purchase_cancel_reason/i18n/fr_CH.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: French (Switzerland) (https://www.transifex.com/oca/" +"teams/23907/fr_CH/)\n" +"Language: fr_CH\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Modifié par" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Modifié le" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/gl.po b/purchase_cancel_reason/i18n/gl.po new file mode 100644 index 00000000000..4f64702f47b --- /dev/null +++ b/purchase_cancel_reason/i18n/gl.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n" +"Language: gl\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Modificado por última vez o" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "ültima actualización por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Orde de compra" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/gl_ES.po b/purchase_cancel_reason/i18n/gl_ES.po new file mode 100644 index 00000000000..35b7d0d98ff --- /dev/null +++ b/purchase_cancel_reason/i18n/gl_ES.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Galician (Spain) (https://www.transifex.com/oca/teams/23907/" +"gl_ES/)\n" +"Language: gl_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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/he.po b/purchase_cancel_reason/i18n/he.po new file mode 100644 index 00000000000..c3bea80557f --- /dev/null +++ b/purchase_cancel_reason/i18n/he.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Hebrew (https://www.transifex.com/oca/teams/23907/he/)\n" +"Language: he\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "נוצר על ידי" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "נוצר ב-" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "מזהה" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "עודכן לאחרונה על ידי" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "עודכן לאחרונה על" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/hr.po b/purchase_cancel_reason/i18n/hr.po new file mode 100644 index 00000000000..de553cb9e02 --- /dev/null +++ b/purchase_cancel_reason/i18n/hr.po @@ -0,0 +1,145 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +# Bole , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: Bole , 2018\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: 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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "Odustani" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Kreirano " + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Prikaži naziv" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Zadnja izmjena na" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Zadnje ažuriranje izvršio" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Zadnje ažuriranje na" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Nabavni nalog" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "ili" diff --git a/purchase_cancel_reason/i18n/hr_HR.po b/purchase_cancel_reason/i18n/hr_HR.po new file mode 100644 index 00000000000..77b4aef5b45 --- /dev/null +++ b/purchase_cancel_reason/i18n/hr_HR.po @@ -0,0 +1,145 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Naziv" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Zadnje modificirano" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Zadnje ažurirao" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Zadnje ažurirano" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/hu.po b/purchase_cancel_reason/i18n/hu.po new file mode 100644 index 00000000000..5b7d3328aa5 --- /dev/null +++ b/purchase_cancel_reason/i18n/hu.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Hungarian (https://www.transifex.com/oca/teams/23907/hu/)\n" +"Language: hu\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Készítette" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Létrehozás dátuma" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "Azonosító ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Utoljára frissítve, által" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Utoljára frissítve ekkor" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/id.po b/purchase_cancel_reason/i18n/id.po new file mode 100644 index 00000000000..e520f82c38c --- /dev/null +++ b/purchase_cancel_reason/i18n/id.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Indonesian (https://www.transifex.com/oca/teams/23907/id/)\n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Dibuat oleh" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Dibuat pada" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Diperbaharui oleh" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Diperbaharui pada" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/it.po b/purchase_cancel_reason/i18n/it.po new file mode 100644 index 00000000000..3d747b9bb19 --- /dev/null +++ b/purchase_cancel_reason/i18n/it.po @@ -0,0 +1,146 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2024-08-07 17:58+0000\n" +"Last-Translator: mymage \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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "Richiede il motivo per l'annullamento dell'ordine di acquisto." + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "Annulla" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "Motivo annullamento:" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" +"Scegliere il motivo per l'annullamento\n" +" dell'ordine di acquisto." + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "Conferma" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Nome da visualizzare" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "Solo per preventivo" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "Selezionato altro fornitore servizio" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Ordine di acquisto" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "Motivo annullamento ordine di acquisto" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "Motivi annullamento ordine di acquisto" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "Motivo" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "Motivo annullamento" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "Motivo annullamento" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "Servizio non più necessario" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "o" diff --git a/purchase_cancel_reason/i18n/ja.po b/purchase_cancel_reason/i18n/ja.po new file mode 100644 index 00000000000..f784ea303f9 --- /dev/null +++ b/purchase_cancel_reason/i18n/ja.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Japanese (https://www.transifex.com/oca/teams/23907/ja/)\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "作成者" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "作成日" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "最終更新者" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "最終更新日" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/ko.po b/purchase_cancel_reason/i18n/ko.po new file mode 100644 index 00000000000..3a0213cda94 --- /dev/null +++ b/purchase_cancel_reason/i18n/ko.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Korean (https://www.transifex.com/oca/teams/23907/ko/)\n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "작성자" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "작성일" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "최근 갱신한 사람" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "최근 갱신 날짜" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/lt.po b/purchase_cancel_reason/i18n/lt.po new file mode 100644 index 00000000000..2332abc09ef --- /dev/null +++ b/purchase_cancel_reason/i18n/lt.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Lithuanian (https://www.transifex.com/oca/teams/23907/lt/)\n" +"Language: lt\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%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Sukūrė" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Sukurta" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Paskutini kartą atnaujino" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Paskutinį kartą atnaujinta" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/lt_LT.po b/purchase_cancel_reason/i18n/lt_LT.po new file mode 100644 index 00000000000..bc4a69aa3ac --- /dev/null +++ b/purchase_cancel_reason/i18n/lt_LT.po @@ -0,0 +1,145 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Lithuanian (Lithuania) (https://www.transifex.com/oca/" +"teams/23907/lt_LT/)\n" +"Language: lt_LT\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%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Sukūrė" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Sukurta" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Paskutinį kartą atnaujino" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Paskutinį kartą atnaujinta" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/lv.po b/purchase_cancel_reason/i18n/lv.po new file mode 100644 index 00000000000..3710ecdedc6 --- /dev/null +++ b/purchase_cancel_reason/i18n/lv.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Latvian (https://www.transifex.com/oca/teams/23907/lv/)\n" +"Language: lv\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 != 0 ? 1 : " +"2);\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Izveidoja" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Izveidots" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Pēdējo reizi atjaunoja" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Pēdējās izmaiņas" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/mk.po b/purchase_cancel_reason/i18n/mk.po new file mode 100644 index 00000000000..636995ea439 --- /dev/null +++ b/purchase_cancel_reason/i18n/mk.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Macedonian (https://www.transifex.com/oca/teams/23907/mk/)\n" +"Language: mk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Креирано од" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Креирано на" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Последно ажурирање од" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Последно ажурирање на" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/mn.po b/purchase_cancel_reason/i18n/mn.po new file mode 100644 index 00000000000..f011c1ad084 --- /dev/null +++ b/purchase_cancel_reason/i18n/mn.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Mongolian (https://www.transifex.com/oca/teams/23907/mn/)\n" +"Language: mn\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Үүсгэгч" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Үүсгэсэн огноо" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Сүүлийн засвар хийсэн" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Сүүлийн засвар хийсэн огноо" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/nb.po b/purchase_cancel_reason/i18n/nb.po new file mode 100644 index 00000000000..a47e0d2ef90 --- /dev/null +++ b/purchase_cancel_reason/i18n/nb.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Norwegian Bokmål (https://www.transifex.com/oca/teams/23907/" +"nb/)\n" +"Language: nb\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Opprettet av" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Opprettet" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Sist oppdatert av" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Sist oppdatert" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/nb_NO.po b/purchase_cancel_reason/i18n/nb_NO.po new file mode 100644 index 00000000000..7aa02cb6dac --- /dev/null +++ b/purchase_cancel_reason/i18n/nb_NO.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/" +"teams/23907/nb_NO/)\n" +"Language: nb_NO\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Laget av" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Laget den" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Vis navn" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Sist endret den" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Sist oppdatert av" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Sist oppdatert den" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/nl.po b/purchase_cancel_reason/i18n/nl.po new file mode 100644 index 00000000000..23d835592e8 --- /dev/null +++ b/purchase_cancel_reason/i18n/nl.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# Erwin van der Ploeg , 2018 +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" +"Language: 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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Weergave naam" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Laatst bijgewerkt op" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Laatste bijgewerkt door" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Inkooporder" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/nl_BE.po b/purchase_cancel_reason/i18n/nl_BE.po new file mode 100644 index 00000000000..c6e6c05ced7 --- /dev/null +++ b/purchase_cancel_reason/i18n/nl_BE.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Dutch (Belgium) (https://www.transifex.com/oca/teams/23907/" +"nl_BE/)\n" +"Language: nl_BE\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Gemaakt door" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Gemaakt op" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/nl_NL.po b/purchase_cancel_reason/i18n/nl_NL.po new file mode 100644 index 00000000000..2c2d6cae661 --- /dev/null +++ b/purchase_cancel_reason/i18n/nl_NL.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# Peter Hageman , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: Peter Hageman , 2018\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "Annuleer" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Weergavenaam" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Laatst gewijzigd op" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Laatst aangepast door" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Laatst aangepast op" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Inkooporder" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "of" diff --git a/purchase_cancel_reason/i18n/pl.po b/purchase_cancel_reason/i18n/pl.po new file mode 100644 index 00000000000..497b3b9c7a1 --- /dev/null +++ b/purchase_cancel_reason/i18n/pl.po @@ -0,0 +1,145 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Polish (https://www.transifex.com/oca/teams/23907/pl/)\n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && " +"(n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && " +"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Utworzone przez" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Data utworzenia" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Ostatnio modyfikowane przez" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Data ostatniej modyfikacji" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/pt.po b/purchase_cancel_reason/i18n/pt.po new file mode 100644 index 00000000000..f717547bbfd --- /dev/null +++ b/purchase_cancel_reason/i18n/pt.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n" +"Language: pt\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Nome a Apresentar" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Última Modificação Em" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Atualizado pela última vez por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Atualizado pela última vez em" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/pt_BR.po b/purchase_cancel_reason/i18n/pt_BR.po new file mode 100644 index 00000000000..d3995da980c --- /dev/null +++ b/purchase_cancel_reason/i18n/pt_BR.po @@ -0,0 +1,148 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2024-08-07 01:58+0000\n" +"Last-Translator: Rodrigo Sottomaior Macedo " +"\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/" +"23907/pt_BR/)\n" +"Language: pt_BR\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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "Pergunte o motivo do cancelamento do pedido de compra." + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "Cancelar" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "Motivo do cancelamento:" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" +"Escolha o motivo do cancelamento do\n" +" Ordem de Compra." + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "Confirmar" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Mostrar Nome" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "Identificação" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "Apenas para cotação" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Última Modificação em" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Última Atualização por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Última Atualização em" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "Outro provedor de serviços selecionado" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Pedido de Compra" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "Motivo de cancelamento do pedido de compra" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "Motivos de cancelamento de pedido de compra" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "Razão" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "Razão para cancelamento" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "Motivo do cancelamento" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "O serviço não é mais necessário" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "ou" diff --git a/purchase_cancel_reason/i18n/pt_PT.po b/purchase_cancel_reason/i18n/pt_PT.po new file mode 100644 index 00000000000..5a1faf7b7de --- /dev/null +++ b/purchase_cancel_reason/i18n/pt_PT.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/" +"teams/23907/pt_PT/)\n" +"Language: pt_PT\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Nome a Apresentar" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Última Modificação em" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Atualizado pela última vez por" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Atualizado pela última vez em" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/purchase_cancel_reason.pot b/purchase_cancel_reason/i18n/purchase_cancel_reason.pot new file mode 100644 index 00000000000..e2997660da5 --- /dev/null +++ b/purchase_cancel_reason/i18n/purchase_cancel_reason.pot @@ -0,0 +1,138 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/ro.po b/purchase_cancel_reason/i18n/ro.po new file mode 100644 index 00000000000..b5e4d146c51 --- /dev/null +++ b/purchase_cancel_reason/i18n/ro.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Creat de" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Creat la" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Nume Afişat" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Ultima actualizare în" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Ultima actualizare făcută de" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Ultima actualizare la" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Comandă achiziție" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/ru.po b/purchase_cancel_reason/i18n/ru.po new file mode 100644 index 00000000000..5520796e202 --- /dev/null +++ b/purchase_cancel_reason/i18n/ru.po @@ -0,0 +1,145 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Russian (https://www.transifex.com/oca/teams/23907/ru/)\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || " +"(n%100>=11 && n%100<=14)? 2 : 3);\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Создано" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Создан" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Последний раз обновлено" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Последний раз обновлено" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/sk.po b/purchase_cancel_reason/i18n/sk.po new file mode 100644 index 00000000000..7104cbf807b --- /dev/null +++ b/purchase_cancel_reason/i18n/sk.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Slovak (https://www.transifex.com/oca/teams/23907/sk/)\n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Vytvoril" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Vytvorené" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Naposledy upravil" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Naposledy upravené" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/sl.po b/purchase_cancel_reason/i18n/sl.po new file mode 100644 index 00000000000..a0a56807a56 --- /dev/null +++ b/purchase_cancel_reason/i18n/sl.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "Preklic" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Ustvaril" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Ustvarjeno" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "Prikazni naziv" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "Zadnjič spremenjeno" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Zadnji posodobil" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Zadnjič posodobljeno" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Nabavni nalog" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/sr.po b/purchase_cancel_reason/i18n/sr.po new file mode 100644 index 00000000000..effe3044901 --- /dev/null +++ b/purchase_cancel_reason/i18n/sr.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Serbian (https://www.transifex.com/oca/teams/23907/sr/)\n" +"Language: sr\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Kreiran" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/sr@latin.po b/purchase_cancel_reason/i18n/sr@latin.po new file mode 100644 index 00000000000..6ca31d87543 --- /dev/null +++ b/purchase_cancel_reason/i18n/sr@latin.po @@ -0,0 +1,145 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Serbian (Latin) (https://www.transifex.com/oca/teams/23907/" +"sr%40latin/)\n" +"Language: sr@latin\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Kreiran" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/sv.po b/purchase_cancel_reason/i18n/sv.po new file mode 100644 index 00000000000..78e26e7a7ac --- /dev/null +++ b/purchase_cancel_reason/i18n/sv.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Swedish (https://www.transifex.com/oca/teams/23907/sv/)\n" +"Language: sv\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Skapad av" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Skapad den" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Senast uppdaterad av" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Senast uppdaterad" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/th.po b/purchase_cancel_reason/i18n/th.po new file mode 100644 index 00000000000..26472664b7a --- /dev/null +++ b/purchase_cancel_reason/i18n/th.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Thai (https://www.transifex.com/oca/teams/23907/th/)\n" +"Language: th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "สร้างโดย" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "สร้างเมื่อ" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "รหัส" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "อัพเดทครั้งสุดท้ายโดย" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "อัพเดทครั้งสุดท้ายเมื่อ" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/tr.po b/purchase_cancel_reason/i18n/tr.po new file mode 100644 index 00000000000..8129652e439 --- /dev/null +++ b/purchase_cancel_reason/i18n/tr.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" +"Language: tr\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Oluşturan" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Oluşturuldu" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Son güncelleyen" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Son güncelleme" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/uk.po b/purchase_cancel_reason/i18n/uk.po new file mode 100644 index 00000000000..3f50d2c864f --- /dev/null +++ b/purchase_cancel_reason/i18n/uk.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Ukrainian (https://www.transifex.com/oca/teams/23907/uk/)\n" +"Language: uk\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: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Створив" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Створено" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Востаннє відредаговано" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Дата останньої зміни" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/vi.po b/purchase_cancel_reason/i18n/vi.po new file mode 100644 index 00000000000..39cb553e3b3 --- /dev/null +++ b/purchase_cancel_reason/i18n/vi.po @@ -0,0 +1,143 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Vietnamese (https://www.transifex.com/oca/teams/23907/vi/)\n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Tạo trên" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/vi_VN.po b/purchase_cancel_reason/i18n/vi_VN.po new file mode 100644 index 00000000000..87ff91d6634 --- /dev/null +++ b/purchase_cancel_reason/i18n/vi_VN.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/oca/" +"teams/23907/vi_VN/)\n" +"Language: vi_VN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "Tạo bởi" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "Tạo vào" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "Cập nhật lần cuối bởi" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "Cập nhật lần cuối vào" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "Đơn hàng Mua" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/zh_CN.po b/purchase_cancel_reason/i18n/zh_CN.po new file mode 100644 index 00000000000..51a494466b5 --- /dev/null +++ b/purchase_cancel_reason/i18n/zh_CN.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/" +"zh_CN/)\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "创建人" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "创建时间" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "显示名称" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "最后修改时间" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "最后更新人" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "最后更新时间" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/i18n/zh_TW.po b/purchase_cancel_reason/i18n/zh_TW.po new file mode 100644 index 00000000000..51f25d1d18a --- /dev/null +++ b/purchase_cancel_reason/i18n/zh_TW.po @@ -0,0 +1,144 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_cancel_reason +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-03 03:48+0000\n" +"PO-Revision-Date: 2018-03-03 03:48+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Chinese (Taiwan) (https://www.transifex.com/oca/teams/23907/" +"zh_TW/)\n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel +msgid "Ask a reason for the purchase order cancellation." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Cancel" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.purchase_order_form +msgid "Cancellation reason:" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "" +"Choose the reason for the cancellation of the\n" +" purchase order." +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Confirm" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__create_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__create_date +msgid "Created on" +msgstr "建立於" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__display_name +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__id +msgid "ID" +msgstr "ID" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_only_quotation +msgid "Just for Quotation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel____last_update +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_uid +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__write_date +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_other_provider +msgid "Other Service Provider selected" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel_reason +#: model:ir.model,name:purchase_cancel_reason.model_purchase_order_cancel_reason +msgid "Purchase Order Cancel Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.ui.menu,name:purchase_cancel_reason.menu_purchase_order_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel_reason_form +msgid "Purchase Order Cancel Reasons" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel__reason_id +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order_cancel_reason__name +msgid "Reason" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.model.fields,field_description:purchase_cancel_reason.field_purchase_order__cancel_reason_id +msgid "Reason for cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:ir.actions.act_window,name:purchase_cancel_reason.action_purchase_order_cancel +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "Reason for the cancellation" +msgstr "" + +#. module: purchase_cancel_reason +#: model:purchase.order.cancel.reason,name:purchase_cancel_reason.cancel_reason_no_service_needed +msgid "Service no longer needed" +msgstr "" + +#. module: purchase_cancel_reason +#: model_terms:ir.ui.view,arch_db:purchase_cancel_reason.view_purchase_order_cancel +msgid "or" +msgstr "" diff --git a/purchase_cancel_reason/models/__init__.py b/purchase_cancel_reason/models/__init__.py new file mode 100644 index 00000000000..f410438f2f2 --- /dev/null +++ b/purchase_cancel_reason/models/__init__.py @@ -0,0 +1,2 @@ +from . import purchase_order +from . import purchase_order_cancel_reason diff --git a/purchase_cancel_reason/models/purchase_order.py b/purchase_cancel_reason/models/purchase_order.py new file mode 100644 index 00000000000..b122c34ce99 --- /dev/null +++ b/purchase_cancel_reason/models/purchase_order.py @@ -0,0 +1,15 @@ +# Copyright 2013 Guewen Baconnier, Camptocamp SA +# Copyright 2017 Okia SPRL +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import fields, models + + +class PurchaseOrder(models.Model): + _inherit = "purchase.order" + + cancel_reason_id = fields.Many2one( + comodel_name="purchase.order.cancel.reason", + string="Reason for cancellation", + readonly=True, + ondelete="restrict", + ) diff --git a/purchase_cancel_reason/models/purchase_order_cancel_reason.py b/purchase_cancel_reason/models/purchase_order_cancel_reason.py new file mode 100644 index 00000000000..a63a1d8bfc9 --- /dev/null +++ b/purchase_cancel_reason/models/purchase_order_cancel_reason.py @@ -0,0 +1,11 @@ +# Copyright 2023 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class PurchaseOrderCancelReason(models.Model): + _name = "purchase.order.cancel.reason" + _description = "Purchase Order Cancel Reason" + + name = fields.Char(string="Reason", required=True, translate=True) diff --git a/purchase_cancel_reason/readme/CONTRIBUTORS.rst b/purchase_cancel_reason/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..4a4fb159cec --- /dev/null +++ b/purchase_cancel_reason/readme/CONTRIBUTORS.rst @@ -0,0 +1,7 @@ +* Guewen Baconnier, Camptocamp SA +* Sylvain Van Hoof + +* `Ecosoft `_: + + * Kitti U. + * Tharathip C. diff --git a/purchase_cancel_reason/readme/DESCRIPTION.rst b/purchase_cancel_reason/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..d00f20fbd66 --- /dev/null +++ b/purchase_cancel_reason/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +When a purchase order is canceled, a reason must be given, it is chosen from a configured list. diff --git a/purchase_cancel_reason/readme/USAGE.rst b/purchase_cancel_reason/readme/USAGE.rst new file mode 100644 index 00000000000..aa013a7b11c --- /dev/null +++ b/purchase_cancel_reason/readme/USAGE.rst @@ -0,0 +1,3 @@ +* During purchase order state equal to Draft, RFQ Sent or Purchase Order +* Click at "Cancel" button, a wizard will show a list of cancel reasons +* Choose a reason and confirm cancellation, the reason will be stamped in the purchase order diff --git a/purchase_cancel_reason/security/ir.model.access.csv b/purchase_cancel_reason/security/ir.model.access.csv new file mode 100644 index 00000000000..83a27a2091b --- /dev/null +++ b/purchase_cancel_reason/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_purchase_order_cancel_reason_user,access_purchase_order_cancel_reason user,model_purchase_order_cancel_reason,purchase.group_purchase_user,1,0,0,0 +access_purchase_order_cancel_reason_manager,access_purchase_order_cancel_reason manager,model_purchase_order_cancel_reason,purchase.group_purchase_manager,1,1,1,1 +access_purchase_order_cancel_user,access_purchase_order_cancel,model_purchase_order_cancel,purchase.group_purchase_user,1,1,1,1 diff --git a/purchase_cancel_reason/static/description/icon.png b/purchase_cancel_reason/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/purchase_cancel_reason/static/description/icon.png differ diff --git a/purchase_cancel_reason/static/description/index.html b/purchase_cancel_reason/static/description/index.html new file mode 100644 index 00000000000..8233d74e18d --- /dev/null +++ b/purchase_cancel_reason/static/description/index.html @@ -0,0 +1,439 @@ + + + + + +Purchase Cancel Reason + + + +
+

Purchase Cancel Reason

+ + +

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

+

When a purchase order is canceled, a reason must be given, it is chosen from a configured list.

+

Table of contents

+ +
+

Usage

+
    +
  • During purchase order state equal to Draft, RFQ Sent or Purchase Order
  • +
  • Click at “Cancel” button, a wizard will show a list of cancel reasons
  • +
  • Choose a reason and confirm cancellation, the reason will be stamped in the purchase order
  • +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
  • Okia SPRL
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_cancel_reason/tests/__init__.py b/purchase_cancel_reason/tests/__init__.py new file mode 100644 index 00000000000..858b7379a0d --- /dev/null +++ b/purchase_cancel_reason/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2013 Guewen Baconnier, Camptocamp SA +# Copyright 2017 Okia SPRL +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import test_purchase_cancel_reason diff --git a/purchase_cancel_reason/tests/test_purchase_cancel_reason.py b/purchase_cancel_reason/tests/test_purchase_cancel_reason.py new file mode 100644 index 00000000000..019aa5e85ae --- /dev/null +++ b/purchase_cancel_reason/tests/test_purchase_cancel_reason.py @@ -0,0 +1,54 @@ +# Copyright 2013 Guewen Baconnier, Camptocamp SA +# Copyright 2017 Okia SPRL +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import fields +from odoo.tests.common import TransactionCase + + +class TestPurchaseCancelReason(TransactionCase): + def setUp(self): + super(TestPurchaseCancelReason, self).setUp() + PurchaseOrder = self.env["purchase.order"] + CancelReason = self.env["purchase.order.cancel.reason"] + self.reason = CancelReason.create({"name": "Canceled for tests"}) + self.partner = self.env["res.partner"].create( + { + "name": "Supplier", + } + ) + self.product = self.env["product.product"].create({"name": "Product"}) + self.purchase_order = PurchaseOrder.create( + { + "partner_id": self.partner.id, + "date_planned": fields.Datetime.now(), + "order_line": [ + ( + 0, + 0, + { + "name": "Line 1", + "product_id": self.product.id, + "product_qty": 8, + "product_uom": self.product.uom_po_id.id, + "price_unit": 100.00, + "date_planned": fields.Datetime.now(), + }, + ) + ], + } + ) + + def test_purchase_order_cancel_reason(self): + """ + - Cancel a purchase order with the wizard asking for the reason + - Then the purchase order should be canceled and the reason stored + """ + PurchaseOrderCancel = self.env["purchase.order.cancel"] + wizard = PurchaseOrderCancel.create({"reason_id": self.reason.id}) + wizard.with_context( + active_model="purchase.order", active_ids=[self.purchase_order.id] + ).confirm_cancel() + self.assertEqual( + self.purchase_order.state, "cancel", "the purchase order should be canceled" + ) + self.assertEqual(self.purchase_order.cancel_reason_id.id, self.reason.id) diff --git a/purchase_cancel_reason/views/purchase_order.xml b/purchase_cancel_reason/views/purchase_order.xml new file mode 100644 index 00000000000..853a9dbf6c5 --- /dev/null +++ b/purchase_cancel_reason/views/purchase_order.xml @@ -0,0 +1,40 @@ + + + + purchase.order.form + purchase.order + + + + True + + + +
+
+
+
diff --git a/purchase_landed_cost/views/stock_picking_view.xml b/purchase_landed_cost/views/stock_picking_view.xml new file mode 100644 index 00000000000..6263f34b719 --- /dev/null +++ b/purchase_landed_cost/views/stock_picking_view.xml @@ -0,0 +1,19 @@ + + + + stock.picking + + +
+ +
+
+
+
diff --git a/purchase_landed_cost/wizard/__init__.py b/purchase_landed_cost/wizard/__init__.py new file mode 100644 index 00000000000..f217e17e515 --- /dev/null +++ b/purchase_landed_cost/wizard/__init__.py @@ -0,0 +1,3 @@ +from . import picking_import_wizard +from . import import_invoice_line +from . import import_landed_cost_pickings_wizard diff --git a/purchase_landed_cost/wizard/import_invoice_line.py b/purchase_landed_cost/wizard/import_invoice_line.py new file mode 100644 index 00000000000..a02e4167ea7 --- /dev/null +++ b/purchase_landed_cost/wizard/import_invoice_line.py @@ -0,0 +1,50 @@ +# Copyright 2014-2016 Tecnativa - Pedro M. Baeza +# Copyright 2024 Tecnativa - Carolina Fernandez +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3 +from odoo import fields, models + + +class ImportInvoiceLine(models.TransientModel): + _name = "import.invoice.line.wizard" + _description = "Import supplier invoice line" + + supplier = fields.Many2one( + comodel_name="res.partner", + required=True, + ) + invoice = fields.Many2one( + comodel_name="account.move", + required=True, + domain="[('partner_id', '=', supplier), ('move_type', '=', 'in_invoice')," + "('state', '=', 'posted')]", + ) + invoice_line = fields.Many2one( + comodel_name="account.move.line", + string="Invoice line", + required=True, + domain="[('move_id', '=', invoice)]", + ) + expense_type = fields.Many2one( + comodel_name="purchase.expense.type", string="Expense type", required=True + ) + + def action_import_invoice_line(self): + self.ensure_one() + dist_id = self.env.context["active_id"] + distribution = self.env["purchase.cost.distribution"].browse(dist_id) + currency_from = self.invoice_line.currency_id + amount = self.invoice_line.price_subtotal + currency_to = distribution.currency_id + company = distribution.company_id or self.env.user.company_id + cost_date = distribution.date or fields.Date.today() + expense_amount = currency_from._convert(amount, currency_to, company, cost_date) + self.env["purchase.cost.distribution.expense"].create( + { + "distribution": dist_id, + "invoice_line": self.invoice_line.id, + "invoice_id": self.invoice_line.move_id.id, + "ref": self.invoice_line.name, + "expense_amount": expense_amount, + "type": self.expense_type.id, + } + ) diff --git a/purchase_landed_cost/wizard/import_invoice_line_wizard_view.xml b/purchase_landed_cost/wizard/import_invoice_line_wizard_view.xml new file mode 100644 index 00000000000..9e44f13ce06 --- /dev/null +++ b/purchase_landed_cost/wizard/import_invoice_line_wizard_view.xml @@ -0,0 +1,37 @@ + + + + import.invoice.line.wizard.form + import.invoice.line.wizard + form + +
+ + + + + + + + +
+
+
+
+
+ + Import supplier invoice line + ir.actions.act_window + import.invoice.line.wizard + form + new + +
diff --git a/purchase_landed_cost/wizard/import_landed_cost_pickings_wizard.py b/purchase_landed_cost/wizard/import_landed_cost_pickings_wizard.py new file mode 100644 index 00000000000..8859c2f06ee --- /dev/null +++ b/purchase_landed_cost/wizard/import_landed_cost_pickings_wizard.py @@ -0,0 +1,39 @@ +# Copyright 2016 Pedro M. Baeza +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3 + +from odoo import api, fields, models + + +class ImportLandedCostPickingsWizard(models.TransientModel): + _name = "import.landed.cost.pickings.wizard" + _description = "Import landed cost pickings" + + possible_picking_ids = fields.Many2many( + comodel_name="stock.picking", + string="Possible pickings", + relation="import_landed_cost_pickings_possible_picking_rel", + ) + picking_ids = fields.Many2many( + comodel_name="stock.picking", + string="Pickings", + relation="import_landed_cost_pickings_wizard_stock_picking_rel", + domain="[('id', 'in', possible_picking_ids)]", + ) + + @api.model + def default_get(self, fields_list): + res = super(ImportLandedCostPickingsWizard, self).default_get(fields_list) + if "possible_picking_ids" in fields_list: + expenses = self.env["purchase.cost.distribution.expense"].search([]) + pickings = expenses.mapped("distribution.cost_lines.picking_id") + res["possible_picking_ids"] = [(6, 0, pickings.ids)] + return res + + def button_import(self): + self.ensure_one() + invoice_id = self.env.context["active_id"] + dist_lines = self.env["purchase.cost.distribution.line"].search( + [("picking_id", "in", self.picking_ids.ids)] + ) + exp_lines = dist_lines.mapped("distribution.expense_lines") + exp_lines.write({"invoice_id": invoice_id}) diff --git a/purchase_landed_cost/wizard/import_landed_cost_pickings_wizard_view.xml b/purchase_landed_cost/wizard/import_landed_cost_pickings_wizard_view.xml new file mode 100644 index 00000000000..fa73af9142d --- /dev/null +++ b/purchase_landed_cost/wizard/import_landed_cost_pickings_wizard_view.xml @@ -0,0 +1,41 @@ + + + + import.landed.cost.pickings.wizard + form + +
+ +

Select here the pickings for those you want to add their expenses lines.

+

Only the pickings with expenses are allowed to be selected here.

+ + + + +
+
+
+
+
+
+ + Import landed cost from pickings + ir.actions.act_window + import.landed.cost.pickings.wizard + form + new + +
diff --git a/purchase_landed_cost/wizard/picking_import_wizard.py b/purchase_landed_cost/wizard/picking_import_wizard.py new file mode 100644 index 00000000000..bac6aebf837 --- /dev/null +++ b/purchase_landed_cost/wizard/picking_import_wizard.py @@ -0,0 +1,56 @@ +from odoo import api, fields, models + + +class PickingImportWizard(models.TransientModel): + _name = "picking.import.wizard" + _description = "Import incoming shipment" + + @api.model + def default_get(self, field_list): + """Get pickings previously imported.""" + res = super(PickingImportWizard, self).default_get(field_list) + if self.env.context.get("active_id") and "prev_pickings" in field_list: + distribution = self.env["purchase.cost.distribution"].browse( + self.env.context["active_id"] + ) + pickings = self.env["stock.picking"] + moves = distribution.mapped("cost_lines.move_id") + for line in distribution.cost_lines: + if line.picking_id in pickings: + continue + if all(x in moves for x in line.picking_id.move_ids): + pickings |= line.picking_id + res["prev_pickings"] = [(6, 0, pickings.ids)] + return res + + supplier = fields.Many2one( + comodel_name="res.partner", + required=True, + ) + pickings = fields.Many2many( + comodel_name="stock.picking", + relation="distribution_import_picking_rel", + column1="wizard_id", + column2="picking_id", + string="Incoming shipments", + required=True, + ) + prev_pickings = fields.Many2many(comodel_name="stock.picking") + + def _prepare_distribution_line(self, move): + return { + "distribution": self.env.context["active_id"], + "move_id": move.id, + } + + def action_import_picking(self): + self.ensure_one() + distribution = self.env["purchase.cost.distribution"].browse( + self.env.context["active_id"] + ) + previous_moves = distribution.mapped("cost_lines.move_id") + for move in self.mapped("pickings.move_ids"): + if move not in previous_moves: + self.env["purchase.cost.distribution.line"].create( + self._prepare_distribution_line(move) + ) diff --git a/purchase_landed_cost/wizard/picking_import_wizard_view.xml b/purchase_landed_cost/wizard/picking_import_wizard_view.xml new file mode 100644 index 00000000000..08277dd353f --- /dev/null +++ b/purchase_landed_cost/wizard/picking_import_wizard_view.xml @@ -0,0 +1,39 @@ + + + picking.import.wizard.form + picking.import.wizard + form + +
+ + + + + +
+
+
+
+
+ + Import incoming shipment + ir.actions.act_window + picking.import.wizard + form + new + +
diff --git a/purchase_last_price_info/README.rst b/purchase_last_price_info/README.rst index a9a02a1b036..76ff8a9a7c7 100644 --- a/purchase_last_price_info/README.rst +++ b/purchase_last_price_info/README.rst @@ -2,10 +2,13 @@ Purchase Product Last Price Info ================================ -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:1ea02e02fb66a16eaf3948064b06392b4f3851a0b76124f75995ea04d24406c2 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Purchase Product Last Price Info .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_last_price_info :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds the last purchase info of the product. @@ -48,7 +51,7 @@ 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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/purchase_last_price_info/__manifest__.py b/purchase_last_price_info/__manifest__.py index 121a6f938ab..c6aaef830f2 100644 --- a/purchase_last_price_info/__manifest__.py +++ b/purchase_last_price_info/__manifest__.py @@ -2,7 +2,7 @@ { "name": "Purchase Product Last Price Info", - "version": "16.0.1.0.0", + "version": "16.0.1.0.1", "category": "Purchase Management", "license": "AGPL-3", "author": "AvanzOSC, Tecnativa, Odoo Community Association (OCA)", diff --git a/purchase_last_price_info/i18n/es.po b/purchase_last_price_info/i18n/es.po index 5d4ae064ff9..57412a47d9a 100644 --- a/purchase_last_price_info/i18n/es.po +++ b/purchase_last_price_info/i18n/es.po @@ -10,8 +10,8 @@ msgstr "" "POT-Creation-Date: 2016-03-08 10:15+0000\n" "PO-Revision-Date: 2023-07-20 18:09+0000\n" "Last-Translator: Ivorra78 \n" -"Language-Team: Spanish (http://www.transifex.com/oca/" -"OCA-purchase-workflow-8-0/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/oca/OCA-purchase-" +"workflow-8-0/language/es/)\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/purchase_last_price_info/i18n/hr.po b/purchase_last_price_info/i18n/hr.po index 0087616dcb2..5f0c5b3258c 100644 --- a/purchase_last_price_info/i18n/hr.po +++ b/purchase_last_price_info/i18n/hr.po @@ -10,8 +10,8 @@ msgstr "" "POT-Creation-Date: 2016-09-30 13:27+0000\n" "PO-Revision-Date: 2023-03-02 16:30+0000\n" "Last-Translator: Bole \n" -"Language-Team: Croatian (http://www.transifex.com/oca/" -"OCA-purchase-workflow-8-0/language/hr/)\n" +"Language-Team: Croatian (http://www.transifex.com/oca/OCA-purchase-" +"workflow-8-0/language/hr/)\n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/purchase_last_price_info/i18n/it.po b/purchase_last_price_info/i18n/it.po index f4b8ae66ce2..5e4a0bb8892 100644 --- a/purchase_last_price_info/i18n/it.po +++ b/purchase_last_price_info/i18n/it.po @@ -8,57 +8,58 @@ msgstr "" "Project-Id-Version: purchase-workflow (8.0)\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-09-15 11:37+0000\n" -"PO-Revision-Date: 2016-03-08 10:16+0000\n" -"Last-Translator: <>\n" -"Language-Team: Italian (http://www.transifex.com/oca/OCA-purchase-" -"workflow-8-0/language/it/)\n" +"PO-Revision-Date: 2023-12-22 11:37+0000\n" +"Last-Translator: mymage \n" +"Language-Team: Italian (http://www.transifex.com/oca/" +"OCA-purchase-workflow-8-0/language/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" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: purchase_last_price_info #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_product__last_purchase_currency_id #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_template__last_purchase_currency_id msgid "Last Purchase Currency" -msgstr "" +msgstr "Valuta ultimo acquisto" #. module: purchase_last_price_info #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_product__last_purchase_date #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_template__last_purchase_date msgid "Last Purchase Date" -msgstr "" +msgstr "Data ultimo acquisto" #. module: purchase_last_price_info #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_product__last_purchase_line_id #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_template__last_purchase_line_id msgid "Last Purchase Line" -msgstr "" +msgstr "Ultima riga acquisto" #. module: purchase_last_price_info #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_product__last_purchase_line_ids #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_template__last_purchase_line_ids msgid "Last Purchase Order Lines" -msgstr "" +msgstr "Ultime righe ordine di acquisto" #. module: purchase_last_price_info #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_product__last_purchase_price #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_template__last_purchase_price msgid "Last Purchase Price" -msgstr "" +msgstr "Ultimo prezzo di acquisto" #. module: purchase_last_price_info #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_product__last_purchase_supplier_id #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_template__last_purchase_supplier_id msgid "Last Supplier" -msgstr "" +msgstr "Ultimo fornitore" #. module: purchase_last_price_info #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_product__last_purchase_price_currency #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_template__last_purchase_price_currency msgid "Last currency purchase price" -msgstr "" +msgstr "Ultima valuta prezzo acquisto" #. module: purchase_last_price_info #: model:ir.model,name:purchase_last_price_info.model_product_template @@ -68,19 +69,19 @@ msgstr "Prodotto" #. module: purchase_last_price_info #: model:ir.model,name:purchase_last_price_info.model_product_product msgid "Product Variant" -msgstr "" +msgstr "Variante prodotto" #. module: purchase_last_price_info #: model_terms:ir.ui.view,arch_db:purchase_last_price_info.product_product_last_purchase_info_form_view #: model_terms:ir.ui.view,arch_db:purchase_last_price_info.product_template_last_purchase_info_form_view msgid "Purchase" -msgstr "" +msgstr "Acquisto" #. module: purchase_last_price_info #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_product__show_last_purchase_price_currency #: model:ir.model.fields,field_description:purchase_last_price_info.field_product_template__show_last_purchase_price_currency msgid "Show Last Purchase Price Currency" -msgstr "" +msgstr "Visualizza la valuta prezzo ultimo acquisto" #, fuzzy #~ msgid "Product Template" diff --git a/purchase_last_price_info/i18n/pt_BR.po b/purchase_last_price_info/i18n/pt_BR.po index 88091a8bb30..d539e6cdb6d 100644 --- a/purchase_last_price_info/i18n/pt_BR.po +++ b/purchase_last_price_info/i18n/pt_BR.po @@ -11,8 +11,8 @@ msgstr "" "POT-Creation-Date: 2016-05-15 09:24+0000\n" "PO-Revision-Date: 2023-06-10 23:08+0000\n" "Last-Translator: Adriano Prado \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/" -"OCA-purchase-workflow-8-0/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-" +"purchase-workflow-8-0/language/pt_BR/)\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/purchase_last_price_info/static/description/index.html b/purchase_last_price_info/static/description/index.html index 43a05b6df33..10c05dda043 100644 --- a/purchase_last_price_info/static/description/index.html +++ b/purchase_last_price_info/static/description/index.html @@ -1,20 +1,19 @@ - - + Purchase Product Last Price Info + + +
+

Purchase Manual Delivery

+ + +

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

+

The goal of this module is to allow the manual creation of incoming shipments. When installed, +a purchase order won’t impact directly the stock. It will not create the pickings upon order confirmation. +It allows the reception and the impact on stock to be done manually when needed. +The goal is to be used when a supplier does not confirm the full order at once. As the supplier +confirms the different purchase order lines, the user can manually create the incoming +shipments for those specific lines.

+

Table of contents

+ +
+

Usage

+

There are two main ways to use this module:

+
    +
  • From Purchase Order
  • +
+

When creating a purchase order and confirming it, no picking will be automatically created. +Lines with pending quantities to receive will appear in blue color, to create +the manual picking press the button “Create Incoming Shipment”:

+
+https://raw.githubusercontent.com/OCA/purchase-workflow/16.0/purchase_manual_delivery/static/description/create_incoming_shipment_button.png +
+

This will trigger the wizard that lets the user choose which lines should be taken for the +creation of the picking and also the quantities. Clicking on the “Create and View Picking” +will create the reception and redirect the user to the picking form.

+
+https://raw.githubusercontent.com/OCA/purchase-workflow/16.0/purchase_manual_delivery/static/description/create_incoming_shipment_wizard.png +
+
    +
  • From Purchase Order Line
  • +
+

The module adds a new list view for Purchase Order Lines (in Purchase Menu). From there you can select multiple +PO lines (in this base module only PO lines from same PO can be selected) and create the +manual delivery. Follow the same steps as above to manually generate the incoming shipment.

+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • ForgeFlow S.L.
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_manual_delivery/tests/__init__.py b/purchase_manual_delivery/tests/__init__.py new file mode 100644 index 00000000000..b257863cfb2 --- /dev/null +++ b/purchase_manual_delivery/tests/__init__.py @@ -0,0 +1 @@ +from . import test_purchase_manual_delivery diff --git a/purchase_manual_delivery/tests/test_purchase_manual_delivery.py b/purchase_manual_delivery/tests/test_purchase_manual_delivery.py new file mode 100644 index 00000000000..01b8c397131 --- /dev/null +++ b/purchase_manual_delivery/tests/test_purchase_manual_delivery.py @@ -0,0 +1,303 @@ +# Copyright 2019 ForgeFlow S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields +from odoo.exceptions import UserError +from odoo.tests.common import TransactionCase + + +class TestPurchaseManualDelivery(TransactionCase): + def setUp(self): + super(TestPurchaseManualDelivery, self).setUp() + self.purchase_order_obj = self.env["purchase.order"] + self.purchase_order_line_obj = self.env["purchase.order.line"] + self.stock_picking_obj = self.env["stock.picking"] + self.env.company.purchase_manual_delivery = True + # Products + self.product1 = self.env.ref("product.product_product_13") + self.product2 = self.env.ref("product.product_product_25") + + # Sublocation + self.shelf2 = self.env.ref("stock.stock_location_14") + + # Purchase Orders + self.po1 = self.purchase_order_obj.create( + { + "partner_id": self.ref("base.res_partner_3"), + } + ) + self.po1_line1 = self.purchase_order_line_obj.create( + { + "order_id": self.po1.id, + "product_id": self.product1.id, + "product_uom": self.product1.uom_id.id, + "name": self.product1.name, + "price_unit": self.product1.standard_price, + "date_planned": fields.datetime.now(), + "product_qty": 42.0, + } + ) + self.po1_line2 = self.purchase_order_line_obj.create( + { + "order_id": self.po1.id, + "product_id": self.product2.id, + "product_uom": self.product2.uom_id.id, + "name": self.product2.name, + "price_unit": self.product2.standard_price, + "date_planned": fields.datetime.now(), + "product_qty": 12.0, + } + ) + + self.po2 = self.purchase_order_obj.create( + { + "partner_id": self.ref("base.res_partner_3"), + } + ) + self.po2_line1 = self.purchase_order_line_obj.create( + { + "order_id": self.po2.id, + "product_id": self.product1.id, + "product_uom": self.product1.uom_id.id, + "name": self.product1.name, + "price_unit": self.product1.standard_price, + "date_planned": fields.datetime.now(), + "product_qty": 10.0, + } + ) + self.po2_line2 = self.purchase_order_line_obj.create( + { + "order_id": self.po2.id, + "product_id": self.product2.id, + "product_uom": self.product2.uom_id.id, + "name": self.product2.name, + "price_unit": self.product2.standard_price, + "date_planned": fields.datetime.now(), + "product_qty": 22.0, + } + ) + + def test_01_purchase_order_manual_delivery(self): + """ + Confirm Purchase Order 1, check no incoming shipments have been + pre-created, create them manually (create one with one PO line, + add second PO line to same picking afterwards) + """ + # confirm RFQ + self.po1.button_confirm_manual() + self.assertTrue(self.po1_line1.pending_to_receive) + self.assertTrue(self.po1_line2.pending_to_receive) + self.assertEqual(self.po1_line1.existing_qty, 0) + self.assertEqual(self.po1_line2.existing_qty, 0) + self.assertFalse( + self.po1.picking_ids, + "Purchase Manual Delivery: no picking should had been created", + ) + # create a manual delivery for one line (product1) + wizard = ( + self.env["create.stock.picking.wizard"] + .with_context( + **{ + "active_model": "purchase.order", + "active_id": self.po1.id, + "active_ids": self.po1.ids, + } + ) + .create({}) + ) + wizard.fill_lines(self.po1.order_line) + wizard.line_ids = wizard.line_ids - wizard.line_ids.filtered( + lambda l: l.product_id == self.product2 + ) + wizard.create_stock_picking() + # check picking is created + self.assertTrue( + self.po1.picking_ids, + 'Purchase Manual Delivery: picking \ + should be created after "manual delivery" wizard call', + ) + picking_id = self.po1.picking_ids[0] + # create a manual delivery, other product (product2) + wizard = ( + self.env["create.stock.picking.wizard"] + .with_context( + **{ + "active_model": "purchase.order", + "active_id": self.po1.id, + "active_ids": self.po1.ids, + } + ) + .create({}) + ) + wizard.fill_lines(self.po1.order_line) + self.assertEqual(len(wizard.line_ids), 1) + self.assertEqual(wizard.line_ids[0].product_id, self.product2) + wizard.picking_id = picking_id + wizard.create_stock_picking() + self.assertEqual( + len(self.po1.picking_ids), + 1, + "No extra picking should have been created", + ) + # create a manual delivery, no lines should be proposed + wizard = ( + self.env["create.stock.picking.wizard"] + .with_context( + **{ + "active_model": "purchase.order", + "active_id": self.po1.id, + "active_ids": self.po1.ids, + } + ) + .create({}) + ) + wizard.fill_lines(self.po1.order_line) + self.assertFalse( + wizard.line_ids, + "Purchase Manual Delivery: After picking \ + creation for all products, no lines should be left in the wizard", + ) + self.assertFalse(self.po1_line1.pending_to_receive) + self.assertFalse(self.po1_line2.pending_to_receive) + self.assertEqual(self.po1_line1.existing_qty, self.po1_line1.product_qty) + self.assertEqual(self.po1_line2.existing_qty, self.po1_line2.product_qty) + + def test_02_purchase_order_line_manual_delivery(self): + """ + Confirm Purchase Order 1 and 2, try to create incoming shipment + from two PO lines from different PO (error), create one reception + for two PO lines from same PO twice. + """ + # confirm RFQ + self.po1.button_confirm_manual() + self.po2.button_confirm_manual() + self.assertTrue(self.po1_line1.pending_to_receive) + self.assertTrue(self.po1_line2.pending_to_receive) + self.assertTrue(self.po2_line1.pending_to_receive) + self.assertTrue(self.po2_line2.pending_to_receive) + self.assertEqual(self.po1_line1.existing_qty, 0) + self.assertEqual(self.po1_line2.existing_qty, 0) + self.assertEqual(self.po2_line1.existing_qty, 0) + self.assertEqual(self.po2_line2.existing_qty, 0) + with self.assertRaises(UserError): + # create a manual delivery for two lines different PO + self.env["create.stock.picking.wizard"].with_context( + **{ + "active_model": "purchase.order.line", + "active_ids": [self.po1_line1.id, self.po2_line1.id], + } + ).create({}) + + # create a manual delivery for lines in PO2 + wizard = ( + self.env["create.stock.picking.wizard"] + .with_context( + **{ + "active_model": "purchase.order.line", + "active_ids": self.po2.order_line.ids, + } + ) + .create({}) + ) + wizard.fill_lines(self.po2.order_line) + wizard.create_stock_picking() + self.assertTrue( + self.po2.picking_ids, + 'Purchase Manual Delivery: picking \ + should be created after "manual delivery" wizard call', + ) + self.assertTrue(self.po1_line1.pending_to_receive) + self.assertTrue(self.po1_line2.pending_to_receive) + self.assertFalse(self.po2_line1.pending_to_receive) + self.assertFalse(self.po2_line2.pending_to_receive) + self.assertEqual(self.po1_line1.existing_qty, 0) + self.assertEqual(self.po1_line2.existing_qty, 0) + self.assertEqual(self.po2_line1.existing_qty, self.po2_line1.product_qty) + self.assertEqual(self.po2_line2.existing_qty, self.po2_line2.product_qty) + + def test_03_purchase_order_line_location(self): + """ + Confirm Purchase Order 1, create one reception changing the + location, check location has been correctly set in Picking. + """ + grp_multi_loc = self.env.ref("stock.group_stock_multi_locations") + self.env.user.write({"groups_id": [(4, grp_multi_loc.id, 0)]}) + # confirm RFQ + self.po1.button_confirm_manual() + self.assertTrue(self.po1_line1.pending_to_receive) + self.assertTrue(self.po1_line2.pending_to_receive) + self.assertEqual(self.po1_line1.existing_qty, 0) + self.assertEqual(self.po1_line2.existing_qty, 0) + # create a manual delivery for one line (product1) + wizard = ( + self.env["create.stock.picking.wizard"] + .with_context( + **{ + "active_model": "purchase.order", + "active_id": self.po1.id, + "active_ids": self.po1.ids, + } + ) + .create({}) + ) + wizard.fill_lines(self.po1.order_line) + wizard.line_ids = wizard.line_ids - wizard.line_ids.filtered( + lambda l: l.product_id == self.product2 + ) + wizard.location_dest_id = self.shelf2 + wizard.create_stock_picking() + # check picking is created + picking_id = self.po1.picking_ids[0] + self.assertEqual(picking_id.location_dest_id, self.shelf2) + self.assertFalse(self.po1_line1.pending_to_receive) + self.assertTrue(self.po1_line2.pending_to_receive) + self.assertEqual(self.po1_line1.existing_qty, self.po1_line1.product_qty) + self.assertEqual(self.po1_line2.existing_qty, 0) + + def test_04_pending_to_receive(self): + """ + Checks if a purchase order line with existing quantity higher than + total quantity is not pending to receive + """ + # Create PO and PO Line + po_existing_bigger = self.purchase_order_obj.create( + { + "partner_id": self.ref("base.res_partner_3"), + } + ) + pol_existing_bigger = self.purchase_order_line_obj.create( + { + "order_id": po_existing_bigger.id, + "product_id": self.product1.id, + "product_uom": self.product1.uom_id.id, + "name": self.product1.name, + "price_unit": self.product1.standard_price, + "date_planned": fields.datetime.now(), + "product_qty": 5.0, + } + ) + po_existing_bigger.button_confirm_manual() + # create a manual delivery for line in po_existing_bigger + wizard = ( + self.env["create.stock.picking.wizard"] + .with_context( + **{ + "active_model": "purchase.order.line", + "active_ids": po_existing_bigger.order_line.ids, + } + ) + .create({}) + ) + wizard.fill_lines(po_existing_bigger.order_line) + wizard.line_ids.filtered( + lambda l: l.purchase_order_line_id.id == pol_existing_bigger.id + ).qty = 1 + wizard.create_stock_picking() + + # Change the done quantity to be bigger than the total needed + picking_id = po_existing_bigger.picking_ids[0] + picking_id.move_ids[0].quantity_done = 6 + picking_id.button_validate() + + # The PO Line should not be pending to receive + self.assertFalse(po_existing_bigger.pending_to_receive) diff --git a/purchase_manual_delivery/views/purchase_order_views.xml b/purchase_manual_delivery/views/purchase_order_views.xml new file mode 100644 index 00000000000..e7821435212 --- /dev/null +++ b/purchase_manual_delivery/views/purchase_order_views.xml @@ -0,0 +1,136 @@ + + + + + purchase.order.form + purchase.order + + + + + + + + + + + + + + state == 'purchase' and pending_to_receive + + + + + + + + + purchase.order.line + + + + state == 'purchase' and pending_to_receive + + + + + + + + + + + + + purchase.order.unreceived.line + purchase.order.line + + + + + + + + + + + + + + + Purchase Manual Receipt + ir.actions.act_window + purchase.order.line + tree,form + + {"search_default_unreceived":0, "search_default_received":0} + + +

+ Here is a list of each purchase order line to be received. +

+
+
+ + + +
diff --git a/purchase_manual_delivery/views/res_config_view.xml b/purchase_manual_delivery/views/res_config_view.xml new file mode 100644 index 00000000000..1437b8cd30a --- /dev/null +++ b/purchase_manual_delivery/views/res_config_view.xml @@ -0,0 +1,39 @@ + + + + res.config.settings.view.form.inherit.manual.delivery + res.config.settings + + +
+

Delivery

+
+
+
+ +
+
+
+
+
+
+
+
+
diff --git a/purchase_manual_delivery/wizard/__init__.py b/purchase_manual_delivery/wizard/__init__.py new file mode 100644 index 00000000000..047e6a6aa92 --- /dev/null +++ b/purchase_manual_delivery/wizard/__init__.py @@ -0,0 +1 @@ +from . import create_manual_stock_picking diff --git a/purchase_manual_delivery/wizard/create_manual_stock_picking.py b/purchase_manual_delivery/wizard/create_manual_stock_picking.py new file mode 100644 index 00000000000..89e1c887a03 --- /dev/null +++ b/purchase_manual_delivery/wizard/create_manual_stock_picking.py @@ -0,0 +1,255 @@ +# Copyright 2019 ForgeFlow S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import _, api, fields, models +from odoo.exceptions import UserError + + +class CreateManualStockPickingWizard(models.TransientModel): + _name = "create.stock.picking.wizard" + _description = "Create Manual Stock Picking Wizard" + + def _default_purchase_order(self): + if self.env.context["active_model"] == "purchase.order.line": + return ( + self.env["purchase.order.line"] + .browse(self.env.context["active_ids"][0]) + .order_id + ) + return self.env["purchase.order"].browse(self.env.context["active_id"]) + + def _default_location_dest_id(self): + return self.env["stock.location"].browse( + self._default_purchase_order()._get_destination_location() + ) + + @api.model + def default_get(self, fields): + res = super(CreateManualStockPickingWizard, self).default_get(fields) + + active_model = self.env.context["active_model"] + if active_model == "purchase.order.line": + po_line_ids = self.env.context["active_ids"] or [] + purchase_lines = ( + self.env["purchase.order.line"] + .browse(po_line_ids) + .filtered( + lambda p: p.product_id.type in ["product", "consu"] + and p.pending_to_receive + ) + ) + elif active_model == "purchase.order": + po_ids = self.env.context["active_ids"] or [] + purchase_lines = ( + self.env["purchase.order"] + .browse(po_ids) + .mapped("order_line") + .filtered( + lambda p: p.product_id.type in ["product", "consu"] + and p.pending_to_receive + ) + ) + self._check_purchase_line_constrains(purchase_lines) + res["line_ids"] = self.fill_lines(purchase_lines) + res["partner_id"] = purchase_lines.mapped("order_id.partner_id").id + return res + + def _check_purchase_line_constrains(self, purchase_lines): + if len(purchase_lines.mapped("order_id.partner_id")) > 1: + raise UserError(_("Please select one partner at a time")) + if len(purchase_lines.mapped("order_id")) > 1: + raise UserError(_("Please select one purchase order at a time")) + + def fill_lines(self, po_lines): + lines = [ + ( + 0, + 0, + { + "purchase_order_line_id": line.id, + "name": line.name, + "product_id": line.product_id.id, + "date_planned": line.date_planned, + "price_unit": line.price_unit, + "product_qty": line.product_qty, + "existing_qty": line.existing_qty, + "remaining_qty": line.product_qty - line.existing_qty, + "qty": line.product_qty - line.existing_qty, + "product_uom": line.product_uom.id, + "currency_id": line.currency_id.id, + "partner_id": line.partner_id.id, + # 'taxes_id': line.taxes_id.ids, + }, + ) + for line in po_lines + ] + return lines + + purchase_id = fields.Many2one( + "purchase.order", + string="Purchase Order", + readonly=True, + default=_default_purchase_order, + ) + line_ids = fields.One2many( + comodel_name="create.stock.picking.wizard.line", + inverse_name="wizard_id", + string="Lines", + ) + picking_id = fields.Many2one("stock.picking", string="Stock Picking") + partner_id = fields.Many2one("res.partner", "Vendor") + scheduled_date = fields.Datetime( + "Scheduled Date", related="picking_id.scheduled_date" + ) + location_dest_id = fields.Many2one( + "stock.location", + "Destination Location", + default=_default_location_dest_id, + help="Location where the system will stock the received products.", + ) + + @api.onchange("picking_id") + def onchange_picking_id(self): + if self.picking_id: + self.location_dest_id = self.picking_id.location_dest_id + + def _prepare_picking(self): + res = self.purchase_id._prepare_picking() + if self.location_dest_id: + res["location_dest_id"] = self.location_dest_id.id + return res + + def create_stock_picking(self): + StockPicking = self.env["stock.picking"] + + # If a picking has been selected, we add products to the picking + # otherwise we create a new picking + picking_id = self.picking_id + if not picking_id: + res = self._prepare_picking() + picking_id = StockPicking.create(res) + + # Check quantity is not above remaining quantity + if any(line.qty > line.remaining_qty for line in self.line_ids): + raise UserError( + _( + "You can not receive more than the remaining " + "quantity. If you need to do so, please edit " + "the purchase order first." + ) + ) + moves = self.line_ids._create_stock_moves(picking_id) + moves = moves.filtered( + lambda x: x.state not in ("done", "cancel") + )._action_confirm() + seq = 0 + for move in sorted(moves, key=lambda move: move.date_deadline or move.date): + seq += 5 + move.sequence = seq + moves._action_assign() + picking_id.message_post_with_view( + "mail.message_origin_link", + values={"self": picking_id, "origin": self.purchase_id}, + subtype_id=self.env.ref("mail.mt_note").id, + ) + + return { + "name": _("Stock Picking"), + "view_mode": "form", + "res_model": "stock.picking", + "view_id": self.env.ref("stock.view_picking_form").id, + "res_id": picking_id.id, + "type": "ir.actions.act_window", + } + + +class CreateManualStockPickingWizardLine(models.TransientModel): + _name = "create.stock.picking.wizard.line" + _description = "Create Manual Stock Picking Wizard Line" + + wizard_id = fields.Many2one( + string="Wizard", + comodel_name="create.stock.picking.wizard", + required=True, + ondelete="cascade", + ) + purchase_order_line_id = fields.Many2one("purchase.order.line") + name = fields.Text(string="Description", readonly=True) + product_id = fields.Many2one( + "product.product", + related="purchase_order_line_id.product_id", + string="Product", + ) + product_uom = fields.Many2one( + "uom.uom", + related="purchase_order_line_id.product_uom", + string="Unit of Measure", + ) + date_planned = fields.Datetime(related="purchase_order_line_id.date_planned") + product_qty = fields.Float( + string="Quantity", + related="purchase_order_line_id.product_qty", + digits="Product Unit of Measure", + ) + existing_qty = fields.Float( + string="Existing Quantity", + related="purchase_order_line_id.existing_qty", + digits="Product Unit of Measure", + ) + remaining_qty = fields.Float( + string="Remaining Quantity", + compute="_compute_remaining_qty", + readonly=True, + digits="Product Unit of Measure", + ) + qty = fields.Float( + string="Quantity to Receive", + digits="Product Unit of Measure", + help="This is the quantity taken into account to create the picking", + ) + price_unit = fields.Float( + related="purchase_order_line_id.price_unit", readonly=True + ) + currency_id = fields.Many2one( + "res.currency", related="purchase_order_line_id.currency_id" + ) + partner_id = fields.Many2one( + "res.partner", + related="purchase_order_line_id.partner_id", + string="Vendor", + ) + taxes_id = fields.Many2many( + "account.tax", related="purchase_order_line_id.taxes_id" + ) + + def _compute_remaining_qty(self): + for line in self: + line.remaining_qty = line.product_qty - line.existing_qty + + def _prepare_stock_moves(self, picking): + po_line = self.purchase_order_line_id + return po_line._prepare_stock_moves(picking) + + def _create_stock_moves(self, picking): + values = [] + for line in self: + for val in line._prepare_stock_moves(picking): + if val.get("product_uom_qty", False): + # CHECK ME: We can receive more than one move + product_uom = ( + self.env["uom.uom"].browse(val.get("product_uom", 0)) + or line.product_uom + ) + val["product_uom_qty"] = line.product_uom._compute_quantity( + line.qty, + product_uom, + rounding_method="HALF-UP", + ) + if ( + val.get("location_dest_id", False) + and not line.wizard_id.picking_id + and line.wizard_id.location_dest_id + ): + val["location_dest_id"] = line.wizard_id.location_dest_id.id + values.append(val) + return self.env["stock.move"].create(values) diff --git a/purchase_manual_delivery/wizard/create_manual_stock_picking.xml b/purchase_manual_delivery/wizard/create_manual_stock_picking.xml new file mode 100644 index 00000000000..03edc84dbe6 --- /dev/null +++ b/purchase_manual_delivery/wizard/create_manual_stock_picking.xml @@ -0,0 +1,62 @@ + + + + + Create Stock Picking + create.stock.picking.wizard + +
+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + Create Manual Stock Picking + ir.actions.act_window + create.stock.picking.wizard + form + new + + + +
diff --git a/purchase_merge/README.rst b/purchase_merge/README.rst index 1b11378547a..a92ef2a3da1 100644 --- a/purchase_merge/README.rst +++ b/purchase_merge/README.rst @@ -2,10 +2,13 @@ Purchase Merge ============== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:6593929c5934f76931f4345622c11a823589930923e026b3759d7257649c7d99 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Purchase Merge .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_merge :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds a wizard to merge purchase order. @@ -61,7 +64,7 @@ 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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/purchase_merge/__manifest__.py b/purchase_merge/__manifest__.py index 531a5ae0916..e4b6fc998ce 100644 --- a/purchase_merge/__manifest__.py +++ b/purchase_merge/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase Merge", "summary": "Wizard to merge purchase with required conditions", - "version": "16.0.1.0.0", + "version": "16.0.1.0.3", "author": "Camptocamp, Odoo Community Association (OCA)", "website": "https://github.com/OCA/purchase-workflow", "license": "AGPL-3", diff --git a/purchase_merge/i18n/es.po b/purchase_merge/i18n/es.po index e0908c05d11..db8a685d3fc 100644 --- a/purchase_merge/i18n/es.po +++ b/purchase_merge/i18n/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-07-18 10:09+0000\n" +"PO-Revision-Date: 2023-10-09 09:10+0000\n" "Last-Translator: Ivorra78 \n" "Language-Team: none\n" "Language: es\n" @@ -82,6 +82,11 @@ msgstr "Fusionar compra seleccionada" msgid "Purchase" msgstr "Compra" +#. module: purchase_merge +#: model:ir.model,name:purchase_merge.model_purchase_merge_automatic_wizard +msgid "Purchase Merge Automatic Wizard" +msgstr "" + #. module: purchase_merge #: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form msgid "Selected purchase will be merged together." @@ -91,8 +96,8 @@ msgstr "La compra seleccionada se fusionará." #. odoo-python #: code:addons/purchase_merge/wizard/purchase_merge.py:0 #, python-format -msgid "This purchase order lines have been merged {} : {}" -msgstr "Estas líneas de pedido se han fusionado {} : {}" +msgid "This purchase order lines have been merged %(way)s : %(po_names)s" +msgstr "" #. module: purchase_merge #. odoo-python @@ -144,7 +149,13 @@ msgstr "No se pueden fusionar pedidos con diferentes tipos de recogida: %s" msgid "You can't merge purchase orders with different suppliers: %s" msgstr "No se pueden fusionar pedidos con diferentes proveedores: %s" -#. module: purchase_merge -#: model:ir.model,name:purchase_merge.model_purchase_merge_automatic_wizard -msgid "purchase.merge.automatic.wizard" -msgstr "asistente.de.fusión.automática.de.compras" +#, python-format +#~ msgid "This purchase order lines have been merged {way} : {po_names}" +#~ msgstr "Estas líneas de pedido han sido fusionadas {way} : {po_names}" + +#~ msgid "purchase.merge.automatic.wizard" +#~ msgstr "asistente.de.fusión.automática.de.compras" + +#, python-format +#~ msgid "This purchase order lines have been merged {} : {}" +#~ msgstr "Estas líneas de pedido se han fusionado {} : {}" diff --git a/purchase_merge/i18n/it.po b/purchase_merge/i18n/it.po new file mode 100644 index 00000000000..a7e7d739912 --- /dev/null +++ b/purchase_merge/i18n/it.po @@ -0,0 +1,159 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_merge +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-12 09:58+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_merge +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Automatic Merge Wizard" +msgstr "Procedura guidata unione automatica" + +#. module: purchase_merge +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Cancel" +msgstr "Annulla" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__dst_purchase_id +msgid "Destination" +msgstr "Destinazione" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__id +msgid "ID" +msgstr "ID" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: purchase_merge +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Merge Purchase" +msgstr "Unisci acquisto" + +#. module: purchase_merge +#: model:ir.actions.act_window,name:purchase_merge.action_purchase_merge +msgid "Merge Selected Purchase" +msgstr "Unisci acquisto selezionato" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__purchase_ids +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Purchase" +msgstr "Acquisto" + +#. module: purchase_merge +#: model:ir.model,name:purchase_merge.model_purchase_merge_automatic_wizard +msgid "Purchase Merge Automatic Wizard" +msgstr "Procedura guidata unione automatica acquisti" + +#. module: purchase_merge +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Selected purchase will be merged together." +msgstr "Gli acquisti selezionati verranno uniti." + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "This purchase order lines have been merged %(way)s : %(po_names)s" +msgstr "Queste righe ordine di acquisto sono state unite %(way)s : %(po_names)s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders that aren't in draft state like: {}" +msgstr "" +"Non si pososno unire ordini di acquisto che non sono in stato bozza come : {}" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different currencies: %s" +msgstr "Non si possono unire ordini di acquisto con valute diverse: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different fiscal positions: %s" +msgstr "" +"Non si possono unire ordini di acquisto con posizioni fiscali diverse: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different incoterms: %s" +msgstr "Non si possono unire ordini di acquisto con Incoterm diversi: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different payment terms: %s" +msgstr "" +"Non si possono unire ordini di acquisto con termini di pagamento diversi: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different picking types: %s" +msgstr "Non si possono unire ordini di acquisto con tipi prelievo diversi: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different suppliers: %s" +msgstr "Non si possono unire ordini di acquisto con fornitori diversi: %s" + +#, python-format +#~ msgid "This purchase order lines have been merged {way} : {po_names}" +#~ msgstr "Queste righe ordine di vendita sono state unite {way} : {po_names}" + +#~ msgid "purchase.merge.automatic.wizard" +#~ msgstr "purchase.merge.automatic.wizard" diff --git a/purchase_merge/i18n/pt_BR.po b/purchase_merge/i18n/pt_BR.po new file mode 100644 index 00000000000..e03943aec8c --- /dev/null +++ b/purchase_merge/i18n/pt_BR.po @@ -0,0 +1,164 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_merge +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-05-22 00:04+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: none\n" +"Language: pt_BR\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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_merge +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Automatic Merge Wizard" +msgstr "Assistente de Mesclagem Automática" + +#. module: purchase_merge +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__dst_purchase_id +msgid "Destination" +msgstr "Destino" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__display_name +msgid "Display Name" +msgstr "Nome Exibição" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__id +msgid "ID" +msgstr "ID" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard____last_update +msgid "Last Modified on" +msgstr "Última Modificação em" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__write_uid +msgid "Last Updated by" +msgstr "Última Atualização por" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__write_date +msgid "Last Updated on" +msgstr "Última Atualização em" + +#. module: purchase_merge +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Merge Purchase" +msgstr "Mesclar Compra" + +#. module: purchase_merge +#: model:ir.actions.act_window,name:purchase_merge.action_purchase_merge +msgid "Merge Selected Purchase" +msgstr "Mesclar Compras Selecionadas" + +#. module: purchase_merge +#: model:ir.model.fields,field_description:purchase_merge.field_purchase_merge_automatic_wizard__purchase_ids +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Purchase" +msgstr "Compra" + +#. module: purchase_merge +#: model:ir.model,name:purchase_merge.model_purchase_merge_automatic_wizard +msgid "Purchase Merge Automatic Wizard" +msgstr "" + +#. module: purchase_merge +#: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form +msgid "Selected purchase will be merged together." +msgstr "A compra selecionada será mesclada." + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "This purchase order lines have been merged %(way)s : %(po_names)s" +msgstr "" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders that aren't in draft state like: {}" +msgstr "" +"Não é possível mesclar pedidos de compra que não estejam no estado de " +"rascunho, como: {}" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different currencies: %s" +msgstr "Você não pode mesclar pedidos de compra com moedas diferentes: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different fiscal positions: %s" +msgstr "" +"Você não pode mesclar pedidos de compra com posições fiscais diferentes: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different incoterms: %s" +msgstr "Você não pode mesclar pedidos de compra com Incoterms diferentes: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different payment terms: %s" +msgstr "" +"Você não pode mesclar pedidos de compra com condições de pagamento " +"diferentes: %s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different picking types: %s" +msgstr "" +"Não é possível mesclar pedidos de compra com tipos de separação diferentes: " +"%s" + +#. module: purchase_merge +#. odoo-python +#: code:addons/purchase_merge/wizard/purchase_merge.py:0 +#, python-format +msgid "You can't merge purchase orders with different suppliers: %s" +msgstr "Você não pode mesclar pedidos de compra de fornecedores diferentes: %s" + +#, python-format +#~ msgid "This purchase order lines have been merged {way} : {po_names}" +#~ msgstr "Estas linhas da ordem de compra foram mescladas {way}: {po_names}" + +#~ msgid "purchase.merge.automatic.wizard" +#~ msgstr "assistente.de.fusão.automática.de.compras" diff --git a/purchase_merge/i18n/purchase_merge.pot b/purchase_merge/i18n/purchase_merge.pot index 4550b181606..008736ee8b8 100644 --- a/purchase_merge/i18n/purchase_merge.pot +++ b/purchase_merge/i18n/purchase_merge.pot @@ -79,6 +79,11 @@ msgstr "" msgid "Purchase" msgstr "" +#. module: purchase_merge +#: model:ir.model,name:purchase_merge.model_purchase_merge_automatic_wizard +msgid "Purchase Merge Automatic Wizard" +msgstr "" + #. module: purchase_merge #: model_terms:ir.ui.view,arch_db:purchase_merge.purchase_merge_automatic_wizard_form msgid "Selected purchase will be merged together." @@ -88,7 +93,7 @@ msgstr "" #. odoo-python #: code:addons/purchase_merge/wizard/purchase_merge.py:0 #, python-format -msgid "This purchase order lines have been merged {} : {}" +msgid "This purchase order lines have been merged %(way)s : %(po_names)s" msgstr "" #. module: purchase_merge @@ -139,8 +144,3 @@ msgstr "" #, python-format msgid "You can't merge purchase orders with different suppliers: %s" msgstr "" - -#. module: purchase_merge -#: model:ir.model,name:purchase_merge.model_purchase_merge_automatic_wizard -msgid "purchase.merge.automatic.wizard" -msgstr "" diff --git a/purchase_merge/static/description/index.html b/purchase_merge/static/description/index.html index 25e36aa425c..481c2825301 100644 --- a/purchase_merge/static/description/index.html +++ b/purchase_merge/static/description/index.html @@ -1,20 +1,20 @@ - - + Purchase Merge + + +
+

Purchase Only By Packaging

+ + +

Alpha License: AGPL-3 OCA/purchase-workflow Translate me on Weblate Try me on Runboat

+

This module provides different configuration option to manage packagings on +purchase orders.

+

The creation/update of purchase order line will be blocked (by constraints) if the data on the +purchase.order.line does not fit with the configuration of the product’s packagings.

+

It’s also possible to force the quantity to purchase during creation/modification of the purchase order line +if the “Force purchase quantity” is ticked on the packaging and the “Purchase only by packaging” is ticked on product.

+

For example, if your packaging is set to purchase by 5 units and the employee fill +the quantity with 3, the quantity will be automatically replaced by 5 (it always rounds up).

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Configuration

+

Following options are available to define which packaging level can be purchased and +which product can only be purchased by packaging.

+
    +
  • Purchase only by packaging: On product template model, this checkbox restricts +purchases of these products if no packaging is selected on the purchase order line. +If no packaging is selected, it will either be auto-assigned if the quantity +on the purchase order line matches a packaging quantity or an error will be raised.
  • +
  • Force purchase quantity (on the packaging): force rounds up the quantity during +creation/modification of the purchase order line with the factor set on the packaging.
  • +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
  • BCIM
  • +
+
+
+

Contributors

+ +
+
+

Other credits

+

The development of this module has been financially supported by:

+
    +
  • Camptocamp
  • +
+

This module feature was extracted from the original sale-workflow/sale_by_packaging module.

+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_only_by_packaging/tests/__init__.py b/purchase_only_by_packaging/tests/__init__.py new file mode 100644 index 00000000000..7a31485fa6d --- /dev/null +++ b/purchase_only_by_packaging/tests/__init__.py @@ -0,0 +1,3 @@ +from . import test_minimum_purchasable_qty +from . import test_purchase_only_by_packaging +from . import test_purchase_line_onchanges diff --git a/purchase_only_by_packaging/tests/common.py b/purchase_only_by_packaging/tests/common.py new file mode 100644 index 00000000000..cec71d06da8 --- /dev/null +++ b/purchase_only_by_packaging/tests/common.py @@ -0,0 +1,94 @@ +# Copyright 2023 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo.tests.common import Form, TransactionCase + +TU_PRODUCT_QTY = 20 +PL_PRODUCT_QTY = TU_PRODUCT_QTY * 30 + + +class Common(TransactionCase): + at_install = False + post_install = True + + @classmethod + def setUpClass(cls): + super(Common, cls).setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.env.user.groups_id += cls.env.ref("product.group_stock_packaging") + cls.setUpClassPartner() + cls.setUpClassProduct() + cls.setUpClassPackagingType() + cls.setUpClassPackaging() + cls.setUpClassSaleOrder() + cls.setUpClassConfig() + + @classmethod + def setUpClassConfig(cls): + cls.precision = cls.env["decimal.precision"].precision_get("Product Price") + + @classmethod + def setUpClassPartner(cls): + cls.partner = cls.env.ref("base.res_partner_12") + + @classmethod + def setUpClassProduct(cls): + cls.product = cls.env.ref("product.product_product_9") + + @classmethod + def setUpClassPackagingType(cls): + cls.packaging_level_tu = cls.env["product.packaging.level"].create( + {"name": "Transport Unit", "code": "TU", "sequence": 1} + ) + cls.packaging_level_pl = cls.env["product.packaging.level"].create( + {"name": "Pallet", "code": "PL", "sequence": 2} + ) + cls.packaging_level_cannot_be_purchased = cls.env[ + "product.packaging.level" + ].create( + { + "name": "Can not be purchased", + "code": "CNBP", + "sequence": 30, + "can_be_purchased": False, + } + ) + + @classmethod + def setUpClassPackaging(cls): + cls.packaging_tu = cls.env["product.packaging"].create( + { + "name": "PACKAGING TU", + "product_id": cls.product.id, + "packaging_level_id": cls.packaging_level_tu.id, + "qty": TU_PRODUCT_QTY, + } + ) + cls.packaging_pl = cls.env["product.packaging"].create( + { + "name": "PACKAGING PL", + "product_id": cls.product.id, + "packaging_level_id": cls.packaging_level_pl.id, + "qty": PL_PRODUCT_QTY, + } + ) + cls.packaging_cannot_be_purchased = cls.env["product.packaging"].create( + { + "name": "Test packaging cannot be purchased", + "product_id": cls.product.id, + "qty": 10.0, + "packaging_level_id": cls.packaging_level_cannot_be_purchased.id, + } + ) + cls.purchasable_packagings = cls.packaging_tu | cls.packaging_pl + + @classmethod + def setUpClassSaleOrder(cls): + cls.po_model = cls.env["purchase.order"] + purchase_form = Form(cls.po_model) + purchase_form.partner_id = cls.partner + with purchase_form.order_line.new() as line: + line.product_id = cls.product + line.product_uom = cls.product.uom_id + cls.order = purchase_form.save() + cls.order_line = cls.order.order_line diff --git a/purchase_only_by_packaging/tests/test_minimum_purchasable_qty.py b/purchase_only_by_packaging/tests/test_minimum_purchasable_qty.py new file mode 100644 index 00000000000..d81aa40ed03 --- /dev/null +++ b/purchase_only_by_packaging/tests/test_minimum_purchasable_qty.py @@ -0,0 +1,58 @@ +# Copyright 2023 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.tests import TransactionCase + + +class TestMinimumPurchasableQty(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.product = cls.env.ref("product.product_product_9") + cls.packaging_level_1 = cls.env["product.packaging.level"].create( + {"name": "Packaging level 1", "code": "PL1", "sequence": 1} + ) + cls.packaging_level_2 = cls.env["product.packaging.level"].create( + {"name": "Packaging level 1", "code": "PL2", "sequence": 2} + ) + cls.packaging_level_3 = cls.env["product.packaging.level"].create( + {"name": "Packaging level 3", "code": "PL3", "sequence": 3} + ) + cls.packaging1 = cls.env["product.packaging"].create( + { + "name": "Packaging of five", + "product_id": cls.product.id, + "qty": 5.0, + "packaging_level_id": cls.packaging_level_1.id, + } + ) + cls.packaging2 = cls.env["product.packaging"].create( + { + "name": "Packing of 3", + "product_id": cls.product.id, + "qty": 3.0, + "packaging_level_id": cls.packaging_level_2.id, + } + ) + + def test_min_purchasable_qty(self): + """Check the computation of the minimum purchasable quantity.""" + self.product.product_tmpl_id.purchase_only_by_packaging = False + self.assertEqual(self.product.product_tmpl_id.min_purchasable_qty, 0) + self.product.product_tmpl_id.purchase_only_by_packaging = True + self.assertEqual(self.product.min_purchasable_qty, 3) + self.assertEqual(self.product.product_tmpl_id.min_purchasable_qty, 3) + self.packaging2.can_be_purchased = False + self.assertEqual(self.product.min_purchasable_qty, 5) + self.assertEqual(self.product.product_tmpl_id.min_purchasable_qty, 5) + self.packaging3 = self.env["product.packaging"].create( + { + "name": "Packing of 2", + "product_id": self.product.id, + "qty": 2.0, + "packaging_level_id": self.packaging_level_3.id, + } + ) + self.assertEqual(self.product.min_purchasable_qty, 2) + self.assertEqual(self.product.product_tmpl_id.min_purchasable_qty, 2) diff --git a/purchase_only_by_packaging/tests/test_purchase_line_onchanges.py b/purchase_only_by_packaging/tests/test_purchase_line_onchanges.py new file mode 100644 index 00000000000..bdb3b15cb92 --- /dev/null +++ b/purchase_only_by_packaging/tests/test_purchase_line_onchanges.py @@ -0,0 +1,23 @@ +# Copyright 2023 Camptocamp SA +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from odoo.tests.common import Form + +from .common import PL_PRODUCT_QTY, TU_PRODUCT_QTY, Common + + +class TestPackaging(Common): + def test_compute_qties(self): + with Form(self.order) as po: + with po.order_line.edit(0) as line: + line.product_packaging_id = self.packaging_tu + line.product_packaging_qty = 31 + # (20*30)+20 = 31*20 = 620 + expected_qty = TU_PRODUCT_QTY + PL_PRODUCT_QTY + self.assertEqual(self.order_line.product_qty, expected_qty) + with Form(self.order) as po: + with po.order_line.edit(0) as line: + line.product_packaging_qty = 30 + # 20*30 = 600 + expected_qty = PL_PRODUCT_QTY + self.assertEqual(self.order_line.product_qty, expected_qty) diff --git a/purchase_only_by_packaging/tests/test_purchase_only_by_packaging.py b/purchase_only_by_packaging/tests/test_purchase_only_by_packaging.py new file mode 100644 index 00000000000..fb7092c7924 --- /dev/null +++ b/purchase_only_by_packaging/tests/test_purchase_only_by_packaging.py @@ -0,0 +1,92 @@ +# Copyright 2023 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.exceptions import ValidationError +from odoo.tests import Form +from odoo.tools import mute_logger + +from .common import Common + + +class TestSaleProductByPackagingOnly(Common): + def test_write_auto_fill_packaging(self): + order_line = self.order.order_line + self.assertFalse(order_line.product_packaging_id) + self.assertFalse(order_line.product_packaging_qty) + + order_line.write({"product_qty": 3.0}) + self.assertFalse(order_line.product_packaging_id) + self.assertFalse(order_line.product_packaging_qty) + + self.product.write({"purchase_only_by_packaging": True}) + self.assertFalse(order_line.product_packaging_id) + self.assertFalse(order_line.product_packaging_qty) + + order_line.write({"product_qty": self.packaging_tu.qty * 2}) + self.assertTrue(order_line.product_packaging_id) + self.assertTrue(order_line.product_packaging_qty) + self.assertEqual(order_line.product_packaging_id, self.packaging_tu) + self.assertEqual(order_line.product_packaging_qty, 2) + + with self.assertRaises(ValidationError): + order_line.write({"product_packaging_id": False}) + + def test_error_purchase_packaging(self): + # If qty does not match a packaging qty, an exception should be raised + self.product.purchase_only_by_packaging = True + with self.assertRaises(ValidationError): + with Form(self.order) as so: + with so.order_line.new() as so_line: + so_line.product_id = self.product + so_line.product_qty = 2 + + @mute_logger("odoo.tests.common.onchange") + def test_convert_packaging_qty(self): + """ + Test if the function _convert_packaging_qty is correctly applied + during SO line create/edit and if qties are corrects. + :return: + """ + self.product.purchase_only_by_packaging = True + packaging = self.packaging_tu + self.order_line.product_packaging_id = packaging + # For this step, the qty is not forced on the packaging + # But the warning will be raise because the value of packaging qty is + # not integer package + with self.assertRaises(ValidationError): + self.order_line.product_packaging_qty = 0.6 + self.assertAlmostEqual( + self.order_line.product_qty, 12, places=self.precision + ) + + # Now force the qty on the packaging + packaging.force_purchase_qty = True + with Form(self.order) as purchase_order: + with purchase_order.order_line.edit(0) as so_line: + so_line.product_packaging_id = packaging + so_line.product_qty = 52 + self.assertAlmostEqual(so_line.product_qty, 60, places=self.precision) + so_line.product_qty = 40 + self.assertAlmostEqual(so_line.product_qty, 40, places=self.precision) + so_line.product_qty = 38 + self.assertAlmostEqual(so_line.product_qty, 40, places=self.precision) + so_line.product_qty = 22 + self.assertAlmostEqual(so_line.product_qty, 40, places=self.precision) + so_line.product_qty = 72 + self.assertAlmostEqual(so_line.product_qty, 80, places=self.precision) + so_line.product_qty = 209.98 + self.assertAlmostEqual(so_line.product_qty, 220, places=self.precision) + + def test_onchange_qty_is_not_pack_multiple(self): + """Check package when qantity is not a multiple of package quantity. + + When the uom quantity is changed for a value not a multpile of a + possible package an error is raised. + """ + self.product.write({"purchase_only_by_packaging": True}) + self.order_line.product_qty = 40 # 2 packs + with self.assertRaises(ValidationError): + self.order_line.product_packaging_qty = 0.9 + self.assertAlmostEqual( + self.order_line.product_qty, 18, places=self.precision + ) diff --git a/purchase_only_by_packaging/views/product_packaging.xml b/purchase_only_by_packaging/views/product_packaging.xml new file mode 100644 index 00000000000..1a3cdafa14d --- /dev/null +++ b/purchase_only_by_packaging/views/product_packaging.xml @@ -0,0 +1,23 @@ + + + + product.packaging.tree.view.inherit + product.packaging + + + + + + + + + product.packaging.form.view.inherit + product.packaging + + + + + + + + diff --git a/purchase_only_by_packaging/views/product_product.xml b/purchase_only_by_packaging/views/product_product.xml new file mode 100644 index 00000000000..3f22e24d557 --- /dev/null +++ b/purchase_only_by_packaging/views/product_product.xml @@ -0,0 +1,20 @@ + + + + + product.product.tree.inherit + product.product + + + + + + + + + diff --git a/purchase_only_by_packaging/views/product_template.xml b/purchase_only_by_packaging/views/product_template.xml new file mode 100644 index 00000000000..35512d1ef59 --- /dev/null +++ b/purchase_only_by_packaging/views/product_template.xml @@ -0,0 +1,31 @@ + + + + + product.template.form.view + product.template + + +
+
+ +
+
+ + + +
+
+ + product.template.tree.inherit + product.template + + + + + + + + +
diff --git a/purchase_open_qty/README.rst b/purchase_open_qty/README.rst index fe0b4d477ba..f3a450b494d 100644 --- a/purchase_open_qty/README.rst +++ b/purchase_open_qty/README.rst @@ -2,10 +2,13 @@ Purchase Open Qty ================= -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:c6109ba091eb46af8809473150b68bc745b21f10551530ef64a1d0c3b40772f2 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Purchase Open Qty .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_open_qty :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module allows purchase users to identify what are the purchase orders that currently have quantities pending to invoice or to receive. @@ -43,7 +46,7 @@ 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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/purchase_open_qty/__manifest__.py b/purchase_open_qty/__manifest__.py index 55dce42a799..db55b0cb71a 100644 --- a/purchase_open_qty/__manifest__.py +++ b/purchase_open_qty/__manifest__.py @@ -6,11 +6,14 @@ "name": "Purchase Open Qty", "summary": "Allows to identify the purchase orders that have quantities " "pending to invoice or to receive.", - "version": "16.0.2.0.1", + "version": "16.0.3.0.0", "author": "ForgeFlow, Odoo Community Association (OCA)", "website": "https://github.com/OCA/purchase-workflow", "category": "Purchases", - "depends": ["purchase_stock"], + "depends": [ + "purchase_stock", + "purchase_order_line_menu", + ], "data": ["views/purchase_view.xml"], "pre_init_hook": "pre_init_hook", "license": "AGPL-3", diff --git a/purchase_open_qty/i18n/it.po b/purchase_open_qty/i18n/it.po index 8329b918568..62c9d7ba6b5 100644 --- a/purchase_open_qty/i18n/it.po +++ b/purchase_open_qty/i18n/it.po @@ -9,15 +9,15 @@ msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-24 07:53+0000\n" -"PO-Revision-Date: 2023-02-01 11:45+0000\n" -"Last-Translator: Francesco Foresti \n" +"PO-Revision-Date: 2023-12-24 15:34+0000\n" +"Last-Translator: mymage \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" -"X-Generator: Weblate 4.14.1\n" +"X-Generator: Weblate 4.17\n" #. module: purchase_open_qty #: model:ir.model.fields,field_description:purchase_open_qty.field_purchase_order__pending_qty_to_invoice @@ -31,7 +31,7 @@ msgstr "Qty in attesa fattura" #: model_terms:ir.ui.view,arch_db:purchase_open_qty.purchase_order_line_search #: model_terms:ir.ui.view,arch_db:purchase_open_qty.view_purchase_order_filter msgid "Pending Qty to Receive" -msgstr "Qty da Ricevere" +msgstr "Q.tà da ricevere in attesa" #. module: purchase_open_qty #: model:ir.model,name:purchase_open_qty.model_purchase_order diff --git a/purchase_open_qty/i18n/pt_BR.po b/purchase_open_qty/i18n/pt_BR.po index 1b86519448d..6ec94540e00 100644 --- a/purchase_open_qty/i18n/pt_BR.po +++ b/purchase_open_qty/i18n/pt_BR.po @@ -9,29 +9,31 @@ msgstr "" "Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-11-24 07:53+0000\n" -"PO-Revision-Date: 2017-11-24 07:53+0000\n" -"Last-Translator: OCA Transbot , 2017\n" -"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/" -"teams/23907/pt_BR/)\n" +"PO-Revision-Date: 2024-05-22 23:57+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/" +"23907/pt_BR/)\n" "Language: pt_BR\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" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" #. module: purchase_open_qty #: model:ir.model.fields,field_description:purchase_open_qty.field_purchase_order__pending_qty_to_invoice #: model_terms:ir.ui.view,arch_db:purchase_open_qty.purchase_order_line_search #: model_terms:ir.ui.view,arch_db:purchase_open_qty.view_purchase_order_filter msgid "Pending Qty to Bill" -msgstr "" +msgstr "Quantidade pendente para cobrança" #. module: purchase_open_qty #: model:ir.model.fields,field_description:purchase_open_qty.field_purchase_order__pending_qty_to_receive #: model_terms:ir.ui.view,arch_db:purchase_open_qty.purchase_order_line_search #: model_terms:ir.ui.view,arch_db:purchase_open_qty.view_purchase_order_filter msgid "Pending Qty to Receive" -msgstr "" +msgstr "Quantidade pendente para receber" #. module: purchase_open_qty #: model:ir.model,name:purchase_open_qty.model_purchase_order @@ -46,17 +48,17 @@ msgstr "Linha da Ordem de Compra" #. module: purchase_open_qty #: model:ir.model.fields,field_description:purchase_open_qty.field_purchase_order__qty_to_invoice msgid "Qty to Bill" -msgstr "" +msgstr "Quantidade para Cobrar" #. module: purchase_open_qty #: model:ir.model.fields,field_description:purchase_open_qty.field_purchase_order__qty_to_receive #: model:ir.model.fields,field_description:purchase_open_qty.field_purchase_order_line__qty_to_receive msgid "Qty to Receive" -msgstr "" +msgstr "Quantidade para receber" #. module: purchase_open_qty #. odoo-python #: code:addons/purchase_open_qty/models/purchase_order.py:0 #, python-format msgid "Unsupported search operator" -msgstr "" +msgstr "Operador de pesquisa não compatível" diff --git a/purchase_open_qty/static/description/index.html b/purchase_open_qty/static/description/index.html index 7e1cab670f0..cba29829636 100644 --- a/purchase_open_qty/static/description/index.html +++ b/purchase_open_qty/static/description/index.html @@ -1,20 +1,20 @@ - - + Purchase Open Qty + + +
+

Purchase Order Archive

+ + +

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

+

On a system with a high volume of purchases, the number of purchase orders displayed in the list view can become huge. +This module allows to archive Purchase Orders that are in status Locked or Cancelled.

+

If a purchase order is archived, it will be hidden from the purchase orders list view.

+

This module only depends on module purchase, but it could be used in combination with OCA module ‘record_archiver’ +in order to automatically archive old purchase orders.

+

Table of contents

+ +
+

Usage

+

To archive purchase orders, you need to:

+
    +
  1. Open the tree view of purchase orders.
  2. +
  3. Select a purchase order (in status Locked or Cancelled) you want to archive.
  4. +
  5. Click on Action > Archive. Confirm.
  6. +
  7. The purchase order is now archived.
  8. +
+

To unarchive purchase orders, you need to:

+
    +
  1. Open the tree view of purchase orders.
  2. +
  3. In the filter box select the Archived filter. The list of archived purchase orders will be displayed.
  4. +
  5. Select the purchase order (in status Locked or Cancelled) you want to restore to Active.
  6. +
  7. Click on Action > Unarchive.
  8. +
  9. The purchase order is now active.
  10. +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Onestein
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_order_archive/tests/__init__.py b/purchase_order_archive/tests/__init__.py new file mode 100644 index 00000000000..86e703fc5a8 --- /dev/null +++ b/purchase_order_archive/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import test_purchase_order_archive diff --git a/purchase_order_archive/tests/test_purchase_order_archive.py b/purchase_order_archive/tests/test_purchase_order_archive.py new file mode 100644 index 00000000000..6a8504bc7fd --- /dev/null +++ b/purchase_order_archive/tests/test_purchase_order_archive.py @@ -0,0 +1,63 @@ +# Copyright 2017 Eficent Business and IT Consulting Services S.L. +# Copyright 2017 Luxim d.o.o. +# Copyright 2017 Matmoz d.o.o. +# Copyright 2017 Deneroteam. +# Copyright 2017 Serpent Consulting Services Pvt. Ltd. +# Copyright 2017 Tecnativa +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from datetime import datetime + +from odoo.exceptions import UserError # ValidationError, +from odoo.tests.common import TransactionCase + + +class TestPurchaseOrderArchive(TransactionCase): + def setUp(self): + super().setUp() + + self.purchase_order_obj = self.env["purchase.order"] + product_id = self.env.ref("product.product_product_9") + vals = { + "partner_id": self.env.ref("base.res_partner_1").id, + "order_line": [ + ( + 0, + 0, + { + "name": product_id.name, + "product_id": product_id.id, + "product_qty": 1.0, + "product_uom": self.env.ref("uom.product_uom_unit").id, + "price_unit": 121.0, + "date_planned": datetime.today(), + }, + ) + ], + } + self.po_draft = self.env["purchase.order"].create(vals) + self.po_sent = self.env["purchase.order"].create(vals) + self.po_sent.write({"state": "sent"}) + self.po_to_approve = self.env["purchase.order"].create(vals) + self.po_to_approve.write({"state": "to approve"}) + self.po_purchase = self.env["purchase.order"].create(vals) + self.po_purchase.button_confirm() + self.po_done = self.env["purchase.order"].create(vals) + self.po_done.button_confirm() + self.po_done.button_done() + self.po_cancel = self.env["purchase.order"].create(vals) + self.po_cancel.button_cancel() + + def test_archive(self): + with self.assertRaises(UserError): + self.po_draft.toggle_active() + with self.assertRaises(UserError): + self.po_sent.toggle_active() + with self.assertRaises(UserError): + self.po_to_approve.toggle_active() + with self.assertRaises(UserError): + self.po_purchase.toggle_active() + self.po_done.toggle_active() + self.assertEqual(self.po_done.active, False) + self.po_cancel.toggle_active() + self.assertEqual(self.po_cancel.active, False) diff --git a/purchase_order_archive/views/purchase_order.xml b/purchase_order_archive/views/purchase_order.xml new file mode 100644 index 00000000000..2676a6713da --- /dev/null +++ b/purchase_order_archive/views/purchase_order.xml @@ -0,0 +1,36 @@ + + + + + purchase.order + + + + + + + + + + + + purchase.order + + + + + + + + + diff --git a/purchase_order_downpayment/README.rst b/purchase_order_downpayment/README.rst new file mode 100644 index 00000000000..092cc2ddb9b --- /dev/null +++ b/purchase_order_downpayment/README.rst @@ -0,0 +1,76 @@ +========================== +Purchase Order Downpayment +========================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:30c07f3f85481a5630a1b3a2ac657b283e79d56cb7416aee7735506f286994f9 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_order_downpayment + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_order_downpayment + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +The module allows for creating down payments from purchase orders. + +**Table of contents** + +.. contents:: + :local: + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Open Source Integrators (OSI) + +Contributors +~~~~~~~~~~~~ + +* Murtaza Mithaiwala + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_order_downpayment/__init__.py b/purchase_order_downpayment/__init__.py new file mode 100644 index 00000000000..9b4296142f4 --- /dev/null +++ b/purchase_order_downpayment/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizard diff --git a/purchase_order_downpayment/__manifest__.py b/purchase_order_downpayment/__manifest__.py new file mode 100644 index 00000000000..8cfa9b8e360 --- /dev/null +++ b/purchase_order_downpayment/__manifest__.py @@ -0,0 +1,16 @@ +{ + "name": "Purchase Order Downpayment", + "version": "16.0.1.0.0", + "author": "Open Source Integrators (OSI), Odoo Community Association (OCA)", + "website": "https://github.com/OCA/purchase-workflow", + "category": "Purchase", + "license": "AGPL-3", + "summary": "Allow to add payments from Purchase order view", + "depends": ["purchase", "account"], + "data": [ + "security/ir.model.access.csv", + "wizard/purchase_order_downpayment_wiz_view.xml", + "views/purchase_view.xml", + ], + "installable": True, +} diff --git a/purchase_order_downpayment/i18n/es.po b/purchase_order_downpayment/i18n/es.po new file mode 100644 index 00000000000..47cd4f7c999 --- /dev/null +++ b/purchase_order_downpayment/i18n/es.po @@ -0,0 +1,171 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_downpayment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-04-17 20:37+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "" +"%" +msgstr "" +"%" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Cancel" +msgstr "Cancelar" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__advance_payment_method +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.purchase_order_form_inherit_downpayment +msgid "Create Payment" +msgstr "Crear Pago" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Create and view payment" +msgstr "Crear y ver el pago" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Create payment" +msgstr "Crear pago" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__display_name +msgid "Display Name" +msgstr "Mostrar Nombre" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__amount +msgid "Down Payment Amount" +msgstr "Cantidad del Adelanto" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__fixed_amount +msgid "Down Payment Amount (Fixed)" +msgstr "Cantidad del Adelanto (Fija)" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__fixed +msgid "Down payment (fixed amount)" +msgstr "Pago inicial (importe fijo)" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__percentage +msgid "Down payment (percentage)" +msgstr "Pago adelantado (porcentaje)" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__id +msgid "ID" +msgstr "ID (Identificación)" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard____last_update +msgid "Last Modified on" +msgstr "Última Modificación el" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__write_uid +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__write_date +msgid "Last Updated on" +msgstr "Última Actualización el" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__order_id +msgid "Order" +msgstr "Orden" + +#. module: purchase_order_downpayment +#: model:ir.actions.act_window,name:purchase_order_downpayment.action_view_po_downpayment_wizard +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.purchase_order_form_inherit_downpayment +msgid "Payment" +msgstr "Pago" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order__payment_count +msgid "Payment Count" +msgstr "Cuenta pagos" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "" +"Payment will be created in draft so that you can review\n" +" them before validation." +msgstr "" +"Los pagos se crearán en borrador para que pueda revisarlos\n" +" antes de la validación." + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_account_payment +msgid "Payments" +msgstr "pagos" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_account_payment__purchase_id +msgid "Purchase" +msgstr "Compra" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_purchase_order +msgid "Purchase Order" +msgstr "Orden de Compra" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_purchase_order_down_payment_wizard +msgid "Purchase Order DownPayment Wizard" +msgstr "Asistente de anticipos de órdenes de compra" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "Pago de la compra" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__delivered +msgid "Regular Payment" +msgstr "Pago periódico" + +#. module: purchase_order_downpayment +#. odoo-python +#: code:addons/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py:0 +#, python-format +msgid "The value of the down payment amount must be positive." +msgstr "El valor del pago inicial debe ser positivo." + +#. module: purchase_order_downpayment +#. odoo-python +#: code:addons/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py:0 +#, python-format +msgid "The value of the down payment percentage cannot be greater than 100%." +msgstr "El valor del porcentaje del pago inicial no puede ser superior al 100%." diff --git a/purchase_order_downpayment/i18n/it.po b/purchase_order_downpayment/i18n/it.po new file mode 100644 index 00000000000..cf0821b35e6 --- /dev/null +++ b/purchase_order_downpayment/i18n/it.po @@ -0,0 +1,171 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_downpayment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-03-15 15:37+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "" +"%" +msgstr "" +"%" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Cancel" +msgstr "Annulla" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__advance_payment_method +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.purchase_order_form_inherit_downpayment +msgid "Create Payment" +msgstr "Crea pagamento" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Create and view payment" +msgstr "Crea e visualizza pagamento" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Create payment" +msgstr "Crea pagamento" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__amount +msgid "Down Payment Amount" +msgstr "Importo acconto" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__fixed_amount +msgid "Down Payment Amount (Fixed)" +msgstr "Importo acconto (fisso)" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__fixed +msgid "Down payment (fixed amount)" +msgstr "Acconto (valore fisso)" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__percentage +msgid "Down payment (percentage)" +msgstr "Acconto (percentuale)" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__id +msgid "ID" +msgstr "ID" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__order_id +msgid "Order" +msgstr "Ordine" + +#. module: purchase_order_downpayment +#: model:ir.actions.act_window,name:purchase_order_downpayment.action_view_po_downpayment_wizard +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.purchase_order_form_inherit_downpayment +msgid "Payment" +msgstr "Pagamento" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order__payment_count +msgid "Payment Count" +msgstr "Conteggio pagamenti" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "" +"Payment will be created in draft so that you can review\n" +" them before validation." +msgstr "" +"Il pagamento verrà creato in bozza in modo che possa essere rivisto\n" +" prima della validazione." + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_account_payment +msgid "Payments" +msgstr "Pagamenti" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_account_payment__purchase_id +msgid "Purchase" +msgstr "Acquisto" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_purchase_order +msgid "Purchase Order" +msgstr "Ordine di acquisto" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_purchase_order_down_payment_wizard +msgid "Purchase Order DownPayment Wizard" +msgstr "Procedura guidata acconto ordine di acquisto" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "Pagamento acquisto" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__delivered +msgid "Regular Payment" +msgstr "Pagamento regolare" + +#. module: purchase_order_downpayment +#. odoo-python +#: code:addons/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py:0 +#, python-format +msgid "The value of the down payment amount must be positive." +msgstr "Il valore dell'acconto deve essere positivo." + +#. module: purchase_order_downpayment +#. odoo-python +#: code:addons/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py:0 +#, python-format +msgid "The value of the down payment percentage cannot be greater than 100%." +msgstr "La percentuale dell'acconto on può essere superiore a 100%." diff --git a/purchase_order_downpayment/i18n/purchase_order_downpayment.pot b/purchase_order_downpayment/i18n/purchase_order_downpayment.pot new file mode 100644 index 00000000000..5d57fcb0dce --- /dev/null +++ b/purchase_order_downpayment/i18n/purchase_order_downpayment.pot @@ -0,0 +1,164 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_downpayment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "" +"%" +msgstr "" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Cancel" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__advance_payment_method +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.purchase_order_form_inherit_downpayment +msgid "Create Payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Create and view payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Create payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__amount +msgid "Down Payment Amount" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__fixed_amount +msgid "Down Payment Amount (Fixed)" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__fixed +msgid "Down payment (fixed amount)" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__percentage +msgid "Down payment (percentage)" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__id +msgid "ID" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__order_id +msgid "Order" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.actions.act_window,name:purchase_order_downpayment.action_view_po_downpayment_wizard +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.purchase_order_form_inherit_downpayment +msgid "Payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order__payment_count +msgid "Payment Count" +msgstr "" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "" +"Payment will be created in draft so that you can review\n" +" them before validation." +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_account_payment +msgid "Payments" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_account_payment__purchase_id +msgid "Purchase" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_purchase_order_down_payment_wizard +msgid "Purchase Order DownPayment Wizard" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__delivered +msgid "Regular Payment" +msgstr "" + +#. module: purchase_order_downpayment +#. odoo-python +#: code:addons/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py:0 +#, python-format +msgid "The value of the down payment amount must be positive." +msgstr "" + +#. module: purchase_order_downpayment +#. odoo-python +#: code:addons/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py:0 +#, python-format +msgid "The value of the down payment percentage cannot be greater than 100%." +msgstr "" diff --git a/purchase_order_downpayment/i18n/sv.po b/purchase_order_downpayment/i18n/sv.po new file mode 100644 index 00000000000..e4928964d9d --- /dev/null +++ b/purchase_order_downpayment/i18n/sv.po @@ -0,0 +1,165 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_downpayment +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: sv\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: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "" +"%" +msgstr "" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Cancel" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__advance_payment_method +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.purchase_order_form_inherit_downpayment +msgid "Create Payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Create and view payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "Create payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__display_name +msgid "Display Name" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__amount +msgid "Down Payment Amount" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__fixed_amount +msgid "Down Payment Amount (Fixed)" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__fixed +msgid "Down payment (fixed amount)" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__percentage +msgid "Down payment (percentage)" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__id +msgid "ID" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard____last_update +msgid "Last Modified on" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order_down_payment_wizard__order_id +msgid "Order" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.actions.act_window,name:purchase_order_downpayment.action_view_po_downpayment_wizard +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.purchase_order_form_inherit_downpayment +msgid "Payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order__payment_count +msgid "Payment Count" +msgstr "" + +#. module: purchase_order_downpayment +#: model_terms:ir.ui.view,arch_db:purchase_order_downpayment.view_po_downpayment_wizard +msgid "" +"Payment will be created in draft so that you can review\n" +" them before validation." +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_account_payment +msgid "Payments" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_account_payment__purchase_id +msgid "Purchase" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model,name:purchase_order_downpayment.model_purchase_order_down_payment_wizard +msgid "Purchase Order DownPayment Wizard" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields,field_description:purchase_order_downpayment.field_purchase_order__account_payment_ids +msgid "Purchase Payment" +msgstr "" + +#. module: purchase_order_downpayment +#: model:ir.model.fields.selection,name:purchase_order_downpayment.selection__purchase_order_down_payment_wizard__advance_payment_method__delivered +msgid "Regular Payment" +msgstr "" + +#. module: purchase_order_downpayment +#. odoo-python +#: code:addons/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py:0 +#, python-format +msgid "The value of the down payment amount must be positive." +msgstr "" + +#. module: purchase_order_downpayment +#. odoo-python +#: code:addons/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py:0 +#, python-format +msgid "The value of the down payment percentage cannot be greater than 100%." +msgstr "" diff --git a/purchase_order_downpayment/models/__init__.py b/purchase_order_downpayment/models/__init__.py new file mode 100644 index 00000000000..00554fb3ebc --- /dev/null +++ b/purchase_order_downpayment/models/__init__.py @@ -0,0 +1,2 @@ +from . import account_payment +from . import purchase_order diff --git a/purchase_order_downpayment/models/account_payment.py b/purchase_order_downpayment/models/account_payment.py new file mode 100644 index 00000000000..1f631d1063d --- /dev/null +++ b/purchase_order_downpayment/models/account_payment.py @@ -0,0 +1,12 @@ +from odoo import fields, models + + +class AccountPayment(models.Model): + _inherit = "account.payment" + + purchase_id = fields.Many2one( + "purchase.order", + "Purchase", + readonly=True, + states={"draft": [("readonly", False)]}, + ) diff --git a/purchase_order_downpayment/models/purchase_order.py b/purchase_order_downpayment/models/purchase_order.py new file mode 100644 index 00000000000..4537f4a6e88 --- /dev/null +++ b/purchase_order_downpayment/models/purchase_order.py @@ -0,0 +1,25 @@ +from odoo import fields, models + + +class PurchaseOrder(models.Model): + _inherit = "purchase.order" + + account_payment_ids = fields.One2many( + "account.payment", + "purchase_id", + string="Purchase Payment", + ) + + def _compute_payment_count(self): + for rec in self: + rec.payment_count = len(rec.account_payment_ids) + + payment_count = fields.Integer(compute="_compute_payment_count") + + def action_open_payment(self): + self.ensure_one() + action = self.env["ir.actions.actions"]._for_xml_id( + "account.action_account_payments_payable" + ) + action.update({"domain": [("purchase_id", "=", self.id)]}) + return action diff --git a/purchase_order_downpayment/readme/CONTRIBUTORS.rst b/purchase_order_downpayment/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..398c87273b4 --- /dev/null +++ b/purchase_order_downpayment/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Murtaza Mithaiwala diff --git a/purchase_order_downpayment/readme/DESCRIPTION.rst b/purchase_order_downpayment/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..186584d7ae0 --- /dev/null +++ b/purchase_order_downpayment/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +The module allows for creating down payments from purchase orders. diff --git a/purchase_order_downpayment/security/ir.model.access.csv b/purchase_order_downpayment/security/ir.model.access.csv new file mode 100644 index 00000000000..4683a4e398b --- /dev/null +++ b/purchase_order_downpayment/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +purchase_order_downpayment.access_purchase_order_down_payment_wizard,access_purchase_order_down_payment_wizard,purchase_order_downpayment.model_purchase_order_down_payment_wizard,base.group_user,1,1,1,1 diff --git a/purchase_order_downpayment/static/description/icon.png b/purchase_order_downpayment/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/purchase_order_downpayment/static/description/icon.png differ diff --git a/purchase_order_downpayment/static/description/index.html b/purchase_order_downpayment/static/description/index.html new file mode 100644 index 00000000000..f0ba460dbc3 --- /dev/null +++ b/purchase_order_downpayment/static/description/index.html @@ -0,0 +1,420 @@ + + + + + +Purchase Order Downpayment + + + +
+

Purchase Order Downpayment

+ + +

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

+

The module allows for creating down payments from purchase orders.

+

Table of contents

+ +
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Open Source Integrators (OSI)
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_order_downpayment/tests/__init__.py b/purchase_order_downpayment/tests/__init__.py new file mode 100644 index 00000000000..db5f6bc88a7 --- /dev/null +++ b/purchase_order_downpayment/tests/__init__.py @@ -0,0 +1 @@ +from . import test_purchase_order_downpayment diff --git a/purchase_order_downpayment/tests/test_purchase_order_downpayment.py b/purchase_order_downpayment/tests/test_purchase_order_downpayment.py new file mode 100644 index 00000000000..648724b9b77 --- /dev/null +++ b/purchase_order_downpayment/tests/test_purchase_order_downpayment.py @@ -0,0 +1,150 @@ +from odoo.exceptions import UserError +from odoo.tests import common + + +class TestPurchaseOrderDownPayment(common.TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + # Partners + cls.res_partner_1 = cls.env["res.partner"].create({"name": "Abigail Peterson"}) + cls.res_partner_2 = cls.env["res.partner"].create({"name": "Ernest Reed"}) + cls.res_partner_3 = cls.env["res.partner"].create({"name": "Jennie Fletcher"}) + + # Products + cls.product_1 = cls.env["product.product"].create( + { + "name": "Desk Combination", + } + ) + + # Purchase Order + cls.purchase_order_1 = cls.env["purchase.order"].create( + {"partner_id": cls.res_partner_1.id} + ) + cls.purchase_order_2 = cls.env["purchase.order"].create( + {"partner_id": cls.res_partner_2.id} + ) + cls.purchase_order_3 = cls.env["purchase.order"].create( + {"partner_id": cls.res_partner_3.id} + ) + + cls.order_line_1 = cls.env["purchase.order.line"].create( + { + "order_id": cls.purchase_order_1.id, + "product_id": cls.product_1.id, + "product_uom": cls.product_1.uom_id.id, + "product_qty": 1.0, + "price_unit": 100.0, + } + ) + + cls.order_line_2 = cls.env["purchase.order.line"].create( + { + "order_id": cls.purchase_order_2.id, + "product_id": cls.product_1.id, + "product_uom": cls.product_1.uom_id.id, + "product_qty": 1.0, + "price_unit": 100.0, + } + ) + cls.order_line_3 = cls.env["purchase.order.line"].create( + { + "order_id": cls.purchase_order_3.id, + "product_id": cls.product_1.id, + "product_uom": cls.product_1.uom_id.id, + "product_qty": 1.0, + "price_unit": 100.0, + } + ) + cls.order_line_3 = cls.env["purchase.order.line"].create( + { + "order_id": cls.purchase_order_3.id, + "product_id": cls.product_1.id, + "product_uom": cls.product_1.uom_id.id, + "product_qty": 1.0, + "price_unit": 100.0, + } + ) + + def test_regular_payment(self): + self.purchase_order_1.button_confirm() + context = { + "active_ids": [self.purchase_order_1.id], + "active_id": self.purchase_order_1.id, + } + downpayment = ( + self.env["purchase.order.down.payment.wizard"] + .with_context(**context) + .create( + { + "advance_payment_method": "delivered", + } + ) + ) + self.assertEqual(downpayment.order_id.id, self.purchase_order_1.id) + downpayment.with_context(view_payment=True).create_payment() + self.assertTrue(self.purchase_order_1.account_payment_ids) + payment_id = ( + self.purchase_order_1.account_payment_ids + and self.purchase_order_1.account_payment_ids[0] + ) + self.assertEqual(payment_id.amount, self.purchase_order_1.amount_total) + self.assertEqual(payment_id.partner_id, self.purchase_order_1.partner_id) + + def test_percentage_payment(self): + self.purchase_order_2.button_confirm() + context = { + "active_ids": [self.purchase_order_2.id], + "active_id": self.purchase_order_2.id, + } + downpayment = ( + self.env["purchase.order.down.payment.wizard"] + .with_context(**context) + .create({"advance_payment_method": "percentage", "amount": 10}) + ) + self.assertEqual(downpayment.order_id.id, self.purchase_order_2.id) + downpayment.with_context(view_payment=True).create_payment() + self.assertTrue(self.purchase_order_2.account_payment_ids) + payment_id = ( + self.purchase_order_2.account_payment_ids + and self.purchase_order_2.account_payment_ids[0] + ) + self.assertEqual( + payment_id.amount, ((self.purchase_order_2.amount_total * 10) / 100) + ) + self.assertEqual(payment_id.partner_id, self.purchase_order_2.partner_id) + + with self.assertRaises(UserError): + self.env["purchase.order.down.payment.wizard"].with_context( + **context + ).create({"advance_payment_method": "percentage", "amount": 0}) + + def test_fixed_payment(self): + self.purchase_order_3.button_confirm() + action = self.purchase_order_3.action_open_payment() + action.get("domain") + self.assertEqual(self.purchase_order_3.id, action.get("domain")[0][2]) + context = { + "active_ids": [self.purchase_order_3.id], + "active_id": self.purchase_order_3.id, + } + downpayment = ( + self.env["purchase.order.down.payment.wizard"] + .with_context(**context) + .create({"advance_payment_method": "fixed", "fixed_amount": 50}) + ) + self.assertEqual(downpayment.order_id.id, self.purchase_order_3.id) + downpayment.create_payment() + self.assertTrue(self.purchase_order_3.account_payment_ids) + payment_id = ( + self.purchase_order_3.account_payment_ids + and self.purchase_order_3.account_payment_ids[0] + ) + self.assertEqual(payment_id.amount, 50) + self.assertEqual(payment_id.partner_id, self.purchase_order_3.partner_id) + + with self.assertRaises(UserError): + self.env["purchase.order.down.payment.wizard"].with_context( + **context + ).create({"advance_payment_method": "fixed", "fixed_amount": 0}) diff --git a/purchase_order_downpayment/views/purchase_view.xml b/purchase_order_downpayment/views/purchase_view.xml new file mode 100644 index 00000000000..de681cab674 --- /dev/null +++ b/purchase_order_downpayment/views/purchase_view.xml @@ -0,0 +1,31 @@ + + + purchase.order.form + purchase.order + + + + + + + + + diff --git a/purchase_order_downpayment/wizard/__init__.py b/purchase_order_downpayment/wizard/__init__.py new file mode 100644 index 00000000000..484ac3ec4d5 --- /dev/null +++ b/purchase_order_downpayment/wizard/__init__.py @@ -0,0 +1 @@ +from . import purchase_order_downpayment_wizard diff --git a/purchase_order_downpayment/wizard/purchase_order_downpayment_wiz_view.xml b/purchase_order_downpayment/wizard/purchase_order_downpayment_wiz_view.xml new file mode 100644 index 00000000000..7cf0a2cbe42 --- /dev/null +++ b/purchase_order_downpayment/wizard/purchase_order_downpayment_wiz_view.xml @@ -0,0 +1,70 @@ + + + Purchase order down payment + purchase.order.down.payment.wizard + form + +
+

+ Payment will be created in draft so that you can review + them before validation. +

+ + + + + + +
+
+
+
+
+ + Payment + ir.actions.act_window + purchase.order.down.payment.wizard + form + new + +
diff --git a/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py b/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py new file mode 100644 index 00000000000..f5069eb06d8 --- /dev/null +++ b/purchase_order_downpayment/wizard/purchase_order_downpayment_wizard.py @@ -0,0 +1,101 @@ +from odoo import _, api, fields, models +from odoo.exceptions import UserError + + +class PurchaseOrderDownPaymentWizard(models.TransientModel): + _name = "purchase.order.down.payment.wizard" + _description = "Purchase Order DownPayment Wizard" + + order_id = fields.Many2one("purchase.order", required=True) + + advance_payment_method = fields.Selection( + selection=[ + ("delivered", "Regular Payment"), + ("percentage", "Down payment (percentage)"), + ("fixed", "Down payment (fixed amount)"), + ], + string="Create Payment", + default="delivered", + required=True, + ) + + amount = fields.Float(string="Down Payment Amount") + fixed_amount = fields.Float( + string="Down Payment Amount (Fixed)", + ) + + @api.model + def default_get(self, fields_list): + res = super().default_get(fields_list) + purchase_id = self.env.context.get("active_id") + if not purchase_id: + return res + purchase_id = self.env["purchase.order"].browse(purchase_id) + if purchase_id: + res.update( + { + "order_id": purchase_id.id, + } + ) + + return res + + @api.constrains("advance_payment_method", "amount", "fixed_amount") + def _check_amount_is_positive(self): + for wizard in self: + if wizard.advance_payment_method == "percentage" and ( + wizard.amount <= 0 or wizard.amount > 100 + ): + raise UserError( + _( + "The value of the down payment percentage cannot be greater than 100%." + ) + ) + elif ( + wizard.advance_payment_method == "fixed" and wizard.fixed_amount <= 0.00 + ): + raise UserError( + _("The value of the down payment amount must be positive.") + ) + + def _get_down_payment_amount(self, order): + self.ensure_one() + if self.advance_payment_method == "delivered": + amount = order.amount_total + elif self.advance_payment_method == "percentage": + amount = order.amount_total * self.amount / 100 + else: + amount = self.fixed_amount + return amount + + def create_payment(self): + self.ensure_one() + payment_obj = self.env["account.payment"] + if self.order_id: + amount_advance = self._get_down_payment_amount(self.order_id) + payment = payment_obj.create( + { + "date": fields.date.today(), + "amount": amount_advance, + "payment_type": "outbound", + "partner_type": "supplier", + "ref": self.order_id.name, + "currency_id": self.order_id.currency_id.id, + "partner_id": self.order_id.partner_id.id, + "payment_method_id": self.env.ref( + "account.account_payment_method_manual_in" + ).id, + "purchase_id": self.order_id.id, + } + ) + + if self.env.context.get("view_payment"): + action = self.env["ir.actions.actions"]._for_xml_id( + "account.action_account_payments_payable" + ) + action.update({"domain": [("id", "=", payment.id)]}) + return action + + return { + "type": "ir.actions.act_window_close", + } diff --git a/purchase_order_general_discount/README.rst b/purchase_order_general_discount/README.rst new file mode 100644 index 00000000000..ff4adcd3efc --- /dev/null +++ b/purchase_order_general_discount/README.rst @@ -0,0 +1,134 @@ +=============================== +Purchase Order General Discount +=============================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:58805054abf039c59925ef0f83b9d3521ed2a043b376d7411ab967d36068ede5 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_order_general_discount + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_order_general_discount + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to set a general discount in a purchase order. This general +discount is applied to each line order. + +You can also set a default general discount on suppliers and configure to which +line field the discount will be applied. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +You can set in settings another discount field to be applied. +For example, if we had `purchase_triple_discount`, we could set the general +discount in discount3 to be applied after all other discounts. + +To do so: + +#. Go to *Purchases > Configuration > Settings* and *Purchase Discount Field* +#. Select the discount you'd wish to use. `purchase_triple_discount` fields + will appear when the module is installed. + +There's a method at `res.company` called `_get_purchase_discount_fields` that +can be used to extend more line discount fields. For example, if we had the +field `discount4`, we could extend it like this: + +.. code-block:: python + + @api.model + def _get_purchase_discount_fields(self): + discount_fields = super()._get_purchase_discount_fields() + discount_fields += [('discount4', _('Discount 4'))] + return discount_fields + +Usage +===== + +To set a partner default general discount you need to: + +#. Go to a partner and set the general discount in *Sales & Purchases* tab. + +To set a general discount in a purchase order you need to: + +#. Create a purchase order. +#. Either select a partner with a purchase general discount defined or set one + in the summary section of the order. +#. This discount will be applied to every line. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * David Vidal + * Pedro M. Baeza + * Rafael Blasco + * Carlos Roca + * Pilar Vargas + +* `Aures TIC `_: + + * Jose Zambudio + * Anna Martinez + +* `Komit `_: + + * Cuong Nguyen Mtm + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_order_general_discount/__init__.py b/purchase_order_general_discount/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/purchase_order_general_discount/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/purchase_order_general_discount/__manifest__.py b/purchase_order_general_discount/__manifest__.py new file mode 100644 index 00000000000..ec5b7012639 --- /dev/null +++ b/purchase_order_general_discount/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2019 Tecnativa - David Vidal +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Purchase Order General Discount", + "summary": "General discount per purchase order", + "version": "16.0.1.0.0", + "category": "Purchases", + "website": "https://github.com/OCA/purchase-workflow", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": ["purchase_discount"], + "data": [ + "views/purchase_order_view.xml", + "views/res_partner_view.xml", + "views/res_config_view.xml", + ], +} diff --git a/purchase_order_general_discount/i18n/es.po b/purchase_order_general_discount/i18n/es.po new file mode 100644 index 00000000000..fbf4b7325d3 --- /dev/null +++ b/purchase_order_general_discount/i18n/es.po @@ -0,0 +1,122 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_general_discount +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-08-28 12:50+0000\n" +"PO-Revision-Date: 2023-12-29 10:35+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: \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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.res_config_settings_view_form_purchase +msgid "" +"" +msgstr "" +"" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount" +msgstr "Descuento" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount 2" +msgstr "Descuento 2" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount 3" +msgstr "Descuento 3" + +#. module: purchase_order_general_discount +#: model:ir.model.constraint,message:purchase_order_general_discount.constraint_purchase_order_general_discount_limit +msgid "Discount must be lower than 100%." +msgstr "El descuento debe ser menor del 100%." + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_purchase_order__general_discount +msgid "Gen. Disc. (%)" +msgstr "Desc. Gen. (%)" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "Configuración de la agrupación de adquisición de compras" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_company__purchase_general_discount_field +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_config_settings__purchase_general_discount_field +msgid "Purchase Discount Field" +msgstr "Campo para Descuento General de compra" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_partner__purchase_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_users__purchase_general_discount +msgid "Purchase General Discount (%)" +msgstr "Descuento General de Compra (%)" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_purchase_order +msgid "Purchase Order" +msgstr "Pedido de compra" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.res_config_settings_view_form_purchase +msgid "" +"Select to which purchase line field will the purchase general discount be " +"propagated." +msgstr "" +"Escoja a qué campo del descuento de la línea de pedido se propagará el " +"descuento general." + +#. module: purchase_order_general_discount +#: model:ir.model.fields,help:purchase_order_general_discount.field_res_company__purchase_general_discount_field +#: model:ir.model.fields,help:purchase_order_general_discount.field_res_config_settings__purchase_general_discount_field +msgid "" +"Set the purchase line discount field in which the discounts will be applied." +msgstr "" +"Establecer el campo de descuento de la línea de pedido en el que se aplicará " +"el descuento." + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.purchase_order_form +msgid "Update general discounts" +msgstr "Actualizar descuento general" + +#~ msgid "Field" +#~ msgstr "Campo" + +#~ msgid "res.config.settings" +#~ msgstr "res.config.settings" + +#~ msgid "Purchase Order Line" +#~ msgstr "Línea de pedido de compra" diff --git a/purchase_order_general_discount/i18n/it.po b/purchase_order_general_discount/i18n/it.po new file mode 100644 index 00000000000..b7a88d5694d --- /dev/null +++ b/purchase_order_general_discount/i18n/it.po @@ -0,0 +1,115 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_general_discount +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-03-05 14:35+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.res_config_settings_view_form_purchase +msgid "" +"" +msgstr "" +"" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_company +msgid "Companies" +msgstr "Aziende" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_partner +msgid "Contact" +msgstr "Contatto" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount" +msgstr "Sconto" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount 2" +msgstr "Sconto 2" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount 3" +msgstr "Sconto 3" + +#. module: purchase_order_general_discount +#: model:ir.model.constraint,message:purchase_order_general_discount.constraint_purchase_order_general_discount_limit +msgid "Discount must be lower than 100%." +msgstr "Lo sconto deve essere minore del 100%." + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_purchase_order__general_discount +msgid "Gen. Disc. (%)" +msgstr "Sc. gen. (%)" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "Impostazioni raggruppamento approvvigionamento acquisti" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_company__purchase_general_discount_field +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_config_settings__purchase_general_discount_field +msgid "Purchase Discount Field" +msgstr "Campo sconto acquisti" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_partner__purchase_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_users__purchase_general_discount +msgid "Purchase General Discount (%)" +msgstr "Sconto generale acquisti (%)" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_purchase_order +msgid "Purchase Order" +msgstr "Ordine di acquisto" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.res_config_settings_view_form_purchase +msgid "" +"Select to which purchase line field will the purchase general discount be " +"propagated." +msgstr "" +"Selezionare in quale campo nella riga ordine di acquisto verrà propagato lo " +"sconto generale." + +#. module: purchase_order_general_discount +#: model:ir.model.fields,help:purchase_order_general_discount.field_res_company__purchase_general_discount_field +#: model:ir.model.fields,help:purchase_order_general_discount.field_res_config_settings__purchase_general_discount_field +msgid "" +"Set the purchase line discount field in which the discounts will be applied." +msgstr "" +"Imposta il campo sconto sulla riga ordine d'acquisto dove lo sconto verrà " +"applicato." + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.purchase_order_form +msgid "Update general discounts" +msgstr "Aggiorna sconti generali" + +#~ msgid "Config Settings" +#~ msgstr "Impostazioni configurazione" diff --git a/purchase_order_general_discount/i18n/pt.po b/purchase_order_general_discount/i18n/pt.po new file mode 100644 index 00000000000..25473e4476e --- /dev/null +++ b/purchase_order_general_discount/i18n/pt.po @@ -0,0 +1,115 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_general_discount +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-03-03 17:45+0000\n" +"Last-Translator: Pedro Castro Silva \n" +"Language-Team: none\n" +"Language: pt\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" +"X-Generator: Weblate 4.3.2\n" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.res_config_settings_view_form_purchase +msgid "" +"" +msgstr "" +"" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_company +msgid "Companies" +msgstr "Empresas" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_partner +msgid "Contact" +msgstr "Contacto" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount" +msgstr "Desconto" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount 2" +msgstr "Desconto 2" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount 3" +msgstr "Desconto 3" + +#. module: purchase_order_general_discount +#: model:ir.model.constraint,message:purchase_order_general_discount.constraint_purchase_order_general_discount_limit +msgid "Discount must be lower than 100%." +msgstr "O desconto tem que ser inferior a 100%." + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_purchase_order__general_discount +msgid "Gen. Disc. (%)" +msgstr "Desc. Ger. (%)" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_company__purchase_general_discount_field +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_config_settings__purchase_general_discount_field +msgid "Purchase Discount Field" +msgstr "Campo de Desconto de Compra" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_partner__purchase_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_users__purchase_general_discount +msgid "Purchase General Discount (%)" +msgstr "Desconto Geral de Compra (%)" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_purchase_order +msgid "Purchase Order" +msgstr "Encomenda de Compra" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.res_config_settings_view_form_purchase +msgid "" +"Select to which purchase line field will the purchase general discount be " +"propagated." +msgstr "" +"Selecione para que campo de linha de compra será propagado o desconto geral " +"de compra." + +#. module: purchase_order_general_discount +#: model:ir.model.fields,help:purchase_order_general_discount.field_res_company__purchase_general_discount_field +#: model:ir.model.fields,help:purchase_order_general_discount.field_res_config_settings__purchase_general_discount_field +msgid "" +"Set the purchase line discount field in which the discounts will be applied." +msgstr "" +"Defina o campo de desconto de linha de compra ao qual serão aplicados os " +"descontos." + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.purchase_order_form +msgid "Update general discounts" +msgstr "Atualizar descontos gerais" + +#~ msgid "Config Settings" +#~ msgstr "Parâmetros de Configuração" diff --git a/purchase_order_general_discount/i18n/purchase_order_general_discount.pot b/purchase_order_general_discount/i18n/purchase_order_general_discount.pot new file mode 100644 index 00000000000..4f850b74113 --- /dev/null +++ b/purchase_order_general_discount/i18n/purchase_order_general_discount.pot @@ -0,0 +1,103 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_general_discount +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.res_config_settings_view_form_purchase +msgid "" +"" +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_company +msgid "Companies" +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_partner +msgid "Contact" +msgstr "" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount" +msgstr "" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount 2" +msgstr "" + +#. module: purchase_order_general_discount +#. odoo-python +#: code:addons/purchase_order_general_discount/models/res_company.py:0 +#, python-format +msgid "Discount 3" +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model.constraint,message:purchase_order_general_discount.constraint_purchase_order_general_discount_limit +msgid "Discount must be lower than 100%." +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_purchase_order__general_discount +msgid "Gen. Disc. (%)" +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_res_config_settings +msgid "Procurement purchase grouping settings" +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_company__purchase_general_discount_field +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_config_settings__purchase_general_discount_field +msgid "Purchase Discount Field" +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_partner__purchase_general_discount +#: model:ir.model.fields,field_description:purchase_order_general_discount.field_res_users__purchase_general_discount +msgid "Purchase General Discount (%)" +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model,name:purchase_order_general_discount.model_purchase_order +msgid "Purchase Order" +msgstr "" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.res_config_settings_view_form_purchase +msgid "" +"Select to which purchase line field will the purchase general discount be " +"propagated." +msgstr "" + +#. module: purchase_order_general_discount +#: model:ir.model.fields,help:purchase_order_general_discount.field_res_company__purchase_general_discount_field +#: model:ir.model.fields,help:purchase_order_general_discount.field_res_config_settings__purchase_general_discount_field +msgid "" +"Set the purchase line discount field in which the discounts will be applied." +msgstr "" + +#. module: purchase_order_general_discount +#: model_terms:ir.ui.view,arch_db:purchase_order_general_discount.purchase_order_form +msgid "Update general discounts" +msgstr "" diff --git a/purchase_order_general_discount/models/__init__.py b/purchase_order_general_discount/models/__init__.py new file mode 100644 index 00000000000..eba22b70df1 --- /dev/null +++ b/purchase_order_general_discount/models/__init__.py @@ -0,0 +1,4 @@ +from . import purchase_order +from . import res_company +from . import res_config_settings +from . import res_partner diff --git a/purchase_order_general_discount/models/purchase_order.py b/purchase_order_general_discount/models/purchase_order.py new file mode 100644 index 00000000000..59cecacfe39 --- /dev/null +++ b/purchase_order_general_discount/models/purchase_order.py @@ -0,0 +1,68 @@ +# Copyright 2019 Tecnativa - David Vidal +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class PurchaseOrder(models.Model): + _inherit = "purchase.order" + + general_discount = fields.Float( + digits="Discount", + string="Gen. Disc. (%)", + ) + + _sql_constraints = [ + ( + "general_discount_limit", + "CHECK (general_discount <= 100.0)", + "Discount must be lower than 100%.", + ), + ] + + @api.onchange("partner_id") + def onchange_partner_id(self): + res = super().onchange_partner_id() + self.general_discount = ( + self.partner_id.commercial_partner_id.purchase_general_discount + ) + return res + + def _get_general_discount_field(self): + """We can set in settings another discount field to be applied + For example, if we had purchase_triple_dicount, we could set the + general discount in discount3 to be applied after all other + discounts""" + discount_field = self.company_id.purchase_general_discount_field + return discount_field or "discount" + + @api.onchange("general_discount") + def onchange_general_discount(self): + discount_field = self._get_general_discount_field() + self.mapped("order_line").update({discount_field: self.general_discount}) + + def action_update_general_discount(self): + for order in self: + order.onchange_general_discount() + + @api.model + def _get_view(self, view_id=None, view_type="form", **options): + """The purpose of this is to write a context on "order_line" field + respecting other contexts on this field. + There is a PR (https://github.com/odoo/odoo/pull/26607) to odoo for + avoiding this. If merged, remove this method and add the attribute + in the field. + """ + arch, view = super()._get_view(view_id=view_id, view_type=view_type, **options) + if view_type == "form": + discount_field = self._get_general_discount_field() + order_line_fields = arch.xpath("//field[@name='order_line']") + if order_line_fields: + order_line_field = order_line_fields[0] + context = order_line_field.attrib.get("context", "{}").replace( + "{", + "{{'default_{}': general_discount, ".format(discount_field), + 1, + ) + order_line_field.attrib["context"] = context + return arch, view diff --git a/purchase_order_general_discount/models/res_company.py b/purchase_order_general_discount/models/res_company.py new file mode 100644 index 00000000000..7c644db50cd --- /dev/null +++ b/purchase_order_general_discount/models/res_company.py @@ -0,0 +1,32 @@ +# Copyright 2019 Tecnativa - David Vidal +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import _, api, fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + purchase_general_discount_field = fields.Selection( + selection="_get_purchase_discount_fields", + string="Purchase Discount Field", + default="discount", + help="Set the purchase line discount field in which the " + "discounts will be applied.", + ) + + @api.model + def _get_purchase_discount_fields(self): + """Extensible method to add possible discounts. We offer in advance + the posibility of using purchase_triple_discount so no bridge + module is needed""" + discount_fields = [("discount", _("Discount"))] + purchase_line_fields = self.env["purchase.order.line"]._fields.keys() + if "discount2" in purchase_line_fields: + discount_fields += [ + ("discount2", _("Discount 2")), + ] + if "discount3" in purchase_line_fields: + discount_fields += [ + ("discount3", _("Discount 3")), + ] + return discount_fields diff --git a/purchase_order_general_discount/models/res_config_settings.py b/purchase_order_general_discount/models/res_config_settings.py new file mode 100644 index 00000000000..55e163949b1 --- /dev/null +++ b/purchase_order_general_discount/models/res_config_settings.py @@ -0,0 +1,12 @@ +# Copyright 2019 Tecnativa - David Vidal +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + purchase_general_discount_field = fields.Selection( + related="company_id.purchase_general_discount_field", + readonly=False, + ) diff --git a/purchase_order_general_discount/models/res_partner.py b/purchase_order_general_discount/models/res_partner.py new file mode 100644 index 00000000000..228c52bece1 --- /dev/null +++ b/purchase_order_general_discount/models/res_partner.py @@ -0,0 +1,14 @@ +# Copyright 2019 Tecnativa - David Vidal +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + purchase_general_discount = fields.Float( + digits="Discount", + string="Purchase General Discount (%)", + company_dependent=True, + ) diff --git a/purchase_order_general_discount/readme/CONFIGURE.rst b/purchase_order_general_discount/readme/CONFIGURE.rst new file mode 100644 index 00000000000..db68567f6e1 --- /dev/null +++ b/purchase_order_general_discount/readme/CONFIGURE.rst @@ -0,0 +1,21 @@ +You can set in settings another discount field to be applied. +For example, if we had `purchase_triple_discount`, we could set the general +discount in discount3 to be applied after all other discounts. + +To do so: + +#. Go to *Purchases > Configuration > Settings* and *Purchase Discount Field* +#. Select the discount you'd wish to use. `purchase_triple_discount` fields + will appear when the module is installed. + +There's a method at `res.company` called `_get_purchase_discount_fields` that +can be used to extend more line discount fields. For example, if we had the +field `discount4`, we could extend it like this: + +.. code-block:: python + + @api.model + def _get_purchase_discount_fields(self): + discount_fields = super()._get_purchase_discount_fields() + discount_fields += [('discount4', _('Discount 4'))] + return discount_fields diff --git a/purchase_order_general_discount/readme/CONTRIBUTORS.rst b/purchase_order_general_discount/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..cd44eea22b1 --- /dev/null +++ b/purchase_order_general_discount/readme/CONTRIBUTORS.rst @@ -0,0 +1,16 @@ +* `Tecnativa `_: + + * David Vidal + * Pedro M. Baeza + * Rafael Blasco + * Carlos Roca + * Pilar Vargas + +* `Aures TIC `_: + + * Jose Zambudio + * Anna Martinez + +* `Komit `_: + + * Cuong Nguyen Mtm diff --git a/purchase_order_general_discount/readme/DESCRIPTION.rst b/purchase_order_general_discount/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..064290a3c67 --- /dev/null +++ b/purchase_order_general_discount/readme/DESCRIPTION.rst @@ -0,0 +1,5 @@ +This module allows to set a general discount in a purchase order. This general +discount is applied to each line order. + +You can also set a default general discount on suppliers and configure to which +line field the discount will be applied. diff --git a/purchase_order_general_discount/readme/USAGE.rst b/purchase_order_general_discount/readme/USAGE.rst new file mode 100644 index 00000000000..6abfbb84d86 --- /dev/null +++ b/purchase_order_general_discount/readme/USAGE.rst @@ -0,0 +1,10 @@ +To set a partner default general discount you need to: + +#. Go to a partner and set the general discount in *Sales & Purchases* tab. + +To set a general discount in a purchase order you need to: + +#. Create a purchase order. +#. Either select a partner with a purchase general discount defined or set one + in the summary section of the order. +#. This discount will be applied to every line. diff --git a/purchase_order_general_discount/static/description/icon.png b/purchase_order_general_discount/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/purchase_order_general_discount/static/description/icon.png differ diff --git a/purchase_order_general_discount/static/description/index.html b/purchase_order_general_discount/static/description/index.html new file mode 100644 index 00000000000..f71ad589c1b --- /dev/null +++ b/purchase_order_general_discount/static/description/index.html @@ -0,0 +1,484 @@ + + + + + +Purchase Order General Discount + + + +
+

Purchase Order General Discount

+ + +

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

+

This module allows to set a general discount in a purchase order. This general +discount is applied to each line order.

+

You can also set a default general discount on suppliers and configure to which +line field the discount will be applied.

+

Table of contents

+ +
+

Configuration

+

You can set in settings another discount field to be applied. +For example, if we had purchase_triple_discount, we could set the general +discount in discount3 to be applied after all other discounts.

+

To do so:

+
    +
  1. Go to Purchases > Configuration > Settings and Purchase Discount Field
  2. +
  3. Select the discount you’d wish to use. purchase_triple_discount fields +will appear when the module is installed.
  4. +
+

There’s a method at res.company called _get_purchase_discount_fields that +can be used to extend more line discount fields. For example, if we had the +field discount4, we could extend it like this:

+
+@api.model
+def _get_purchase_discount_fields(self):
+    discount_fields = super()._get_purchase_discount_fields()
+    discount_fields += [('discount4', _('Discount 4'))]
+    return discount_fields
+
+
+
+

Usage

+

To set a partner default general discount you need to:

+
    +
  1. Go to a partner and set the general discount in Sales & Purchases tab.
  2. +
+

To set a general discount in a purchase order you need to:

+
    +
  1. Create a purchase order.
  2. +
  3. Either select a partner with a purchase general discount defined or set one +in the summary section of the order.
  4. +
  5. This discount will be applied to every line.
  6. +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_order_general_discount/tests/__init__.py b/purchase_order_general_discount/tests/__init__.py new file mode 100644 index 00000000000..f51e1fb3d51 --- /dev/null +++ b/purchase_order_general_discount/tests/__init__.py @@ -0,0 +1 @@ +from . import test_purchase_order_general_discount diff --git a/purchase_order_general_discount/tests/test_purchase_order_general_discount.py b/purchase_order_general_discount/tests/test_purchase_order_general_discount.py new file mode 100644 index 00000000000..9ac11f02cd6 --- /dev/null +++ b/purchase_order_general_discount/tests/test_purchase_order_general_discount.py @@ -0,0 +1,49 @@ +# Copyright 2019 Tecnativa - David Vidal +# Copyright 2022 Tecnativa - Pilar Vargas +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests import Form, TransactionCase, common + + +class TestPurchaseOrderLineInput(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner = cls.env["res.partner"].create( + {"name": "Test", "purchase_general_discount": 10.0} + ) + cls.product = cls.env["product.product"].create( + {"name": "test_product", "type": "service"} + ) + order_form = common.Form(cls.env["purchase.order"]) + order_form.partner_id = cls.partner + with order_form.order_line.new() as line_form: + line_form.product_id = cls.product + line_form.product_uom = cls.product.uom_id + line_form.product_qty = 1 + line_form.price_unit = 1000.00 + cls.order = order_form.save() + cls.View = cls.env["ir.ui.view"] + + def test_01_default_partner_discount(self): + self.order.onchange_partner_id() + self.assertEqual( + self.order.general_discount, self.partner.purchase_general_discount + ) + + def test_02_sale_order_values(self): + self.order.general_discount = 10 + self.order.action_update_general_discount() + self.assertEqual(self.order.order_line.price_subtotal, 900.00) + + def test_03_get_view_set_default_line_discount_value(self): + company = self.order.company_id + company.purchase_general_discount_field = "discount" + po_form_view_xmlid = "purchase_order_general_discount.purchase_order_form" + with Form(self.order, po_form_view_xmlid) as order_form: + order_form.general_discount = 8 + with order_form.order_line.edit(0) as line_form: + self.assertEqual(line_form.discount, 8) + order_form.general_discount = 10 + with order_form.order_line.edit(0) as line_form: + self.assertEqual(line_form.discount, 10) diff --git a/purchase_order_general_discount/views/purchase_order_view.xml b/purchase_order_general_discount/views/purchase_order_view.xml new file mode 100644 index 00000000000..bf829703bc5 --- /dev/null +++ b/purchase_order_general_discount/views/purchase_order_view.xml @@ -0,0 +1,25 @@ + + + + + + purchase.order + + + +
+
+ +
+
+
+ +
diff --git a/purchase_order_general_discount/views/res_config_view.xml b/purchase_order_general_discount/views/res_config_view.xml new file mode 100644 index 00000000000..927b415b4f7 --- /dev/null +++ b/purchase_order_general_discount/views/res_config_view.xml @@ -0,0 +1,38 @@ + + + + + res.config.settings.view.form.inherit.purchase + res.config.settings + + + + +
+
+
+
+
+
+
+ +
diff --git a/purchase_order_general_discount/views/res_partner_view.xml b/purchase_order_general_discount/views/res_partner_view.xml new file mode 100644 index 00000000000..171cfeca1e7 --- /dev/null +++ b/purchase_order_general_discount/views/res_partner_view.xml @@ -0,0 +1,19 @@ + + + + + + res.partner + + + + + + + + + diff --git a/purchase_order_hide_receipt_status/README.rst b/purchase_order_hide_receipt_status/README.rst new file mode 100644 index 00000000000..874d4c4cca8 --- /dev/null +++ b/purchase_order_hide_receipt_status/README.rst @@ -0,0 +1,73 @@ +================================== +Purchase Order Hide Receipt Status +================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:74847d1308d42cbe100588ed2dae6d9d360e651e82427db2e948af6b0b745756 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_order_hide_receipt_status + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_order_hide_receipt_status + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module is designed to enhance the user experience by hiding the "receipt_status" field +in purchase order form view and tree view. The purpose is to avoid any confusion that may arise +when 'reception_status' field becomes visible once the 'purchase_reception_status' module is installed. + +**Table of contents** + +.. contents:: + :local: + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Quartile Limited + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_order_hide_receipt_status/__init__.py b/purchase_order_hide_receipt_status/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/purchase_order_hide_receipt_status/__manifest__.py b/purchase_order_hide_receipt_status/__manifest__.py new file mode 100644 index 00000000000..6318100dcbb --- /dev/null +++ b/purchase_order_hide_receipt_status/__manifest__.py @@ -0,0 +1,13 @@ +# Copyright 2023 Quartile Limited +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Purchase Order Hide Receipt Status", + "version": "16.0.1.0.1", + "category": "Purchase", + "website": "https://github.com/OCA/purchase-workflow", + "license": "AGPL-3", + "author": "Quartile Limited, Odoo Community Association (OCA)", + "depends": ["purchase_stock"], + "data": ["views/purchase_order.xml"], + "installable": True, +} diff --git a/purchase_order_hide_receipt_status/i18n/it.po b/purchase_order_hide_receipt_status/i18n/it.po new file mode 100644 index 00000000000..73388557f6d --- /dev/null +++ b/purchase_order_hide_receipt_status/i18n/it.po @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\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" diff --git a/purchase_order_hide_receipt_status/i18n/purchase_order_hide_receipt_status.pot b/purchase_order_hide_receipt_status/i18n/purchase_order_hide_receipt_status.pot new file mode 100644 index 00000000000..78d58d53fe0 --- /dev/null +++ b/purchase_order_hide_receipt_status/i18n/purchase_order_hide_receipt_status.pot @@ -0,0 +1,13 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" diff --git a/purchase_order_hide_receipt_status/readme/DESCRIPTION.rst b/purchase_order_hide_receipt_status/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..90f99eec6f3 --- /dev/null +++ b/purchase_order_hide_receipt_status/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module is designed to enhance the user experience by hiding the "receipt_status" field +in purchase order form view and tree view. The purpose is to avoid any confusion that may arise +when 'reception_status' field becomes visible once the 'purchase_reception_status' module is installed. diff --git a/purchase_order_hide_receipt_status/static/description/icon.png b/purchase_order_hide_receipt_status/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/purchase_order_hide_receipt_status/static/description/icon.png differ diff --git a/purchase_order_hide_receipt_status/static/description/index.html b/purchase_order_hide_receipt_status/static/description/index.html new file mode 100644 index 00000000000..ce37abb2542 --- /dev/null +++ b/purchase_order_hide_receipt_status/static/description/index.html @@ -0,0 +1,416 @@ + + + + + + +Purchase Order Hide Receipt Status + + + +
+

Purchase Order Hide Receipt Status

+ + +

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

+

This module is designed to enhance the user experience by hiding the “receipt_status” field +in purchase order form view and tree view. The purpose is to avoid any confusion that may arise +when ‘reception_status’ field becomes visible once the ‘purchase_reception_status’ module is installed.

+

Table of contents

+ +
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Quartile Limited
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_order_hide_receipt_status/views/purchase_order.xml b/purchase_order_hide_receipt_status/views/purchase_order.xml new file mode 100644 index 00000000000..078b1f9d16d --- /dev/null +++ b/purchase_order_hide_receipt_status/views/purchase_order.xml @@ -0,0 +1,23 @@ + + + + received_status.purchase.order.form + purchase.order + + + + True + + + + + received_status.purchase.order.tree + purchase.order + + + + True + + + + diff --git a/purchase_order_line_menu/README.rst b/purchase_order_line_menu/README.rst index 3f479e3fc85..b5796b3ec15 100644 --- a/purchase_order_line_menu/README.rst +++ b/purchase_order_line_menu/README.rst @@ -2,10 +2,13 @@ Purchase Order Line Menu ======================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:fa367efc2461fea7a8e61df2e79e35b37f588413eb00cd32003d9e7bb7a4e887 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,13 +22,13 @@ Purchase Order Line Menu .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_order_line_menu :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| -Adds a menu item to list all Purchase Order lines. +Adds a menu item and some views to navigate through Purchase Order lines. **Table of contents** @@ -42,7 +45,7 @@ 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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -64,6 +67,12 @@ Contributors * Freni Patel * Murtaza Mithaiwala + * `Moduon Team `: + + * Eduardo de Miguel + * Emilio Pascual + * Rafael Blasco + Maintainers ~~~~~~~~~~~ diff --git a/purchase_order_line_menu/__init__.py b/purchase_order_line_menu/__init__.py index 81e367a18b8..6048c92bd3a 100644 --- a/purchase_order_line_menu/__init__.py +++ b/purchase_order_line_menu/__init__.py @@ -1,2 +1,4 @@ # Copyright (C) 2021 Open Source Integrators +# Copyright (C) 2023 Moduon Team # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import models diff --git a/purchase_order_line_menu/__manifest__.py b/purchase_order_line_menu/__manifest__.py index fba9022b3c5..a830de3aed2 100644 --- a/purchase_order_line_menu/__manifest__.py +++ b/purchase_order_line_menu/__manifest__.py @@ -1,9 +1,10 @@ # Copyright (C) 2021 Open Source Integrators +# Copyright (C) 2023 Moduon Team # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Purchase Order Line Menu", - "version": "16.0.1.1.0", + "version": "16.0.2.1.0", "author": "Open Source Integrators, Odoo Community Association (OCA)", "summary": "Adds Purchase Order Lines Menu", "website": "https://github.com/OCA/purchase-workflow", @@ -14,6 +15,6 @@ "views/purchase_order_line_views.xml", ], "installable": True, - "maintainer": "dreispt", + "maintainer": ["dreispt", "Shide", "EmilioPascual"], "development_status": "Beta", } diff --git a/purchase_order_line_menu/i18n/es.po b/purchase_order_line_menu/i18n/es.po index 2ffa759e8a5..360091b4d70 100644 --- a/purchase_order_line_menu/i18n/es.po +++ b/purchase_order_line_menu/i18n/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-07-13 10:10+0000\n" +"PO-Revision-Date: 2023-09-03 13:40+0000\n" "Last-Translator: Ivorra78 \n" "Language-Team: none\n" "Language: es\n" @@ -16,13 +16,109 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.17\n" +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__invoice_status +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Billing Status" +msgstr "Estado de facturación" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Cancelled" +msgstr "Cancelado/a" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,help:purchase_order_line_menu.field_purchase_order_line__date_order +msgid "" +"Depicts the date within which the Quotation should be confirmed and " +"converted into a purchase order." +msgstr "" +"Indica la fecha en la que la oferta debe confirmarse y convertirse en un " +"pedido de compra." + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Fully Billed" +msgstr "Completamente facturado" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Locked" +msgstr "Bloqueado" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Nothing to Bill" +msgstr "Nada para facturar" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__date_order +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order Date" +msgstr "Fecha del Pedido" + #. module: purchase_order_line_menu #: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.view_purchase_order_line_pivot msgid "Order Lines" msgstr "Líneas de pedido" +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order date" +msgstr "Fecha del pedido" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Planned date" +msgstr "Fecha Planeada" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Subtotal" +msgstr "Subtotal del precio" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Tax" +msgstr "Precio del impuesto" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Total" +msgstr "Precio total" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Purchase Order" +msgstr "Orden de Compra" + +#. module: purchase_order_line_menu +#: model:ir.model,name:purchase_order_line_menu.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Línea de Orden de Compra" + #. module: purchase_order_line_menu #: model:ir.actions.act_window,name:purchase_order_line_menu.action_purchase_orders_lines #: model:ir.ui.menu,name:purchase_order_line_menu.purchase_order_line_menu msgid "Purchase Order Lines" msgstr "Líneas de pedido de compra" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ" +msgstr "SDO (Solicitud de Oferta)" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ Sent" +msgstr "SDO enviada" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "To Approve" +msgstr "A aprobar" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Waiting Bills" +msgstr "Facturas en espera" diff --git a/purchase_order_line_menu/i18n/fr_FR.po b/purchase_order_line_menu/i18n/fr_FR.po index ceb9142f238..2b1c1eae9c9 100644 --- a/purchase_order_line_menu/i18n/fr_FR.po +++ b/purchase_order_line_menu/i18n/fr_FR.po @@ -16,13 +16,107 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 4.3.2\n" +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__invoice_status +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Billing Status" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Cancelled" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,help:purchase_order_line_menu.field_purchase_order_line__date_order +msgid "" +"Depicts the date within which the Quotation should be confirmed and " +"converted into a purchase order." +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Fully Billed" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Locked" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Nothing to Bill" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__date_order +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order Date" +msgstr "" + #. module: purchase_order_line_menu #: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.view_purchase_order_line_pivot msgid "Order Lines" msgstr "Lignes de commande" +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order date" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Planned date" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Subtotal" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Tax" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Total" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Purchase Order" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model,name:purchase_order_line_menu.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + #. module: purchase_order_line_menu #: model:ir.actions.act_window,name:purchase_order_line_menu.action_purchase_orders_lines #: model:ir.ui.menu,name:purchase_order_line_menu.purchase_order_line_menu msgid "Purchase Order Lines" msgstr "Lignes de commande d'achat" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ Sent" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "To Approve" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Waiting Bills" +msgstr "" diff --git a/purchase_order_line_menu/i18n/hr.po b/purchase_order_line_menu/i18n/hr.po index 136a7f03ed8..409cdd4ebdf 100644 --- a/purchase_order_line_menu/i18n/hr.po +++ b/purchase_order_line_menu/i18n/hr.po @@ -17,13 +17,107 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.14.1\n" +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__invoice_status +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Billing Status" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Cancelled" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,help:purchase_order_line_menu.field_purchase_order_line__date_order +msgid "" +"Depicts the date within which the Quotation should be confirmed and " +"converted into a purchase order." +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Fully Billed" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Locked" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Nothing to Bill" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__date_order +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order Date" +msgstr "" + #. module: purchase_order_line_menu #: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.view_purchase_order_line_pivot msgid "Order Lines" msgstr "Stavke narudžbi" +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order date" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Planned date" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Subtotal" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Tax" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Total" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Purchase Order" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model,name:purchase_order_line_menu.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + #. module: purchase_order_line_menu #: model:ir.actions.act_window,name:purchase_order_line_menu.action_purchase_orders_lines #: model:ir.ui.menu,name:purchase_order_line_menu.purchase_order_line_menu msgid "Purchase Order Lines" msgstr "Stavke narudžbi" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ Sent" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "To Approve" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Waiting Bills" +msgstr "" diff --git a/purchase_order_line_menu/i18n/it.po b/purchase_order_line_menu/i18n/it.po new file mode 100644 index 00000000000..67baa0af287 --- /dev/null +++ b/purchase_order_line_menu/i18n/it.po @@ -0,0 +1,124 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_menu +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-08-20 09:58+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__invoice_status +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Billing Status" +msgstr "Stato fatturazione" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Cancelled" +msgstr "Annullato" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,help:purchase_order_line_menu.field_purchase_order_line__date_order +msgid "" +"Depicts the date within which the Quotation should be confirmed and " +"converted into a purchase order." +msgstr "" +"Rappresenta la data entro cui il preventivo dovrebbe essere validato e " +"convertito in ordine di acquisto." + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Fully Billed" +msgstr "Completamente pagato" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Locked" +msgstr "Bloccato" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Nothing to Bill" +msgstr "Niente da pagare" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__date_order +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order Date" +msgstr "Data ordine" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.view_purchase_order_line_pivot +msgid "Order Lines" +msgstr "Righe ordine" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order date" +msgstr "Data ordine" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Planned date" +msgstr "Data pianificata" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Subtotal" +msgstr "Subtotale prezzo" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Tax" +msgstr "Valorizzare imposta" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Total" +msgstr "Totale prezzo" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Purchase Order" +msgstr "Ordine di acquisto" + +#. module: purchase_order_line_menu +#: model:ir.model,name:purchase_order_line_menu.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Riga ordine di acquisto" + +#. module: purchase_order_line_menu +#: model:ir.actions.act_window,name:purchase_order_line_menu.action_purchase_orders_lines +#: model:ir.ui.menu,name:purchase_order_line_menu.purchase_order_line_menu +msgid "Purchase Order Lines" +msgstr "Righe ordine di acquisto" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ" +msgstr "RdP" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ Sent" +msgstr "RDP Inviata" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "To Approve" +msgstr "Da approvare" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Waiting Bills" +msgstr "Fatture in attesa" diff --git a/purchase_order_line_menu/i18n/ja.po b/purchase_order_line_menu/i18n/ja.po new file mode 100644 index 00000000000..82fdf96c03f --- /dev/null +++ b/purchase_order_line_menu/i18n/ja.po @@ -0,0 +1,122 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_menu +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-10-28 13:08+0000\n" +"Last-Translator: Rinaldi Firdaus \n" +"Language-Team: none\n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__invoice_status +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Billing Status" +msgstr "請求ステータス" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Cancelled" +msgstr "取消済" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,help:purchase_order_line_menu.field_purchase_order_line__date_order +msgid "" +"Depicts the date within which the Quotation should be confirmed and " +"converted into a purchase order." +msgstr "お見積りを確認して販売オーダに更新しないといけない期日を表示します。" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Fully Billed" +msgstr "完全請求済" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Locked" +msgstr "ロック済" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Nothing to Bill" +msgstr "請求対象なし" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__date_order +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order Date" +msgstr "オーダ締切" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.view_purchase_order_line_pivot +msgid "Order Lines" +msgstr "オーダ明細行" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order date" +msgstr "オーダ締切" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Planned date" +msgstr "入荷予定日" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Subtotal" +msgstr "小計" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Tax" +msgstr "税" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Total" +msgstr "合計" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Purchase Order" +msgstr "購買オーダ" + +#. module: purchase_order_line_menu +#: model:ir.model,name:purchase_order_line_menu.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "購買オーダ明細行" + +#. module: purchase_order_line_menu +#: model:ir.actions.act_window,name:purchase_order_line_menu.action_purchase_orders_lines +#: model:ir.ui.menu,name:purchase_order_line_menu.purchase_order_line_menu +msgid "Purchase Order Lines" +msgstr "購買オーダ明細行" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ" +msgstr "見積依頼" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ Sent" +msgstr "見積依頼送付済" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "To Approve" +msgstr "未承認" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Waiting Bills" +msgstr "請求書待ち" diff --git a/purchase_order_line_menu/i18n/pt_BR.po b/purchase_order_line_menu/i18n/pt_BR.po new file mode 100644 index 00000000000..06b3ba6e2d2 --- /dev/null +++ b/purchase_order_line_menu/i18n/pt_BR.po @@ -0,0 +1,124 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_menu +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-10-12 16:36+0000\n" +"Last-Translator: Adriano Prado \n" +"Language-Team: none\n" +"Language: pt_BR\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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__invoice_status +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Billing Status" +msgstr "Situação Faturamento" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Cancelled" +msgstr "Cancelado" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,help:purchase_order_line_menu.field_purchase_order_line__date_order +msgid "" +"Depicts the date within which the Quotation should be confirmed and " +"converted into a purchase order." +msgstr "" +"Representa a data dentro da qual a cotação deve ser confirmada e convertida " +"em um pedido de compra." + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Fully Billed" +msgstr "Totalmente Faturado" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Locked" +msgstr "Bloqueado" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Nothing to Bill" +msgstr "Nada a Faturar" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__date_order +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order Date" +msgstr "Data Pedido" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.view_purchase_order_line_pivot +msgid "Order Lines" +msgstr "Itens dos Pedidos" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order date" +msgstr "Data Pedido" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Planned date" +msgstr "Data Planejada" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Subtotal" +msgstr "Subtotal" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Tax" +msgstr "Imposto" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Total" +msgstr "Total" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Purchase Order" +msgstr "Pedido Compra" + +#. module: purchase_order_line_menu +#: model:ir.model,name:purchase_order_line_menu.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Item Pedido de Compra" + +#. module: purchase_order_line_menu +#: model:ir.actions.act_window,name:purchase_order_line_menu.action_purchase_orders_lines +#: model:ir.ui.menu,name:purchase_order_line_menu.purchase_order_line_menu +msgid "Purchase Order Lines" +msgstr "Itens Pedidos de Compra" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ" +msgstr "SDC" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ Sent" +msgstr "SDC Enviada" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "To Approve" +msgstr "Para Aprovar" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Waiting Bills" +msgstr "Aguardando Faturas" diff --git a/purchase_order_line_menu/i18n/purchase_order_line_menu.pot b/purchase_order_line_menu/i18n/purchase_order_line_menu.pot index 92bca0fab4c..6dd1b6b3620 100644 --- a/purchase_order_line_menu/i18n/purchase_order_line_menu.pot +++ b/purchase_order_line_menu/i18n/purchase_order_line_menu.pot @@ -13,13 +13,107 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__invoice_status +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Billing Status" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Cancelled" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,help:purchase_order_line_menu.field_purchase_order_line__date_order +msgid "" +"Depicts the date within which the Quotation should be confirmed and " +"converted into a purchase order." +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Fully Billed" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Locked" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Nothing to Bill" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model.fields,field_description:purchase_order_line_menu.field_purchase_order_line__date_order +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order Date" +msgstr "" + #. module: purchase_order_line_menu #: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.view_purchase_order_line_pivot msgid "Order Lines" msgstr "" +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Order date" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Planned date" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Subtotal" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Tax" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_tree +msgid "Price Total" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Purchase Order" +msgstr "" + +#. module: purchase_order_line_menu +#: model:ir.model,name:purchase_order_line_menu.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" + #. module: purchase_order_line_menu #: model:ir.actions.act_window,name:purchase_order_line_menu.action_purchase_orders_lines #: model:ir.ui.menu,name:purchase_order_line_menu.purchase_order_line_menu msgid "Purchase Order Lines" msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "RFQ Sent" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "To Approve" +msgstr "" + +#. module: purchase_order_line_menu +#: model_terms:ir.ui.view,arch_db:purchase_order_line_menu.purchase_order_line_search +msgid "Waiting Bills" +msgstr "" diff --git a/purchase_order_line_menu/models/__init__.py b/purchase_order_line_menu/models/__init__.py new file mode 100644 index 00000000000..47d851582f5 --- /dev/null +++ b/purchase_order_line_menu/models/__init__.py @@ -0,0 +1,3 @@ +# Copyright (C) 2023 Moduon Team +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import purchase_order_line diff --git a/purchase_order_line_menu/models/purchase_order_line.py b/purchase_order_line_menu/models/purchase_order_line.py new file mode 100644 index 00000000000..7371092513b --- /dev/null +++ b/purchase_order_line_menu/models/purchase_order_line.py @@ -0,0 +1,18 @@ +# Copyright 2023 Moduon Team +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class PurchaseOrderLine(models.Model): + _inherit = "purchase.order.line" + + invoice_status = fields.Selection( + related="order_id.invoice_status", + readonly=True, + store=True, + index=True, + ) + date_order = fields.Datetime( + store=True, + index=True, + ) diff --git a/purchase_order_line_menu/readme/CONTRIBUTORS.rst b/purchase_order_line_menu/readme/CONTRIBUTORS.rst index 83ae7af628c..e619364acb3 100644 --- a/purchase_order_line_menu/readme/CONTRIBUTORS.rst +++ b/purchase_order_line_menu/readme/CONTRIBUTORS.rst @@ -3,3 +3,9 @@ * Daniel Reis * Freni Patel * Murtaza Mithaiwala + + * `Moduon Team `: + + * Eduardo de Miguel + * Emilio Pascual + * Rafael Blasco diff --git a/purchase_order_line_menu/readme/DESCRIPTION.rst b/purchase_order_line_menu/readme/DESCRIPTION.rst index 9eb6aa6e82c..bf9dedb67c3 100644 --- a/purchase_order_line_menu/readme/DESCRIPTION.rst +++ b/purchase_order_line_menu/readme/DESCRIPTION.rst @@ -1 +1 @@ -Adds a menu item to list all Purchase Order lines. +Adds a menu item and some views to navigate through Purchase Order lines. diff --git a/purchase_order_line_menu/static/description/index.html b/purchase_order_line_menu/static/description/index.html index cdbe12d1169..31de1b2b701 100644 --- a/purchase_order_line_menu/static/description/index.html +++ b/purchase_order_line_menu/static/description/index.html @@ -1,20 +1,20 @@ - + - + Purchase Order Line Menu + + +
+

Purchase Reception Status

+ + +

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

+

This module adds a field Receipt Status on purchase order lines. +On a confirmed purchase order, it can have 3 different values:

+
    +
  • Nothing Received
  • +
  • Partially Received
  • +
  • Fully Received
  • +
+

The field is updated automatically when the purchase order is confirmed, +and when the move lines are updated.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to go to Purchase Orders and create a new order.

+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
  • Italo Lopes
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_order_line_receipt_status/views/purchase_order_line.xml b/purchase_order_line_receipt_status/views/purchase_order_line.xml new file mode 100644 index 00000000000..97378ae935f --- /dev/null +++ b/purchase_order_line_receipt_status/views/purchase_order_line.xml @@ -0,0 +1,19 @@ + + + + + purchase.order + + + + + + + + diff --git a/purchase_order_line_stock_available/README.rst b/purchase_order_line_stock_available/README.rst new file mode 100644 index 00000000000..3c313a3834f --- /dev/null +++ b/purchase_order_line_stock_available/README.rst @@ -0,0 +1,93 @@ +=================================== +Purchase order line stock available +=================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:bfa0788ee1373a26ede28133f72c6468ab251508c3720c67355536099c52de54 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_order_line_stock_available + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_order_line_stock_available + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to view the virtual stock quantity of a product in the +purchase order line. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Create a new purchase order and now you will see available stock of product + on every purchase line. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* AvanzOSC +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `AvanzOSC `_: + + * Daniel Campos + * Ana Juaristi +* `Tecnativa `_: + + * Pedro Baeza + * Vicent Cubells + * Víctor Martínez +* Sudhir Arya + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_order_line_stock_available/__init__.py b/purchase_order_line_stock_available/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/purchase_order_line_stock_available/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/purchase_order_line_stock_available/__manifest__.py b/purchase_order_line_stock_available/__manifest__.py new file mode 100644 index 00000000000..b40df789ddd --- /dev/null +++ b/purchase_order_line_stock_available/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2015 AvanzOSC +# Copyright 2017-2019 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Purchase order line stock available", + "version": "16.0.1.0.0", + "license": "AGPL-3", + "author": "AvanzOSC," "Tecnativa," "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/purchase-workflow", + "depends": ["purchase_stock"], + "category": "Purchases", + "data": ["views/purchase_view.xml"], + "installable": True, +} diff --git a/purchase_order_line_stock_available/i18n/es.po b/purchase_order_line_stock_available/i18n/es.po new file mode 100644 index 00000000000..5b2f3a877cc --- /dev/null +++ b/purchase_order_line_stock_available/i18n/es.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_stock_available +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-21 09:11+0000\n" +"PO-Revision-Date: 2023-10-28 19:58+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,help:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" +"Cantidad Prevista (calculado de la siguiente forma -> stock real - salientes " +"+ entrantes)\n" +"Con una ubicación de stock en contexto, añade las cantidades existentes en " +"esa ubicación o en cualquier hijo suyo. \n" +"Con un almacén en contexto, añade las cantidades existentes en la ubicación " +"de stock de ese almacén o en cualquier hijo suyo. \n" +"En cualquiero otro caso, te añade las cantidades existentes en todas las " +"ubicaciones de tipo interno." + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,field_description:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "Forecasted Quantity" +msgstr "Cantidad Prevista" + +#. module: purchase_order_line_stock_available +#: model:ir.model,name:purchase_order_line_stock_available.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Línea pedido de compra" diff --git a/purchase_order_line_stock_available/i18n/it.po b/purchase_order_line_stock_available/i18n/it.po new file mode 100644 index 00000000000..c6f9545ab54 --- /dev/null +++ b/purchase_order_line_stock_available/i18n/it.po @@ -0,0 +1,44 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_stock_available +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-07-08 08:59+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,help:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" +"Quantità previsionale (calcolata come quantità disponibile - uscite + " +"entrate)\n" +"In un contesto con una sola ubicazione di magazzino, include i beni stoccati " +"in questa ubicazione o qualsiasi delle sue figlie.\n" +"In un contesto con un solo magazzino, include i beni stoccati " +"nell'ubicazione di magazzino di questo magazzino o qualsiasi delle figlie.\n" +"Altrimenti, include i beni stoccati in qualsiasi ubicazione di tipo " +"'interno'." + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,field_description:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "Forecasted Quantity" +msgstr "Quantità prevista" + +#. module: purchase_order_line_stock_available +#: model:ir.model,name:purchase_order_line_stock_available.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Riga ordine di acquisto" diff --git a/purchase_order_line_stock_available/i18n/pt_BR.po b/purchase_order_line_stock_available/i18n/pt_BR.po new file mode 100644 index 00000000000..b3cb910a850 --- /dev/null +++ b/purchase_order_line_stock_available/i18n/pt_BR.po @@ -0,0 +1,52 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_stock_available +# +# Translators: +# danimaribeiro , 2015 +msgid "" +msgstr "" +"Project-Id-Version: odoomrp-utils (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-08 08:45+0000\n" +"PO-Revision-Date: 2024-07-10 18:58+0000\n" +"Last-Translator: Rodrigo Sottomaior Macedo " +"\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/" +"odoomrp-utils-8-0/language/pt_BR/)\n" +"Language: pt_BR\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" +"X-Generator: Weblate 5.6.2\n" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,help:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" +"Quantidade prevista (calculada como Quantidade disponível - Saída + Entrada)" +"\n" +"Em um contexto com um único Local de Estoque, isso inclui mercadorias " +"armazenadas nesse local ou qualquer um de seus filhos.\n" +"Num contexto com um único Armazém, isto inclui mercadorias armazenadas no " +"Local de Estoque deste Armazém, ou qualquer um dos seus filhos.\n" +"Caso contrário, isto inclui mercadorias armazenadas em qualquer Local de " +"Estoque com tipo 'interno'." + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,field_description:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "Forecasted Quantity" +msgstr "Quantidade prevista" + +#. module: purchase_order_line_stock_available +#: model:ir.model,name:purchase_order_line_stock_available.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linha de compra" diff --git a/purchase_order_line_stock_available/i18n/purchase_order_line_stock_available.pot b/purchase_order_line_stock_available/i18n/purchase_order_line_stock_available.pot new file mode 100644 index 00000000000..d06dfe83259 --- /dev/null +++ b/purchase_order_line_stock_available/i18n/purchase_order_line_stock_available.pot @@ -0,0 +1,33 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_stock_available +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,help:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' type." +msgstr "" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,field_description:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "Forecasted Quantity" +msgstr "" + +#. module: purchase_order_line_stock_available +#: model:ir.model,name:purchase_order_line_stock_available.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "" diff --git a/purchase_order_line_stock_available/i18n/sl.po b/purchase_order_line_stock_available/i18n/sl.po new file mode 100644 index 00000000000..650947cd406 --- /dev/null +++ b/purchase_order_line_stock_available/i18n/sl.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_stock_available +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: odoomrp-utils (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-10-08 08:45+0000\n" +"PO-Revision-Date: 2015-09-28 13:12+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/odoomrp-utils-8-0/" +"language/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " +"n%100==4 ? 2 : 3);\n" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,help:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,field_description:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "Forecasted Quantity" +msgstr "" + +#. module: purchase_order_line_stock_available +#: model:ir.model,name:purchase_order_line_stock_available.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Postavka nabavnega naloga" diff --git a/purchase_order_line_stock_available/i18n/zh_CN.po b/purchase_order_line_stock_available/i18n/zh_CN.po new file mode 100644 index 00000000000..42a03e40e01 --- /dev/null +++ b/purchase_order_line_stock_available/i18n/zh_CN.po @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_line_stock_available +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-03-21 12:46+0000\n" +"Last-Translator: Dong \n" +"Language-Team: none\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,help:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "" +"Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\n" +"In a context with a single Stock Location, this includes goods stored in " +"this location, or any of its children.\n" +"In a context with a single Warehouse, this includes goods stored in the " +"Stock Location of this Warehouse, or any of its children.\n" +"Otherwise, this includes goods stored in any Stock Location with 'internal' " +"type." +msgstr "" + +#. module: purchase_order_line_stock_available +#: model:ir.model.fields,field_description:purchase_order_line_stock_available.field_purchase_order_line__virtual_available +msgid "Forecasted Quantity" +msgstr "" + +#. module: purchase_order_line_stock_available +#: model:ir.model,name:purchase_order_line_stock_available.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "采购订单明细" diff --git a/purchase_order_line_stock_available/models/__init__.py b/purchase_order_line_stock_available/models/__init__.py new file mode 100644 index 00000000000..370f577b2a2 --- /dev/null +++ b/purchase_order_line_stock_available/models/__init__.py @@ -0,0 +1 @@ +from . import purchase diff --git a/purchase_order_line_stock_available/models/purchase.py b/purchase_order_line_stock_available/models/purchase.py new file mode 100644 index 00000000000..1946e7ce2e7 --- /dev/null +++ b/purchase_order_line_stock_available/models/purchase.py @@ -0,0 +1,9 @@ +from odoo import fields, models + + +class PurchaseOrderLine(models.Model): + _inherit = "purchase.order.line" + + virtual_available = fields.Float( + related="product_id.virtual_available", readonly=True + ) diff --git a/purchase_order_line_stock_available/readme/CONTRIBUTORS.rst b/purchase_order_line_stock_available/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..52e4c0c1083 --- /dev/null +++ b/purchase_order_line_stock_available/readme/CONTRIBUTORS.rst @@ -0,0 +1,10 @@ +* `AvanzOSC `_: + + * Daniel Campos + * Ana Juaristi +* `Tecnativa `_: + + * Pedro Baeza + * Vicent Cubells + * Víctor Martínez +* Sudhir Arya diff --git a/purchase_order_line_stock_available/readme/DESCRIPTION.rst b/purchase_order_line_stock_available/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..426705ed794 --- /dev/null +++ b/purchase_order_line_stock_available/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module allows to view the virtual stock quantity of a product in the +purchase order line. diff --git a/purchase_order_line_stock_available/readme/USAGE.rst b/purchase_order_line_stock_available/readme/USAGE.rst new file mode 100644 index 00000000000..d2ad4ea3ca5 --- /dev/null +++ b/purchase_order_line_stock_available/readme/USAGE.rst @@ -0,0 +1,2 @@ +* Create a new purchase order and now you will see available stock of product + on every purchase line. diff --git a/purchase_order_line_stock_available/static/description/icon.png b/purchase_order_line_stock_available/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/purchase_order_line_stock_available/static/description/icon.png differ diff --git a/purchase_order_line_stock_available/static/description/index.html b/purchase_order_line_stock_available/static/description/index.html new file mode 100644 index 00000000000..4125ca754bf --- /dev/null +++ b/purchase_order_line_stock_available/static/description/index.html @@ -0,0 +1,441 @@ + + + + + +Purchase order line stock available + + + +
+

Purchase order line stock available

+ + +

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

+

This module allows to view the virtual stock quantity of a product in the +purchase order line.

+

Table of contents

+ +
+

Usage

+
    +
  • Create a new purchase order and now you will see available stock of product +on every purchase line.
  • +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • AvanzOSC
  • +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_order_line_stock_available/tests/__init__.py b/purchase_order_line_stock_available/tests/__init__.py new file mode 100644 index 00000000000..5f85fc3d3a9 --- /dev/null +++ b/purchase_order_line_stock_available/tests/__init__.py @@ -0,0 +1 @@ +from . import test_purchase diff --git a/purchase_order_line_stock_available/tests/test_purchase.py b/purchase_order_line_stock_available/tests/test_purchase.py new file mode 100644 index 00000000000..ee2304987a1 --- /dev/null +++ b/purchase_order_line_stock_available/tests/test_purchase.py @@ -0,0 +1,59 @@ +# Copyright 2021 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl) + +from datetime import date + +from odoo.addons.base.tests.common import BaseCommon + + +class TestPurchase(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.company = cls.env.ref("base.main_company") + cls.partner = cls.env["res.partner"].create({"name": "Test partner"}) + cls.product = cls.env["product.product"].create( + {"name": "Test product", "type": "product", "detailed_type": "product"} + ) + cls.location_stock = cls.env.ref("stock.stock_location_stock") + cls.location_suppliers = cls.env.ref("stock.stock_location_suppliers") + cls.purchase = cls.env["purchase.order"].create( + { + "partner_id": cls.partner.id, + "order_line": [ + ( + 0, + 0, + { + "product_id": cls.product.id, + "product_uom": cls.product.uom_id.id, + "name": cls.product.name, + "price_unit": cls.product.standard_price, + "date_planned": date.today(), + "product_qty": 1, + }, + ) + ], + } + ) + cls.purchase_line = cls.purchase.order_line[0] + cls._create_stock_move(10.0) + + @classmethod + def _create_stock_move(cls, qty): + stock_move = cls.env["stock.move"].create( + { + "name": cls.product.display_name, + "location_id": cls.location_suppliers.id, + "location_dest_id": cls.location_stock.id, + "product_id": cls.product.id, + "product_uom": cls.product.uom_id.id, + "product_uom_qty": qty, + } + ) + stock_move._action_done() + + def test_purchase_line_virtual_available(self): + self.assertEqual(self.purchase_line.virtual_available, 10.0) + self._create_stock_move(20.0) + self.assertEqual(self.purchase_line.virtual_available, 30.0) diff --git a/purchase_order_line_stock_available/views/purchase_view.xml b/purchase_order_line_stock_available/views/purchase_view.xml new file mode 100644 index 00000000000..9f585be655f --- /dev/null +++ b/purchase_order_line_stock_available/views/purchase_view.xml @@ -0,0 +1,16 @@ + + + + purchase.order.form.view.stock + purchase.order + + + + + + + + diff --git a/purchase_order_no_zero_price/README.rst b/purchase_order_no_zero_price/README.rst index 9121495fb48..9996c50255d 100644 --- a/purchase_order_no_zero_price/README.rst +++ b/purchase_order_no_zero_price/README.rst @@ -2,10 +2,13 @@ Purchase Order No Zero Price ============================ -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:4eb4147526f4d1e11825c053c153ecdc24f5f1a06d0bec22c855af18dbf34bd9 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Purchase Order No Zero Price .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_order_no_zero_price :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/142/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| Prevent zero prices on confirmed POs to help ensure proper Stock Valuation when receiving the products. @@ -50,7 +53,7 @@ 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 +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/purchase_order_no_zero_price/__manifest__.py b/purchase_order_no_zero_price/__manifest__.py index 2264dd19fe1..4a310a2c943 100644 --- a/purchase_order_no_zero_price/__manifest__.py +++ b/purchase_order_no_zero_price/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Purchase Order No Zero Price", - "version": "16.0.1.0.0", + "version": "16.0.1.0.1", "author": "Open Source Integrators, Odoo Community Association (OCA)", "summary": "Prevent zero price lines on Purchase Orders", "website": "https://github.com/OCA/purchase-workflow", diff --git a/purchase_order_no_zero_price/i18n/es.po b/purchase_order_no_zero_price/i18n/es.po new file mode 100644 index 00000000000..76b19f10b7b --- /dev/null +++ b/purchase_order_no_zero_price/i18n/es.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_no_zero_price +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-01-11 17:35+0000\n" +"Last-Translator: kikopeiro \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_no_zero_price +#. odoo-python +#: code:addons/purchase_order_no_zero_price/models/purchase_order_line.py:0 +#, python-format +msgid "Missing unit price for Products: %s" +msgstr "Precio unitario sin establecer en los siguientes productos: %s" + +#. module: purchase_order_no_zero_price +#: model:ir.model,name:purchase_order_no_zero_price.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Linea de pedido de compra" diff --git a/purchase_order_no_zero_price/i18n/it.po b/purchase_order_no_zero_price/i18n/it.po new file mode 100644 index 00000000000..a9d71db4b44 --- /dev/null +++ b/purchase_order_no_zero_price/i18n/it.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_no_zero_price +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-12-22 19:33+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_no_zero_price +#. odoo-python +#: code:addons/purchase_order_no_zero_price/models/purchase_order_line.py:0 +#, python-format +msgid "Missing unit price for Products: %s" +msgstr "Prezzo unitario mancante per prodotti: %s" + +#. module: purchase_order_no_zero_price +#: model:ir.model,name:purchase_order_no_zero_price.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Riga ordine di acquisto" diff --git a/purchase_order_no_zero_price/models/purchase_order_line.py b/purchase_order_no_zero_price/models/purchase_order_line.py index 89aa43a44d1..61afe3e522b 100644 --- a/purchase_order_no_zero_price/models/purchase_order_line.py +++ b/purchase_order_no_zero_price/models/purchase_order_line.py @@ -15,7 +15,7 @@ def _check_price_unit_zero(self): # Also supports `purchase_triple_discount` module no_price_lines = self.filtered( lambda x: not x.display_type - and x.state not in ["draft", "done", "cancel"] + and x.state not in ["draft", "cancel"] and not x.price_unit # Allow zero price for 100% discounts: and getattr(x, "discount", 0.0) != 100.0 diff --git a/purchase_order_no_zero_price/static/description/index.html b/purchase_order_no_zero_price/static/description/index.html index 27e6b934753..6a26eecfcbc 100644 --- a/purchase_order_no_zero_price/static/description/index.html +++ b/purchase_order_no_zero_price/static/description/index.html @@ -1,20 +1,19 @@ - - + Purchase Order No Zero Price + + +
+

Price recalculation in purchases orders

+ + +

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

+

This module adds one button on purchase orders (below the lines) that:

+
    +
  • Recalculates the prices of the order lines that contain a product in them.
  • +
+

It is launched manually as a button to get the user to decide if he/she wants to +recalculate prices when vendor is changed or after duplicating a purchase order +to update or not purchase information.

+

Table of contents

+ +
+

Usage

+
    +
  1. Go to Purchase -> Products > Products and create some record and set differente prices to vendors in Purchase tab, for example: Vendor 1: 10 and Vendor 2: 20.
  2. +
  3. Go to Purchase -> Orders > Requests for Quotation and create some record and set Vendor 1.
  4. +
  5. Add a line with the previously created product.
  6. +
  7. The unit price of the product is 10.
  8. +
  9. Change vendor to Vendor 2.
  10. +
  11. Click on the “Update lines info” button.
  12. +
  13. The unit price of the product is 20.
  14. +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Víctor Martínez
    • +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

Current maintainer:

+

victoralmau

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_order_price_recalculation/tests/__init__.py b/purchase_order_price_recalculation/tests/__init__.py new file mode 100644 index 00000000000..3f6b4227301 --- /dev/null +++ b/purchase_order_price_recalculation/tests/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +from . import test_purchase_order_price_recalculation diff --git a/purchase_order_price_recalculation/tests/test_purchase_order_price_recalculation.py b/purchase_order_price_recalculation/tests/test_purchase_order_price_recalculation.py new file mode 100644 index 00000000000..670a84fe84d --- /dev/null +++ b/purchase_order_price_recalculation/tests/test_purchase_order_price_recalculation.py @@ -0,0 +1,44 @@ +# Copyright 2022-2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.tests import Form + +from odoo.addons.base.tests.common import BaseCommon + + +class TestPurchaseOrderPriceRecalculation(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner_a = cls.env["res.partner"].create({"name": "Test partner A"}) + cls.partner_b = cls.env["res.partner"].create({"name": "Test partner B"}) + cls.product = cls.env["product.product"].create( + { + "name": "Test product", + "seller_ids": [ + (0, 0, {"partner_id": cls.partner_a.id, "price": 10}), + (0, 0, {"partner_id": cls.partner_b.id, "price": 20}), + ], + } + ) + cls.order = cls._create_order(cls, cls.partner_a) + + def _create_order(self, partner): + order_form = Form(self.env["purchase.order"]) + order_form.partner_id = partner + with order_form.order_line.new() as line_form: + line_form.product_id = self.product + line_form.product_qty = 1 + return order_form.save() + + def test_order_update_lines_info(self): + product_line = self.order.order_line + self.assertEqual(product_line.price_unit, 10) + # Test form + order_form = Form(self.order) + order_form.partner_id = self.partner_b + # Update partner + self.order.partner_id = self.partner_b + self.assertEqual(product_line.price_unit, 10) + self.order.update_lines_info() + self.assertEqual(product_line.price_unit, 20) diff --git a/purchase_order_price_recalculation/views/purchase_order_view.xml b/purchase_order_price_recalculation/views/purchase_order_view.xml new file mode 100644 index 00000000000..b310c841b05 --- /dev/null +++ b/purchase_order_price_recalculation/views/purchase_order_view.xml @@ -0,0 +1,19 @@ + + + + purchase.order + + + + + + diff --git a/purchase_order_product_attachment_mgmt/README.rst b/purchase_order_product_attachment_mgmt/README.rst new file mode 100644 index 00000000000..e649c100c8f --- /dev/null +++ b/purchase_order_product_attachment_mgmt/README.rst @@ -0,0 +1,93 @@ +====================================== +Purchase Order Product Attachment Mgmt +====================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:3b99953fa3e56e77c59c9651ee8563722114f897992de016c9af80e3672e2c1e + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpurchase--workflow-lightgray.png?logo=github + :target: https://github.com/OCA/purchase-workflow/tree/16.0/purchase_order_product_attachment_mgmt + :alt: OCA/purchase-workflow +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/purchase-workflow-16-0/purchase-workflow-16-0-purchase_order_product_attachment_mgmt + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/purchase-workflow&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to get all attachments from all products of a purchase on a view. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +#. Go to *Purchase -> Orders > Purchase Orders* and create or edit some record. +#. The smart-button "Attachments" display the attachments of the product lines. + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-victoralmau| image:: https://github.com/victoralmau.png?size=40px + :target: https://github.com/victoralmau + :alt: victoralmau + +Current `maintainer `__: + +|maintainer-victoralmau| + +This module is part of the `OCA/purchase-workflow `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/purchase_order_product_attachment_mgmt/__init__.py b/purchase_order_product_attachment_mgmt/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/purchase_order_product_attachment_mgmt/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/purchase_order_product_attachment_mgmt/__manifest__.py b/purchase_order_product_attachment_mgmt/__manifest__.py new file mode 100644 index 00000000000..7dc367eeb82 --- /dev/null +++ b/purchase_order_product_attachment_mgmt/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2022 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Purchase Order Product Attachment Mgmt", + "version": "16.0.1.0.0", + "category": "Purchases", + "website": "https://github.com/OCA/purchase-workflow", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": ["purchase"], + "installable": True, + "data": [ + "views/purchase_order_view.xml", + ], + "maintainers": ["victoralmau"], +} diff --git a/purchase_order_product_attachment_mgmt/i18n/es.po b/purchase_order_product_attachment_mgmt/i18n/es.po new file mode 100644 index 00000000000..6cf3fb300f5 --- /dev/null +++ b/purchase_order_product_attachment_mgmt/i18n/es.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_product_attachment_mgmt +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-03-14 16:21+0000\n" +"PO-Revision-Date: 2022-03-14 17:23+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 2.3\n" + +#. module: purchase_order_product_attachment_mgmt +#: model:ir.actions.server,name:purchase_order_product_attachment_mgmt.action_see_purchase_order_attachments +#: model_terms:ir.ui.view,arch_db:purchase_order_product_attachment_mgmt.purchase_order_form +msgid "Attachments" +msgstr "Adjuntos" + +#. module: purchase_order_product_attachment_mgmt +#: model:ir.model,name:purchase_order_product_attachment_mgmt.model_purchase_order +msgid "Purchase Order" +msgstr "Pedido de compra" + +#~ msgid "Display Name" +#~ msgstr "Nombre mostrado" + +#~ msgid "ID" +#~ msgstr "ID" + +#~ msgid "Last Modified on" +#~ msgstr "Última modificación el" diff --git a/purchase_order_product_attachment_mgmt/i18n/it.po b/purchase_order_product_attachment_mgmt/i18n/it.po new file mode 100644 index 00000000000..bb08358964c --- /dev/null +++ b/purchase_order_product_attachment_mgmt/i18n/it.po @@ -0,0 +1,28 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_product_attachment_mgmt +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-03-04 10:34+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\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" +"X-Generator: Weblate 4.17\n" + +#. module: purchase_order_product_attachment_mgmt +#: model:ir.actions.server,name:purchase_order_product_attachment_mgmt.action_see_purchase_order_attachments +#: model_terms:ir.ui.view,arch_db:purchase_order_product_attachment_mgmt.purchase_order_form +msgid "Attachments" +msgstr "Allegati" + +#. module: purchase_order_product_attachment_mgmt +#: model:ir.model,name:purchase_order_product_attachment_mgmt.model_purchase_order +msgid "Purchase Order" +msgstr "Ordine di acquisto" diff --git a/purchase_order_product_attachment_mgmt/i18n/purchase_order_product_attachment_mgmt.pot b/purchase_order_product_attachment_mgmt/i18n/purchase_order_product_attachment_mgmt.pot new file mode 100644 index 00000000000..4c04e78c35a --- /dev/null +++ b/purchase_order_product_attachment_mgmt/i18n/purchase_order_product_attachment_mgmt.pot @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_order_product_attachment_mgmt +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: purchase_order_product_attachment_mgmt +#: model:ir.actions.server,name:purchase_order_product_attachment_mgmt.action_see_purchase_order_attachments +#: model_terms:ir.ui.view,arch_db:purchase_order_product_attachment_mgmt.purchase_order_form +msgid "Attachments" +msgstr "" + +#. module: purchase_order_product_attachment_mgmt +#: model:ir.model,name:purchase_order_product_attachment_mgmt.model_purchase_order +msgid "Purchase Order" +msgstr "" diff --git a/purchase_order_product_attachment_mgmt/models/__init__.py b/purchase_order_product_attachment_mgmt/models/__init__.py new file mode 100644 index 00000000000..9f03530643d --- /dev/null +++ b/purchase_order_product_attachment_mgmt/models/__init__.py @@ -0,0 +1 @@ +from . import purchase_order diff --git a/purchase_order_product_attachment_mgmt/models/purchase_order.py b/purchase_order_product_attachment_mgmt/models/purchase_order.py new file mode 100644 index 00000000000..d60c5eb436f --- /dev/null +++ b/purchase_order_product_attachment_mgmt/models/purchase_order.py @@ -0,0 +1,27 @@ +# Copyright 2022 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import models + + +class PurchaseOrder(models.Model): + _inherit = "purchase.order" + + def _action_see_purchase_order_attachments(self, products): + domain = [ + "|", + "&", + ("res_model", "=", "product.product"), + ("res_id", "in", products.ids), + "&", + ("res_model", "=", "product.template"), + ("res_id", "in", products.mapped("product_tmpl_id").ids), + ] + res = self.env["ir.actions.act_window"]._for_xml_id("base.action_attachment") + ctx = {"create": False, "edit": False} + res.update({"domain": domain, "context": ctx}) + return res + + def action_see_purchase_order_attachments(self): + return self._action_see_purchase_order_attachments( + self.mapped("order_line.product_id") + ) diff --git a/purchase_order_product_attachment_mgmt/readme/CONTRIBUTORS.rst b/purchase_order_product_attachment_mgmt/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..5fb71305308 --- /dev/null +++ b/purchase_order_product_attachment_mgmt/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza diff --git a/purchase_order_product_attachment_mgmt/readme/DESCRIPTION.rst b/purchase_order_product_attachment_mgmt/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..3bb0dc7e1f2 --- /dev/null +++ b/purchase_order_product_attachment_mgmt/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module allows to get all attachments from all products of a purchase on a view. diff --git a/purchase_order_product_attachment_mgmt/readme/USAGE.rst b/purchase_order_product_attachment_mgmt/readme/USAGE.rst new file mode 100644 index 00000000000..2df6d1f4533 --- /dev/null +++ b/purchase_order_product_attachment_mgmt/readme/USAGE.rst @@ -0,0 +1,2 @@ +#. Go to *Purchase -> Orders > Purchase Orders* and create or edit some record. +#. The smart-button "Attachments" display the attachments of the product lines. diff --git a/purchase_order_product_attachment_mgmt/static/description/icon.png b/purchase_order_product_attachment_mgmt/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/purchase_order_product_attachment_mgmt/static/description/icon.png differ diff --git a/purchase_order_product_attachment_mgmt/static/description/index.html b/purchase_order_product_attachment_mgmt/static/description/index.html new file mode 100644 index 00000000000..ec1e20e079b --- /dev/null +++ b/purchase_order_product_attachment_mgmt/static/description/index.html @@ -0,0 +1,434 @@ + + + + + +Purchase Order Product Attachment Mgmt + + + +
+

Purchase Order Product Attachment Mgmt

+ + +

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

+

This module allows to get all attachments from all products of a purchase on a view.

+

Table of contents

+ +
+

Usage

+
    +
  1. Go to Purchase -> Orders > Purchase Orders and create or edit some record.
  2. +
  3. The smart-button “Attachments” display the attachments of the product lines.
  4. +
+
+
+

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 to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Víctor Martínez
    • +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

Current maintainer:

+

victoralmau

+

This module is part of the OCA/purchase-workflow project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/purchase_order_product_attachment_mgmt/tests/__init__.py b/purchase_order_product_attachment_mgmt/tests/__init__.py new file mode 100644 index 00000000000..4d931d95937 --- /dev/null +++ b/purchase_order_product_attachment_mgmt/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from . import test_purchase_order_product_attachment_mgmt diff --git a/purchase_order_product_attachment_mgmt/tests/test_purchase_order_product_attachment_mgmt.py b/purchase_order_product_attachment_mgmt/tests/test_purchase_order_product_attachment_mgmt.py new file mode 100644 index 00000000000..dd4444e28bb --- /dev/null +++ b/purchase_order_product_attachment_mgmt/tests/test_purchase_order_product_attachment_mgmt.py @@ -0,0 +1,50 @@ +# Copyright 2022-2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +import base64 + +from odoo.tests import Form + +from odoo.addons.base.tests.common import BaseCommon + + +class TestPurchaseOrderProductAttachmentMgmt(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner = cls.env["res.partner"].create({"name": "Mr Odoo"}) + cls.product_a = cls.env["product.product"].create({"name": "Test Product A"}) + cls.product_b = cls.env["product.product"].create({"name": "Test Product B"}) + cls.purchase_order = cls._create_purchase_order(cls) + + def _create_purchase_order(self): + order_form = Form(self.env["purchase.order"]) + order_form.partner_id = self.partner + with order_form.order_line.new() as line_form: + line_form.product_id = self.product_a + with order_form.order_line.new() as line_form: + line_form.product_id = self.product_b + return order_form.save() + + def _create_attachment(self, product): + return self.env["ir.attachment"].create( + { + "name": "Test file %s" % product.name, + "res_model": product._name, + "res_id": product.id, + "datas": base64.b64encode(b"\xff data"), + } + ) + + def test_purchase_order_documents(self): + attachment_a = self._create_attachment(self.product_a) + action = self.purchase_order.action_see_purchase_order_attachments() + attachments = self.env["ir.attachment"].search(action["domain"]) + self.assertIn(attachment_a.id, attachments.ids) + self.assertIn(self.product_a.id, attachments.mapped("res_id")) + self.assertNotIn(self.product_b.id, attachments.mapped("res_id")) + attachment_b = self._create_attachment(self.product_b) + action = self.purchase_order.action_see_purchase_order_attachments() + attachments = self.env["ir.attachment"].search(action["domain"]) + self.assertIn(attachment_b.id, attachments.ids) + self.assertIn(self.product_a.id, attachments.mapped("res_id")) + self.assertIn(self.product_b.id, attachments.mapped("res_id")) diff --git a/purchase_order_product_attachment_mgmt/views/purchase_order_view.xml b/purchase_order_product_attachment_mgmt/views/purchase_order_view.xml new file mode 100644 index 00000000000..b854939e450 --- /dev/null +++ b/purchase_order_product_attachment_mgmt/views/purchase_order_view.xml @@ -0,0 +1,29 @@ + + + + purchase.order.form + purchase.order + + + +