diff --git a/locale/sources/administration.pot b/locale/sources/administration.pot index 2127a93dc..a01fd495a 100644 --- a/locale/sources/administration.pot +++ b/locale/sources/administration.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -894,8 +894,8 @@ msgstr "" #: ../../content/administration/maintain/domain_names.rst:166 #: ../../content/administration/maintain/domain_names.rst:236 #: ../../content/administration/maintain/supported_versions.rst:29 -#: ../../content/administration/upgrade.rst:90 -#: ../../content/administration/upgrade.rst:305 +#: ../../content/administration/upgrade.rst:92 +#: ../../content/administration/upgrade.rst:309 msgid "Odoo Online" msgstr "" @@ -1989,8 +1989,8 @@ msgstr "" #: ../../content/administration/maintain/domain_names.rst:250 #: ../../content/administration/maintain/supported_versions.rst:30 #: ../../content/administration/odoo_sh.rst:5 -#: ../../content/administration/upgrade.rst:120 -#: ../../content/administration/upgrade.rst:316 +#: ../../content/administration/upgrade.rst:122 +#: ../../content/administration/upgrade.rst:320 msgid "Odoo.sh" msgstr "" @@ -5970,11 +5970,11 @@ msgstr "" msgid "The documentation will help you go live with your Odoo.sh project in no time." msgstr "" -#: ../../content/administration/upgrade.rst:5 +#: ../../content/administration/upgrade.rst:7 msgid "An upgrade is the process of moving your database from an older version to a newer :doc:`supported version ` (e.g., Odoo 14.0 to Odoo 16.0). Frequently upgrading is essential as each version comes with new and improved features, bug fixes, and security patches." msgstr "" -#: ../../content/administration/upgrade.rst:13 +#: ../../content/administration/upgrade.rst:15 msgid "The Rolling Release process allows Odoo Online customers to upgrade their database directly from a message prompt sent to the database administrator as soon as a new version is released. The invitation to upgrade is only sent if no issues are detected during the automatic tests." msgstr "" @@ -5982,91 +5982,91 @@ msgstr "" msgid "The upgrade message prompt on the top right of the database" msgstr "" -#: ../../content/administration/upgrade.rst:20 +#: ../../content/administration/upgrade.rst:22 msgid "It is strongly recommended to manually :ref:`test the upgrade first `. Clicking :guilabel:`I want to test first` redirects to `the database manager `_, where it is possible to request an upgraded test database and check it for any discrepancies." msgstr "" -#: ../../content/administration/upgrade.rst:25 +#: ../../content/administration/upgrade.rst:27 msgid "It is **not** recommended to click :guilabel:`Upgrade Now` without testing first, as it immediately triggers the live production database upgrade." msgstr "" -#: ../../content/administration/upgrade.rst:28 +#: ../../content/administration/upgrade.rst:30 msgid "If the Rolling Release process detects an issue with the upgrade, it will be deactivated until the issue is resolved." msgstr "" -#: ../../content/administration/upgrade.rst:31 +#: ../../content/administration/upgrade.rst:33 msgid "An upgrade does not cover:" msgstr "" -#: ../../content/administration/upgrade.rst:33 +#: ../../content/administration/upgrade.rst:35 msgid "Downgrading to a previous version of Odoo" msgstr "" -#: ../../content/administration/upgrade.rst:34 +#: ../../content/administration/upgrade.rst:36 msgid ":doc:`Switching editions ` (e.g., from Community to Enterprise)" msgstr "" -#: ../../content/administration/upgrade.rst:35 +#: ../../content/administration/upgrade.rst:37 msgid ":doc:`Changing hosting type ` (e.g., from on-premise to Odoo Online)" msgstr "" -#: ../../content/administration/upgrade.rst:37 +#: ../../content/administration/upgrade.rst:39 msgid "Migrating from another ERP to Odoo" msgstr "" -#: ../../content/administration/upgrade.rst:40 +#: ../../content/administration/upgrade.rst:42 msgid "If your database contains a **custom module**, you must first upgrade its source code to be compatible with the new version of Odoo **before upgrading**." msgstr "" -#: ../../content/administration/upgrade.rst:47 +#: ../../content/administration/upgrade.rst:49 msgid "Upgrading in a nutshell" msgstr "" -#: ../../content/administration/upgrade.rst:49 +#: ../../content/administration/upgrade.rst:51 msgid "Request an upgraded test database (see :ref:`obtaining an upgraded test database `)." msgstr "" -#: ../../content/administration/upgrade.rst:52 +#: ../../content/administration/upgrade.rst:54 msgid "Thoroughly test the upgraded database (see :ref:`testing the new version of the database `)." msgstr "" -#: ../../content/administration/upgrade.rst:55 +#: ../../content/administration/upgrade.rst:57 msgid "Report any issue encountered during the testing to Odoo via the `support page `__." msgstr "" -#: ../../content/administration/upgrade.rst:58 +#: ../../content/administration/upgrade.rst:60 msgid "(If applicable) : upgrade the source code of your custom module to be compatible with the new version of Odoo." msgstr "" -#: ../../content/administration/upgrade.rst:61 +#: ../../content/administration/upgrade.rst:63 msgid "Once all issues are resolved and you are confident that the upgraded database can be used as your main database without any issues, plan the upgrade of your production database." msgstr "" -#: ../../content/administration/upgrade.rst:64 +#: ../../content/administration/upgrade.rst:66 msgid "Request the upgrade for the production database, rendering it unavailable for the time it takes to complete the process (see :ref:`upgrading the production database `)." msgstr "" -#: ../../content/administration/upgrade.rst:67 +#: ../../content/administration/upgrade.rst:69 msgid "Report any issue encountered during the upgrade to Odoo via the `support page `__." msgstr "" -#: ../../content/administration/upgrade.rst:76 +#: ../../content/administration/upgrade.rst:78 msgid "Obtaining an upgraded test database" msgstr "" -#: ../../content/administration/upgrade.rst:78 +#: ../../content/administration/upgrade.rst:80 msgid "The `Upgrade page `_ is the main platform for requesting an upgraded database. However, depending on the hosting type, you can upgrade from the command line (on-premise), the `Odoo Online database manager `_, or your `Odoo.sh project `_." msgstr "" -#: ../../content/administration/upgrade.rst:84 +#: ../../content/administration/upgrade.rst:86 msgid "The Upgrade platform follows the same `Privacy Policy `_ as the other Odoo.com services. Visit the `General Data Protection Regulation page `_ to learn more about how Odoo handles your data and privacy." msgstr "" -#: ../../content/administration/upgrade.rst:92 +#: ../../content/administration/upgrade.rst:94 msgid "Odoo Online databases can be manually upgraded via the `database manager `_." msgstr "" -#: ../../content/administration/upgrade.rst:95 +#: ../../content/administration/upgrade.rst:97 msgid "The database manager displays all databases associated with the user's account. Databases not on the most recent version of Odoo display an arrow in a circle icon next to their name, indicating that they can be upgraded." msgstr "" @@ -6074,19 +6074,19 @@ msgstr "" msgid "The database manager with an upgrade button next to the name of a database." msgstr "" -#: ../../content/administration/upgrade.rst:102 +#: ../../content/administration/upgrade.rst:104 msgid "Click the **arrow in a circle** icon to start the upgrade process. In the popup, fill in:" msgstr "" -#: ../../content/administration/upgrade.rst:104 +#: ../../content/administration/upgrade.rst:106 msgid "The **version** of Odoo you want to upgrade to, usually the latest version" msgstr "" -#: ../../content/administration/upgrade.rst:105 +#: ../../content/administration/upgrade.rst:107 msgid "The **email** address that should receive the link to the upgraded database" msgstr "" -#: ../../content/administration/upgrade.rst:106 +#: ../../content/administration/upgrade.rst:108 msgid "The :guilabel:`Purpose` of the upgrade, which is automatically set to :guilabel:`Test` for your first upgrade request" msgstr "" @@ -6094,7 +6094,7 @@ msgstr "" msgid "The \"Upgrade your database\" popup." msgstr "" -#: ../../content/administration/upgrade.rst:112 +#: ../../content/administration/upgrade.rst:114 msgid "The :guilabel:`Upgrade in progress` tag is displayed next to the database name until completion. Once the process succeeds, an email containing a link to the upgraded test database is sent to the address provided. The database can also be accessed from the database manager by clicking the dropdown arrow before the database name." msgstr "" @@ -6102,7 +6102,7 @@ msgstr "" msgid "Clicking the menu arrow displays the upgraded test database." msgstr "" -#: ../../content/administration/upgrade.rst:122 +#: ../../content/administration/upgrade.rst:124 msgid "Odoo.sh is integrated with the upgrade platform to simplify the upgrade process." msgstr "" @@ -6110,268 +6110,272 @@ msgstr "" msgid "Odoo.sh project and tabs" msgstr "" -#: ../../content/administration/upgrade.rst:127 +#: ../../content/administration/upgrade.rst:129 msgid "The **latest production daily automatic backup** is then sent to the `upgrade platform `_." msgstr "" -#: ../../content/administration/upgrade.rst:130 +#: ../../content/administration/upgrade.rst:132 msgid "Once the upgrade platform is done upgrading the backup and uploading it on the branch, it is put in a **special mode**: each time a **commit is pushed** on the branch, a **restore operation** of the upgraded backup and an **update of all the custom modules** occur. This allows you to test your custom modules on a pristine copy of the upgraded database. The log file of the upgrade process can be found in your newly upgraded staging build by going to :file:`~/logs/upgrade.log`." msgstr "" -#: ../../content/administration/upgrade.rst:138 +#: ../../content/administration/upgrade.rst:140 msgid "In databases where custom modules are installed, their source code must be up-to-date with the target version of Odoo before the upgrade can be performed. If there are none, the \"update on commit\" mode is skipped, the upgraded database is built as soon as it is transferred from the upgrade platform, and the upgrade mode is exited." msgstr "" -#: ../../content/administration/upgrade.rst:150 -#: ../../content/administration/upgrade.rst:340 +#: ../../content/administration/upgrade.rst:152 +#: ../../content/administration/upgrade.rst:344 msgid "On-premise" msgstr "" -#: ../../content/administration/upgrade.rst:152 +#: ../../content/administration/upgrade.rst:154 msgid "The standard upgrade process can be initiated by entering the following command line on the machine where the database is hosted:" msgstr "" -#: ../../content/administration/upgrade.rst:159 +#: ../../content/administration/upgrade.rst:161 msgid "The following command can be used to display the general help and the main commands:" msgstr "" -#: ../../content/administration/upgrade.rst:165 +#: ../../content/administration/upgrade.rst:167 msgid "An upgraded test database can also be requested via the `Upgrade page `_." msgstr "" -#: ../../content/administration/upgrade.rst:169 +#: ../../content/administration/upgrade.rst:171 msgid "For security reasons, only the person who submitted the upgrade request can download it." msgstr "" -#: ../../content/administration/upgrade.rst:170 +#: ../../content/administration/upgrade.rst:172 msgid "For storage reasons, the database's copy is submitted without a filestore to the upgrade server. Therefore, the upgraded database does not contain the production filestore." msgstr "" -#: ../../content/administration/upgrade.rst:172 +#: ../../content/administration/upgrade.rst:174 msgid "Before restoring the upgraded database, its filestore must be merged with the production filestore to be able to perform tests in the same conditions as it would be in the new version." msgstr "" -#: ../../content/administration/upgrade.rst:175 +#: ../../content/administration/upgrade.rst:177 msgid "The upgraded database contains:" msgstr "" -#: ../../content/administration/upgrade.rst:177 +#: ../../content/administration/upgrade.rst:179 msgid "A `dump.sql` file containing the upgraded database" msgstr "" -#: ../../content/administration/upgrade.rst:178 +#: ../../content/administration/upgrade.rst:180 msgid "A `filestore` folder containing files extracted from in-database records into attachments (if there are any) and new standard Odoo files from the targeted Odoo version (e.g., new images, icons, payment provider's logos, etc.). This is the folder that should be merged with the production filestore in order to get the full upgraded filestore." msgstr "" -#: ../../content/administration/upgrade.rst:185 +#: ../../content/administration/upgrade.rst:187 msgid "You can request multiple test databases if you wish to test an upgrade more than once." msgstr "" -#: ../../content/administration/upgrade.rst:190 +#: ../../content/administration/upgrade.rst:192 msgid "When an upgrade request is completed, an upgrade report is attached to the successful upgrade email, and it becomes available in the Discuss app for users who are part of the \"Administration / Settings\" group. This report provides important information about the changes introduced by the new version." msgstr "" -#: ../../content/administration/upgrade.rst:198 +#: ../../content/administration/upgrade.rst:200 msgid "Testing the new version of the database" msgstr "" -#: ../../content/administration/upgrade.rst:200 +#: ../../content/administration/upgrade.rst:202 msgid "It is essential to spend some time testing the upgraded test database to ensure that you are not stuck in your day-to-day activities by a change in views, behavior, or an error message once the upgrade goes live." msgstr "" -#: ../../content/administration/upgrade.rst:205 +#: ../../content/administration/upgrade.rst:207 msgid "Test databases are neutralized, and some features are disabled to prevent them from impacting the production database:" msgstr "" -#: ../../content/administration/upgrade.rst:208 +#: ../../content/administration/upgrade.rst:210 msgid "Scheduled actions are disabled." msgstr "" -#: ../../content/administration/upgrade.rst:209 +#: ../../content/administration/upgrade.rst:211 msgid "Outgoing mail servers are disabled by archiving the existing ones and adding a fake one." msgstr "" -#: ../../content/administration/upgrade.rst:210 +#: ../../content/administration/upgrade.rst:212 msgid "Payment providers and delivery carriers are reset to the test environment." msgstr "" -#: ../../content/administration/upgrade.rst:212 +#: ../../content/administration/upgrade.rst:213 +msgid "Bank synchronization is disabled. Should you want to test the synchronization, contact your bank synchronization provider to get sandbox credentials." +msgstr "" + +#: ../../content/administration/upgrade.rst:216 msgid "Testing as many of your business flows as possible is strongly recommended to ensure they are working correctly and to get more familiar with the new version." msgstr "" -#: ../../content/administration/upgrade.rst:215 +#: ../../content/administration/upgrade.rst:219 msgid "Basic test checklist" msgstr "" -#: ../../content/administration/upgrade.rst:217 +#: ../../content/administration/upgrade.rst:221 msgid "Are there views that are deactivated in your test database but active in your production database?" msgstr "" -#: ../../content/administration/upgrade.rst:219 +#: ../../content/administration/upgrade.rst:223 msgid "Are your usual views still displayed correctly?" msgstr "" -#: ../../content/administration/upgrade.rst:220 +#: ../../content/administration/upgrade.rst:224 msgid "Are your reports (invoice, sales order, etc.) correctly generated?" msgstr "" -#: ../../content/administration/upgrade.rst:221 +#: ../../content/administration/upgrade.rst:225 msgid "Are your website pages working correctly?" msgstr "" -#: ../../content/administration/upgrade.rst:222 +#: ../../content/administration/upgrade.rst:226 msgid "Are you able to create and modify records? (sales orders, invoices, purchases, users, contacts, companies, etc.)" msgstr "" -#: ../../content/administration/upgrade.rst:224 +#: ../../content/administration/upgrade.rst:228 msgid "Are there any issues with your mail templates?" msgstr "" -#: ../../content/administration/upgrade.rst:225 +#: ../../content/administration/upgrade.rst:229 msgid "Are there any issues with saved translations?" msgstr "" -#: ../../content/administration/upgrade.rst:226 +#: ../../content/administration/upgrade.rst:230 msgid "Are your search filters still present?" msgstr "" -#: ../../content/administration/upgrade.rst:227 +#: ../../content/administration/upgrade.rst:231 msgid "Can you export your data?" msgstr "" -#: ../../content/administration/upgrade.rst:231 +#: ../../content/administration/upgrade.rst:235 msgid "Checking a random product in your product catalog and comparing its test and production data to verify everything is the same (product category, selling price, cost price, vendor, accounts, routes, etc.)." msgstr "" -#: ../../content/administration/upgrade.rst:234 +#: ../../content/administration/upgrade.rst:238 msgid "Buying this product (Purchase app)." msgstr "" -#: ../../content/administration/upgrade.rst:235 +#: ../../content/administration/upgrade.rst:239 msgid "Confirming the reception of this product (Inventory app)." msgstr "" -#: ../../content/administration/upgrade.rst:236 +#: ../../content/administration/upgrade.rst:240 msgid "Checking if the route to receive this product is the same in your production database (Inventory app)." msgstr "" -#: ../../content/administration/upgrade.rst:238 +#: ../../content/administration/upgrade.rst:242 msgid "Selling this product (Sales app) to a random customer." msgstr "" -#: ../../content/administration/upgrade.rst:239 +#: ../../content/administration/upgrade.rst:243 msgid "Opening your customer database (Contacts app), selecting a customer (or company), and checking its data." msgstr "" -#: ../../content/administration/upgrade.rst:241 +#: ../../content/administration/upgrade.rst:245 msgid "Shipping this product (Inventory app)." msgstr "" -#: ../../content/administration/upgrade.rst:242 +#: ../../content/administration/upgrade.rst:246 msgid "Checking if the route to ship this product is the same as in your production database (Inventory app)." msgstr "" -#: ../../content/administration/upgrade.rst:244 +#: ../../content/administration/upgrade.rst:248 msgid "Validating a customer invoice (Invoicing or Accounting app)." msgstr "" -#: ../../content/administration/upgrade.rst:245 +#: ../../content/administration/upgrade.rst:249 msgid "Crediting the invoice (issuing a credit note) and checking if it behaves as in your production database." msgstr "" -#: ../../content/administration/upgrade.rst:247 +#: ../../content/administration/upgrade.rst:251 msgid "Checking your reports' results (Accounting app)." msgstr "" -#: ../../content/administration/upgrade.rst:248 +#: ../../content/administration/upgrade.rst:252 msgid "Randomly checking your taxes, currencies, bank accounts, and fiscal year (Accounting app)." msgstr "" -#: ../../content/administration/upgrade.rst:249 +#: ../../content/administration/upgrade.rst:253 msgid "Making an online order (Website apps) from the product selection in your shop until the checkout process and checking if everything behaves as in your production database." msgstr "" -#: ../../content/administration/upgrade.rst:252 +#: ../../content/administration/upgrade.rst:256 msgid "This list is **not** exhaustive. Extend the example to your other apps based on your use of Odoo." msgstr "" -#: ../../content/administration/upgrade.rst:254 +#: ../../content/administration/upgrade.rst:258 msgid "If you face an issue while testing your upgraded test database, you can request the assistance of Odoo via the `support page `__ by selecting the option related to testing the upgrade. In any case, it is essential to report any problem encountered during the testing to fix it before upgrading your production database." msgstr "" -#: ../../content/administration/upgrade.rst:259 +#: ../../content/administration/upgrade.rst:263 msgid "You might encounter significant differences with standard views, features, fields, and models during testing. Those changes cannot be reverted on a case-by-case basis. However, if a change introduced by a new version breaks a customization, it is the responsibility of the maintainer of your custom module to make it compatible with the new version of Odoo." msgstr "" -#: ../../content/administration/upgrade.rst:265 +#: ../../content/administration/upgrade.rst:269 msgid "Do not forget to test:" msgstr "" -#: ../../content/administration/upgrade.rst:267 +#: ../../content/administration/upgrade.rst:271 msgid "Integrations with external software (EDI, APIs, etc.)" msgstr "" -#: ../../content/administration/upgrade.rst:268 +#: ../../content/administration/upgrade.rst:272 msgid "Workflows between different apps (online sales with eCommerce, converting a lead all the way to a sales order, delivery of products, etc.)" msgstr "" -#: ../../content/administration/upgrade.rst:270 +#: ../../content/administration/upgrade.rst:274 msgid "Data exports" msgstr "" -#: ../../content/administration/upgrade.rst:271 +#: ../../content/administration/upgrade.rst:275 msgid "Automated actions" msgstr "" -#: ../../content/administration/upgrade.rst:272 +#: ../../content/administration/upgrade.rst:276 msgid "Server actions in the action menu on form views, as well as by selecting multiple records on list views" msgstr "" -#: ../../content/administration/upgrade.rst:278 +#: ../../content/administration/upgrade.rst:282 msgid "Upgrading the production database" msgstr "" -#: ../../content/administration/upgrade.rst:280 +#: ../../content/administration/upgrade.rst:284 msgid "Once the :ref:`tests ` are completed and you are confident that the upgraded database can be used as your main database without any issues, it is time to plan the go-live day. It can be planned in coordination with Odoo's upgrade support analysts, reachable via the `support page `__." msgstr "" -#: ../../content/administration/upgrade.rst:285 +#: ../../content/administration/upgrade.rst:289 msgid "Your production database will be unavailable during its upgrade. Therefore, we recommend planning the upgrade at a time when the use of the database is minimal." msgstr "" -#: ../../content/administration/upgrade.rst:288 +#: ../../content/administration/upgrade.rst:292 msgid "As the standard upgrade scripts and your database are constantly evolving, it is also recommended to frequently request another upgraded test database to ensure that the upgrade process is still successful, especially if it takes a long time to finish. Fully rehearsing the upgrade process the day before upgrading the production database is also recommended." msgstr "" -#: ../../content/administration/upgrade.rst:294 +#: ../../content/administration/upgrade.rst:298 msgid "Going into production without first testing may lead to:" msgstr "" -#: ../../content/administration/upgrade.rst:296 +#: ../../content/administration/upgrade.rst:300 msgid "Users failing to adjust to the changes and new features" msgstr "" -#: ../../content/administration/upgrade.rst:297 +#: ../../content/administration/upgrade.rst:301 msgid "Business interruptions (e.g., no longer having the possibility to validate an action)" msgstr "" -#: ../../content/administration/upgrade.rst:298 +#: ../../content/administration/upgrade.rst:302 msgid "Poor customer experience (e.g., an eCommerce website that does not work correctly)" msgstr "" -#: ../../content/administration/upgrade.rst:300 +#: ../../content/administration/upgrade.rst:304 msgid "The process of upgrading a production database is similar to upgrading a test database with a few exceptions." msgstr "" -#: ../../content/administration/upgrade.rst:307 +#: ../../content/administration/upgrade.rst:311 msgid "The process is similar to :ref:`obtaining an upgraded test database `, except for the purpose option, which must be set to :guilabel:`Production` instead of :guilabel:`Test`." msgstr "" -#: ../../content/administration/upgrade.rst:312 +#: ../../content/administration/upgrade.rst:316 msgid "Once the upgrade is requested, the database will be unavailable until the upgrade is finished. Once the process is completed, it is impossible to revert to the previous version." msgstr "" -#: ../../content/administration/upgrade.rst:318 +#: ../../content/administration/upgrade.rst:322 msgid "The process is similar to :ref:`obtaining an upgraded test database ` on the :guilabel:`Production` branch." msgstr "" @@ -6379,98 +6383,98 @@ msgstr "" msgid "View from the upgrade tab" msgstr "" -#: ../../content/administration/upgrade.rst:324 +#: ../../content/administration/upgrade.rst:328 msgid "The process is **triggered as soon as a new commit is made** on the branch. This allows the upgrade process to be synchronized with the deployment of the custom modules' upgraded source code. If there are no custom modules, the upgrade process is triggered immediately." msgstr "" -#: ../../content/administration/upgrade.rst:330 +#: ../../content/administration/upgrade.rst:334 msgid "The database is unavailable throughout the process. If anything goes wrong, the platform automatically reverts the upgrade, as it would be for a regular update. In case of success, a backup of the database before the upgrade is created." msgstr "" -#: ../../content/administration/upgrade.rst:334 +#: ../../content/administration/upgrade.rst:338 msgid "The update of your custom modules must be successful to complete the entire upgrade process. Make sure the status of your staging upgrade is :guilabel:`successful` before trying it in production." msgstr "" -#: ../../content/administration/upgrade.rst:342 +#: ../../content/administration/upgrade.rst:346 msgid "The command to upgrade a database to production is similar to the one of upgrading a test database except for the argument `test`, which must be replaced by `production`:" msgstr "" -#: ../../content/administration/upgrade.rst:349 +#: ../../content/administration/upgrade.rst:353 msgid "An upgraded production database can also be requested via the `Upgrade page `_. Once the database is uploaded, any modification to your production database will **not** be present on your upgraded database. This is why we recommend not using it during the upgrade process." msgstr "" -#: ../../content/administration/upgrade.rst:356 +#: ../../content/administration/upgrade.rst:360 msgid "When requesting an upgraded database for production purposes, the copy is submitted without a filestore. Therefore, the upgraded database filestore must be merged with the production filestore before deploying the new version." msgstr "" -#: ../../content/administration/upgrade.rst:360 +#: ../../content/administration/upgrade.rst:364 msgid "In case of an issue with your production database, you can request the assistance of Odoo via the `support page `__ by selecting the option related to the upgrade in production." msgstr "" -#: ../../content/administration/upgrade.rst:368 +#: ../../content/administration/upgrade.rst:372 msgid "Service-level agreement (SLA)" msgstr "" -#: ../../content/administration/upgrade.rst:370 +#: ../../content/administration/upgrade.rst:374 msgid "With Odoo Enterprise, upgrading a database to the most recent version of Odoo is **free**, including any support required to rectify potential discrepancies in the upgraded database." msgstr "" -#: ../../content/administration/upgrade.rst:373 +#: ../../content/administration/upgrade.rst:377 msgid "Information about the upgrade services included in the Enterprise Licence is available in the :ref:`Odoo Enterprise Subscription Agreement `. However, this section clarifies what upgrade services you can expect." msgstr "" -#: ../../content/administration/upgrade.rst:378 +#: ../../content/administration/upgrade.rst:382 msgid "Upgrade services covered by the SLA" msgstr "" -#: ../../content/administration/upgrade.rst:380 +#: ../../content/administration/upgrade.rst:384 msgid "Databases hosted on Odoo's cloud platforms (Odoo Online and Odoo.sh) or self-hosted (On-Premise) can benefit from upgrade services at all times for:" msgstr "" -#: ../../content/administration/upgrade.rst:383 +#: ../../content/administration/upgrade.rst:387 msgid "the upgrade of all **standard applications**;" msgstr "" -#: ../../content/administration/upgrade.rst:384 +#: ../../content/administration/upgrade.rst:388 msgid "the upgrade of all **customizations created with the Studio app**, as long as Studio is still installed and the respective subscription is still active; and" msgstr "" -#: ../../content/administration/upgrade.rst:386 +#: ../../content/administration/upgrade.rst:390 msgid "the upgrade of all **developments and customizations covered by a maintenance of customizations subscription**." msgstr "" -#: ../../content/administration/upgrade.rst:389 +#: ../../content/administration/upgrade.rst:393 msgid "Upgrade services are limited to the technical conversion and adaptation of a database (standard modules and data) to make it compatible with the version targeted by the upgrade." msgstr "" -#: ../../content/administration/upgrade.rst:393 +#: ../../content/administration/upgrade.rst:397 msgid "Upgrade services not covered by the SLA" msgstr "" -#: ../../content/administration/upgrade.rst:395 +#: ../../content/administration/upgrade.rst:399 msgid "The following upgrade-related services are **not** included:" msgstr "" -#: ../../content/administration/upgrade.rst:397 +#: ../../content/administration/upgrade.rst:401 msgid "the **cleaning** of pre-existing data and configurations while upgrading;" msgstr "" -#: ../../content/administration/upgrade.rst:398 +#: ../../content/administration/upgrade.rst:402 msgid "the upgrade of **custom modules created in-house or by third parties**, including Odoo partners;" msgstr "" -#: ../../content/administration/upgrade.rst:399 +#: ../../content/administration/upgrade.rst:403 msgid "lines of **code added to standard modules**, i.e., customizations created outside the Studio app, code entered manually, and :ref:`automated actions using Python code `; and" msgstr "" -#: ../../content/administration/upgrade.rst:402 +#: ../../content/administration/upgrade.rst:406 msgid "**training** on using the upgraded version's features and workflows." msgstr "" -#: ../../content/administration/upgrade.rst:405 +#: ../../content/administration/upgrade.rst:409 msgid ":doc:`Odoo.sh documentation `" msgstr "" -#: ../../content/administration/upgrade.rst:406 +#: ../../content/administration/upgrade.rst:410 msgid ":doc:`Supported Odoo versions `" msgstr "" diff --git a/locale/sources/contributing.pot b/locale/sources/contributing.pot index bef624a93..0fb8073d6 100644 --- a/locale/sources/contributing.pot +++ b/locale/sources/contributing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2392,7 +2392,7 @@ msgid "Alert blocks (admonitions)" msgstr "" #: ../../content/contributing/documentation/rst_cheat_sheet.rst:470 -msgid "Seealso" +msgid "See also" msgstr "" #: ../../content/contributing/documentation/rst_cheat_sheet.rst:476 diff --git a/locale/sources/developer.pot b/locale/sources/developer.pot index 886daca01..eab866027 100644 --- a/locale/sources/developer.pot +++ b/locale/sources/developer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -208,6 +208,337 @@ msgstr "" msgid "`addons/l10n_il/data/template/account.group-il.csv `_" msgstr "" +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +#: ../../content/developer/howtos/website_themes/building_blocks.rst:444 +#: ../../content/developer/howtos/website_themes/building_blocks.rst:469 +#: ../../content/developer/howtos/website_themes/building_blocks.rst:500 +#: ../../content/developer/howtos/website_themes/layout.rst:71 +#: ../../content/developer/reference/user_interface/view_architecture.rst:0 +#: ../../content/developer/reference/backend/data/res.country.state.csv:1 +msgid "id" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "code_prefix_start" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "code_prefix_end" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +#: ../../content/developer/howtos/website_themes/building_blocks.rst:446 +#: ../../content/developer/howtos/website_themes/building_blocks.rst:471 +#: ../../content/developer/howtos/website_themes/building_blocks.rst:502 +#: ../../content/developer/howtos/website_themes/layout.rst:75 +#: ../../content/developer/howtos/website_themes/navigation.rst:58 +#: ../../content/developer/howtos/website_themes/pages.rst:139 +#: ../../content/developer/howtos/website_themes/pages.rst:203 +#: ../../content/developer/howtos/website_themes/shapes.rst:134 +#: ../../content/developer/howtos/website_themes/theming.rst:121 +#: ../../content/developer/reference/user_interface/view_architecture.rst:0 +#: ../../content/developer/reference/user_interface/view_records.rst:0 +#: ../../content/developer/tutorials/define_module_data.rst:177 +#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:189 +#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:262 +#: ../../content/developer/tutorials/getting_started/08_relations.rst:73 +#: ../../content/developer/tutorials/getting_started/08_relations.rst:180 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.account_type:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.code:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.currency_id:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.name:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.note:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.reconcile:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tag_ids:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tax_ids:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.code_prefix_end:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.code_prefix_start:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.name:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.parent_id:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.active:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.applicability:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.color:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.country_id:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.name:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.tax_negate:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.availability_condition:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.column_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.country_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.default_opening_date_filter:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_account_type:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_analytic:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_date_range:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_fiscal_position:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_growth_comparison:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_hierarchy:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_journals:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_multi_company:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_partner:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_period_comparison:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_show_draft:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_unfold_all:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_unreconciled:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.line_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.load_more_limit:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.name:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.only_tax_exigible:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.root_report_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.search_bar:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.action_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.children_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.expression_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.foldable:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.hide_if_zero:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.hierarchy_level:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.name:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.parent_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.print_on_new_page:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.report_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.active:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.analytic:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.cash_basis_transition_account_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.children_tax_ids:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.description:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.include_base_amount:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.invoice_repartition_line_ids:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.is_base_affected:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.name:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.price_include:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.refund_repartition_line_ids:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.sequence:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_exigibility:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_group_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_scope:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.account_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.document_type:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.factor_percent:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.tag_ids:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.tax_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.use_in_tax_closing:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.account_ids:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.auto_apply:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_group_id:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_id:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.name:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.note:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.sequence:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.state_ids:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.tax_ids:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.vat_required:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.zip_from:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.zip_to:0 +#: ../../content/developer/reference/backend/data/res.country.state.csv:1 +msgid "name" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "name@he_IL" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_100100" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "100100" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "100499" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Fixed Assets" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "רכוש קבוע" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_101110" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "101110" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "101400" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Current Assets" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "רכוש שוטף" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_101401" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "101401" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "101799" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Bank And Cash" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "בנק ומזומנים" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_111000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "111000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "111999" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Current Liabilities" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "התחייבויות שוטפות" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_112000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "112000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "112210" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Non-current Liabilities" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "התחייבויות לא שוטפות" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_200000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "200000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "200199" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Sales Income" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "הכנסות ממכירות" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_200200" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "200200" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "200300" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Other Income" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "הכנסות אחרות" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_201000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "201000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "201299" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Cost of Goods" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "עלות המכר" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_202000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "202000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "220900" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Expenses" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "הוצאות" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "il_group_300000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "300000" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "399999" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "Capital And Shares" +msgstr "" + +#: ../../../odoo/addons/l10n_il/data/template/account.group-il.csv:1 +msgid "הון ומניות" +msgstr "" + #: ../../content/developer/howtos/accounting_localization.rst:151 #: ../../content/developer/reference/standard_modules/account/account_tax.rst:5 msgid "Taxes" @@ -454,6 +785,160 @@ msgstr "" msgid "The field `company_id` must not be defined with `check_company=True`." msgstr "" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:1 +msgid "Check the companies of the values of the given field names." +msgstr "" + +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/qweb.rst:0 +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:0 +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.invalidate_all:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:0 +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.RedirectWarning:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Binary:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Char:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.context_today:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_string:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_datetime:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_string:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Image:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2oneReference:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Monetary:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Text:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.handle_error:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.handle_error:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.csrf_token:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.render:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.update_env:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.validate_csrf:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.browse:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.copy:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fetch:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered_domain:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.flush_model:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.flush_recordset:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.grouped:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_model:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_recordset:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.modified:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_count:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sorted:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_company:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_env:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:0 +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.PeriodicCollector:0 +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler.__init__:0 +msgid "Parameters" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:3 +msgid "names of relational fields to check" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.companies:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.company:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.ensure_one:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fetch:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.unlink:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:0 +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form.save:0 +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.edit:0 +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.new:0 +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.remove:0 +msgid "Raises" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:4 +msgid "if the `company_id` of the value of any field is not in `[False, self.company_id]` (or `self` if :class:`~odoo.addons.base.models.res_company`)." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:8 +msgid "For :class:`~odoo.addons.base.models.res_users` relational fields, verifies record company is in `company_ids` fields." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._check_company:11 +msgid "User with main company A, having access to company A and B, could be assigned or linked to records in company B." +msgstr "" + #: ../../content/developer/howtos/company.rst:132 msgid "The `check_company` feature performs a strict check! It means that if a record has no `company_id` (i.e., the field is not required), it cannot be linked to a record whose `company_id` is set." msgstr "" @@ -502,10 +987,10 @@ msgstr "" #: ../../content/developer/howtos/website_themes/pages.rst:194 #: ../../content/developer/howtos/website_themes/shapes.rst:125 #: ../../content/developer/reference/backend/actions.rst:173 -#: ../../content/developer/reference/backend/orm.rst:642 -#: ../../content/developer/reference/backend/orm.rst:644 -#: ../../content/developer/reference/backend/orm.rst:833 -#: ../../content/developer/reference/backend/orm.rst:992 +#: ../../content/developer/reference/backend/orm.rst:639 +#: ../../content/developer/reference/backend/orm.rst:641 +#: ../../content/developer/reference/backend/orm.rst:837 +#: ../../content/developer/reference/backend/orm.rst:996 #: ../../content/developer/reference/backend/security.rst:28 #: ../../content/developer/reference/backend/security.rst:186 #: ../../content/developer/reference/frontend/qweb.rst:422 @@ -519,6 +1004,7 @@ msgstr "" #: ../../content/developer/tutorials/web.rst:134 #: ../../content/developer/tutorials/web.rst:1872 #: ../../content/developer/tutorials/website.rst:495 +#: ../../../odoo/odoo/api.py:docstring of odoo.api:3 msgid "Todo" msgstr "" @@ -1202,6 +1688,138 @@ msgstr "" msgid ":ref:`Odoo CSS properties order `" msgstr "" +#: ../../content/developer/howtos/standalone_owl_application.rst:3 +msgid "Create a standalone Owl application" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:5 +msgid "For any number of reasons, you may want to have a standalone Owl application that isn't a part of the web client. One example in Odoo is the self-ordering application, that lets customers order food from their phone. In this chapter we will go into what's required to achieve something like this." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:10 +#: ../../content/developer/reference/extract_api.rst:22 +#: ../../content/developer/reference/frontend/javascript_reference.rst:17 +#: ../../content/developer/reference/frontend/services.rst:144 +#: ../../content/developer/reference/frontend/services.rst:182 +#: ../../content/developer/reference/frontend/services.rst:362 +#: ../../content/developer/reference/frontend/services.rst:408 +#: ../../content/developer/reference/frontend/services.rst:522 +#: ../../content/developer/reference/frontend/services.rst:612 +#: ../../content/developer/reference/frontend/services.rst:708 +#: ../../content/developer/reference/frontend/services.rst:759 +#: ../../content/developer/reference/frontend/services.rst:834 +#: ../../content/developer/reference/user_interface/scss_inheritance.rst:6 +msgid "Overview" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:12 +msgid "To have a standalone Owl app, a few things are required:" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:14 +msgid "a root component for the application" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:15 +msgid "an assets bundle that contains the setup code" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:16 +msgid "a QWeb view that calls the assets bundle" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:17 +msgid "a controller that renders the view" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:20 +msgid "1. Root component" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:22 +msgid "To keep things simple, let's start with a very straightforward component that just renders \"Hello, World!\". This will let us know at a glance if our setup is working." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:25 +msgid "First, create the template in :file:`/your_module/static/src/standalone_app/root.xml`." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:36 +msgid "Then create the JavaScript file for that component in :file:`/your_module/static/src/standalone_app/root.js`." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:48 +msgid "It's generally a good idea to have the application setup code that mounts the component in a separate file. Create the JavaScript file that will mount the app in :file:`/your_module/static/src/standalone_app/app.js`." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:60 +msgid "The `mountComponent` utility function will take care of creating the Owl application and configuring it correctly: it will create an environment, start the :ref:`services`, make sure the app is translated and give the app access to the templates from your assets bundle, among other things." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:66 +msgid ":ref:`Owl components reference`." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:70 +msgid "2. Creating an assets bundle containing our code" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:72 +msgid "In the manifest of your module, create a new :ref:`assets bundle`. It should include the `web._assets_core` bundle, which contains the Odoo JavaScript framework and the core libraries it needs (e.g. Owl and luxon), after which you can have a glob that adds all the files for your application in the bundle." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:94 +msgid "The other lines are bundles and scss files that are required to make Bootstrap work. They are mandatory, as the components of the web framework use bootstrap classes for their styling and layout." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:99 +msgid "Make sure that the files for your standalone app are only added to this bundle, if you already have a definition for `web.assets_backend` or `web.assets_frontend` and they have globs, make sure these globs don't match the files for your standalone app, otherwise the startup code for your app will conflict with the existing startup code in those bundles." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:105 +msgid ":ref:`Module manifest reference`." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:108 +msgid "3. XML view that calls the assets bundle" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:110 +msgid "Now that we have created our assets bundle, we need to create a :ref:`QWeb view` that uses that assets bundle." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:134 +msgid "This template only does two things: it initializes the `odoo` global variable, then calls the assets bundle we just defined. Initializing the `odoo` global variable is a necessary step. This variable should be an object that contains the following:" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:138 +msgid "The CSRF token, which is required to interact with HTTP controllers in many cases." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:139 +msgid "The debug value, which is used in many places to add additional logging or developer-friendly checks." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:140 +msgid "`__session_info__`, that contains information from the server that is always needed and for which we don't want to perform an additional request. More on this in the next section." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:144 +msgid "4. Controller that renders the view" +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:146 +msgid "Now that we have the view, we need to make it accessible to the user. For that purpose, we will create an :ref:`HTTP controller` that renders that view and returns it to the user." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:163 +msgid "Notice how we're giving the template `session_info`. We get it from the `get_frontend_session_info` method, and it will end up containing information used by the web framework, such as the current user's ID if they are logged in, the server version, the Odoo edition, etc." +msgstr "" + +#: ../../content/developer/howtos/standalone_owl_application.rst:167 +msgid "At this point, if you open the url `/your_module/standalone_app` in your brower, you should see a blank page with the text \"Hello, World!\". At this point, you can start actually writing the code for your app." +msgstr "" + #: ../../content/developer/howtos/translations.rst:5 msgid "Translating Modules" msgstr "" @@ -1718,6 +2336,7 @@ msgstr "" #: ../../content/developer/reference/frontend/services.rst:467 #: ../../content/developer/reference/frontend/services.rst:737 #: ../../content/developer/reference/frontend/services.rst:852 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.description:1 msgid "Description" msgstr "" @@ -1759,6 +2378,7 @@ msgid "Avoid adding a `section` tag inside another `section` tag: this will trig msgstr "" #: ../../content/developer/howtos/website_themes/building_blocks.rst:105 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.column_ids:1 msgid "Columns" msgstr "" @@ -2058,39 +2678,10 @@ msgstr "" msgid "Blog posts" msgstr "" -#: ../../content/developer/howtos/website_themes/building_blocks.rst:444 -#: ../../content/developer/howtos/website_themes/building_blocks.rst:469 -#: ../../content/developer/howtos/website_themes/building_blocks.rst:500 -#: ../../content/developer/howtos/website_themes/layout.rst:71 -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -#: ../../content/developer/reference/backend/data/res.country.state.csv:1 -msgid "id" -msgstr "" - #: ../../content/developer/howtos/website_themes/building_blocks.rst:445 msgid "The ID of the template. Has to start with `dynamic_filter_template_blog_post_`" msgstr "" -#: ../../content/developer/howtos/website_themes/building_blocks.rst:446 -#: ../../content/developer/howtos/website_themes/building_blocks.rst:471 -#: ../../content/developer/howtos/website_themes/building_blocks.rst:502 -#: ../../content/developer/howtos/website_themes/layout.rst:75 -#: ../../content/developer/howtos/website_themes/navigation.rst:58 -#: ../../content/developer/howtos/website_themes/pages.rst:139 -#: ../../content/developer/howtos/website_themes/pages.rst:203 -#: ../../content/developer/howtos/website_themes/shapes.rst:134 -#: ../../content/developer/howtos/website_themes/theming.rst:121 -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -#: ../../content/developer/reference/user_interface/view_records.rst:0 -#: ../../content/developer/tutorials/define_module_data.rst:177 -#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:189 -#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:262 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:73 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:180 -#: ../../content/developer/reference/backend/data/res.country.state.csv:1 -msgid "name" -msgstr "" - #: ../../content/developer/howtos/website_themes/building_blocks.rst:447 #: ../../content/developer/howtos/website_themes/building_blocks.rst:472 #: ../../content/developer/howtos/website_themes/building_blocks.rst:503 @@ -2456,6 +3047,7 @@ msgid "*XML IDs* of inheriting views should use the same *ID* as the original re msgstr "" #: ../../content/developer/howtos/website_themes/layout.rst:103 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.expression_ids:1 msgid "Expressions" msgstr "" @@ -3154,6 +3746,8 @@ msgstr "" #: ../../content/developer/howtos/website_themes/pages.rst:147 #: ../../content/developer/reference/backend/orm.rst:0 #: ../../content/developer/reference/user_interface/view_architecture.rst:0 +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:0 +#: ../../docstring of odoo.models.BaseModel._inherit:0 msgid "type" msgstr "" @@ -3358,7 +3952,7 @@ msgstr "" #: ../../content/developer/howtos/website_themes/setup.rst:42 #: ../../content/developer/reference/backend/orm.rst:114 -#: ../../content/developer/reference/backend/orm.rst:867 +#: ../../content/developer/reference/backend/orm.rst:871 #: ../../content/developer/reference/frontend/javascript_reference.rst:1219 #: ../../content/developer/reference/user_interface/view_records.rst:78 msgid "Fields" @@ -4861,6 +5455,34 @@ msgstr "" msgid "Server Actions (``ir.actions.server``)" msgstr "" +#: ../../../odoo/odoo/addons/base/models/ir_actions.py:docstring of odoo.addons.base.models.ir_actions.IrActionsServer:1 +msgid "Server actions model. Server action work on a base model and offer various type of actions that can be executed automatically, for example using base action rules, of manually, by adding the action in the 'More' contextual menu." +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_actions.py:docstring of odoo.addons.base.models.ir_actions.IrActionsServer:6 +msgid "Since Odoo 8.0 a button 'Create Menu Action' button is available on the action form view. It creates an entry in the More menu of the base model. This allows to create server actions and run them in mass mode easily through the interface." +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_actions.py:docstring of odoo.addons.base.models.ir_actions.IrActionsServer:11 +msgid "The available actions are :" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_actions.py:docstring of odoo.addons.base.models.ir_actions.IrActionsServer:13 +msgid "'Execute Python Code': a block of python code that will be executed" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_actions.py:docstring of odoo.addons.base.models.ir_actions.IrActionsServer:14 +msgid "'Create a new Record': create a new record with new values" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_actions.py:docstring of odoo.addons.base.models.ir_actions.IrActionsServer:15 +msgid "'Write on a Record': update the values of a record" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_actions.py:docstring of odoo.addons.base.models.ir_actions.IrActionsServer:16 +msgid "'Execute several actions': define an action that triggers several other server actions" +msgstr "" + #: ../../content/developer/reference/backend/actions.rst:219 msgid "Allow triggering complex server code from any valid action location. Only two fields are relevant to clients:" msgstr "" @@ -4976,7 +5598,7 @@ msgid "``ir.model.fields`` to set in the concerned model (``crud_model_id`` for msgstr "" #: ../../content/developer/reference/backend/actions.rst:307 -#: ../../content/developer/reference/backend/orm.rst:940 +#: ../../content/developer/reference/backend/orm.rst:944 #: ../../content/developer/reference/user_interface/view_architecture.rst:3583 msgid "``value``" msgstr "" @@ -5889,6 +6511,58 @@ msgstr "" msgid "Routing" msgstr "" +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:1 +msgid "Decorate a controller method in order to route incoming requests matching the given URL and options to the decorated method." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:5 +msgid "It is mandatory to re-decorate any method that is overridden in controller extensions but the arguments can be omitted. See :class:`~odoo.http.Controller` for more details." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:9 +msgid "The paths that the decorated method is serving. Incoming HTTP request paths matching this route will be routed to this decorated method. See `werkzeug routing documentation `_ for the format of route expressions." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:14 +msgid "The type of request, either ``'json'`` or ``'http'``. It describes where to find the request parameters and how to serialize the response." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:17 +msgid "The authentication method, one of the following: * ``'user'``: The user must be authenticated and the current request will be executed using the rights of the user. * ``'public'``: The user may or may not be authenticated. If he isn't, the current request will be executed using the shared Public user. * ``'none'``: The method is always active, even if there is no database. Mainly used by the framework and authentication modules. The request code will not have any facilities to access the current user." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:17 +msgid "The authentication method, one of the following:" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:19 +msgid "``'user'``: The user must be authenticated and the current request will be executed using the rights of the user." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:21 +msgid "``'public'``: The user may or may not be authenticated. If he isn't, the current request will be executed using the shared Public user." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:24 +msgid "``'none'``: The method is always active, even if there is no database. Mainly used by the framework and authentication modules. The request code will not have any facilities to access the current user." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:28 +msgid "A list of http methods (verbs) this route applies to. If not specified, all methods are allowed." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:30 +msgid "The Access-Control-Allow-Origin cors directive value." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:31 +msgid "Whether CSRF protection should be enabled for the route. Enabled by default for ``'http'``-type requests, disabled by default for ``'json'``-type requests." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.route:34 +msgid "Implement a custom behavior if an error occurred when retrieving the record from the URL parameters (access error or missing error)." +msgstr "" + #: ../../content/developer/reference/backend/http.rst:64 #: ../../content/developer/reference/extract_api.rst:74 #: ../../content/developer/reference/extract_api.rst:220 @@ -5899,12 +6573,423 @@ msgstr "" msgid "The request object is automatically set on :data:`odoo.http.request` at the start of the request." msgstr "" +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request:1 +msgid "Wrapper around the incoming HTTP request with deserialized request parameters, session utilities and request dispatching logic." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.update_env:1 +msgid "Update the environment of the current request." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.update_env:3 +msgid "optional user/user id to change the current user" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.update_env:5 +msgid "optional context dictionary to change the current context" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.update_env:6 +msgid "optional boolean to change the superuser mode" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.update_context:1 +msgid "Override the environment context of the current request with the values of ``overrides``. To replace the entire context, please use :meth:`~update_env` instead." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.csrf_token:1 +msgid "Generates and returns a CSRF token for the current session" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.csrf_token:3 +msgid "the CSRF token should only be valid for the specified duration (in second), by default 48h, ``None`` for the token to be valid as long as the current user's session is." +msgstr "" + +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../content/developer/reference/frontend/assets.rst:0 +#: ../../content/developer/reference/frontend/framework_overview.rst:0 +#: ../../content/developer/reference/frontend/hooks.rst:0 +#: ../../content/developer/reference/frontend/javascript_reference.rst:0 +#: ../../content/developer/reference/frontend/mobile.rst:0 +#: ../../content/developer/reference/frontend/patching_code.rst:0 +#: ../../content/developer/reference/frontend/qweb.rst:0 +#: ../../content/developer/reference/frontend/registries.rst:0 +#: ../../content/developer/reference/frontend/services.rst:0 +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:0 +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_removal_values:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_amount:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_currency:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._handle_archiving:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_payment_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.companies:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.company:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.user:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_string:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_datetime:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_string:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.handle_error:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.handle_error:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.csrf_token:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.default_lang:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.get_http_params:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.validate_csrf:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.browse:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.copy:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.constant:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:0 +msgid "Returns" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.csrf_token:7 +msgid "ASCII token string" +msgstr "" + +#: ../../content/developer/reference/backend/mixins.rst:0 +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_removal_values:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_amount:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_currency:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:0 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:0 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:0 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.companies:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.company:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.lang:0 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.user:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.context_today:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_string:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_datetime:0 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_string:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.csrf_token:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.default_lang:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.get_http_params:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.validate_csrf:0 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.grouped:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:0 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.Model._populate_dependencies:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.constant:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:0 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:0 +msgid "Return type" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.validate_csrf:1 +msgid "Is the given csrf token valid ?" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.validate_csrf:3 +msgid "The token to validate." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.validate_csrf:4 +msgid "``True`` when valid, ``False`` when not." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.default_lang:1 +msgid "Returns default user language according to request specification" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.default_lang:3 +msgid "Preferred language if specified or 'en_US'" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.get_http_params:1 +msgid "Extract key=value pairs from the query string and the forms present in the body (both application/x-www-form-urlencoded and multipart/form-data)." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.get_http_params:5 +msgid "The merged key-value pairs." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:1 +msgid "Helper for non-HTML responses, or HTML responses with custom response headers or cookies." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:4 +msgid "While handlers can just return the HTML markup of a page they want to send as a string if non-HTML data is returned they need to create a complete response object, or the returned data will not be correctly interpreted by the clients." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:9 +msgid "response body" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:5 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:10 +msgid "http status code" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:6 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:11 +msgid "HTTP headers to set on the response" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:7 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:13 +msgid "cookies to set on the client" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:14 +msgid "a response object." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:8 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_response:15 +msgid ":class:`~odoo.http.Response`" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:1 +msgid "Helper for JSON responses, it json-serializes ``data`` and sets the Content-Type header accordingly if none is provided." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.make_json_response:4 +msgid "the data that will be json-serialized into the response body" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.not_found:1 +msgid "Shortcut for a `HTTP 404 `_ (Not Found) response" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.render:1 +msgid "Lazy render of a QWeb template." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.render:3 +msgid "The actual rendering of the given template will occur at then end of the dispatching. Meanwhile, the template and/or qcontext can be altered or even replaced by a static response." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.render:7 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response:6 +msgid "template to render" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.render:8 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response:7 +msgid "Rendering context to use" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.render:9 +msgid "whether the template rendering should be deferred until the last possible moment" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Request.render:11 +msgid "forwarded to werkzeug's Response object" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.is_compatible_with:1 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.is_compatible_with:1 +msgid "Determine if the current request is compatible with this dispatcher." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.dispatch:1 +msgid "`JSON-RPC 2 `_ over HTTP." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.dispatch:3 +msgid "Our implementation differs from the specification on two points:" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.dispatch:5 +msgid "The ``method`` member of the JSON-RPC request payload is ignored as the HTTP path is already used to route the request to the controller." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.dispatch:8 +msgid "We only support parameter structures by-name, i.e. the ``params`` member of the JSON-RPC request payload MUST be a JSON Object and not a JSON Array." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.dispatch:12 +msgid "In addition, it is possible to pass a context that replaces the session context via a special ``context`` argument that is removed prior to calling the endpoint." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.dispatch:16 +msgid "Successful request::" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.dispatch:22 +msgid "Request producing a error::" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.handle_error:1 +msgid "Handle any exception that occurred while dispatching a request to a `type='json'` route. Also handle exceptions that occurred when no route matched the request path, that no fallback page could be delivered and that the request ``Content-Type`` was json." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.handle_error:7 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.handle_error:6 +msgid "the exception that occurred." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.handle_error:8 +#: ../../../odoo/odoo/http.py:docstring of odoo.http.JsonRPCDispatcher.handle_error:7 +msgid "a WSGI application" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.dispatch:1 +msgid "Perform http-related actions such as deserializing the request body and query-string and checking cors/csrf while dispatching a request to a ``type='http'`` route." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.dispatch:5 +msgid "See :meth:`~odoo.http.Response.load` method for the compatible endpoint return types." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.HttpDispatcher.handle_error:1 +msgid "Handle any exception that occurred while dispatching a request to a `type='http'` route. Also handle exceptions that occurred when no route matched the request path, when no fallback page could be delivered and that the request ``Content-Type`` was not json." +msgstr "" + #: ../../content/developer/reference/backend/http.rst:81 #: ../../content/developer/reference/extract_api.rst:162 #: ../../content/developer/reference/extract_api.rst:254 msgid "Response" msgstr "" +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response:1 +msgid "Outgoing HTTP response with body, status, headers and qweb support. In addition to the :class:`werkzeug.wrappers.Response` parameters, this class's constructor can take the following additional parameters for QWeb Lazy Rendering." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response:8 +msgid "User id to use for the ir.ui.view render call, ``None`` to use the request's user (the default)" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response:11 +msgid "these attributes are available as parameters on the Response object and can be altered at any time before rendering" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response:14 +msgid "Also exposes all the attributes and methods of :class:`werkzeug.wrappers.Response`." +msgstr "" + +#: ../../docstring of odoo.http.Response.default_mimetype:1 +msgid "the default mimetype if none is provided." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:1 +msgid "Convert the return value of an endpoint into a Response." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:3 +msgid "The endpoint return value to load the Response from." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:6 +msgid "The endpoint function name wherefrom the result emanated, used for logging." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:8 +msgid "The created :class:`~odoo.http.Response`." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.load:10 +msgid "When ``result`` type is none of the above- mentioned type." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.render:1 +msgid "Renders the Response's template, returns the result." +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.flatten:1 +msgid "Forces the rendering of the response's template, sets the result as response body and unsets :attr:`.template`" +msgstr "" + +#: ../../../odoo/odoo/http.py:docstring of odoo.http.Response.set_cookie:1 +msgid "The default expires in Werkzeug is None, which means a session cookie. We want to continue to support the session cookie, but not by default. Now the default is arbitrary 1 year. So if you want a cookie of session, you have to explicitly pass expires=None." +msgstr "" + #: ../../content/developer/reference/backend/mixins.rst:6 msgid "Mixins and Useful Classes" msgstr "" @@ -5954,12 +7039,6 @@ msgstr "" msgid "Post a new message in an existing thread, returning the new mail.message ID." msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:0 -#: ../../content/developer/reference/frontend/framework_overview.rst:0 -#: ../../content/developer/reference/frontend/qweb.rst:0 -msgid "Parameters" -msgstr "" - #: ../../content/developer/reference/backend/mixins.rst:84 msgid "body of the message. Will be escaped if `str`. Use a :class:`~markupsafe.Markup` object for HTML content." msgstr "" @@ -5984,27 +7063,10 @@ msgstr "" msgid "extra keyword arguments will be used as default column values for the new mail.message record" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:0 -#: ../../content/developer/reference/frontend/assets.rst:0 -#: ../../content/developer/reference/frontend/framework_overview.rst:0 -#: ../../content/developer/reference/frontend/hooks.rst:0 -#: ../../content/developer/reference/frontend/javascript_reference.rst:0 -#: ../../content/developer/reference/frontend/mobile.rst:0 -#: ../../content/developer/reference/frontend/patching_code.rst:0 -#: ../../content/developer/reference/frontend/qweb.rst:0 -#: ../../content/developer/reference/frontend/registries.rst:0 -#: ../../content/developer/reference/frontend/services.rst:0 -msgid "Returns" -msgstr "" - #: ../../content/developer/reference/backend/mixins.rst:94 msgid "ID of newly created mail.message" msgstr "" -#: ../../content/developer/reference/backend/mixins.rst:0 -msgid "Return type" -msgstr "" - #: ../../content/developer/reference/backend/mixins.rst:99 msgid "Helper method to send a mail / post a message using a view_id to render using the ir.qweb engine. This method is stand alone, because there is nothing in template and composer that allows to handle views in batch. This method will probably disappear when templates handle ir ui views." msgstr "" @@ -6074,6 +7136,9 @@ msgstr "" #: ../../content/developer/reference/backend/mixins.rst:193 #: ../../content/developer/tutorials/define_module_data.rst:187 #: ../../content/developer/tutorials/define_module_data.rst:188 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.active:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.active:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.is_base_affected:1 msgid "True" msgstr "" @@ -7147,6 +8212,66 @@ msgstr "" msgid "ORM API" msgstr "" +#: ../../../odoo/odoo/models.py:docstring of odoo.models:15 +msgid "Object Relational Mapping module:" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:2 +msgid "Hierarchical structure" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:3 +msgid "Constraints consistency and validation" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:4 +msgid "Object metadata depends on its status" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:5 +msgid "Optimised processing by complex query (multiple actions at once)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:6 +msgid "Default field values" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:7 +msgid "Permissions optimisation" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:8 +msgid "Persistent object: DB postgresql" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:9 +msgid "Data conversion" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:10 +msgid "Multi-level caching system" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:11 +msgid "Two different inheritance mechanisms" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:15 +msgid "Rich set of field types:" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:13 +msgid "classical (varchar, integer, boolean, ...)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:14 +msgid "relational (one2many, many2one, many2many)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models:15 +msgid "functional" +msgstr "" + #: ../../content/developer/reference/backend/orm.rst:22 msgid "Model fields are defined as attributes on the model itself::" msgstr "" @@ -7171,6 +8296,155 @@ msgstr "" msgid "or as a function called to compute the default value, which should return that value::" msgstr "" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel:1 +msgid "Base class for Odoo models." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel:3 +msgid "Odoo models are created by inheriting one of the following:" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel:5 +msgid ":class:`Model` for regular database-persisted models" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel:7 +msgid ":class:`TransientModel` for temporary data, stored in the database but automatically vacuumed every so often" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel:10 +msgid ":class:`AbstractModel` for abstract super classes meant to be shared by multiple inheriting models" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel:13 +msgid "The system automatically instantiates every model once per database. Those instances represent the available models on each database, and depend on which modules are installed on that database. The actual class of each instance is built from the Python classes that create and inherit from the corresponding model." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel:19 +msgid "Every model instance is a \"recordset\", i.e., an ordered collection of records of the model. Recordsets are returned by methods like :meth:`~.browse`, :meth:`~.search`, or field accesses. Records have no explicit representation: a record is represented as a recordset of one record." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel:25 +msgid "To create a class that should not be instantiated, the :attr:`~odoo.models.BaseModel._register` attribute may be set to False." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._auto:1 +#: ../../docstring of odoo.models.Model._auto:1 +msgid "Whether a database table should be created. If set to ``False``, override :meth:`~odoo.models.BaseModel.init` to create the database table." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._auto:5 +#: ../../docstring of odoo.models.Model._auto:5 +msgid "Automatically defaults to `True` for :class:`Model` and :class:`TransientModel`, `False` for :class:`AbstractModel`." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._auto:8 +#: ../../docstring of odoo.models.Model._auto:8 +msgid "To create a model without any table, inherit from :class:`~odoo.models.AbstractModel`." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:60 +msgid "Whether the ORM should automatically generate and update the :ref:`reference/fields/automatic/log_access`." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:63 +msgid "Defaults to whatever value was set for :attr:`~._auto`." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._table:1 +msgid "SQL table name used by model if :attr:`_auto`" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._sql_constraints:1 +msgid "SQL constraints [(name, sql_def, message)]" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._register:1 +msgid "registry visibility" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._abstract:1 +#: ../../docstring of odoo.models.Model._abstract:1 +msgid "Whether the model is *abstract*." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._abstract:3 +#: ../../docstring of odoo.models.Model._abstract:3 +msgid ":class:`AbstractModel`" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._transient:1 +msgid "Whether the model is *transient*." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._transient:3 +msgid ":class:`TransientModel`" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._name:1 +msgid "the model name (in dot-notation, module namespace)" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._description:1 +msgid "the model's informal name" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._inherit:1 +msgid "Python-inherited models:" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._inherit:3 +msgid "str or list(str)" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._inherit:7 +msgid "If :attr:`._name` is set, name(s) of parent models to inherit from" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._inherit:8 +msgid "If :attr:`._name` is unset, name of a single model to extend in-place" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._inherits:1 +msgid "dictionary {'parent_model': 'm2o_field'} mapping the _name of the parent business objects to the names of the corresponding foreign key fields to use::" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._inherits:9 +msgid "implements composition-based inheritance: the new model exposes all the fields of the inherited models but stores none of them: the values themselves remain stored on the linked record." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._inherits:15 +msgid "if multiple fields with the same name are defined in the :attr:`~odoo.models.Model._inherits`-ed models, the inherited field will correspond to the last one (in the inherits list order)." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._rec_name:1 +msgid "field to use for labeling records, default: ``name``" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._order:1 +msgid "default order field for searching results" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._check_company_auto:1 +msgid "On write and create, call ``_check_company`` to ensure companies consistency on the relational fields having ``check_company=True`` as attribute." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._parent_name:1 +msgid "the many2one field used as parent field" +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._parent_store:1 +msgid "set to True to compute parent_path field." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._parent_store:3 +msgid "Alongside a :attr:`~.parent_path` field, sets up an indexed storage of the tree structure of records, to enable faster hierarchical queries on the records of the current model using the ``child_of`` and ``parent_of`` domain operators." +msgstr "" + +#: ../../docstring of odoo.models.BaseModel._fold_name:1 +msgid "field to determine folded groups in kanban views" +msgstr "" + #: ../../content/developer/reference/backend/orm.rst:89 msgid "AbstractModel" msgstr "" @@ -7183,932 +8457,2871 @@ msgstr "" msgid "Model" msgstr "" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.Model:1 +msgid "Main super-class for regular database-persisted Odoo models." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.Model:3 +msgid "Odoo models are created by inheriting from this class::" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.Model:8 +msgid "The system will later instantiate the class once per database (on which the class' module is installed)." +msgstr "" + #: ../../content/developer/reference/backend/orm.rst:102 msgid "TransientModel" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:126 -msgid "Basic Fields" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel:1 +msgid "Model super-class for transient records, meant to be temporarily persistent, and regularly vacuum-cleaned." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:139 -msgid "Advanced Fields" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel:4 +msgid "A TransientModel has a simplified access rights management, all users can create new records, and may only access the records they created. The superuser has unrestricted access to all TransientModel records." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:156 -msgid "Date(time) Fields" +#: ../../docstring of odoo.models.TransientModel._transient_max_count:1 +msgid "maximum number of transient records, unlimited if ``0``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:158 -msgid ":class:`Dates ` and :class:`Datetimes ` are very important fields in any kind of business application. Their misuse can create invisible yet painful bugs, this section aims to provide Odoo developers with the knowledge required to avoid misusing these fields." +#: ../../docstring of odoo.models.TransientModel._transient_max_hours:1 +msgid "maximum idle lifetime (in hours), unlimited if ``0``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:164 -msgid "When assigning a value to a Date/Datetime field, the following options are valid:" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel._transient_vacuum:1 +msgid "Clean the transient records." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:166 -msgid "A `date` or `datetime` object." +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel._transient_vacuum:3 +msgid "This unlinks old records from the transient model tables whenever the :attr:`_transient_max_count` or :attr:`_transient_max_hours` conditions (if any) are reached." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:167 -msgid "A string in the proper server format:" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel._transient_vacuum:7 +msgid "Actual cleaning will happen only once every 5 minutes. This means this method can be called frequently (e.g. whenever a new record is created)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:169 -msgid "``YYYY-MM-DD`` for :class:`~odoo.fields.Date` fields," +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel._transient_vacuum:10 +msgid "Example with both max_hours and max_count active:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:170 -msgid "``YYYY-MM-DD HH:MM:SS`` for :class:`~odoo.fields.Datetime` fields." +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel._transient_vacuum:12 +msgid "Suppose max_hours = 0.2 (aka 12 minutes), max_count = 20, there are 55 rows in the table, 10 created/changed in the last 5 minutes, an additional 12 created/changed between 5 and 10 minutes ago, the rest created/changed more than 12 minutes ago." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:172 -msgid "`False` or `None`." +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel._transient_vacuum:17 +msgid "age based vacuum will leave the 22 rows created/changed in the last 12 minutes" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:174 -msgid "The Date and Datetime fields class have helper methods to attempt conversion into a compatible type:" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel._transient_vacuum:19 +msgid "count based vacuum will wipe out another 12 rows. Not just 2, otherwise each addition would immediately cause the maximum to be reached again." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:177 -msgid ":func:`~odoo.fields.Date.to_date` will convert to a :class:`datetime.date`" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.TransientModel._transient_vacuum:22 +msgid "the 10 rows that have been created/changed the last 5 minutes will NOT be deleted" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:178 -msgid ":func:`~odoo.fields.Datetime.to_datetime` will convert to a :class:`datetime.datetime`." +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:1 +msgid "The field descriptor contains the field definition, and manages accesses and assignments of the corresponding field on records. The following attributes may be provided when instantiating a field:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:182 -msgid "To parse date/datetimes coming from external sources::" +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:5 +msgid "the label of the field seen by users; if not set, the ORM takes the field name in the class (capitalized)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:186 -msgid "Date / Datetime comparison best practices:" +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:8 +msgid "the tooltip of the field seen by users" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:188 -msgid "Date fields can **only** be compared to date objects." +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:10 +msgid "whether the field is readonly (default: ``False``) This only has an impact on the UI. Any field assignation in code will work (if the field is a stored field or an inversable one)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:189 -msgid "Datetime fields can **only** be compared to datetime objects." +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:10 +msgid "whether the field is readonly (default: ``False``)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:191 -msgid "Strings representing dates and datetimes can be compared between each other, however the result may not be the expected result, as a datetime string will always be greater than a date string, therefore this practice is **heavily** discouraged." +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:12 +msgid "This only has an impact on the UI. Any field assignation in code will work (if the field is a stored field or an inversable one)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:197 -msgid "Common operations with dates and datetimes such as addition, subtraction or fetching the start/end of a period are exposed through both :class:`~odoo.fields.Date` and :class:`~odoo.fields.Datetime`. These helpers are also available by importing `odoo.tools.date_utils`." +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:15 +msgid "whether the value of the field is required (default: ``False``)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:202 -msgid "Timezones" +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:17 +msgid "whether the field is indexed in database, and the kind of index. Note: this has no effect on non-stored and virtual fields. The possible values are: * ``\"btree\"`` or ``True``: standard index, good for many2one * ``\"btree_not_null\"``: BTREE index without NULL values (useful when most values are NULL, or when NULL is never searched for) * ``\"trigram\"``: Generalized Inverted Index (GIN) with trigrams (good for full-text search) * ``None`` or ``False``: no index (default)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:204 -msgid "Datetime fields are stored as `timestamp without timezone` columns in the database and are stored in the UTC timezone. This is by design, as it makes the Odoo database independent from the timezone of the hosting server system. Timezone conversion is managed entirely by the client side." +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:17 +msgid "whether the field is indexed in database, and the kind of index. Note: this has no effect on non-stored and virtual fields. The possible values are:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:217 -msgid "Relational Fields" +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:21 +msgid "``\"btree\"`` or ``True``: standard index, good for many2one" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:231 -msgid "Pseudo-relational fields" +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:22 +msgid "``\"btree_not_null\"``: BTREE index without NULL values (useful when most" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:240 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:23 +msgid "values are NULL, or when NULL is never searched for)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:24 +msgid "``\"trigram\"``: Generalized Inverted Index (GIN) with trigrams (good for full-text search)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:25 +msgid "``None`` or ``False``: no index (default)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:27 +msgid "the default value for the field; this is either a static value, or a function taking a recordset and returning a value; use ``default=None`` to discard default values for the field" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:32 +msgid "comma-separated list of group xml ids (string); this restricts the field access to the users of the given groups only" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:35 +msgid "whether the field value is dependent of the current company; The value isn't stored on the model table. It is registered as `ir.property`. When the value of the company_dependent field is needed, an `ir.property` is searched, linked to the current company (and current record if one property exists). If the value is changed on the record, it either modifies the existing property for the current record (if one exists), or creates a new one for the current company and res_id. If the value is changed on the company side, it will impact all records on which the value hasn't been changed." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:35 +msgid "whether the field value is dependent of the current company;" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:37 +msgid "The value isn't stored on the model table. It is registered as `ir.property`. When the value of the company_dependent field is needed, an `ir.property` is searched, linked to the current company (and current record if one property exists)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:42 +msgid "If the value is changed on the record, it either modifies the existing property for the current record (if one exists), or creates a new one for the current company and res_id." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:46 +msgid "If the value is changed on the company side, it will impact all records on which the value hasn't been changed." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:49 +msgid "whether the field value should be copied when the record is duplicated (default: ``True`` for normal fields, ``False`` for ``one2many`` and computed fields, including property fields and related fields)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:54 +msgid "whether the field is stored in database (default:``True``, ``False`` for computed fields)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:57 +msgid "aggregate function used by :meth:`~odoo.models.Model.read_group` when grouping on this field. Supported aggregate functions are: * ``array_agg`` : values, including nulls, concatenated into an array * ``count`` : number of rows * ``count_distinct`` : number of distinct rows * ``bool_and`` : true if all values are true, otherwise false * ``bool_or`` : true if at least one value is true, otherwise false * ``max`` : maximum value of all values * ``min`` : minimum value of all values * ``avg`` : the average (arithmetic mean) of all values * ``sum`` : sum of all values" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:57 +msgid "aggregate function used by :meth:`~odoo.models.Model.read_group` when grouping on this field." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:60 +msgid "Supported aggregate functions are:" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:62 +msgid "``array_agg`` : values, including nulls, concatenated into an array" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:63 +msgid "``count`` : number of rows" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:64 +msgid "``count_distinct`` : number of distinct rows" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:65 +msgid "``bool_and`` : true if all values are true, otherwise false" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:66 +msgid "``bool_or`` : true if at least one value is true, otherwise false" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:67 +msgid "``max`` : maximum value of all values" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:68 +msgid "``min`` : minimum value of all values" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:69 +msgid "``avg`` : the average (arithmetic mean) of all values" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:70 +msgid "``sum`` : sum of all values" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:72 +msgid "function used to expand read_group results when grouping on the current field. .. code-block:: python @api.model def _read_group_selection_field(self, values, domain, order): return ['choice1', 'choice2', ...] # available selection choices. @api.model def _read_group_many2one_field(self, records, domain, order): return records + self.search([custom_domain])" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:72 +msgid "function used to expand read_group results when grouping on the current field." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:237 #: ../../content/developer/tutorials/getting_started/09_compute_onchange.rst:18 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:86 msgid "Computed Fields" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:242 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:87 +msgid "name of a method that computes the field .. seealso:: :ref:`Advanced Fields/Compute fields `" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:87 +msgid "name of a method that computes the field" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:89 +msgid ":ref:`Advanced Fields/Compute fields `" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:91 +msgid "whether the field should be computed before record insertion in database. Should be used to specify manually some fields as precompute=True when the field can be computed before record insertion. (e.g. avoid statistics fields based on search/read_group), many2one linking to the previous record, ... (default: `False`) .. warning:: Precomputation only happens when no explicit value and no default value is provided to create(). This means that a default value disables the precomputation, even if the field is specified as precompute=True. Precomputing a field can be counterproductive if the records of the given model are not created in batch. Consider the situation were many records are created one by one. If the field is not precomputed, it will normally be computed in batch at the flush(), and the prefetching mechanism will help making the computation efficient. On the other hand, if the field is precomputed, the computation will be made one by one, and will therefore not be able to take advantage of the prefetching mechanism. Following the remark above, precomputed fields can be interesting on the lines of a one2many, which are usually created in batch by the ORM itself, provided that they are created by writing on the record that contains them." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:91 +msgid "whether the field should be computed before record insertion in database. Should be used to specify manually some fields as precompute=True when the field can be computed before record insertion. (e.g. avoid statistics fields based on search/read_group), many2one linking to the previous record, ... (default: `False`)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:99 +msgid "Precomputation only happens when no explicit value and no default value is provided to create(). This means that a default value disables the precomputation, even if the field is specified as precompute=True." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:104 +msgid "Precomputing a field can be counterproductive if the records of the given model are not created in batch. Consider the situation were many records are created one by one. If the field is not precomputed, it will normally be computed in batch at the flush(), and the prefetching mechanism will help making the computation efficient. On the other hand, if the field is precomputed, the computation will be made one by one, and will therefore not be able to take advantage of the prefetching mechanism." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:113 +msgid "Following the remark above, precomputed fields can be interesting on the lines of a one2many, which are usually created in batch by the ORM itself, provided that they are created by writing on the record that contains them." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:118 +msgid "whether the field should be recomputed as superuser to bypass access rights (by default ``True`` for stored fields, ``False`` for non stored fields)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:122 +msgid "whether the field has recursive dependencies (the field ``X`` has a dependency like ``parent_id.X``); declaring a field recursive must be explicit to guarantee that recomputation is correct" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:126 +msgid "name of a method that inverses the field (optional)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:128 +msgid "name of a method that implement search on the field (optional)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:130 +msgid "sequence of field names" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:132 +msgid "whether the field must be exported by default in an import-compatible export .. seealso:: :ref:`Advanced fields/Related fields `" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:132 +msgid "whether the field must be exported by default in an import-compatible export" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Field:134 +msgid ":ref:`Advanced fields/Related fields `" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:123 +msgid "Basic Fields" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Boolean:1 +msgid "Encapsulates a :class:`bool`." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Char:1 +msgid "Basic string field, can be length-limited, usually displayed as a single-line string in clients." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Char:4 +msgid "the maximum size of values stored for that field" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Char:6 +msgid "states whether the value is trimmed or not (by default, ``True``). Note that the trim operation is applied only by the web client." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Char:9 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Text:4 +msgid "enable the translation of the field's values; use ``translate=True`` to translate field values as a whole; ``translate`` may also be a callable such that ``translate(callback, value)`` translates ``value`` by using ``callback(term)`` to retrieve the translation of terms." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:1 +msgid "Encapsulates a :class:`float`." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:3 +msgid "The precision digits are given by the (optional) ``digits`` attribute." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:5 +msgid "a pair (total, decimal) or a string referencing a :class:`~odoo.addons.base.models.decimal_precision.DecimalPrecision` record name." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:9 +msgid "When a float is a quantity associated with an unit of measure, it is important to use the right tool to compare or round values with the correct precision." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:12 +msgid "The Float class provides some static methods for this purpose:" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:14 +msgid ":func:`~odoo.fields.Float.round()` to round a float with the given precision. :func:`~odoo.fields.Float.is_zero()` to check if a float equals zero at the given precision. :func:`~odoo.fields.Float.compare()` to compare two floats at the given precision." +msgstr "" + +#: ../../content/developer/reference/frontend/services.rst:309 +#: ../../content/developer/reference/frontend/services.rst:393 +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.AccessDenied:7 +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.AccessError:3 +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.CacheMiss:3 +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.MissingError:3 +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.ValidationError:3 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:18 +msgid "Example" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:20 +msgid "To round a quantity with the precision of the unit of measure::" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:24 +msgid "To check if the quantity is zero with the precision of the unit of measure::" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:28 +msgid "To compare two quantities::" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:32 +msgid "The compare helper uses the __cmp__ semantics for historic purposes, therefore the proper, idiomatic way to use this helper is like so:" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Float:35 +msgid "if result == 0, the first and second floats are equal if result < 0, the first float is lower than the second if result > 0, the first float is greater than the second" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Integer:1 +msgid "Encapsulates an :class:`int`." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:136 +msgid "Advanced Fields" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Binary:1 +msgid "Encapsulates a binary content (e.g. a file)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Binary:3 +msgid "whether the field should be stored as `ir_attachment` or in a column of the model's table (default: ``True``)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:1 +msgid "Encapsulates an html code content." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:3 +msgid "whether value must be sanitized (default: ``True``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:4 +msgid "whether the sanitation can be bypassed by the users part of the `base.group_sanitize_override` group (default: ``False``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:6 +msgid "whether to sanitize tags (only a white list of attributes is accepted, default: ``True``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:8 +msgid "whether to sanitize attributes (only a white list of attributes is accepted, default: ``True``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:10 +msgid "whether to sanitize style attributes (default: ``False``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:11 +msgid "whether to strip style attributes (removed and therefore not sanitized, default: ``False``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Html:13 +msgid "whether to strip classes attributes (default: ``False``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Image:1 +msgid "Encapsulates an image, extending :class:`Binary`." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Image:3 +msgid "If image size is greater than the ``max_width``/``max_height`` limit of pixels, the image will be resized to the limit by keeping aspect ratio." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Image:6 +msgid "the maximum width of the image (default: ``0``, no limit)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Image:7 +msgid "the maximum height of the image (default: ``0``, no limit)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Image:8 +msgid "whether the image resolution should be verified to ensure it doesn't go over the maximum image resolution (default: ``True``). See :class:`odoo.tools.image.ImageProcess` for maximum image resolution (default: ``50e6``)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Image:14 +msgid "If no ``max_width``/``max_height`` is specified (or is set to 0) and ``verify_resolution`` is False, the field content won't be verified at all and a :class:`Binary` field should be used." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Monetary:1 +msgid "Encapsulates a :class:`float` expressed in a given :class:`res_currency`." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Monetary:4 +msgid "The decimal precision and currency symbol are taken from the ``currency_field`` attribute." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Monetary:6 +msgid "name of the :class:`Many2one` field holding the :class:`res_currency ` this monetary field is expressed in (default: `'currency_id'`)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:1 +msgid "Encapsulates an exclusive choice between different values." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:3 +msgid "specifies the possible values for this field. It is given as either a list of pairs ``(value, label)``, or a model method, or a method name." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:8 +msgid "provides an extension of the selection in the case of an overridden field. It is a list of pairs ``(value, label)`` or singletons ``(value,)``, where singleton values must appear in the overridden selection. The new values are inserted in an order that is consistent with the overridden selection and this list:: selection = [('a', 'A'), ('b', 'B')] selection_add = [('c', 'C'), ('b',)] > result = [('a', 'A'), ('c', 'C'), ('b', 'B')]" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:8 +msgid "provides an extension of the selection in the case of an overridden field. It is a list of pairs ``(value, label)`` or singletons ``(value,)``, where singleton values must appear in the overridden selection. The new values are inserted in an order that is consistent with the overridden selection and this list::" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:19 +msgid "provides a fallback mechanism for any overridden field with a selection_add. It is a dict that maps every option from the selection_add to a fallback action. This fallback action will be applied to all records whose selection_add option maps to it. The actions can be any of the following: - 'set null' -- the default, all records with this option will have their selection value set to False. - 'cascade' -- all records with this option will be deleted along with the option itself. - 'set default' -- all records with this option will be set to the default of the field definition - 'set VALUE' -- all records with this option will be set to the given value - -- a callable whose first and only argument will be the set of records containing the specified Selection option, for custom processing" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:19 +msgid "provides a fallback mechanism for any overridden field with a selection_add. It is a dict that maps every option from the selection_add to a fallback action." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:23 +msgid "This fallback action will be applied to all records whose selection_add option maps to it." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:37 +msgid "The actions can be any of the following:" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:27 +msgid "'set null' -- the default, all records with this option will have their selection value set to False." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:29 +msgid "'cascade' -- all records with this option will be deleted along with the option itself." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:31 +msgid "'set default' -- all records with this option will be set to the default of the field definition" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:33 +msgid "'set VALUE' -- all records with this option will be set to the given value" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:35 +msgid " -- a callable whose first and only argument will be the set of records containing the specified Selection option, for custom processing" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Selection:39 +msgid "The attribute ``selection`` is mandatory except in the case of ``related`` or extended fields." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Text:1 +msgid "Very similar to :class:`Char` but used for longer contents, does not have a size and usually displayed as a multiline text box." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:153 +msgid "Date(time) Fields" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:155 +msgid ":class:`Dates ` and :class:`Datetimes ` are very important fields in any kind of business application. Their misuse can create invisible yet painful bugs, this section aims to provide Odoo developers with the knowledge required to avoid misusing these fields." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:161 +msgid "When assigning a value to a Date/Datetime field, the following options are valid:" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:163 +msgid "A `date` or `datetime` object." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:164 +msgid "A string in the proper server format:" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:166 +msgid "``YYYY-MM-DD`` for :class:`~odoo.fields.Date` fields," +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:167 +msgid "``YYYY-MM-DD HH:MM:SS`` for :class:`~odoo.fields.Datetime` fields." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:169 +msgid "`False` or `None`." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:171 +msgid "The Date and Datetime fields class have helper methods to attempt conversion into a compatible type:" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:174 +msgid ":func:`~odoo.fields.Date.to_date` will convert to a :class:`datetime.date`" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:175 +msgid ":func:`~odoo.fields.Datetime.to_datetime` will convert to a :class:`datetime.datetime`." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:179 +msgid "To parse date/datetimes coming from external sources::" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:183 +msgid "Date / Datetime comparison best practices:" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:185 +msgid "Date fields can **only** be compared to date objects." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:186 +msgid "Datetime fields can **only** be compared to datetime objects." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:188 +msgid "Strings representing dates and datetimes can be compared between each other, however the result may not be the expected result, as a datetime string will always be greater than a date string, therefore this practice is **heavily** discouraged." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:194 +msgid "Common operations with dates and datetimes such as addition, subtraction or fetching the start/end of a period are exposed through both :class:`~odoo.fields.Date` and :class:`~odoo.fields.Datetime`. These helpers are also available by importing `odoo.tools.date_utils`." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:199 +msgid "Timezones" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:201 +msgid "Datetime fields are stored as `timestamp without timezone` columns in the database and are stored in the UTC timezone. This is by design, as it makes the Odoo database independent from the timezone of the hosting server system. Timezone conversion is managed entirely by the client side." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date:1 +msgid "Encapsulates a python :class:`date ` object." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:1 +msgid "Return the sum of ``value`` and a :class:`relativedelta`." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:3 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:3 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:3 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:3 +msgid "initial date or datetime." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:4 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:4 +msgid "positional args to pass directly to :class:`relativedelta`." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:5 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:5 +msgid "keyword args to pass directly to :class:`relativedelta`." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.add:6 +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:6 +msgid "the resulting date/datetime." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.context_today:1 +msgid "Return the current date as seen in the client's timezone in a format fit for date fields." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.context_today:4 +msgid "This method may be used to compute default values." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.context_today:6 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:8 +msgid "recordset from which the timezone will be obtained." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.context_today:7 +msgid "optional datetime value to use instead of the current date and time (must be a datetime, regular dates can't be converted between timezones)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:1 +msgid "Get end of a time period from a date or a datetime." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:4 +msgid "Type of period in string, can be year, quarter, month, week, day or hour." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.end_of:5 +msgid "A date/datetime object corresponding to the start of the specified period." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:1 +msgid "Get start of a time period from a date or a datetime." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:4 +msgid "type of period in string, can be year, quarter, month, week, day or hour." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.start_of:5 +msgid "a date/datetime object corresponding to the start of the specified period." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.tools.date_utils.subtract:1 +msgid "Return the difference between ``value`` and a :class:`relativedelta`." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:1 +msgid "Attempt to convert ``value`` to a :class:`date` object." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:5 +msgid "If a datetime object is given as value, it will be converted to a date object and all datetime-specific information will be lost (HMS, TZ, ...)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:9 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_string:3 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_datetime:3 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_string:3 +msgid "value to convert." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_date:11 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_datetime:5 +msgid "an object representing ``value``." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_string:1 +msgid "Convert a :class:`date` or :class:`datetime` object to a string." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.to_string:4 +msgid "a string representing ``value`` in the server's date format, if ``value`` is of type :class:`datetime`, the hours, minute, seconds, tzinfo will be truncated." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.today:1 +msgid "Return the current day in the format expected by the ORM." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Date.today:3 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.now:3 +msgid "This function may be used to compute default values." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime:1 +msgid "Encapsulates a python :class:`datetime ` object." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:1 +msgid "Return the given timestamp converted to the client's timezone." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:3 +msgid "This method is *not* meant for use as a default initializer, because datetime fields are automatically converted upon display on client side. For default values, :meth:`now` should be used instead." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:9 +msgid "naive datetime value (expressed in UTC) to be converted to the client timezone." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.context_timestamp:11 +msgid "timestamp converted to timezone-aware datetime in context timezone." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.now:1 +msgid "Return the current day and time in the format expected by the ORM." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_datetime:1 +msgid "Convert an ORM ``value`` into a :class:`datetime` value." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_string:1 +msgid "Convert a :class:`datetime` or :class:`date` object to a string." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.to_string:5 +msgid "a string representing ``value`` in the server's datetime format, if ``value`` is of type :class:`date`, the time portion will be midnight (00:00:00)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Datetime.today:1 +msgid "Return the current day, at midnight (00:00:00)." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:214 +msgid "Relational Fields" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:1 +msgid "The value of such a field is a recordset of size 0 (no record) or 1 (a single record)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:4 +msgid "name of the target model ``Mandatory`` except for related or extended fields." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:29 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:7 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:10 +msgid "an optional domain to set on candidate values on the client side (domain or a python expression that will be evaluated to provide domain)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:33 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:11 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:14 +msgid "an optional context to use on the client side when handling that field" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:14 +msgid "what to do when the referred record is deleted; possible values are: ``'set null'``, ``'restrict'``, ``'cascade'``" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:17 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:17 +msgid "whether JOINs are generated upon search through that field (default: ``False``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:20 +msgid "set it to ``True`` to make fields of the target model accessible from the current model (corresponds to ``_inherits``)" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:36 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2one:23 +msgid "Mark the field to be verified in :meth:`~odoo.models.Model._check_company`. Add a default company domain depending on the field attributes." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:1 +msgid "One2many field; the value of such a field is the recordset of all the records in ``comodel_name`` such that the field ``inverse_name`` is equal to the current record." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:5 +msgid "name of the target model" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:7 +msgid "name of the inverse ``Many2one`` field in ``comodel_name``" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.One2many:20 +msgid "The attributes ``comodel_name`` and ``inverse_name`` are mandatory except in the case of related fields or field extensions." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:1 +msgid "Many2many field; the value of such a field is the recordset." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:3 +msgid "name of the target model (string) mandatory except in the case of related or extended fields" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:6 +msgid "optional name of the table that stores the relation in the database" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:9 +msgid "optional name of the column referring to \"these\" records in the table ``relation``" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:12 +msgid "optional name of the column referring to \"those\" records in the table ``relation``" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:15 +msgid "The attributes ``relation``, ``column1`` and ``column2`` are optional. If not given, names are automatically generated from model names, provided ``model_name`` and ``comodel_name`` are different!" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:19 +msgid "Note that having several fields with implicit relation parameters on a given model with the same comodel is not accepted by the ORM, since those field would use the same table. The ORM prevents two many2many fields to use the same relation parameters, except if" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:24 +msgid "both fields use the same model, comodel, and relation parameters are explicit; or" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2many:27 +msgid "at least one field belongs to a model with ``_auto = False``." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command:1 +msgid ":class:`~odoo.fields.One2many` and :class:`~odoo.fields.Many2many` fields expect a special command to manipulate the relation they implement." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command:4 +msgid "Internally, each command is a 3-elements tuple where the first element is a mandatory integer that identifies the command, the second element is either the related record id to apply the command on (commands update, delete, unlink and link) either 0 (commands create, clear and set), the third element is either the ``values`` to write on the record (commands create and update) either the new ``ids`` list of related records (command set), either 0 (commands delete, unlink, link, and clear)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command:12 +msgid "Via Python, we encourage developers craft new commands via the various functions of this namespace. We also encourage developers to use the command identifier constant names when comparing the 1st element of existing commands." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command:17 +msgid "Via RPC, it is impossible nor to use the functions nor the command constant names. It is required to instead write the literal 3-elements tuple where the first element is the integer identifier of the command." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.create:1 +msgid "Create new records in the comodel using ``values``, link the created records to ``self``." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.create:4 +msgid "In case of a :class:`~odoo.fields.Many2many` relation, one unique new record is created in the comodel such that all records in `self` are linked to the new record." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.create:8 +msgid "In case of a :class:`~odoo.fields.One2many` relation, one new record is created in the comodel for every record in ``self`` such that every record in ``self`` is linked to exactly one of the new records." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.create:12 +msgid "Return the command triple :samp:`(CREATE, 0, {values})`" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.update:1 +msgid "Write ``values`` on the related record." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.update:3 +msgid "Return the command triple :samp:`(UPDATE, {id}, {values})`" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.delete:1 +msgid "Remove the related record from the database and remove its relation with ``self``." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.delete:4 +msgid "In case of a :class:`~odoo.fields.Many2many` relation, removing the record from the database may be prevented if it is still linked to other records." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.delete:8 +msgid "Return the command triple :samp:`(DELETE, {id}, 0)`" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.unlink:1 +msgid "Remove the relation between ``self`` and the related record." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.unlink:3 +msgid "In case of a :class:`~odoo.fields.One2many` relation, the given record is deleted from the database if the inverse field is set as ``ondelete='cascade'``. Otherwise, the value of the inverse field is set to False and the record is kept." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.unlink:8 +msgid "Return the command triple :samp:`(UNLINK, {id}, 0)`" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.link:1 +msgid "Add a relation between ``self`` and the related record." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.link:3 +msgid "Return the command triple :samp:`(LINK, {id}, 0)`" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.clear:1 +msgid "Remove all records from the relation with ``self``. It behaves like executing the `unlink` command on every record." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.clear:4 +msgid "Return the command triple :samp:`(CLEAR, 0, 0)`" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.set:1 +msgid "Replace the current relations of ``self`` by the given ones. It behaves like executing the ``unlink`` command on every removed relation then executing the ``link`` command on every new relation." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Command.set:5 +msgid "Return the command triple :samp:`(SET, 0, {ids})`" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:228 +msgid "Pseudo-relational fields" +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2oneReference:1 +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Reference:1 +msgid "Pseudo-relational field (no FK in database)." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Reference:3 +msgid "The field value is stored as a :class:`string ` following the pattern ``\"res_model,res_id\"`` in database." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2oneReference:3 +msgid "The field value is stored as an :class:`integer ` id in database." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2oneReference:5 +msgid "Contrary to :class:`Reference` fields, the model has to be specified in a :class:`Char` field, whose name has to be specified in the `model_field` attribute for the current :class:`Many2oneReference` field." +msgstr "" + +#: ../../../odoo/odoo/fields.py:docstring of odoo.fields.Many2oneReference:9 +msgid "name of the :class:`Char` where the model name is stored." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:239 msgid "Fields can be computed (instead of read straight from the database) using the ``compute`` parameter. **It must assign the computed value to the field**. If it uses the values of other *fields*, it should specify those fields using :func:`~odoo.api.depends`. ::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:255 +#: ../../content/developer/reference/backend/orm.rst:252 msgid "dependencies can be dotted paths when using sub-fields::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:262 +#: ../../content/developer/reference/backend/orm.rst:259 msgid "computed fields are not stored by default, they are computed and returned when requested. Setting ``store=True`` will store them in the database and automatically enable searching." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:265 +#: ../../content/developer/reference/backend/orm.rst:262 msgid "searching on a computed field can also be enabled by setting the ``search`` parameter. The value is a method name returning a :ref:`reference/orm/domains`. ::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:276 +#: ../../content/developer/reference/backend/orm.rst:273 msgid "The search method is invoked when processing domains before doing an actual search on the model. It must return a domain equivalent to the condition: ``field operator value``." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:282 +#: ../../content/developer/reference/backend/orm.rst:279 msgid "Computed fields are readonly by default. To allow *setting* values on a computed field, use the ``inverse`` parameter. It is the name of a function reversing the computation and setting the relevant fields::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:298 +#: ../../content/developer/reference/backend/orm.rst:295 msgid "multiple fields can be computed at the same time by the same method, just use the same method on all fields and set all of them::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:314 +#: ../../content/developer/reference/backend/orm.rst:311 msgid "While it is possible to use the same compute method for multiple fields, it is not recommended to do the same for the inverse method." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:318 +#: ../../content/developer/reference/backend/orm.rst:315 msgid "During the computation of the inverse, **all** fields that use said inverse are protected, meaning that they can't be computed, even if their value is not in the cache." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:322 +#: ../../content/developer/reference/backend/orm.rst:319 msgid "If any of those fields is accessed and its value is not in cache, the ORM will simply return a default value of `False` for these fields. This means that the value of the inverse fields (other than the one triggering the inverse method) may not give their correct value and this will probably break the expected behavior of the inverse method." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:331 +#: ../../content/developer/reference/backend/orm.rst:328 msgid "Related fields" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:333 +#: ../../content/developer/reference/backend/orm.rst:330 msgid "A special case of computed fields are *related* (proxy) fields, which provide the value of a sub-field on the current record. They are defined by setting the ``related`` parameter and like regular computed fields they can be stored::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:340 +#: ../../content/developer/reference/backend/orm.rst:337 msgid "The value of a related field is given by following a sequence of relational fields and reading a field on the reached model. The complete sequence of fields to traverse is specified by the ``related`` attribute." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:344 +#: ../../content/developer/reference/backend/orm.rst:341 msgid "Some field attributes are automatically copied from the source field if they are not redefined: ``string``, ``help``, ``required`` (only if all fields in the sequence are required), ``groups``, ``digits``, ``size``, ``translate``, ``sanitize``, ``selection``, ``comodel_name``, ``domain``, ``context``. All semantic-free attributes are copied from the source field." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:351 +#: ../../content/developer/reference/backend/orm.rst:348 msgid "By default, related fields are:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:353 +#: ../../content/developer/reference/backend/orm.rst:350 msgid "not stored" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:354 +#: ../../content/developer/reference/backend/orm.rst:351 msgid "not copied" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:355 +#: ../../content/developer/reference/backend/orm.rst:352 #: ../../content/developer/reference/user_interface/view_architecture.rst:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.parent_id:0 msgid "readonly" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:356 +#: ../../content/developer/reference/backend/orm.rst:353 msgid "computed in superuser mode" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:358 +#: ../../content/developer/reference/backend/orm.rst:355 msgid "Add the attribute ``store=True`` to make it stored, just like computed fields. Related fields are automatically recomputed when their dependencies are modified." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:364 +#: ../../content/developer/reference/backend/orm.rst:361 msgid "You can specify precise field dependencies if you don't want the related field to be recomputed on any dependency change::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:375 +#: ../../content/developer/reference/backend/orm.rst:372 msgid "You cannot chain :class:`~odoo.fields.Many2many` or :class:`~odoo.fields.One2many` fields in ``related`` fields dependencies." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:377 +#: ../../content/developer/reference/backend/orm.rst:374 msgid "``related`` can be used to refer to a :class:`~odoo.fields.One2many` or :class:`~odoo.fields.Many2many` field on another model on the condition that it's done through a ``Many2one`` relation on the current model. ``One2many`` and ``Many2many`` are not supported and the results will not be aggregated correctly::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:400 +#: ../../content/developer/reference/backend/orm.rst:397 msgid "Automatic fields" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:404 +#: ../../content/developer/reference/backend/orm.rst:401 msgid "Identifier :class:`field `" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:406 +#: ../../content/developer/reference/backend/orm.rst:403 msgid "If length of current recordset is 1, return id of unique record in it." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:408 +#: ../../content/developer/reference/backend/orm.rst:405 msgid "Raise an Error otherwise." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:412 +#: ../../content/developer/reference/backend/orm.rst:409 msgid "Name :class:`field ` displayed by default in the web client" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:414 +#: ../../content/developer/reference/backend/orm.rst:411 msgid "By default, it equals to :attr:`~odoo.models.BaseModel._rec_name` value field but the behavior can be customized by overriding :attr:`~odoo.models.BaseModel._compute_display_name`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:420 +#: ../../content/developer/reference/backend/orm.rst:417 msgid "Access Log fields" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:422 +#: ../../content/developer/reference/backend/orm.rst:419 msgid "These fields are automatically set and updated if :attr:`~odoo.models.BaseModel._log_access` is enabled. It can be disabled to avoid creating or updating those fields on tables for which they are not useful." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:427 +#: ../../content/developer/reference/backend/orm.rst:424 msgid "By default, :attr:`~odoo.models.BaseModel._log_access` is set to the same value as :attr:`~odoo.models.BaseModel._auto`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:432 +#: ../../content/developer/reference/backend/orm.rst:429 msgid "Stores when the record was created, :class:`~odoo.fields.Datetime`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:436 +#: ../../content/developer/reference/backend/orm.rst:433 msgid "Stores *who* created the record, :class:`~odoo.fields.Many2one` to a ``res.users``." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:441 +#: ../../content/developer/reference/backend/orm.rst:438 msgid "Stores when the record was last updated, :class:`~odoo.fields.Datetime`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:445 +#: ../../content/developer/reference/backend/orm.rst:442 msgid "Stores who last updated the record, :class:`~odoo.fields.Many2one` to a ``res.users``." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:448 +#: ../../content/developer/reference/backend/orm.rst:445 msgid ":attr:`~odoo.models.BaseModel._log_access` *must* be enabled on :class:`~odoo.models.TransientModel`." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:454 +#: ../../content/developer/reference/backend/orm.rst:451 msgid "Reserved Field names" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:456 +#: ../../content/developer/reference/backend/orm.rst:453 msgid "A few field names are reserved for pre-defined behaviors beyond that of automated fields. They should be defined on a model when the related behavior is desired:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:462 +#: ../../content/developer/reference/backend/orm.rst:459 msgid "default value for :attr:`~odoo.models.BaseModel._rec_name`, used to display records in context where a representative \"naming\" is necessary." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:466 -#: ../../content/developer/reference/backend/orm.rst:503 +#: ../../content/developer/reference/backend/orm.rst:463 +#: ../../content/developer/reference/backend/orm.rst:500 #: ../../content/developer/reference/user_interface/view_records.rst:83 msgid ":class:`~odoo.fields.Char`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:470 +#: ../../content/developer/reference/backend/orm.rst:467 msgid "toggles the global visibility of the record, if ``active`` is set to ``False`` the record is invisible in most searches and listing." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:473 +#: ../../content/developer/reference/backend/orm.rst:470 msgid ":class:`~odoo.fields.Boolean`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:475 +#: ../../content/developer/reference/backend/orm.rst:472 msgid "Special methods:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:483 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.toggle_active:1 +msgid "Inverses the value of :attr:`active` on the records in ``self``." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.action_archive:1 +msgid "Sets :attr:`active` to ``False`` on a recordset, by calling :meth:`toggle_active` on its currently active records." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.action_unarchive:1 +msgid "Sets :attr:`active` to ``True`` on a recordset, by calling :meth:`toggle_active` on its currently inactive records." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:480 msgid "lifecycle stages of the object, used by the ``states`` attribute on :class:`fields `." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:486 +#: ../../content/developer/reference/backend/orm.rst:483 msgid ":class:`~odoo.fields.Selection`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:490 +#: ../../content/developer/reference/backend/orm.rst:487 msgid "default_value of :attr:`~._parent_name`, used to organize records in a tree structure and enables the ``child_of`` and ``parent_of`` operators in domains." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:494 +#: ../../content/developer/reference/backend/orm.rst:491 #: ../../content/developer/reference/user_interface/view_records.rst:119 msgid ":class:`~odoo.fields.Many2one`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:498 +#: ../../content/developer/reference/backend/orm.rst:495 msgid "When :attr:`~._parent_store` is set to True, used to store a value reflecting the tree structure of :attr:`~._parent_name`, and to optimize the operators ``child_of`` and ``parent_of`` in search domains. It must be declared with ``index=True`` for proper operation." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:507 +#: ../../content/developer/reference/backend/orm.rst:504 msgid "Main field name used for Odoo multi-company behavior." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:509 +#: ../../content/developer/reference/backend/orm.rst:506 msgid "Used by `:meth:~odoo.models._check_company` to check multi company consistency. Defines whether a record is shared between companies (no value) or only accessible by the users of a given company." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:513 +#: ../../content/developer/reference/backend/orm.rst:510 msgid ":class:`~odoo.fields.Many2one` :type: :class:`~odoo.addons.base.models.res_company`" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:517 +#: ../../content/developer/reference/backend/orm.rst:514 msgid "Recordsets" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:519 +#: ../../content/developer/reference/backend/orm.rst:516 msgid "Interactions with models and records are performed through recordsets, an ordered collection of records of the same model." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:522 +#: ../../content/developer/reference/backend/orm.rst:519 msgid "Contrary to what the name implies, it is currently possible for recordsets to contain duplicates. This may change in the future." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:525 +#: ../../content/developer/reference/backend/orm.rst:522 msgid "Methods defined on a model are executed on a recordset, and their ``self`` is a recordset::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:535 +#: ../../content/developer/reference/backend/orm.rst:532 msgid "Iterating on a recordset will yield new sets of *a single record* (\"singletons\"), much like iterating on a Python string yields strings of a single characters::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:545 +#: ../../content/developer/reference/backend/orm.rst:542 msgid "Field access" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:547 +#: ../../content/developer/reference/backend/orm.rst:544 msgid "Recordsets provide an \"Active Record\" interface: model fields can be read and written directly from the record as attributes." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:552 +#: ../../content/developer/reference/backend/orm.rst:549 msgid "When accessing non-relational fields on a recordset of potentially multiple records, use :meth:`~odoo.models.BaseModel.mapped`::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:557 +#: ../../content/developer/reference/backend/orm.rst:554 msgid "Field values can also be accessed like dict items, which is more elegant and safer than ``getattr()`` for dynamic field names. Setting a field's value triggers an update to the database::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:572 +#: ../../content/developer/reference/backend/orm.rst:569 msgid "Trying to read a field on multiple records will raise an error for non relational fields." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:575 +#: ../../content/developer/reference/backend/orm.rst:572 msgid "Accessing a relational field (:class:`~odoo.fields.Many2one`, :class:`~odoo.fields.One2many`, :class:`~odoo.fields.Many2many`) *always* returns a recordset, empty if the field is not set." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:580 +#: ../../content/developer/reference/backend/orm.rst:577 msgid "Record cache and prefetching" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:582 +#: ../../content/developer/reference/backend/orm.rst:579 msgid "Odoo maintains a cache for the fields of the records, so that not every field access issues a database request, which would be terrible for performance. The following example queries the database only for the first statement::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:589 +#: ../../content/developer/reference/backend/orm.rst:586 msgid "To avoid reading one field on one record at a time, Odoo *prefetches* records and fields following some heuristics to get good performance. Once a field must be read on a given record, the ORM actually reads that field on a larger recordset, and stores the returned values in cache for later use. The prefetched recordset is usually the recordset from which the record comes by iteration. Moreover, all simple stored fields (boolean, integer, float, char, text, date, datetime, selection, many2one) are fetched altogether; they correspond to the columns of the model's table, and are fetched efficiently in the same query." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:598 +#: ../../content/developer/reference/backend/orm.rst:595 msgid "Consider the following example, where ``partners`` is a recordset of 1000 records. Without prefetching, the loop would make 2000 queries to the database. With prefetching, only one query is made::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:607 +#: ../../content/developer/reference/backend/orm.rst:604 msgid "The prefetching also works on *secondary records*: when relational fields are read, their values (which are records) are subscribed for future prefetching. Accessing one of those secondary records prefetches all secondary records from the same model. This makes the following example generate only two queries, one for partners and one for countries::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:619 +#: ../../content/developer/reference/backend/orm.rst:616 msgid "The methods :meth:`~odoo.models.Model.search_fetch` and :meth:`~odoo.models.Model.fetch` can be used to populate the cache of records, typically in cases where the prefetching mechanism does not work well." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:628 +#: ../../content/developer/reference/backend/orm.rst:625 msgid "Method decorators" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:642 +#: ../../../odoo/odoo/api.py:docstring of odoo.api:1 +msgid "The Odoo API module defines Odoo Environments and method decorators." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api:3 +msgid "Document this module" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.autovacuum:1 +msgid "Decorate a method so that it is called by the daily vacuum cron job (model ``ir.autovacuum``). This is typically used for garbage-collection-like tasks that do not deserve a specific cron job." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.constrains:1 +msgid "Decorate a constraint checker." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.constrains:3 +msgid "Each argument must be a field name used in the check::" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.constrains:11 +msgid "Invoked on the records on which one of the named fields has been modified." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.constrains:13 +msgid "Should raise :exc:`~odoo.exceptions.ValidationError` if the validation failed." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.constrains:18 +msgid "``@constrains`` only supports simple field names, dotted names (fields of relational fields e.g. ``partner_id.customer``) are not supported and will be ignored." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.constrains:22 +msgid "``@constrains`` will be triggered only if the declared fields in the decorated method are included in the ``create`` or ``write`` call. It implies that fields not present in a view will not trigger a call during a record creation. A override of ``create`` is necessary to make sure a constraint will always be triggered (e.g. to test the absence of value)." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.constrains:29 +msgid "One may also pass a single function as argument. In that case, the field names are given by calling the function with a model instance." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.depends:1 +msgid "Return a decorator that specifies the field dependencies of a \"compute\" method (for new-style function fields). Each argument must be a string that consists in a dot-separated sequence of field names::" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.depends:15 +msgid "One may also pass a single function as argument. In that case, the dependencies are given by calling the function with the field's model." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.depends_context:1 +msgid "Return a decorator that specifies the context dependencies of a non-stored \"compute\" method. Each argument is a key in the context's dictionary::" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.depends_context:16 +msgid "All dependencies must be hashable. The following keys have special support:" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.depends_context:19 +msgid "`company` (value in context or current company id)," +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.depends_context:20 +msgid "`uid` (current user id and superuser flag)," +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.depends_context:21 +msgid "`active_test` (value in env.context or value in field.context)." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.model:1 +msgid "Decorate a record-style method where ``self`` is a recordset, but its contents is not relevant, only the model is. Such a method::" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.model_create_multi:1 +msgid "Decorate a method that takes a list of dictionaries and creates multiple records. The method may be called with either a single dict or a list of dicts::" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.onchange:1 +msgid "Return a decorator to decorate an onchange method for given fields." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.onchange:3 +msgid "In the form views where the field appears, the method will be called when one of the given fields is modified. The method is invoked on a pseudo-record that contains the values present in the form. Field assignments on that record are automatically sent back to the client." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.onchange:8 +msgid "Each argument must be a field name::" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.onchange:20 +msgid "If the type is set to notification, the warning will be displayed in a notification. Otherwise it will be displayed in a dialog as default." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.onchange:25 +msgid "``@onchange`` only supports simple field names, dotted names (fields of relational fields e.g. ``partner_id.tz``) are not supported and will be ignored" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.onchange:31 +msgid "Since ``@onchange`` returns a recordset of pseudo-records, calling any one of the CRUD methods (:meth:`create`, :meth:`read`, :meth:`write`, :meth:`unlink`) on the aforementioned recordset is undefined behaviour, as they potentially do not exist in the database yet." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.onchange:37 +msgid "Instead, simply set the record's field like shown in the example above or call the :meth:`update` method." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.onchange:42 +msgid "It is not possible for a ``one2many`` or ``many2many`` field to modify itself via onchange. This is a webclient limitation - see `#2693 `_." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:1 +msgid "Mark a method to be executed during :meth:`~odoo.models.BaseModel.unlink`." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:3 +msgid "The goal of this decorator is to allow client-side errors when unlinking records if, from a business point of view, it does not make sense to delete such records. For instance, a user should not be able to delete a validated sales order." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:8 +msgid "While this could be implemented by simply overriding the method ``unlink`` on the model, it has the drawback of not being compatible with module uninstallation. When uninstalling the module, the override could raise user errors, but we shouldn't care because the module is being uninstalled, and thus **all** records related to the module should be removed anyway." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:14 +msgid "This means that by overriding ``unlink``, there is a big chance that some tables/records may remain as leftover data from the uninstalled module. This leaves the database in an inconsistent state. Moreover, there is a risk of conflicts if the module is ever reinstalled on that database." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:19 +msgid "Methods decorated with ``@ondelete`` should raise an error following some conditions, and by convention, the method should be named either ``_unlink_if_`` or ``_unlink_except_``." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:36 +msgid "Whether the decorated method should be called if the module that implements said method is being uninstalled. Should almost always be ``False``, so that module uninstallation does not trigger those errors." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:42 +msgid "The parameter ``at_uninstall`` should only be set to ``True`` if the check you are implementing also applies when uninstalling the module." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:45 +msgid "For instance, it doesn't matter if when uninstalling ``sale``, validated sales orders are being deleted because all data pertaining to ``sale`` should be deleted anyway, in that case ``at_uninstall`` should be set to ``False``." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.ondelete:50 +msgid "However, it makes sense to prevent the removal of the default language if no other languages are installed, since deleting the default language will break a lot of basic behavior. In this case, ``at_uninstall`` should be set to ``True``." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:1 +msgid "Return a decorator for methods that return instances of ``model``." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:3 +msgid "a model name, or ``'self'`` for the current model" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:5 +msgid "a function ``downgrade(self, value, *args, **kwargs)`` to convert the record-style ``value`` to a traditional-style output" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:8 +msgid "a function ``upgrade(self, value, *args, **kwargs)`` to convert the traditional-style ``value`` to a record-style output" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:11 +msgid "The arguments ``self``, ``*args`` and ``**kwargs`` are the ones passed to the method in the record-style." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:14 +msgid "The decorator adapts the method output to the api style: ``id``, ``ids`` or ``False`` for the traditional style, and recordset for the record style::" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:28 +msgid "Note that the decorated method must satisfy that convention." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.returns:30 +msgid "Those decorators are automatically *inherited*: a method that overrides a decorated existing method will be decorated with the same ``@returns(model)``." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:639 msgid "With sphinx 2.0 : autodecorator" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:644 +#: ../../content/developer/reference/backend/orm.rst:641 msgid "Add in Views reference * It is possible to suppress the trigger from a specific field by adding ``on_change=\"0\"`` in a view::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:650 +#: ../../content/developer/reference/backend/orm.rst:647 msgid "will not trigger any interface update when the field is edited by the user, even if there are function fields or explicit onchange depending on that field." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:657 +#: ../../content/developer/reference/backend/orm.rst:654 #: ../../content/developer/reference/frontend/framework_overview.rst:96 msgid "Environment" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:674 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment:1 +msgid "The environment stores various contextual data used by the ORM:" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment:3 +msgid ":attr:`cr`: the current database cursor (for database queries);" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment:4 +msgid ":attr:`uid`: the current user id (for access rights checks);" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment:5 +msgid ":attr:`context`: the current context dictionary (arbitrary metadata);" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment:6 +msgid ":attr:`su`: whether in superuser mode." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment:8 +msgid "It provides access to the registry by implementing a mapping from model names to models. It also holds a cache for records, and a data structure to manage recomputations." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:671 msgid "When creating a recordset from an other recordset, the environment is inherited. The environment can be used to get an empty recordset in an other model, and query that model:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:685 +#: ../../content/developer/reference/backend/orm.rst:682 msgid "Some lazy properties are available to access the environment (contextual) data:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:693 +#: ../../docstring of odoo.api.Environment.lang:1 +msgid "Return the current language code." +msgstr "" + +#: ../../docstring of odoo.api.Environment.user:1 +msgid "Return the current user (as an instance)." +msgstr "" + +#: ../../docstring of odoo.api.Environment.user:3 +msgid "current user - sudoed" +msgstr "" + +#: ../../docstring of odoo.api.Environment.user:4 +msgid ":class:`res.users record<~odoo.addons.base.models.res_users.Users>`" +msgstr "" + +#: ../../docstring of odoo.api.Environment.company:1 +msgid "Return the current company (as an instance)." +msgstr "" + +#: ../../docstring of odoo.api.Environment.company:3 +msgid "If not specified in the context (`allowed_company_ids`), fallback on current user main company." +msgstr "" + +#: ../../docstring of odoo.api.Environment.companies:6 +#: ../../docstring of odoo.api.Environment.company:6 +msgid "invalid or unauthorized `allowed_company_ids` context key content." +msgstr "" + +#: ../../docstring of odoo.api.Environment.company:7 +msgid "current company (default=`self.user.company_id`), with the current environment" +msgstr "" + +#: ../../docstring of odoo.api.Environment.company:8 +msgid ":class:`res.company record<~odoo.addons.base.models.res_company.Company>`" +msgstr "" + +#: ../../docstring of odoo.api.Environment.company:12 +msgid "No sanity checks applied in sudo mode! When in sudo mode, a user can access any company, even if not in his allowed companies." +msgstr "" + +#: ../../docstring of odoo.api.Environment.companies:16 +#: ../../docstring of odoo.api.Environment.company:16 +msgid "This allows to trigger inter-company modifications, even if the current user doesn't have access to the targeted company." +msgstr "" + +#: ../../docstring of odoo.api.Environment.companies:1 +msgid "Return a recordset of the enabled companies by the user." +msgstr "" + +#: ../../docstring of odoo.api.Environment.companies:3 +msgid "If not specified in the context(`allowed_company_ids`), fallback on current user companies." +msgstr "" + +#: ../../docstring of odoo.api.Environment.companies:7 +msgid "current companies (default=`self.user.company_ids`), with the current environment" +msgstr "" + +#: ../../docstring of odoo.api.Environment.companies:8 +msgid ":class:`res.company recordset<~odoo.addons.base.models.res_company.Company>`" +msgstr "" + +#: ../../docstring of odoo.api.Environment.companies:12 +msgid "No sanity checks applied in sudo mode ! When in sudo mode, a user can access any company, even if not in his allowed companies." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:690 msgid "Useful environment methods" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:701 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:1 +msgid "Return the record corresponding to the given ``xml_id``." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:3 +msgid "record xml_id, under the format ````" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:4 +msgid "whether the method should raise if record is not found" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:5 +msgid "Found record or None" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.ref:6 +msgid "if record wasn't found and ``raise_if_not_found`` is True" +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.is_superuser:1 +msgid "Return whether the environment is in superuser mode." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.is_admin:1 +msgid "Return whether the current user has group \"Access Rights\", or is in superuser mode." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.is_system:1 +msgid "Return whether the current user has group \"Settings\", or is in superuser mode." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:698 msgid "Altering the environment" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:718 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_context:1 +msgid "Returns a new version of this recordset attached to an extended context." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_context:4 +msgid "The extended context is either the provided ``context`` in which ``overrides`` are merged or the *current* context in which ``overrides`` are merged e.g.::" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_user:1 +msgid "Return a new version of this recordset attached to the given user, in non-superuser mode, unless `user` is the superuser (by convention, the superuser is always in superuser mode.)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_company:1 +msgid "Return a new version of this recordset with a modified context, such that::" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_company:6 +msgid "main company of the new environment." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_company:11 +msgid "When using an unauthorized company for current user, accessing the company(ies) on the environment may trigger an AccessError if not done in a sudoed environment." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_env:1 +msgid "Return a new version of this recordset attached to the provided environment." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sudo:18 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.with_env:7 +msgid "The returned recordset has the same prefetch object as ``self``." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sudo:1 +msgid "Returns a new version of this recordset with superuser mode enabled or disabled, depending on `flag`. The superuser mode does not change the current user, and simply bypasses access rights checks." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sudo:7 +msgid "Using ``sudo`` could cause data access to cross the boundaries of record rules, possibly mixing records that are meant to be isolated (e.g. records from different companies in multi-company environments)." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sudo:12 +msgid "It may lead to un-intuitive results in methods which select one record among many - for example getting the default company, or selecting a Bill of Materials." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:715 msgid "SQL Execution" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:720 +#: ../../content/developer/reference/backend/orm.rst:717 msgid "The :attr:`~odoo.api.Environment.cr` attribute on environments is the cursor for the current database transaction and allows executing SQL directly, either for queries which are difficult to express using the ORM (e.g. complex joins) or for performance reasons::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:728 +#: ../../content/developer/reference/backend/orm.rst:725 msgid "Executing raw SQL bypasses the ORM and, by consequent, Odoo security rules. Please make sure your queries are sanitized when using user input and prefer using ORM utilities if you don't really need to use SQL queries." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:732 +#: ../../content/developer/reference/backend/orm.rst:729 +msgid "The recommended way to build SQL queries is to use the wrapper object" +msgstr "" + +#: ../../../odoo/odoo/tools/sql.py:docstring of odoo.tools.sql.SQL:1 +msgid "An object that wraps SQL code with its parameters, like::" +msgstr "" + +#: ../../../odoo/odoo/tools/sql.py:docstring of odoo.tools.sql.SQL:6 +msgid "The code is given as a ``%``-format string, and supports either positional arguments (with `%s`) or named arguments (with `%(name)s`). Escaped characters (like ``\"%%\"``) are not supported, though. The arguments are meant to be merged into the code using the `%` formatting operator." +msgstr "" + +#: ../../../odoo/odoo/tools/sql.py:docstring of odoo.tools.sql.SQL:11 +msgid "The SQL wrapper is designed to be composable: the arguments can be either actual parameters, or SQL objects themselves::" +msgstr "" + +#: ../../../odoo/odoo/tools/sql.py:docstring of odoo.tools.sql.SQL:20 +msgid "The combined SQL code is given by ``sql.code``, while the corresponding combined parameters are given by the list ``sql.params``. This allows to combine any number of SQL terms without having to separately combine their parameters, which can be tedious, bug-prone, and is the main downside of `psycopg2.sql `." +msgstr "" + +#: ../../../odoo/odoo/tools/sql.py:docstring of odoo.tools.sql.SQL:26 +msgid "The second purpose of the wrapper is to discourage SQL injections. Indeed, if ``code`` is a string literal (not a dynamic string), then the SQL object made with ``code`` is guaranteed to be safe, provided the SQL objects within its parameters are themselves safe." +msgstr "" + +#: ../../../odoo/odoo/tools/sql.py:docstring of odoo.tools.sql.SQL.join:1 +msgid "Join SQL objects or parameters with ``self`` as a separator." +msgstr "" + +#: ../../../odoo/odoo/tools/sql.py:docstring of odoo.tools.sql.SQL.identifier:1 +msgid "Return an SQL object that represents an identifier." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:736 msgid "One important thing to know about models is that they don't necessarily perform database updates right away. Indeed, for performance reasons, the framework delays the recomputation of fields after modifying records. And some database updates are delayed, too. Therefore, before querying the database, one has to make sure that it contains the relevant data for the query. This operation is called *flushing* and performs the expected database updates." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:749 +#: ../../content/developer/reference/backend/orm.rst:753 msgid "Before every SQL query, one has to flush the data needed for that query. There are three levels for flushing, each with its own API. One can flush either everything, all the records of a model, or some specific records. Because delaying updates improves performance in general, we recommend to be *specific* when flushing." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:761 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.flush_all:1 +msgid "Flush all pending computations and updates to the database." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.flush_model:1 +msgid "Process the pending computations and database updates on ``self``'s model. When the parameter is given, the method guarantees that at least the given fields are flushed to the database. More fields can be flushed, though." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.flush_model:6 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.flush_recordset:6 +msgid "optional iterable of field names to flush" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.flush_recordset:1 +msgid "Process the pending computations and database updates on the records ``self``. When the parameter is given, the method guarantees that at least the given fields on records ``self`` are flushed to the database. More fields and records can be flushed, though." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:765 msgid "Because models use the same cursor and the :class:`~odoo.api.Environment` holds various caches, these caches must be invalidated when *altering* the database in raw SQL, or further uses of models may become incoherent. It is necessary to clear caches when using ``CREATE``, ``UPDATE`` or ``DELETE`` in SQL, but not ``SELECT`` (which simply reads the database)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:779 +#: ../../content/developer/reference/backend/orm.rst:783 msgid "Just like flushing, one can invalidate either the whole cache, the cache of all the records of a model, or the cache of specific records. One can even invalidate specific fields on some records or all records of a model. As the cache improves performance in general, we recommend to be *specific* when invalidating." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:791 +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.invalidate_all:1 +msgid "Invalidate the cache of all records." +msgstr "" + +#: ../../../odoo/odoo/api.py:docstring of odoo.api.Environment.invalidate_all:3 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_model:6 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_recordset:6 +msgid "whether pending updates should be flushed before invalidation. It is ``True`` by default, which ensures cache consistency. Do not use this parameter unless you know what you are doing." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_model:1 +msgid "Invalidate the cache of all records of ``self``'s model, when the cached values no longer correspond to the database values. If the parameter is given, only the given fields are invalidated from cache." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_model:5 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_recordset:5 +msgid "optional iterable of field names to invalidate" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.invalidate_recordset:1 +msgid "Invalidate the cache of the records in ``self``, when the cached values no longer correspond to the database values. If the parameter is given, only the given fields on ``self`` are invalidated from cache." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:795 msgid "The methods above keep the caches and the database consistent with each other. However, if computed field dependencies have been modified in the database, one has to inform the models for the computed fields to be recomputed. The only thing the framework needs to know is *what* fields have changed on *which* records." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:813 +#: ../../content/developer/reference/backend/orm.rst:817 msgid "One has to figure out which records have been modified. There are many ways to do this, possibly involving extra SQL queries. In the example above, we take advantage of the ``RETURNING`` clause of PostgreSQL to retrieve the information without an extra query. After making the cache consistent by invalidation, invoke the method ``modified`` on the modified records with the fields that have been updated." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:826 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.modified:1 +msgid "Notify that fields will be or have been modified on ``self``. This invalidates the cache where necessary, and prepares the recomputation of dependent stored fields." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.modified:5 +msgid "iterable of field names modified on records ``self``" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.modified:6 +msgid "whether called in the context of record creation" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.modified:7 +msgid "whether called before modifying records ``self``" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:830 msgid "Common ORM methods" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:831 +#: ../../content/developer/reference/backend/orm.rst:835 msgid "Create/update" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:833 +#: ../../content/developer/reference/backend/orm.rst:837 msgid "api.model_create_multi information" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:846 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:1 +msgid "Creates new records for the model." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:3 +msgid "The new records are initialized using the values from the list of dicts ``vals_list``, and if necessary those from :meth:`~.default_get`." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:6 +msgid "values for the model's fields, as a list of dictionaries:: [{'field_name': field_value, ...}, ...] For backward compatibility, ``vals_list`` may be a dictionary. It is treated as a singleton list ``[vals]``, and a single record is returned. see :meth:`~.write` for details" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:7 +msgid "values for the model's fields, as a list of dictionaries::" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:11 +msgid "For backward compatibility, ``vals_list`` may be a dictionary. It is treated as a singleton list ``[vals]``, and a single record is returned." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:15 +msgid "see :meth:`~.write` for details" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:17 +msgid "the created records" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:18 +msgid "if the current user is not allowed to create records of the specified model" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:19 +msgid "if user tries to enter invalid value for a selection field" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:20 +msgid "if a field name specified in the create values does not exist." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.create:21 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:6 +msgid "if a loop would be created in a hierarchy of objects a result of the operation (such as setting an object as its own parent)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.copy:1 +msgid "Duplicate record ``self`` updating it with default values" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.copy:3 +msgid "dictionary of field values to override in the original values of the copied record, e.g: ``{'field_name': overridden_value, ...}``" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.copy:5 +msgid "new record" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:1 +msgid "Return default values for the fields in ``fields_list``. Default values are determined by the context, user defaults, and the model itself." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:5 +msgid "names of field whose default is requested" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:6 +msgid "a dictionary mapping field names to their corresponding default values, if they have a default value." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.default_get:12 +msgid "Unrequested defaults won't be considered, there is no need to return a value for fields whose names are not in `fields_list`." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:1 +msgid "Create a new record by calling :meth:`~.create` with only one value provided: the display name of the new record." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:4 +msgid "The new record will be initialized with any default values applicable to this model, or provided through the context. The usual behavior of :meth:`~.create` applies." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:8 +msgid "display name of the record to create" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_create:10 +msgid "the (id, display_name) pair value of the created record" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:1 +msgid "Updates all records in ``self`` with the provided values." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:3 +msgid "fields to update and the value to set on them" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:4 +msgid "if user is not allowed to modify the specified records/fields" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:5 +msgid "if invalid values are specified for selection fields" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:8 +msgid "For numeric fields (:class:`~odoo.fields.Integer`, :class:`~odoo.fields.Float`) the value should be of the corresponding type" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:11 +msgid "For :class:`~odoo.fields.Boolean`, the value should be a :class:`python:bool`" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:13 +msgid "For :class:`~odoo.fields.Selection`, the value should match the selection values (generally :class:`python:str`, sometimes :class:`python:int`)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:16 +msgid "For :class:`~odoo.fields.Many2one`, the value should be the database identifier of the record to set" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:18 +msgid "The expected value of a :class:`~odoo.fields.One2many` or :class:`~odoo.fields.Many2many` relational field is a list of :class:`~odoo.fields.Command` that manipulate the relation the implement. There are a total of 7 commands: :meth:`~odoo.fields.Command.create`, :meth:`~odoo.fields.Command.update`, :meth:`~odoo.fields.Command.delete`, :meth:`~odoo.fields.Command.unlink`, :meth:`~odoo.fields.Command.link`, :meth:`~odoo.fields.Command.clear`, and :meth:`~odoo.fields.Command.set`." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:29 +msgid "For :class:`~odoo.fields.Date` and `~odoo.fields.Datetime`, the value should be either a date(time), or a string." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:34 +msgid "If a string is provided for Date(time) fields, it must be UTC-only and formatted according to :const:`odoo.tools.misc.DEFAULT_SERVER_DATE_FORMAT` and :const:`odoo.tools.misc.DEFAULT_SERVER_DATETIME_FORMAT`" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.write:39 +msgid "Other non-relational fields use a string for value" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:850 msgid "Search/Read" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:874 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.browse:1 +msgid "Returns a recordset for the ids provided as parameter in the current environment." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.browse:9 +msgid "id(s)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.browse:11 +msgid "recordset" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:1 +msgid "Search for the records that satisfy the given ``domain`` :ref:`search domain `." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:4 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:3 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:4 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_count:4 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:7 +msgid ":ref:`A search domain `. Use an empty list to match all records." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:6 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:10 +msgid "number of results to ignore (default: none)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:7 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:11 +msgid "maximum number of records to return (default: all)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:8 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:12 +msgid "sort string" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:9 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:13 +msgid "at most ``limit`` records matching the search criteria" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:28 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fetch:7 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:10 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:35 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:10 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:14 +msgid "if user is not allowed to access requested information" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search:12 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_count:8 +msgid "This is a high-level method, which should not be overridden. Its actual implementation is done by method :meth:`_search`." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_count:1 +msgid "Returns the number of records in the current model matching :ref:`the provided domain `." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_count:6 +msgid "maximum number of record to count (upperbound) (default: all)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:1 +msgid "Search for the records that satisfy the given ``domain`` :ref:`search domain `, and fetch the given fields to the cache. This method is like a combination of methods :meth:`search` and :meth:`fetch`, but it performs both tasks with a minimal number of SQL queries." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fetch:6 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.search_fetch:9 +msgid "a collection of field names to fetch" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:1 +msgid "Search for records that have a display name matching the given ``name`` pattern when compared with the given ``operator``, while also matching the optional search domain (``args``)." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:5 +msgid "This is used for example to provide suggestions based on a partial value for a relational field. Should usually behave as the reverse of ``display_name``, but that is not guaranteed." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:9 +msgid "This method is equivalent to calling :meth:`~.search` with a search domain based on ``display_name`` and mapping id and display_name on the resulting search." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:13 +msgid "the name pattern to match" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:14 +msgid "optional search domain (see :meth:`~.search` for syntax), specifying further restrictions" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:16 +msgid "domain operator for matching ``name``, such as ``'like'`` or ``'='``." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:18 +msgid "optional max number of records to return" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.name_search:20 +msgid "list of pairs ``(id, display_name)`` for all matching records." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fetch:1 +msgid "Make sure the given fields are in memory for the records in ``self``, by fetching what is necessary from the database. Non-stored fields are mostly ignored, except for their stored dependencies. This method should be called to optimize code." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fetch:9 +msgid "This method is implemented thanks to methods :meth:`_search` and :meth:`_fetch_query`, and should not be overridden." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:1 +msgid "Read the requested fields for the records in ``self``, and return their values as a list of dicts." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:4 +msgid "field names to return (default is all fields)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:5 +msgid "loading mode, currently the only option is to set to ``None`` to avoid loading the `display_name` of m2o fields" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:7 +msgid "a list of dictionaries mapping field names to their values, with one dictionary per record" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:11 +msgid "if a requested field does not exist" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read:13 +msgid "This is a high-level method that is not supposed to be overridden. In order to modify how fields are read from database, see methods :meth:`_fetch_query` and :meth:`_read_format`." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:1 +msgid "Get fields aggregations specified by ``aggregates`` grouped by the given ``groupby`` fields where record are filtered by the ``domain``." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:6 +msgid "list of groupby descriptions by which the records will be grouped. A groupby description is either a field (then it will be grouped by that field) or a string `'field:granularity'`. Right now, the only supported granularities are `'day'`, `'week'`, `'month'`, `'quarter'` or `'year'`, and they only make sense for date/datetime fields." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:11 +msgid "list of aggregates specification. Each element is `'field:agg'` (aggregate field with aggregation function `'agg'`). The possible aggregation functions are the ones provided by `PostgreSQL `_, `'count_distinct'` with the expected meaning and `'recordset'` to act like `'array_agg'` converted into a recordset." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:17 +msgid "A domain where the valid \"fields\" are the aggregates." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:18 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:17 +msgid "optional number of groups to skip" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:19 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:18 +msgid "optional max number of groups to return" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:20 +msgid "optional ``order by`` specification, for overriding the natural sort ordering of the groups, see also :meth:`~.search`." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._read_group:23 +msgid "list of tuple containing in the order the groups values and aggregates values (flatten): `[(groupby_1_value, ... , aggregate_1_value_aggregate, ...), ...]`. If group is related field, the value of it will be a recordset (with a correct prefetch set)." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:1 +msgid "Get the list of records in list view grouped by the given ``groupby`` fields." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:5 +msgid "list of fields present in the list view specified on the object. Each element is either 'field' (field name, using the default aggregation), or 'field:agg' (aggregate field with aggregation function 'agg'), or 'name:agg(field)' (aggregate field with 'agg' and return it as 'name'). The possible aggregation functions are the ones provided by `PostgreSQL `_ and 'count_distinct', with the expected meaning." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:12 +msgid "list of groupby descriptions by which the records will be grouped. A groupby description is either a field (then it will be grouped by that field) or a string 'field:granularity'. Right now, the only supported granularities are 'day', 'week', 'month', 'quarter' or 'year', and they only make sense for date/datetime fields." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:19 +msgid "optional ``order by`` specification, for overriding the natural sort ordering of the groups, see also :py:meth:`~osv.osv.osv.search` (supported only for many2one fields currently)" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:23 +msgid "if true, the results are only grouped by the first groupby and the remaining groupbys are put in the __context key. If false, all the groupbys are done in one call." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:26 +msgid "list of dictionaries(one dictionary for each record) containing: * the values of fields grouped by the fields in ``groupby`` argument * __domain: list of tuples specifying the search criteria * __context: dictionary with argument like ``groupby`` * __range: (date/datetime only) dictionary with field_name:granularity as keys mapping to a dictionary with keys: \"from\" (inclusive) and \"to\" (exclusive) mapping to a string representation of the temporal bounds of the group" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:26 +msgid "list of dictionaries(one dictionary for each record) containing:" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:28 +msgid "the values of fields grouped by the fields in ``groupby`` argument" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:29 +msgid "__domain: list of tuples specifying the search criteria" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:30 +msgid "__context: dictionary with argument like ``groupby``" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:32 +msgid "__range: (date/datetime only) dictionary with field_name:granularity as keys" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.read_group:32 +msgid "mapping to a dictionary with keys: \"from\" (inclusive) and \"to\" (exclusive) mapping to a string representation of the temporal bounds of the group" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:1 +msgid "Return the definition of each field." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:3 +msgid "The returned value is a dictionary (indexed by field name) of dictionaries. The _inherits'd fields are included. The string, help, and selection (if present) attributes are translated." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:7 +msgid "fields to document, all if empty or not provided" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:8 +msgid "attributes to return for each field, all if empty or not provided" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.fields_get:9 +msgid "dictionary mapping field names to a dictionary mapping attributes to values." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:878 msgid "Search domains" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:876 +#: ../../content/developer/reference/backend/orm.rst:880 msgid "A domain is a list of criteria, each criterion being a triple (either a ``list`` or a ``tuple``) of ``(field_name, operator, value)`` where:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:882 +#: ../../content/developer/reference/backend/orm.rst:886 msgid "``field_name`` (``str``)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:880 +#: ../../content/developer/reference/backend/orm.rst:884 msgid "a field name of the current model, or a relationship traversal through a :class:`~odoo.fields.Many2one` using dot-notation e.g. ``'street'`` or ``'partner_id.country'``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:936 +#: ../../content/developer/reference/backend/orm.rst:940 msgid "``operator`` (``str``)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:885 +#: ../../content/developer/reference/backend/orm.rst:889 msgid "an operator used to compare the ``field_name`` with the ``value``. Valid operators are:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:888 +#: ../../content/developer/reference/backend/orm.rst:892 msgid "``=``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:889 +#: ../../content/developer/reference/backend/orm.rst:893 msgid "equals to" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:890 +#: ../../content/developer/reference/backend/orm.rst:894 msgid "``!=``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:891 +#: ../../content/developer/reference/backend/orm.rst:895 msgid "not equals to" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:892 +#: ../../content/developer/reference/backend/orm.rst:896 msgid "``>``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:893 +#: ../../content/developer/reference/backend/orm.rst:897 msgid "greater than" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:894 +#: ../../content/developer/reference/backend/orm.rst:898 msgid "``>=``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:895 +#: ../../content/developer/reference/backend/orm.rst:899 msgid "greater than or equal to" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:896 +#: ../../content/developer/reference/backend/orm.rst:900 msgid "``<``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:897 +#: ../../content/developer/reference/backend/orm.rst:901 msgid "less than" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:898 +#: ../../content/developer/reference/backend/orm.rst:902 msgid "``<=``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:899 +#: ../../content/developer/reference/backend/orm.rst:903 msgid "less than or equal to" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:901 +#: ../../content/developer/reference/backend/orm.rst:905 msgid "``=?``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:901 +#: ../../content/developer/reference/backend/orm.rst:905 msgid "unset or equals to (returns true if ``value`` is either ``None`` or ``False``, otherwise behaves like ``=``)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:905 +#: ../../content/developer/reference/backend/orm.rst:909 msgid "``=like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:904 +#: ../../content/developer/reference/backend/orm.rst:908 msgid "matches ``field_name`` against the ``value`` pattern. An underscore ``_`` in the pattern stands for (matches) any single character; a percent sign ``%`` matches any string of zero or more characters." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:908 +#: ../../content/developer/reference/backend/orm.rst:912 msgid "``like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:908 +#: ../../content/developer/reference/backend/orm.rst:912 msgid "matches ``field_name`` against the ``%value%`` pattern. Similar to ``=like`` but wraps ``value`` with '%' before matching" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:910 +#: ../../content/developer/reference/backend/orm.rst:914 msgid "``not like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:911 +#: ../../content/developer/reference/backend/orm.rst:915 msgid "doesn't match against the ``%value%`` pattern" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:912 +#: ../../content/developer/reference/backend/orm.rst:916 msgid "``ilike``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:913 +#: ../../content/developer/reference/backend/orm.rst:917 msgid "case insensitive ``like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:914 +#: ../../content/developer/reference/backend/orm.rst:918 msgid "``not ilike``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:915 +#: ../../content/developer/reference/backend/orm.rst:919 msgid "case insensitive ``not like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:916 +#: ../../content/developer/reference/backend/orm.rst:920 msgid "``=ilike``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:917 +#: ../../content/developer/reference/backend/orm.rst:921 msgid "case insensitive ``=like``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:919 +#: ../../content/developer/reference/backend/orm.rst:923 msgid "``in``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:919 +#: ../../content/developer/reference/backend/orm.rst:923 msgid "is equal to any of the items from ``value``, ``value`` should be a list of items" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:921 +#: ../../content/developer/reference/backend/orm.rst:925 msgid "``not in``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:922 +#: ../../content/developer/reference/backend/orm.rst:926 msgid "is unequal to all of the items from ``value``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:928 +#: ../../content/developer/reference/backend/orm.rst:932 msgid "``child_of``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:924 +#: ../../content/developer/reference/backend/orm.rst:928 msgid "is a child (descendant) of a ``value`` record (value can be either one item or a list of items)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:927 -#: ../../content/developer/reference/backend/orm.rst:934 +#: ../../content/developer/reference/backend/orm.rst:931 +#: ../../content/developer/reference/backend/orm.rst:938 msgid "Takes the semantics of the model into account (i.e following the relationship field named by :attr:`~odoo.models.Model._parent_name`)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:936 +#: ../../content/developer/reference/backend/orm.rst:940 msgid "``parent_of``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:931 +#: ../../content/developer/reference/backend/orm.rst:935 msgid "is a parent (ascendant) of a ``value`` record (value can be either one item or a list of items)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:939 +#: ../../content/developer/reference/backend/orm.rst:943 msgid "variable type, must be comparable (through ``operator``) to the named field." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:942 +#: ../../content/developer/reference/backend/orm.rst:946 msgid "Domain criteria can be combined using logical operators in *prefix* form:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:945 +#: ../../content/developer/reference/backend/orm.rst:949 msgid "``'&'``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:945 +#: ../../content/developer/reference/backend/orm.rst:949 msgid "logical *AND*, default operation to combine criteria following one another. Arity 2 (uses the next 2 criteria or combinations)." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:947 +#: ../../content/developer/reference/backend/orm.rst:951 msgid "``'|'``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:948 +#: ../../content/developer/reference/backend/orm.rst:952 msgid "logical *OR*, arity 2." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:954 +#: ../../content/developer/reference/backend/orm.rst:958 msgid "``'!'``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:950 +#: ../../content/developer/reference/backend/orm.rst:954 msgid "logical *NOT*, arity 1." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:952 +#: ../../content/developer/reference/backend/orm.rst:956 msgid "Mostly to negate combinations of criteria Individual criterion generally have a negative form (e.g. ``=`` -> ``!=``, ``<`` -> ``>=``) which is simpler than negating the positive." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:958 +#: ../../content/developer/reference/backend/orm.rst:962 msgid "To search for partners named *ABC*, from belgium or germany, whose language is not english::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:966 +#: ../../content/developer/reference/backend/orm.rst:970 msgid "This domain is interpreted as:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:975 +#: ../../content/developer/reference/backend/orm.rst:979 #: ../../content/developer/tutorials/getting_started/13_inheritance.rst:0 msgid "Unlink" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:982 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.unlink:1 +msgid "Deletes the records in ``self``." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.unlink:3 +msgid "if the user is not allowed to delete all the given records" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.unlink:4 +msgid "if the record is default property for other records" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:986 msgid "Record(set) information" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:988 -msgid "Returns the environment of the given recordset." -msgstr "" - -#: ../../content/developer/reference/backend/orm.rst:990 -msgid ":class:`~odoo.api.Environment`" +#: ../../docstring of odoo.models.Model.ids:1 +msgid "Return the list of actual record ids corresponding to ``self``." msgstr "" #: ../../content/developer/reference/backend/orm.rst:992 +msgid "Returns the environment of the given recordset." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:994 +msgid ":class:`~odoo.api.Environment`" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:996 msgid "Environment documentation" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1003 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.exists:1 +msgid "Returns the subset of records in ``self`` that exist. It can be used as a test on records::" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.exists:7 +msgid "By convention, new records are returned as existing." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.ensure_one:1 +msgid "Verify that the current recordset holds a single record." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.ensure_one:3 +msgid "``len(self) != 1``" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:1 +msgid "Return some metadata about the given records." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:3 +msgid "list of ownership dictionaries for each requested record" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:4 +msgid "list of dictionaries with the following keys: * id: object id * create_uid: user who created the record * create_date: date when the record was created * write_uid: last user who changed the record * write_date: date of the last change to the record * xmlid: XML ID to use to refer to this record (if there is one), in format ``module.name`` * xmlids: list of dict with xmlid in format ``module.name``, and noupdate as boolean * noupdate: A boolean telling if the record will be updated or not" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:4 +msgid "list of dictionaries with the following keys:" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:6 +msgid "id: object id" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:7 +msgid "create_uid: user who created the record" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:8 +msgid "create_date: date when the record was created" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:9 +msgid "write_uid: last user who changed the record" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:10 +msgid "write_date: date of the last change to the record" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:11 +msgid "xmlid: XML ID to use to refer to this record (if there is one), in format ``module.name``" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:12 +msgid "xmlids: list of dict with xmlid in format ``module.name``, and noupdate as boolean" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.get_metadata:13 +msgid "noupdate: A boolean telling if the record will be updated or not" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:1007 #: ../../content/developer/reference/frontend/assets.rst:103 msgid "Operations" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1005 +#: ../../content/developer/reference/backend/orm.rst:1009 msgid "Recordsets are immutable, but sets of the same model can be combined using various set operations, returning new recordsets." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1010 +#: ../../content/developer/reference/backend/orm.rst:1014 msgid "``record in set`` returns whether ``record`` (which must be a 1-element recordset) is present in ``set``. ``record not in set`` is the inverse operation" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1013 +#: ../../content/developer/reference/backend/orm.rst:1017 msgid "``set1 <= set2`` and ``set1 < set2`` return whether ``set1`` is a subset of ``set2`` (resp. strict)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1015 +#: ../../content/developer/reference/backend/orm.rst:1019 msgid "``set1 >= set2`` and ``set1 > set2`` return whether ``set1`` is a superset of ``set2`` (resp. strict)" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1017 +#: ../../content/developer/reference/backend/orm.rst:1021 msgid "``set1 | set2`` returns the union of the two recordsets, a new recordset containing all records present in either source" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1019 +#: ../../content/developer/reference/backend/orm.rst:1023 msgid "``set1 & set2`` returns the intersection of two recordsets, a new recordset containing only records present in both sources" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1021 +#: ../../content/developer/reference/backend/orm.rst:1025 msgid "``set1 - set2`` returns a new recordset containing only records of ``set1`` which are *not* in ``set2``" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1024 +#: ../../content/developer/reference/backend/orm.rst:1028 msgid "Recordsets are iterable so the usual Python tools are available for transformation (:func:`python:map`, :func:`python:sorted`, :func:`~python:itertools.ifilter`, ...) however these return either a :class:`python:list` or an :term:`python:iterator`, removing the ability to call methods on their result, or to use set operations." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1030 +#: ../../content/developer/reference/backend/orm.rst:1034 msgid "Recordsets therefore provide the following operations returning recordsets themselves (when possible):" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1034 +#: ../../content/developer/reference/backend/orm.rst:1038 #: ../../content/developer/tutorials/getting_started/07_basicviews.rst:0 msgid "Filter" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1041 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered:1 +msgid "Return the records in ``self`` satisfying ``func``." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered:3 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:5 +msgid "a function or a dot-separated sequence of field names" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered:5 +msgid "recordset of records satisfying func, may be empty." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered_domain:1 +msgid "Return the records in ``self`` satisfying the domain and keeping the same order." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.filtered_domain:3 +msgid ":ref:`A search domain `." +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:1045 #: ../../content/developer/reference/user_interface/view_architecture.rst:3961 msgid "Map" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1047 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:1 +msgid "Apply ``func`` on all records in ``self``, and return the result as a list or a recordset (if ``func`` return recordsets). In the latter case, the order of the returned recordset is arbitrary." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:7 +msgid "self if func is falsy, result of func applied to all ``self`` records." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.mapped:15 +msgid "The provided function can be a string to get field values:" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:1051 msgid "Since V13, multi-relational field access is supported and works like a mapped call:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1056 +#: ../../content/developer/reference/backend/orm.rst:1060 msgid "Sort" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1061 +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sorted:1 +msgid "Return the recordset ``self`` ordered by ``key``." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sorted:3 +msgid "either a function of one argument that returns a comparison key for each record, or a field name, or ``None``, in which case records are ordered according the default model's order" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.sorted:7 +msgid "if ``True``, return the result in reverse order" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:1065 msgid "Grouping" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1068 -msgid "Inheritance and extension" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.grouped:1 +msgid "Eagerly groups the records of ``self`` by the ``key``, returning a dict from the ``key``'s result to recordsets. All the resulting recordsets are guaranteed to be part of the same prefetch-set." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1070 -msgid "Odoo provides three different mechanisms to extend models in a modular way:" +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.grouped:5 +msgid "Provides a convenience method to partition existing recordsets without the overhead of a :meth:`~.read_group`, but performs no aggregation." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.grouped:8 +msgid "unlike :func:`itertools.groupby`, does not care about input ordering, however the tradeoff is that it can not be lazy" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel.grouped:11 +msgid "either a callable from a :class:`Model` to a (hashable) value, or a field name. In the latter case, it is equivalent to ``itemgetter(key)`` (aka the named field's value)" msgstr "" #: ../../content/developer/reference/backend/orm.rst:1072 -msgid "creating a new model from an existing one, adding new information to the copy but leaving the original module as-is" +msgid "Inheritance and extension" msgstr "" #: ../../content/developer/reference/backend/orm.rst:1074 -msgid "extending models defined in other modules in-place, replacing the previous version" +msgid "Odoo provides three different mechanisms to extend models in a modular way:" msgstr "" #: ../../content/developer/reference/backend/orm.rst:1076 +msgid "creating a new model from an existing one, adding new information to the copy but leaving the original module as-is" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:1078 +msgid "extending models defined in other modules in-place, replacing the previous version" +msgstr "" + +#: ../../content/developer/reference/backend/orm.rst:1080 msgid "delegating some of the model's fields to records it contains" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1082 +#: ../../content/developer/reference/backend/orm.rst:1086 msgid "Classical inheritance" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1084 +#: ../../content/developer/reference/backend/orm.rst:1088 msgid "When using the :attr:`~odoo.models.Model._inherit` and :attr:`~odoo.models.Model._name` attributes together, Odoo creates a new model using the existing one (provided via :attr:`~odoo.models.Model._inherit`) as a base. The new model gets all the fields, methods and meta-information (defaults & al) from its base." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1112 +#: ../../content/developer/reference/backend/orm.rst:1116 msgid "and using them::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1120 +#: ../../content/developer/reference/backend/orm.rst:1124 msgid "will yield:" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1122 +#: ../../content/developer/reference/backend/orm.rst:1126 msgid "\"This is model 0 record A\" \"This is model 1 record B\"" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1125 +#: ../../content/developer/reference/backend/orm.rst:1129 msgid "the second model has inherited from the first model's ``check`` method and its ``name`` field, but overridden the ``call`` method, as when using standard :ref:`Python inheritance `." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1130 +#: ../../content/developer/reference/backend/orm.rst:1134 msgid "Extension" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1132 +#: ../../content/developer/reference/backend/orm.rst:1136 msgid "When using :attr:`~odoo.models.Model._inherit` but leaving out :attr:`~odoo.models.Model._name`, the new model replaces the existing one, essentially extending it in-place. This is useful to add new fields or methods to existing models (created in other modules), or to customize or reconfigure them (e.g. to change their default sort order)::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1154 +#: ../../content/developer/reference/backend/orm.rst:1158 msgid "will yield::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1161 +#: ../../content/developer/reference/backend/orm.rst:1165 msgid "It will also yield the various :ref:`automatic fields ` unless they've been disabled" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1165 +#: ../../content/developer/reference/backend/orm.rst:1169 msgid "Delegation" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1167 +#: ../../content/developer/reference/backend/orm.rst:1171 msgid "The third inheritance mechanism provides more flexibility (it can be altered at runtime) but less power: using the :attr:`~odoo.models.Model._inherits` a model *delegates* the lookup of any field not found on the current model to \"children\" models. The delegation is performed via :class:`~odoo.fields.Reference` fields automatically set up on the parent model." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1174 +#: ../../content/developer/reference/backend/orm.rst:1178 msgid "The main difference is in the meaning. When using Delegation, the model **has one** instead of **is one**, turning the relationship in a composition instead of inheritance::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1216 +#: ../../content/developer/reference/backend/orm.rst:1220 #: ../../content/developer/reference/frontend/qweb.rst:25 #: ../../content/developer/reference/frontend/qweb.rst:35 #: ../../content/developer/reference/frontend/qweb.rst:329 msgid "will result in::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1221 +#: ../../content/developer/reference/backend/orm.rst:1225 msgid "and it's possible to write directly on the delegated field::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1225 +#: ../../content/developer/reference/backend/orm.rst:1229 msgid "when using delegation inheritance, methods are *not* inherited, only fields" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1230 +#: ../../content/developer/reference/backend/orm.rst:1234 msgid "`_inherits` is more or less implemented, avoid it if you can;" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1231 +#: ../../content/developer/reference/backend/orm.rst:1235 msgid "chained `_inherits` is essentially not implemented, we cannot guarantee anything on the final behavior." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1235 +#: ../../content/developer/reference/backend/orm.rst:1239 msgid "Fields Incremental Definition" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1237 +#: ../../content/developer/reference/backend/orm.rst:1241 msgid "A field is defined as class attribute on a model class. If the model is extended, one can also extend the field definition by redefining a field with the same name and same type on the subclass. In that case, the attributes of the field are taken from the parent class and overridden by the ones given in subclasses." msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1243 +#: ../../content/developer/reference/backend/orm.rst:1247 msgid "For instance, the second class below only adds a tooltip on the field ``state``::" msgstr "" -#: ../../content/developer/reference/backend/orm.rst:1257 +#: ../../content/developer/reference/backend/orm.rst:1261 msgid "Error management" msgstr "" +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions:1 +msgid "The Odoo Exceptions module defines a few core exception types." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions:3 +msgid "Those types are understood by the RPC layer. Any other exception type bubbling until the RPC layer will be treated as a 'Server error'." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions:8 +msgid "If you consider introducing new exceptions, check out the :mod:`odoo.addons.test_exceptions` module." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.AccessDenied:1 +msgid "Login/password error." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.AccessDenied:5 +msgid "No traceback." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.AccessDenied:9 +msgid "When you try to log with a wrong password." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.AccessError:1 +msgid "Access rights error." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.AccessError:5 +msgid "When you try to read a record that you are not allowed to." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.CacheMiss:1 +msgid "Missing value(s) in cache." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.CacheMiss:5 +msgid "When you try to read a value in a flushed cache." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.MissingError:1 +msgid "Missing record(s)." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.MissingError:5 +msgid "When you try to write on a deleted record." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.RedirectWarning:1 +msgid "Warning with a possibility to redirect the user instead of simply displaying the warning message." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.RedirectWarning:4 +msgid "exception message and frontend modal content" +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.RedirectWarning:5 +msgid "id of the action where to perform the redirection" +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.RedirectWarning:6 +msgid "text to put on the button that will trigger the redirection." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.RedirectWarning:8 +msgid "parameter passed to action_id. Can be used to limit a view to active_ids for example." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.UserError:1 +msgid "Generic error managed by the client." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.UserError:3 +msgid "Typically when the user tries to do something that has no sense given the current state of a record. Semantically comparable to the generic 400 HTTP status codes." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.ValidationError:1 +msgid "Violation of python constraints." +msgstr "" + +#: ../../../odoo/odoo/exceptions.py:docstring of odoo.exceptions.ValidationError:5 +msgid "When you try to create a new user with a login which already exist in the db." +msgstr "" + #: ../../content/developer/reference/backend/orm/changelog.rst:5 msgid "Changelog" msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:8 -msgid "Odoo Online version 16.4" +msgid "Odoo version 17.0" msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:10 -msgid "`odoo.models.Model.name_get` has been deprecated with `#122085 `_. Read `display_name` instead." +msgid "Introduce an :class:`~odoo.tools.SQL` wrapper object to make SQL composition easier and safer with respect to SQL injections. Methods of the ORM now use it internally. Introduced by `#134677 `_." msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:15 -msgid "Odoo Online version 16.3" +msgid "Odoo Online version 16.4" msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:17 -msgid "`odoo.models.Model._read_group` has a new signature with `#110737 `_" +msgid "Method :meth:`~odoo.models.Model.name_get` has been deprecated with `#122085 `_. Read field `display_name` instead." msgstr "" -#: ../../content/developer/reference/backend/orm/changelog.rst:21 +#: ../../content/developer/reference/backend/orm/changelog.rst:22 +msgid "Odoo Online version 16.3" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:24 +msgid "Method :meth:`~odoo.models.Model._read_group` has a new signature with `#110737 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:28 msgid "Odoo Online version 16.2" msgstr "" -#: ../../content/developer/reference/backend/orm/changelog.rst:23 -msgid "Refactor the implementation of searching and reading methods to be able to combine both in a minimal number of SQL queries. We introduce two new methods `odoo.models.Model.search_fetch` and `odoo.models.Model.fetch` that take advantage of the combination. More details can be found on the pull request `#112126 `_." +#: ../../content/developer/reference/backend/orm/changelog.rst:30 +msgid "Refactor the implementation of searching and reading methods to be able to combine both in a minimal number of SQL queries. We introduce two new methods :meth:`~odoo.models.Model.search_fetch` and :meth:`~odoo.models.Model.fetch` that take advantage of the combination. More details can be found on the pull request `#112126 `_." msgstr "" -#: ../../content/developer/reference/backend/orm/changelog.rst:30 +#: ../../content/developer/reference/backend/orm/changelog.rst:37 msgid "Odoo version 16.0" msgstr "" -#: ../../content/developer/reference/backend/orm/changelog.rst:32 +#: ../../content/developer/reference/backend/orm/changelog.rst:39 msgid "Translations for translated fields are stored as JSONB values with `#97692 `_ and `#101115 `_. Code translations are no longer stored into the database. They become static and are extracted from the PO files when needed." msgstr "" -#: ../../content/developer/reference/backend/orm/changelog.rst:39 -msgid "Odoo Online version 15.4" -msgstr "" - -#: ../../content/developer/reference/backend/orm/changelog.rst:41 -msgid "New API for flushing to the database and invalidating the cache with `#87527 `_. New methods have been added to `odoo.models.Model` and `odoo.api.Environment`, and are less confusing about what is actually done in each case. See the section :ref:`SQL Execution `." +#: ../../content/developer/reference/backend/orm/changelog.rst:44 +msgid ":meth:`~odoo.models.Model.search_count` takes the :attr:`limit` argument into account with `#95589 `_. It limits the number of records to count, improving performance when a partial result is acceptable." msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:48 -msgid "Odoo Online version 15.2" +msgid "Odoo Online version 15.4" msgstr "" #: ../../content/developer/reference/backend/orm/changelog.rst:50 +msgid "New API for flushing to the database and invalidating the cache with `#87527 `_. New methods have been added to `odoo.models.Model` and `odoo.api.Environment`, and are less confusing about what is actually done in each case. See the section :ref:`SQL Execution `." +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:57 +msgid "Odoo Online version 15.3" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:59 +msgid "The argument `args` is renamed to `domain` for :meth:`~odoo.models.Model.search`, :meth:`~odoo.models.Model.search_count` and :meth:`~odoo.models.Model._search`. `#83687 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:61 +msgid ":meth:`~odoo.models.Model.filtered_domain` conserves the order of the current recordset. `#83687 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:62 +msgid ":meth:`~odoo.models.Model.browse` does not accept :class:`str` as `ids`. `#83687 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:63 +msgid "The methods :meth:`~odoo.models.Model.fields_get_keys` and :meth:`~odoo.models.Model.get_xml_id` on :class:`~odoo.models.Model` are deprecated. `#83687 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:64 +msgid "The method :meth:`~odoo.models.Model._mapped_cache` is removed. `#83687 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:65 +msgid "Remove the :attr:`limit` attribute of :class:`~odoo.fields.One2many` and :class:`~odoo.fields.Many2many`. `#83687 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:68 +msgid "Odoo Online version 15.2" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:70 msgid "Specific index types on fields: With `#83274 `_ and `#83015 `_, developers can now define what type of indexes can be used on fields by PostgreSQL. See the :ref:`index property ` of `odoo.fields.Field`." msgstr "" +#: ../../content/developer/reference/backend/orm/changelog.rst:74 +msgid "The :attr:`_sequence` attribute of :class:`~odoo.models.Model` is removed. Odoo lets PostgreSQL use the default sequence of the primary key. `#82727 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:75 +msgid "The method :meth:`~odoo.models.Model._write` does not raise an error for non-existing records. `#82727 `_" +msgstr "" + +#: ../../content/developer/reference/backend/orm/changelog.rst:76 +msgid "The :attr:`column_format` and :attr:`deprecated` attributes of :class:`~odoo.fields.Field` are removed. `#82727 `_" +msgstr "" + #: ../../content/developer/reference/backend/performance.rst:5 msgid "Performance" msgstr "" @@ -8185,6 +11398,34 @@ msgstr "" msgid "The profiler is called outside of the `assertQueryCount` in order to catch queries made when exiting the context manager (e.g., flush)." msgstr "" +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler:1 +msgid "Context manager to use to start the recording of some execution. Will save sql and async stack trace by default." +msgstr "" + +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler.__init__:1 +msgid "database name to use to save results. Will try to define database automatically by default. Use value ``None`` to not save results in a database." +msgstr "" + +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler.__init__:4 +msgid "list of string and Collector object Ex: ['sql', PeriodicCollector(interval=0.2)]. Use `None` for default collectors" +msgstr "" + +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler.__init__:5 +msgid "session description to use to reproup multiple profile. use make_session(name) for default format." +msgstr "" + +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler.__init__:6 +msgid "description of the current profiler Suggestion: (route name/test method/loading module, ...)" +msgstr "" + +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler.__init__:7 +msgid "flag to disable gc durring profiling (usefull to avoid gc while profiling, especially during sql execution)" +msgstr "" + +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.Profiler.__init__:8 +msgid "parameters usable by collectors (like frame interval)" +msgstr "" + #: ../../content/developer/reference/backend/performance.rst:106 msgid "When the profiler is enabled, all executions of a test method are profiled and saved into an `ir.profile` record. Such records are grouped into a single profiling session. This is especially useful when using the :code:`@warmup` and :code:`@users` decorators." msgstr "" @@ -8273,6 +11514,9 @@ msgstr "" #: ../../content/developer/reference/frontend/services.rst:850 #: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:187 #: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:188 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.name:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.name:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.name:1 msgid "Name" msgstr "" @@ -8369,6 +11613,10 @@ msgstr "" msgid "It is especially useful to debug query counts, or to add information to the :ref:`Periodic collector ` in the combined speedscope view." msgstr "" +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.SQLCollector:1 +msgid "Saves all executed queries in the current thread with the call stack." +msgstr "" + #: ../../content/developer/reference/backend/performance.rst:225 msgid "Periodic collector" msgstr "" @@ -8385,6 +11633,14 @@ msgstr "" msgid "It is one of the best way to analyse performance as it should have a very low impact on the execution time thanks to its separate thread." msgstr "" +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.PeriodicCollector:1 +msgid "Record execution frames asynchronously at most every `interval` seconds." +msgstr "" + +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.PeriodicCollector:3 +msgid "time to wait in seconds between two samples." +msgstr "" + #: ../../content/developer/reference/backend/performance.rst:244 msgid "QWeb collector" msgstr "" @@ -8397,6 +11653,10 @@ msgstr "" msgid "It is mainly useful for optimizing views." msgstr "" +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.QwebCollector:1 +msgid "Record qweb execution with directive trace." +msgstr "" + #: ../../content/developer/reference/backend/performance.rst:258 msgid "Sync collector" msgstr "" @@ -8409,6 +11669,10 @@ msgstr "" msgid "It can be useful to debug and understand complex flows, and follow their execution in the code. It is however not recommended for performance analysis because the overhead is high." msgstr "" +#: ../../../odoo/odoo/tools/profiler.py:docstring of odoo.tools.profiler.SyncCollector:1 +msgid "Record complete execution synchronously. Note that --limit-memory-hard may need to be increased when launching Odoo." +msgstr "" + #: ../../content/developer/reference/backend/performance.rst:271 msgid "Performance pitfalls" msgstr "" @@ -8449,6 +11713,62 @@ msgstr "" msgid "To populate a given model, the following methods and attributes can be defined." msgstr "" +#: ../../docstring of odoo.models.Model._populate_sizes:1 +msgid "Return a dict mapping symbolic sizes (``'small'``, ``'medium'``, ``'large'``) to integers, giving the minimal number of records that :meth:`_populate` should create." +msgstr "" + +#: ../../docstring of odoo.models.Model._populate_sizes:4 +msgid "The default population sizes are:" +msgstr "" + +#: ../../docstring of odoo.models.Model._populate_sizes:6 +msgid "``small`` : 10" +msgstr "" + +#: ../../docstring of odoo.models.Model._populate_sizes:7 +msgid "``medium`` : 100" +msgstr "" + +#: ../../docstring of odoo.models.Model._populate_sizes:8 +msgid "``large`` : 1000" +msgstr "" + +#: ../../docstring of odoo.models.Model._populate_dependencies:1 +msgid "Return the list of models which have to be populated before the current one." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate:1 +msgid "Create records to populate this model." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate:3 +msgid "symbolic size for the number of records: ``'small'``, ``'medium'`` or ``'large'``" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:1 +msgid "Generates a factory for the different fields of the model." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:3 +msgid "``factory`` is a generator of values (dict of field values)." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:5 +msgid "Factory skeleton::" +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:12 +msgid "See :mod:`odoo.tools.populate` for population tools and applications." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:14 +msgid "list of pairs(field_name, factory) where `factory` is a generator function." +msgstr "" + +#: ../../../odoo/odoo/models.py:docstring of odoo.models.BaseModel._populate_factories:19 +msgid "It is the responsibility of the generator to handle the field_name correctly. The generator could generate values for multiple fields together. In this case, the field_name should be more a \"field_group\" (should be begin by a \"_\"), covering the different fields updated by the generator (e.g. \"_address\" for a generator updating multiple address fields)." +msgstr "" + #: ../../content/developer/reference/backend/performance.rst:314 msgid "You have to define at least :meth:`~odoo.models.Model._populate` or :meth:`~odoo.models.Model._populate_factories` on the model to enable database population." msgstr "" @@ -8461,6 +11781,81 @@ msgstr "" msgid "Multiple population tools are available to easily create the needed data generators." msgstr "" +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:1 +msgid "Return a factory for an iterator of values dicts that combines all ``vals`` for the field with the other field values in input." +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:4 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:5 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:4 +msgid "list in which a value will be chosen, depending on `weights`" +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:5 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:6 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:5 +msgid "list of probabilistic weights" +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:6 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:6 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:7 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:6 +msgid "optional initialization of the random number generator" +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:7 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:8 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:7 +msgid "(val, counter, values) --> formatted_value" +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:8 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:9 +msgid "if defined, factory used when vals has been consumed." +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.cartesian:9 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:7 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.constant:4 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:10 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:7 +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:9 +msgid "function of the form (iterator, field_name, model_name) -> values" +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:1 +msgid "Return a factory for an iterator of values dicts that computes the field value as ``function(values, counter, random)``, where ``values`` is the other field values, ``counter`` is an integer, and ``random`` is a pseudo-random number generator." +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.compute:5 +msgid "(values, counter, random) --> field_values" +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.constant:1 +msgid "Return a factory for an iterator of values dicts that sets the field to the given value in each input dict." +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.iterate:1 +msgid "Return a factory for an iterator of values dicts that picks a value among ``vals`` for each input. Once all ``vals`` have been used once, resume as ``then`` or as a ``randomize`` generator." +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:1 +msgid "Return a factory for an iterator of values dicts that sets the field to a random integer between a and b included in each input dict." +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:4 +msgid "minimal random value" +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randint:5 +msgid "maximal random value" +msgstr "" + +#: ../../../odoo/odoo/tools/populate.py:docstring of odoo.tools.populate.randomize:1 +msgid "Return a factory for an iterator of values dicts with pseudo-randomly chosen values (among ``vals``) for a field." +msgstr "" + #: ../../content/developer/reference/backend/performance.rst:370 msgid "Good practices" msgstr "" @@ -8478,78 +11873,78 @@ msgid "Don't call a method that runs SQL queries while looping over a recordset msgstr "" #: ../../content/developer/reference/backend/performance.rst:391 -msgid "Instead, replace the `search_count` with a `read_group` to execute one SQL query for the entire batch of records." +msgid "Instead, replace the `search_count` with a `_read_group` to execute one SQL query for the entire batch of records." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:410 +#: ../../content/developer/reference/backend/performance.rst:405 msgid "This example is not optimal nor correct in all cases. It is only a substitute for a `search_count`. Another solution could be to prefetch and count the inverse `One2many` field." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:414 +#: ../../content/developer/reference/backend/performance.rst:409 msgid "Don't create records one after another." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:422 +#: ../../content/developer/reference/backend/performance.rst:417 msgid "Instead, accumulate the create values and call the `create` method on the batch. Doing so has mostly no impact and helps the framework optimize fields computation." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:434 +#: ../../content/developer/reference/backend/performance.rst:429 msgid "Fail to prefetch the fields of a recordset while browsing a single record inside a loop." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:443 +#: ../../content/developer/reference/backend/performance.rst:438 msgid "Instead, browse the entire recordset first." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:452 +#: ../../content/developer/reference/backend/performance.rst:447 msgid "We can verify that the records are prefetched in batch by reading the field `prefetch_ids` which includes each of the record ids.browsing all records together is unpractical," msgstr "" -#: ../../content/developer/reference/backend/performance.rst:455 +#: ../../content/developer/reference/backend/performance.rst:450 msgid "If needed, the `with_prefetch` method can be used to disable batch prefetching:" msgstr "" -#: ../../content/developer/reference/backend/performance.rst:465 +#: ../../content/developer/reference/backend/performance.rst:460 msgid "Reduce the algorithmic complexity" msgstr "" -#: ../../content/developer/reference/backend/performance.rst:467 +#: ../../content/developer/reference/backend/performance.rst:462 msgid "Algorithmic complexity is a measure of how long an algorithm would take to complete in regard to the size `n` of the input. When the complexity is high, the execution time can grow quickly as the input becomes larger. In some cases, the algorithmic complexity can be reduced by preparing the input's data correctly." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:473 +#: ../../content/developer/reference/backend/performance.rst:468 msgid "For a given problem, let's consider a naive algorithm crafted with two nested loops for which the complexity in in O(n²)." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:485 +#: ../../content/developer/reference/backend/performance.rst:480 msgid "Assuming that all results have a different id, we can prepare the data to reduce the complexity." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:495 +#: ../../content/developer/reference/backend/performance.rst:490 msgid "Choosing the bad data structure to hold the input can lead to quadratic complexity." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:505 +#: ../../content/developer/reference/backend/performance.rst:500 msgid "If `invalid_ids` is a list-like data structure, the complexity of the algorithm may be quadratic." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:507 +#: ../../content/developer/reference/backend/performance.rst:502 msgid "Instead, prefer using set operations like casting `invalid_ids` to a set." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:517 +#: ../../content/developer/reference/backend/performance.rst:512 msgid "Depending on the input, recordset operations can also be used." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:529 +#: ../../content/developer/reference/backend/performance.rst:524 msgid "Use indexes" msgstr "" -#: ../../content/developer/reference/backend/performance.rst:531 +#: ../../content/developer/reference/backend/performance.rst:526 msgid "Database indexes can help fasten search operations, be it from a search in the or through the user interface." msgstr "" -#: ../../content/developer/reference/backend/performance.rst:539 +#: ../../content/developer/reference/backend/performance.rst:534 msgid "Be careful not to index every field as indexes consume space and impact on performance when executing one of `INSERT`, `UPDATE`, and `DELETE`." msgstr "" @@ -9357,6 +12752,85 @@ msgstr "" msgid "The test runner will simply run any test case, as described in the official `unittest documentation`_, but Odoo provides a number of utilities and helpers related to testing Odoo content (modules, mainly):" msgstr "" +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.TransactionCase:1 +msgid "Test class in which all test methods are run in a single transaction, but each test method is run in a sub-transaction managed by a savepoint. The transaction's cursor is always closed without committing." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.TransactionCase:5 +msgid "The data setup common to all methods should be done in the class method `setUpClass`, so that it is done once for all test methods. This is useful for test cases containing fast tests but with significant database setup common to all cases (complex in-db test data)." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.TransactionCase:10 +msgid "After being run, each test method cleans up the record cache and the registry cache. However, there is no cleanup of the registry models and fields. If a test modifies the registry (custom models and/or fields), it should prepare the necessary cleanup (`self.registry.reset_changes()`)." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:1 +msgid "Returns a record object for the provided :term:`external identifier`" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:4 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:4 +msgid "fully-qualified :term:`external identifier`, in the form :samp:`{module}.{identifier}`" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:0 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:0 +msgid "raise" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:6 +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:6 +msgid "ValueError if not found" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.browse_ref:7 +msgid ":class:`~odoo.models.BaseModel`" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:1 +msgid "Returns database ID for the provided :term:`external identifier`, shortcut for ``_xmlid_lookup``" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.BaseCase.ref:7 +msgid "registered id" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.SingleTransactionCase:1 +msgid "TestCase in which all test methods are run in the same transaction, the transaction is started with the first test method and rolled back at the end of the last." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.HttpCase:1 +msgid "Transactional HTTP TestCase with url_open and Chrome headless helpers." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.HttpCase.browser_js:1 +msgid "Test js code running in the browser - optionnally log as 'login' - load page given by url_path - wait for ready object to be available - eval(code) inside the page" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.HttpCase.browser_js:7 +msgid "To signal success test do: console.log('test successful') To signal test failure raise an exception or call console.error with a message. Test will stop when a failure occurs if error_checker is not defined or returns True for this message" +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.tagged:1 +msgid "A decorator to tag BaseCase objects." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.tagged:3 +msgid "Tags are stored in a set that can be accessed from a 'test_tags' attribute." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.tagged:5 +msgid "A tag prefixed by '-' will remove the tag e.g. to remove the 'standard' tag." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.tagged:7 +msgid "By default, all Test classes from odoo.tests.common have a test_tags attribute that defaults to 'standard' and 'at_install'." +msgstr "" + +#: ../../../odoo/odoo/tests/common.py:docstring of odoo.tests.common.tagged:10 +msgid "When using class inheritance, the tags ARE inherited." +msgstr "" + #: ../../content/developer/reference/backend/testing.rst:61 msgid "By default, tests are run once right after the corresponding module has been installed. Test cases can also be configured to run after all modules have been installed, and not run right after the module installation::" msgstr "" @@ -9369,6 +12843,133 @@ msgstr "" msgid "Test methods must start with ``test_``" msgstr "" +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:1 +msgid "Server-side form view implementation (partial)" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:3 +msgid "Implements much of the \"form view\" manipulation flow, such that server-side tests can more properly reflect the behaviour which would be observed when manipulating the interface:" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:7 +msgid "call the relevant onchanges on \"creation\";" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:8 +msgid "call the relevant onchanges on setting fields;" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:9 +msgid "properly handle defaults & onchanges around x2many fields." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:11 +msgid "Saving the form returns the current record (which means the created record if in creation mode). It can also be accessed as ``form.record``, but only when the form has no pending changes." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:15 +msgid "Regular fields can just be assigned directly to the form. In the case of :class:`~odoo.fields.Many2one` fields, one can assign a recordset::" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:23 +msgid "One can also use the form as a context manager to create or edit a record. The changes are automatically saved at the end of the scope::" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:38 +msgid "For :class:`~odoo.fields.Many2many` fields, the field itself is a :class:`~odoo.tests.common.M2MProxy` and can be altered by adding or removing records::" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:46 +msgid "Finally :class:`~odoo.fields.One2many` are reified as :class:`~O2MProxy`." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:48 +msgid "Because the :class:`~odoo.fields.One2many` only exists through its parent, it is manipulated more directly by creating \"sub-forms\" with the :meth:`~O2MProxy.new` and :meth:`~O2MProxy.edit` methods. These would normally be used as context managers since they get saved in the parent record::" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:69 +msgid "empty or singleton recordset. An empty recordset will put the view in \"creation\" mode from default values, while a singleton will put it in \"edit\" mode and only load the view's data." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form:74 +msgid "the id, xmlid or actual view object to use for onchanges and view constraints. If none is provided, simply loads the default view for the model." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.Form.record:1 +msgid "Return the record being edited by the form. This attribute is readonly and can only be accessed when the form has no pending changes." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form.save:1 +msgid "Save the form (if necessary) and return the current record:" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form.save:3 +msgid "does not save ``readonly`` fields;" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form.save:4 +msgid "does not save unmodified fields (during edition) — any assignment or onchange return marks the field as modified, even if set to its current value." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form.save:8 +msgid "When nothing must be saved, it simply returns the current record." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.Form.save:10 +msgid "if the form has any unfilled required field" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.M2MProxy:1 +msgid "Proxy object for editing the value of a many2many field." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.M2MProxy:3 +msgid "Behaves as a :class:`~collection.Sequence` of recordsets, can be indexed or sliced to get actual underlying recordsets." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.M2MProxy.add:1 +msgid "Adds ``record`` to the field, the record must already exist." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.M2MProxy.add:3 +msgid "The addition will only be finalized when the parent record is saved." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.M2MProxy.clear:1 +msgid "Removes all existing records in the m2m" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.M2MProxy.remove:1 +msgid "Removes a record at a certain index or with a provided id from the field." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy:1 +msgid "Proxy object for editing the value of a one2many field." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.edit:1 +msgid "Returns a :class:`Form` to edit the pre-existing :class:`~odoo.fields.One2many` record." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.edit:4 +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.new:4 +msgid "The form is created from the list view if editable, or the field's form view otherwise." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.edit:7 +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.new:7 +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.remove:3 +msgid "if the field is not editable" +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.new:1 +msgid "Returns a :class:`Form` for a new :class:`~odoo.fields.One2many` record, properly initialised." +msgstr "" + +#: ../../../odoo/odoo/tests/form.py:docstring of odoo.tests.form.O2MProxy.remove:1 +msgid "Removes the record at ``index`` from the parent form." +msgstr "" + #: ../../content/developer/reference/backend/testing.rst:102 msgid "Running tests" msgstr "" @@ -11430,21 +15031,6 @@ msgstr "" msgid "You can either use this service directly in the Accounting, Expense, or Recruitment App or through the API. The Extract API, which is detailed in the next section, allows you to integrate our service directly into your own projects." msgstr "" -#: ../../content/developer/reference/extract_api.rst:22 -#: ../../content/developer/reference/frontend/javascript_reference.rst:17 -#: ../../content/developer/reference/frontend/services.rst:144 -#: ../../content/developer/reference/frontend/services.rst:182 -#: ../../content/developer/reference/frontend/services.rst:362 -#: ../../content/developer/reference/frontend/services.rst:408 -#: ../../content/developer/reference/frontend/services.rst:522 -#: ../../content/developer/reference/frontend/services.rst:612 -#: ../../content/developer/reference/frontend/services.rst:708 -#: ../../content/developer/reference/frontend/services.rst:759 -#: ../../content/developer/reference/frontend/services.rst:834 -#: ../../content/developer/reference/user_interface/scss_inheritance.rst:6 -msgid "Overview" -msgstr "" - #: ../../content/developer/reference/extract_api.rst:24 msgid "The extract API uses the JSON-RPC2_ protocol; its endpoint routes are located at `https://extract.api.odoo.com`." msgstr "" @@ -12200,6 +15786,7 @@ msgid "There are three different asset types: code (`js` files), style (`css` or msgstr "" #: ../../content/developer/reference/frontend/assets.rst:27 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.code:1 msgid "Code" msgstr "" @@ -12457,6 +16044,7 @@ msgstr "" #: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:216 #: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:263 #: ../../content/developer/tutorials/getting_started/13_inheritance.rst:155 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.account_type:1 msgid "Type" msgstr "" @@ -12497,6 +16085,18 @@ msgstr "" msgid "This is done by creating `ir.asset` records. Those will be processed as if they were found in a module manifest, and they give the same expressive power as their manifest counterparts." msgstr "" +#: ../../../odoo/odoo/addons/base/models/ir_asset.py:docstring of odoo.addons.base.models.ir_asset.IrAsset:1 +msgid "This model contributes to two things:" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_asset.py:docstring of odoo.addons.base.models.ir_asset.IrAsset:3 +msgid "1. It provides a function returning a list of all file paths declared in a given list of addons (see _get_addon_paths);" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_asset.py:docstring of odoo.addons.base.models.ir_asset.IrAsset:6 +msgid "2. It allows to create 'ir.asset' records to add additional directives to certain bundles." +msgstr "" + #: ../../content/developer/reference/frontend/assets.rst:333 #: ../../content/developer/reference/frontend/odoo_editor.rst:149 #: ../../content/developer/reference/frontend/odoo_editor.rst:175 @@ -19052,11 +22652,6 @@ msgstr "" msgid "This function must create a component and return it. This component is mounted inside the effect component container." msgstr "" -#: ../../content/developer/reference/frontend/services.rst:309 -#: ../../content/developer/reference/frontend/services.rst:393 -msgid "Example" -msgstr "" - #: ../../content/developer/reference/frontend/services.rst:311 msgid "Let's say we want to add an effect that add a sepia look at the page." msgstr "" @@ -19688,33 +23283,782 @@ msgid "Accounting" msgstr "" #: ../../content/developer/reference/standard_modules/account/account_account.rst:5 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.account_id:1 msgid "Account" msgstr "" +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount:1 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup:1 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine:1 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition:1 +msgid "Original definition from `account`" +msgstr "" + +#: ../../content/developer/reference/user_interface/view_architecture.rst:0 +#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:262 +#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:263 +#: ../../content/developer/tutorials/getting_started/08_relations.rst:73 +#: ../../content/developer/tutorials/getting_started/08_relations.rst:180 +#: ../../content/developer/tutorials/getting_started/08_relations.rst:245 +#: ../../content/developer/tutorials/getting_started/08_relations.rst:246 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.account_type:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.code:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.name:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.name:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.applicability:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.name:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.name:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.hierarchy_level:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.name:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.report_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.name:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.sequence:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_group_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.document_type:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.factor_percent:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.name:0 +msgid "required" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.name:1 +msgid "Account Name" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.currency_id:1 +msgid "Account Currency" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.currency_id:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tag_ids:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tax_ids:0 +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.parent_id:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.country_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.column_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.country_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.line_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.root_report_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.action_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.children_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.expression_ids:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.parent_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.report_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.cash_basis_transition_account_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.children_tax_ids:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.invoice_repartition_line_ids:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.refund_repartition_line_ids:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_group_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.account_id:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.tag_ids:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.tax_id:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.account_ids:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_group_id:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_id:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.state_ids:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.tax_ids:0 +msgid "comodel" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.currency_id:1 +msgid ":ref:`res.currency `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.currency_id:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.country_id:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.country_id:0 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_id:0 +msgid "possible_values" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.currency_id:1 +msgid "`odoo/addons/base/data/res_currency_data.xml `__" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.currency_id:1 +msgid "Forces all journal items in this account to have a specific currency (i.e. bank journals). If no currency is set, entries can use any currency." +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.account_type:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.applicability:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.availability_condition:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.default_opening_date_filter:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_account_type:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_hierarchy:0 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_multi_company:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_exigibility:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_scope:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.document_type:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:0 +msgid "selection" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.account_type:1 +msgid "``asset_receivable``: Receivable ``asset_cash``: Bank and Cash ``asset_current``: Current Assets ``asset_non_current``: Non-current Assets ``asset_prepayments``: Prepayments ``asset_fixed``: Fixed Assets ``liability_payable``: Payable ``liability_credit_card``: Credit Card ``liability_current``: Current Liabilities ``liability_non_current``: Non-current Liabilities ``equity``: Equity ``equity_unaffected``: Current Year Earnings ``income``: Income ``income_other``: Other Income ``expense``: Expenses ``expense_depreciation``: Depreciation ``expense_direct_cost``: Cost of Revenue ``off_balance``: Off-Balance Sheet" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.account_type:1 +msgid "Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries." +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.reconcile:1 +msgid "Allow Reconciliation" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.reconcile:1 +msgid "Check this box if this account allows invoices & payments matching of journal items." +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.note:1 +msgid "Internal Notes" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tax_ids:1 +msgid "Default Taxes" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tax_ids:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.children_tax_ids:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.tax_id:1 +msgid ":ref:`account.tax `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tag_ids:1 +msgid "Tags" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tag_ids:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.tag_ids:1 +msgid ":ref:`account.account.tag `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountAccount.tag_ids:1 +msgid "Optional tags you may want to assign for custom reporting" +msgstr "" + #: ../../content/developer/reference/standard_modules/account/account_account_tag.rst:5 msgid "Account Tag" msgstr "" +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.name:1 +msgid "Tag Name" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.applicability:1 +msgid "Applicability" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.applicability:1 +msgid "``accounts``: Accounts ``taxes``: Taxes ``products``: Products" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.active:0 +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.applicability:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.active:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.include_base_amount:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.is_base_affected:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.price_include:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.sequence:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_exigibility:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.factor_percent:0 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:0 +msgid "default" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.applicability:1 +msgid "accounts" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.color:1 +msgid "Color Index" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.active:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.active:1 +msgid "Active" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.active:1 +msgid "Set active to false to hide the Account Tag without removing it." +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.tax_negate:1 +msgid "Negate Tax Balance" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.tax_negate:1 +msgid "Check this box to negate the absolute value of the balance of the lines associated with this tag in tax report computation." +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.country_id:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.country_id:1 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_id:1 +msgid "Country" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.country_id:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.country_id:1 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_id:1 +msgid ":ref:`res.country `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.country_id:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.country_id:1 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_id:1 +msgid "`odoo/addons/base/data/res_country_data.xml `__" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account_tag.py:docstring of odoo.addons.account.models.account_account_tag.AccountAccountTag.country_id:1 +msgid "Country for which this tag is available, when applied on taxes." +msgstr "" + #: ../../content/developer/reference/standard_modules/account/account_fiscal_position.rst:5 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.name:1 msgid "Fiscal Position" msgstr "" +#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:218 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.sequence:1 +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.sequence:1 +msgid "Sequence" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.account_ids:1 +msgid "Account Mapping" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.account_ids:1 +msgid ":ref:`account.fiscal.position.account `" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.tax_ids:1 +msgid "Tax Mapping" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.tax_ids:1 +msgid ":ref:`account.fiscal.position.tax `" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.note:1 +msgid "Notes" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.note:1 +msgid "Legal mentions that have to be printed on the invoices." +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.auto_apply:1 +msgid "Detect Automatically" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.auto_apply:1 +msgid "Apply tax & account mappings on invoices automatically if the matching criterias (VAT/Country) are met." +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.vat_required:1 +msgid "VAT required" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.vat_required:1 +msgid "Apply only if partner has a VAT number." +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_id:1 +msgid "Apply only if delivery country matches." +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_group_id:1 +msgid "Country Group" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_group_id:1 +msgid ":ref:`res.country.group `" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.country_group_id:1 +msgid "Apply only if delivery country matches the group." +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.state_ids:1 +msgid "Federal States" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.state_ids:1 +msgid ":ref:`res.country.state `" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.zip_from:1 +msgid "Zip Range From" +msgstr "" + +#: ../../../odoo/addons/account/models/partner.py:docstring of odoo.addons.account.models.partner.AccountFiscalPosition.zip_to:1 +msgid "Zip Range To" +msgstr "" + #: ../../content/developer/reference/standard_modules/account/account_group.rst:5 msgid "Account Group" msgstr "" +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.parent_id:1 +msgid "Parent" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.parent_id:1 +msgid "this field is not supposed to/cannot be set manually" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.parent_id:1 +msgid ":ref:`account.group `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.code_prefix_start:1 +msgid "Code Prefix Start" +msgstr "" + +#: ../../../odoo/addons/account/models/account_account.py:docstring of odoo.addons.account.models.account_account.AccountGroup.code_prefix_end:1 +msgid "Code Prefix End" +msgstr "" + #: ../../content/developer/reference/standard_modules/account/account_report.rst:3 msgid "Report" msgstr "" +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.line_ids:1 +msgid "Lines" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.line_ids:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.children_ids:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.parent_id:1 +msgid ":ref:`account.report.line `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.column_ids:1 +msgid ":ref:`account.report.column `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.root_report_id:1 +msgid "Root Report" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.root_report_id:1 +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.report_id:1 +msgid ":ref:`account.report `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.root_report_id:1 +msgid "The report this report is a variant of." +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.only_tax_exigible:1 +msgid "Only Tax Exigible Lines" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.availability_condition:1 +msgid "Availability" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.availability_condition:1 +msgid "``country``: Country Matches ``coa``: Chart of Accounts Matches ``always``: Always" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.load_more_limit:1 +msgid "Load More Limit" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.search_bar:1 +msgid "Search Bar" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.default_opening_date_filter:1 +msgid "Default Opening" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.default_opening_date_filter:1 +msgid "``this_year``: This Year ``this_quarter``: This Quarter ``this_month``: This Month ``today``: Today ``last_month``: Last Month ``last_quarter``: Last Quarter ``last_year``: Last Year ``this_tax_period``: This Tax Period ``last_tax_period``: Last Tax Period" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_multi_company:1 +msgid "Multi-Company" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_multi_company:1 +msgid "``disabled``: Disabled ``selector``: Use Company Selector ``tax_units``: Use Tax Units" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_date_range:1 +msgid "Date Range" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_show_draft:1 +msgid "Draft Entries" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_unreconciled:1 +msgid "Unreconciled Entries" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_unfold_all:1 +msgid "Unfold All" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_period_comparison:1 +msgid "Period Comparison" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_growth_comparison:1 +msgid "Growth Comparison" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_journals:1 +msgid "Journals" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_analytic:1 +msgid "Analytic Filter" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_hierarchy:1 +msgid "Account Groups" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_hierarchy:1 +msgid "``by_default``: Enabled by Default ``optional``: Optional ``never``: Never" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_account_type:1 +msgid "Account Types" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_account_type:1 +msgid "``both``: Payable and receivable ``payable``: Payable ``receivable``: Receivable ``disabled``: Disabled" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_partner:1 +msgid "Partners" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReport.filter_fiscal_position:1 +msgid "Filter Multivat" +msgstr "" + #: ../../content/developer/reference/standard_modules/account/account_report_line.rst:3 msgid "Report Line" msgstr "" +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.expression_ids:1 +msgid ":ref:`account.report.expression `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.report_id:1 +msgid "Parent Report" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.hierarchy_level:1 +msgid "Level" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.parent_id:1 +msgid "Parent Line" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.children_ids:1 +msgid "Child Lines" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.foldable:1 +msgid "Foldable" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.foldable:1 +msgid "By default, we always unfold the lines that can be. If this is checked, the line won't be unfolded by default, and a folding button will be displayed." +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.print_on_new_page:1 +msgid "Print On New Page" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.print_on_new_page:1 +msgid "When checked this line and everything after it will be printed on a new page." +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.action_id:1 +msgid "Action" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.action_id:1 +msgid ":ref:`ir.actions.actions `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.action_id:1 +msgid "Setting this field will turn the line into a link, executing the action when clicked." +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.hide_if_zero:1 +msgid "Hide if Zero" +msgstr "" + +#: ../../../odoo/addons/account/models/account_report.py:docstring of odoo.addons.account.models.account_report.AccountReportLine.hide_if_zero:1 +msgid "This line and its children will be hidden when all of their columns are 0." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.name:1 +msgid "Tax Name" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:1 +msgid "Tax Type" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:1 +msgid "``sale``: Sales ``purchase``: Purchases ``none``: None" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:1 +msgid "sale" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.type_tax_use:1 +msgid "Determines where the tax is selectable. Note: 'None' means a tax can't be used by itself, however it can still be used in a group. 'adjustment' is used to perform tax adjustment." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_scope:1 +msgid "Tax Scope" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_scope:1 +msgid "``service``: Services ``consu``: Goods" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_scope:1 +msgid "Restrict the use of taxes to a type of product." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "Tax Computation" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "``group``: Group of Taxes ``fixed``: Fixed ``percent``: Percentage of Price ``division``: Percentage of Price Tax Included" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "percent" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "Group of Taxes: The tax is a set of sub taxes." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "Fixed: The tax amount stays the same whatever the price." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "Percentage of Price: The tax amount is a % of the price:" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "e.g 100 * (1 + 10%) = 110 (not price included) e.g 110 / (1 + 10%) = 100 (price included)" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "Percentage of Price Tax Included: The tax amount is a division of the price:" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount_type:1 +msgid "e.g 180 / (1 - 10%) = 200 (not price included) e.g 200 * (1 - 10%) = 180 (price included)" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.active:1 +msgid "Set active to false to hide the tax without removing it." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.children_tax_ids:1 +msgid "Children Taxes" +msgstr "" + +#: ../../content/developer/tutorials/define_module_data.rst:184 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.sequence:1 +msgid "1" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.sequence:1 +msgid "The sequence field is used to define order in which the tax lines are applied." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount:1 +msgid "Amount" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.amount:1 +msgid "0.0" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.price_include:1 +msgid "Included in Price" +msgstr "" + +#: ../../content/developer/tutorials/define_module_data.rst:187 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.include_base_amount:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.price_include:1 +msgid "False" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.price_include:1 +msgid "Check this if the price you use on the product and invoices includes this tax." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.include_base_amount:1 +msgid "Affect Base of Subsequent Taxes" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.include_base_amount:1 +msgid "If set, taxes with a higher sequence than this one will be affected by it, provided they accept it." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.is_base_affected:1 +msgid "Base Affected by Previous Taxes" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.is_base_affected:1 +msgid "If set, taxes with a lower sequence might affect this one, provided they try to do it." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.analytic:1 +msgid "Include in Analytic Cost" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.analytic:1 +msgid "If set, the amount computed by this tax will be assigned to the same analytic account as the invoice line (if any)" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.invoice_repartition_line_ids:1 +msgid "Distribution for Invoices" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.invoice_repartition_line_ids:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.refund_repartition_line_ids:1 +msgid ":ref:`account.tax.repartition.line `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.invoice_repartition_line_ids:1 +msgid "Distribution when the tax is used on an invoice" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.refund_repartition_line_ids:1 +msgid "Distribution for Refund Invoices" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.refund_repartition_line_ids:1 +msgid "Distribution when the tax is used on a refund" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_group_id:1 +msgid "Tax Group" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_group_id:1 +msgid ":ref:`account.tax.group `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_exigibility:1 +msgid "Tax Exigibility" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_exigibility:1 +msgid "``on_invoice``: Based on Invoice ``on_payment``: Based on Payment" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_exigibility:1 +msgid "on_invoice" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.tax_exigibility:1 +msgid "Based on Invoice: the tax is due as soon as the invoice is validated. Based on Payment: the tax is due as soon as the payment of the invoice is received." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.cash_basis_transition_account_id:1 +msgid "Cash Basis Transition Account" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.cash_basis_transition_account_id:1 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.account_id:1 +msgid ":ref:`account.account `" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTax.cash_basis_transition_account_id:1 +msgid "Account used to transition the tax amount for cash basis taxes. It will contain the tax amount as long as the original invoice has not been reconciled ; at reconciliation, this amount cancelled on this account and put on the regular tax account." +msgstr "" + #: ../../content/developer/reference/standard_modules/account/account_tax_repartition.rst:5 msgid "Tax Repartitions" msgstr "" +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.factor_percent:1 +msgid "%" +msgstr "" + +#: ../../content/developer/tutorials/define_module_data.rst:185 +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.factor_percent:1 +msgid "100" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.factor_percent:1 +msgid "Factor to apply on the account move lines generated from this distribution line, in percents" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:1 +msgid "Based On" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:1 +msgid "``base``: Base ``tax``: of tax" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:1 +msgid "tax" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.repartition_type:1 +msgid "Base on which the factor will be applied." +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.document_type:1 +msgid "Related to" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.document_type:1 +msgid "``invoice``: Invoice ``refund``: Refund" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.account_id:1 +msgid "Account on which to post the tax amount" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.tax_id:1 +msgid "Tax" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.tag_ids:1 +msgid "Tax Grids" +msgstr "" + +#: ../../../odoo/addons/account/models/account_tax.py:docstring of odoo.addons.account.models.account_tax.AccountTaxRepartitionLine.use_in_tax_closing:1 +msgid "Tax Closing Entry" +msgstr "" + #: ../../content/developer/reference/standard_modules/payment.rst:5 msgid "Payment" msgstr "" @@ -19723,18 +24067,789 @@ msgstr "" msgid "Payment Method" msgstr "" +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:1 +msgid "Search and return the payment methods matching the compatibility criteria." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:3 +msgid "The compatibility criteria are that payment methods must: be supported by at least one of the providers; support the country of the partner if it exists; be primary payment methods (not a brand). If provided, the optional keyword arguments further refine the criteria." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:7 +msgid "The list of providers by which the payment methods must be at least partially supported to be considered compatible, as a list of `payment.provider` ids." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:10 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:9 +msgid "The partner making the payment, as a `res.partner` id." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:11 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:11 +msgid "The payment currency, if known beforehand, as a `res.currency` id." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:12 +msgid "Whether only payment methods supporting tokenization can be matched." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:14 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:13 +msgid "Whether the payment is made through express checkout." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_compatible_payment_methods:15 +msgid "The compatible payment methods." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:1 +msgid "Get the payment method corresponding to the given provider-specific code." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:3 +msgid "If a mapping is given, the search uses the generic payment method code that corresponds to the given provider-specific code." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:6 +msgid "The provider-specific code of the payment method to get." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:7 +msgid "A non-exhaustive mapping of generic payment method codes to provider-specific codes." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:9 +msgid "The corresponding payment method, if any." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_method.py:docstring of odoo.addons.payment.models.payment_method.PaymentMethod._get_from_code:10 +msgid "payment.method" +msgstr "" + #: ../../content/developer/reference/standard_modules/payment/payment_provider.rst:5 msgid "Payment Provider" msgstr "" +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:1 +msgid "Compute the feature support fields based on the provider." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:3 +msgid "Feature support fields are used to specify which additional features are supported by a given provider. These fields are as follows:" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:6 +msgid "`support_express_checkout`: Whether the \"express checkout\" feature is supported. `False` by default." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:8 +msgid "`support_manual_capture`: Whether the \"manual capture\" feature is supported. `False` by default." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:10 +msgid "`support_refund`: Which type of the \"refunds\" feature is supported: `None`, `'full_only'`, or `'partial'`. `None` by default." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:12 +msgid "`support_tokenization`: Whether the \"tokenization feature\" is supported. `False` by default." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:15 +msgid "For a provider to specify that it supports additional features, it must override this method and set the related feature support fields to the desired value on the appropriate `payment.provider` records." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_feature_support_fields:19 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:21 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._handle_archiving:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:12 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_payment_request:11 +msgid "None" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:1 +msgid "Compute the view configuration fields based on the provider." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:3 +msgid "View configuration fields are used to hide specific elements (notebook pages, fields, etc.) from the form view of payment providers. These fields are set to `True` by default and are as follows:" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:7 +msgid "`show_credentials_page`: Whether the \"Credentials\" notebook page should be shown." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:8 +msgid "`show_allow_tokenization`: Whether the `allow_tokenization` field should be shown." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:9 +msgid "`show_allow_express_checkout`: Whether the `allow_express_checkout` field should be shown." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:10 +msgid "`show_pre_msg`: Whether the `pre_msg` field should be shown." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:11 +msgid "`show_pending_msg`: Whether the `pending_msg` field should be shown." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:12 +msgid "`show_auth_msg`: Whether the `auth_msg` field should be shown." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:13 +msgid "`show_done_msg`: Whether the `done_msg` field should be shown." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:14 +msgid "`show_cancel_msg`: Whether the `cancel_msg` field should be shown." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:15 +msgid "`require_currency`: Whether the `available_currency_ids` field shoud be required." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._compute_view_configuration_fields:17 +msgid "For a provider to hide specific elements of the form view, it must override this method and set the related view configuration fields to `False` on the appropriate `payment.provider` records." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:1 +msgid "Search and return the providers matching the compatibility criteria." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:3 +msgid "The compatibility criteria are that providers must: not be disabled; be in the company that is provided; support the country of the partner if it exists; be compatible with the currency if provided. If provided, the optional keyword arguments further refine the criteria." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:8 +msgid "The company to which providers must belong, as a `res.company` id." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:10 +msgid "The amount to pay. `0` for validation transactions." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:12 +msgid "Whether only providers allowing tokenization can be matched." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:14 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:8 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:7 +msgid "Whether the operation is a validation." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:15 +msgid "Optional data. This parameter is not used here." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_compatible_providers:16 +msgid "The compatible providers." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:1 +msgid "Return the view of the template used to render the redirect form." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:3 +msgid "For a provider to return a different view depending on whether the operation is a validation, it must override this method and return the appropriate view." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:6 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_amount:6 +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_currency:7 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:11 +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:13 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:22 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:9 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:8 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_payment_request:9 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:8 +msgid "Note: `self.ensure_one()`" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:9 +msgid "The view of the redirect form template." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_redirect_form_view:10 +msgid "record of `ir.ui.view`" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_amount:1 +msgid "Return the amount to use for validation operations." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_amount:3 +msgid "For a provider to support tokenization, it must override this method and return the validation amount. If it is `0`, it is not necessary to create the override." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_amount:8 +msgid "The validation amount." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_currency:1 +msgid "Return the currency to use for validation operations." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_currency:3 +msgid "For a provider to support tokenization, it must override this method and return the validation currency. If the validation amount is `0`, it is not necessary to create the override." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_currency:9 +msgid "The validation currency." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_validation_currency:10 +msgid "recordset of `res.currency`" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:1 +msgid "Return whether tokenizing the transaction is required given its context." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:3 +msgid "For a module to make the tokenization required based on the payment context, it must override this method and return whether it is required." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:6 +msgid "The payment context. This parameter is not used here." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._is_tokenization_required:7 +msgid "Whether tokenizing the transaction is required." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:1 +msgid "Return whether the inline payment form should be instantiated." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:3 +msgid "For a provider to handle both direct payments and payments with redirection, it must override this method and return whether the inline payment form should be instantiated (i.e. if the payment should be direct) based on the operation (online payment or validation)." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._should_build_inline_form:8 +msgid "Whether the inline form should be instantiated." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_removal_values:1 +msgid "Return the values to update a provider with when its module is uninstalled." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_removal_values:3 +msgid "For a module to specify additional removal values, it must override this method and complete the generic values with its specific values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_provider.py:docstring of odoo.addons.payment.models.payment_provider.PaymentProvider._get_removal_values:6 +msgid "The removal values to update the removed provider with." +msgstr "" + #: ../../content/developer/reference/standard_modules/payment/payment_token.rst:5 msgid "Payment Token" msgstr "" +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:1 +msgid "Return the available tokens linked to the given providers and partner." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:3 +msgid "For a module to retrieve the available tokens, it must override this method and add information in the kwargs to define the context of the request." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:6 +msgid "The ids of the providers available for the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:7 +msgid "The id of the partner." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:8 +msgid "Whether the transaction is a validation operation." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:9 +msgid "Locally unused keywords arguments." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_available_tokens:10 +msgid "The available tokens." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:1 +msgid "Build a token name of the desired maximum length with the format `•••• 1234`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:3 +msgid "The payment details are padded on the left with up to four padding characters. The padding is only added if there is enough room for it. If not, it is either reduced or not added at all. If there is not enough room for the payment details either, they are trimmed from the left." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:8 +msgid "For a module to customize the display name of a token, it must override this method and return the customized display name." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:13 +msgid "The arguments passed by QWeb when calling this method." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:14 +msgid "The desired maximum length of the token name. The default is `34` to fit the largest IBANs." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:16 +msgid "Whether the token should be padded." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:17 +msgid "Optional data used in overrides of this method." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._build_display_name:18 +msgid "The padded token name." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:1 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:1 +msgid "Complete the values of the `create` method with provider-specific values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:3 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:3 +msgid "For a provider to add its own create values, it must overwrite this method and return a dict of values. Provider-specific values take precedence over those of the dict of generic create values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:7 +msgid "The code of the provider managing the token." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:8 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:8 +msgid "The original create values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._get_specific_create_values:9 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:9 +msgid "The dict of provider-specific create values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._handle_archiving:1 +msgid "Handle the archiving of tokens." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken._handle_archiving:3 +msgid "For a module to perform additional operations when a token is archived, it must override this method." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:1 +msgid "Return a list of information about records linked to the current token." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:3 +msgid "For a module to implement payments and link documents to a token, it must override this method and add information about linked document records to the returned list." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:6 +msgid "The information must be structured as a dict with the following keys:" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:8 +msgid "`description`: The description of the record's model (e.g. \"Subscription\")." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:9 +msgid "`id`: The id of the record." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:10 +msgid "`name`: The name of the record." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:11 +msgid "`url`: The url to access the record." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_token.py:docstring of odoo.addons.payment.models.payment_token.PaymentToken.get_linked_records_info:15 +msgid "The list of information about the linked document records." +msgstr "" + #: ../../content/developer/reference/standard_modules/payment/payment_transaction.rst:5 msgid "Payment Transaction" msgstr "" +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:1 +msgid "Compute a unique reference for the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:3 +msgid "The reference corresponds to the prefix if no other transaction with that prefix already exists. Otherwise, it follows the pattern `{computed_prefix}{separator}{sequence_number}` where:" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:7 +msgid "`{computed_prefix}` is:" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:9 +msgid "The provided custom prefix, if any." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:10 +msgid "The computation result of :meth:`_compute_reference_prefix` if the custom prefix is not filled, but the kwargs are." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:12 +msgid "`'tx-{datetime}'` if neither the custom prefix nor the kwargs are filled." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:14 +msgid "`{separator}` is the string that separates the prefix from the sequence number." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:15 +msgid "`{sequence_number}` is the next integer in the sequence of references sharing the same prefix. The sequence starts with `1` if there is only one matching reference." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:20 +msgid "Given the custom prefix `'example'` which has no match with an existing reference, the full reference will be `'example'`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:22 +msgid "Given the custom prefix `'example'` which matches the existing reference `'example'`, and the custom separator `'-'`, the full reference will be `'example-1'`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:24 +msgid "Given the kwargs `{'invoice_ids': [1, 2]}`, the custom separator `'-'` and no custom prefix, the full reference will be `'INV1-INV2'` (or similar) if no existing reference has the same prefix, or `'INV1-INV2-n'` if `n` existing references have the same prefix." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:29 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:3 +msgid "The code of the provider handling the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:30 +msgid "The custom prefix used to compute the full reference." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:31 +msgid "The custom separator used to separate the prefix from the suffix." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:32 +msgid "Optional values passed to :meth:`_compute_reference_prefix` if no custom prefix is provided." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference:34 +msgid "The unique reference for the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:1 +msgid "Compute the reference prefix from the transaction values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:3 +msgid "Note: This method should be called in sudo mode to give access to the documents (invoices, sales orders) referenced in the transaction values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:7 +msgid "The custom separator used to separate parts of the computed reference prefix." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:9 +msgid "The transaction values used to compute the reference prefix." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._compute_reference_prefix:10 +msgid "The computed reference prefix." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:1 +msgid "Return a dict of values used to display the status of the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:3 +msgid "For a provider to handle transaction status display, it must override this method and return a dict of values. Provider-specific values take precedence over those of the dict of generic post-processing values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:7 +msgid "The returned dict contains the following entries:" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:9 +msgid "`provider_code`: The code of the provider." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:10 +msgid "`provider_name`: The name of the provider." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:11 +msgid "`reference`: The reference of the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:12 +msgid "`amount`: The rounded amount of the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:13 +msgid "`currency_id`: The currency of the transaction, as a `res.currency` id." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:14 +msgid "`state`: The transaction state: `draft`, `pending`, `authorized`, `done`, `cancel`, or `error`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:16 +msgid "`state_message`: The information message about the state." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:17 +msgid "`operation`: The operation of the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:18 +msgid "`is_post_processed`: Whether the transaction has already been post-processed." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:19 +msgid "`landing_route`: The route the user is redirected to after the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:20 +msgid "Additional provider-specific entries." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_post_processing_values:24 +msgid "The dict of processing values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_create_values:7 +msgid "The code of the provider that handled the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:1 +msgid "Return a dict of provider-specific values used to process the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:3 +msgid "For a provider to add its own processing values, it must overwrite this method and return a dict of provider-specific values based on the generic values returned by this method. Provider-specific values take precedence over those of the dict of generic processing values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:8 +msgid "The generic processing values of the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_processing_values:9 +msgid "The dict of provider-specific processing values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:1 +msgid "Return a dict of provider-specific values used to render the redirect form." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:3 +msgid "For a provider to add its own rendering values, it must overwrite this method and return a dict of provider-specific values based on the processing values (provider-specific processing values included)." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:7 +msgid "The processing values of the transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_specific_rendering_values:8 +msgid "The dict of provider-specific rendering values." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:1 +msgid "Find the transaction based on the notification data." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:3 +msgid "For a provider to handle transaction processing, it must overwrite this method and return the transaction matching the notification data." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:7 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:4 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:11 +msgid "The notification data sent by the provider." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:8 +msgid "The transaction, if found." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._get_tx_from_notification_data:9 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:10 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:7 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:7 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:7 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:7 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:7 +msgid "recordset of `payment.transaction`" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:1 +msgid "Match the transaction with the notification data, update its state and return it." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._handle_notification_data:5 +msgid "The transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:1 +msgid "Update the transaction state and the provider reference based on the notification data." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:3 +msgid "This method should usually not be called directly. The correct method to call upon receiving notification data is :meth:`_handle_notification_data`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._process_notification_data:6 +msgid "For a provider to handle transaction processing, it must overwrite this method and process the notification data." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:1 +msgid "Request the provider handling the transaction to capture the payment." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:3 +msgid "For partial captures, create a child transaction linked to the source transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:5 +msgid "For a provider to support authorization, it must override this method and make an API request to capture the payment." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:10 +msgid "The amount to capture." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:11 +msgid "The created capture child transaction, if any." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_capture_request:12 +msgid "`payment.transaction`" +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_payment_request:1 +msgid "Request the provider handling the transaction to make the payment." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_payment_request:3 +msgid "This method is exclusively used to make payments by token, which correspond to both the `online_token` and the `offline` transaction's `operation` field." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_payment_request:6 +msgid "For a provider to support tokenization, it must override this method and make an API request to make a payment." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:1 +msgid "Request the provider handling the transaction to refund it." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:3 +msgid "For a provider to support refunds, it must override this method and make an API request to make a refund." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:8 +msgid "The amount to be refunded." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_refund_request:9 +msgid "The refund transaction created to process the refund request." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:1 +msgid "Request the provider handling the transaction to void the payment." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:3 +msgid "For partial voids, create a child transaction linked to the source transaction." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:5 +msgid "For a provider to support authorization, it must override this method and make an API request to void the payment." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:10 +msgid "The amount to be voided." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._send_void_request:11 +msgid "The created void child transaction, if any." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:1 +msgid "Update the transactions' state to `authorized`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:3 +msgid "The reason for setting the transactions in the state `authorized`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:4 +msgid "The extra states that should be considered allowed target states for the source state 'authorized'." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_authorized:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:6 +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:6 +msgid "The updated transactions." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:1 +msgid "Update the transactions' state to `cancel`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:3 +msgid "The reason for setting the transactions in the state `cancel`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_canceled:4 +msgid "The extra states that should be considered allowed target states for the source state 'canceled'." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:1 +msgid "Update the transactions' state to `done`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:3 +msgid "The reason for setting the transactions in the state `done`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_done:4 +msgid "The extra states that should be considered allowed target states for the source state 'done'." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:1 +msgid "Update the transactions' state to `error`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:3 +msgid "The reason for setting the transactions in the state `error`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_error:4 +msgid "The extra states that should be considered allowed target states for the source state 'error'." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:1 +msgid "Update the transactions' state to `pending`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:3 +msgid "The reason for setting the transactions in the state `pending`." +msgstr "" + +#: ../../../odoo/addons/payment/models/payment_transaction.py:docstring of odoo.addons.payment.models.payment_transaction.PaymentTransaction._set_pending:4 +msgid "The extra states that should be considered allowed target states for the source state 'pending'." +msgstr "" + #: ../../content/developer/reference/user_interface.rst:5 msgid "User interface" msgstr "" @@ -20189,16 +25304,6 @@ msgstr "" msgid "Whether the field can be modified by the user (``False``) or is read only (``True``)." msgstr "" -#: ../../content/developer/reference/user_interface/view_architecture.rst:0 -#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:262 -#: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:263 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:73 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:180 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:245 -#: ../../content/developer/tutorials/getting_started/08_relations.rst:246 -msgid "required" -msgstr "" - #: ../../content/developer/reference/user_interface/view_architecture.rst:223 msgid "Whether the field can be left empty (``False``) or must be set (``True``)." msgstr "" @@ -22430,6 +27535,10 @@ msgstr "" msgid "Model Commons" msgstr "" +#: ../../docstring of odoo.addons.base.models.ir_ui_view.Model._date_name:1 +msgid "field to use for default calendar view" +msgstr "" + #: ../../content/developer/reference/user_interface/view_architecture.rst:3219 msgid "Activity" msgstr "" @@ -23753,6 +28862,95 @@ msgstr "" msgid "can be used as a direct child of a inheritance spec with a ``inside``, ``replace``, ``after`` or ``before`` ``position`` attribute to move a node." msgstr "" +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:1 +msgid "Returns the fields_views of given views, along with the fields of the current model, and optionally its filters for the given action." +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:3 +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:4 +msgid "The return of the method can only depend on the requested view types, access rights (views or other records), view access rules, options, context lang and TYPE_view_ref (other context values cannot be used)." +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:8 +msgid "Python expressions contained in views or representing domains (on python fields) will be evaluated by the client with all the context values as well as the record values it has." +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:12 +msgid "list of [view_id, view_type]" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:13 +msgid "a dict optional boolean flags, set to enable: ``toolbar`` includes contextual actions when loading fields_views ``load_filters`` returns the model's filters ``action_id`` id of the action to get the filters, otherwise loads the global filters or the model" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:13 +msgid "a dict optional boolean flags, set to enable:" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:15 +msgid "``toolbar``" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:16 +msgid "includes contextual actions when loading fields_views" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:17 +msgid "``load_filters``" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:18 +msgid "returns the model's filters" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:21 +msgid "``action_id``" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:20 +msgid "id of the action to get the filters, otherwise loads the global filters or the model" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_views:23 +msgid "dictionary with fields_views, fields and optionally filters" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:1 +msgid "Get the detailed composition of the requested view like model, view architecture." +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:7 +msgid "id of the view or None" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:8 +msgid "type of the view to return if view_id is None ('form', 'tree', ...)" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:9 +msgid "boolean options to return additional features: - bool mobile: true if the web client is currently using the responsive mobile view (to use kanban views instead of list views for x2many fields)" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:12 +msgid "composition of the requested view (including inherited views and extensions)" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:14 +msgid "* if the inherited view has unknown position to work with other than 'before', 'after', 'inside', 'replace' * if some tag other than 'position' is found in parent view" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:16 +msgid "if the inherited view has unknown position to work with other than 'before', 'after', 'inside', 'replace'" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:17 +msgid "if some tag other than 'position' is found in parent view" +msgstr "" + +#: ../../../odoo/odoo/addons/base/models/ir_ui_view.py:docstring of odoo.addons.base.models.ir_ui_view.Model.get_view:19 +msgid "if there is view type other than form, tree, calendar, search etc... defined on the structure" +msgstr "" + #: ../../content/developer/tutorials.rst:6 msgid "Tutorials" msgstr "" @@ -25424,19 +30622,11 @@ msgstr "" msgid "6" msgstr "" -#: ../../content/developer/tutorials/define_module_data.rst:184 -msgid "1" -msgstr "" - #: ../../content/developer/tutorials/define_module_data.rst:185 #: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:196 msgid "living_area" msgstr "" -#: ../../content/developer/tutorials/define_module_data.rst:185 -msgid "100" -msgstr "" - #: ../../content/developer/tutorials/define_module_data.rst:185 msgid "10" msgstr "" @@ -25455,10 +30645,6 @@ msgstr "" msgid "garage" msgstr "" -#: ../../content/developer/tutorials/define_module_data.rst:187 -msgid "False" -msgstr "" - #: ../../content/developer/tutorials/define_module_data.rst:188 #: ../../content/developer/tutorials/getting_started/04_basicmodel.rst:199 msgid "garden" @@ -26594,50 +31780,54 @@ msgid ":option:`-u `: Update some modules before running the msgstr "" #: ../../content/developer/tutorials/getting_started/02_setup.rst:122 +msgid "For now you cannot add `../technical-training-sandbox` to your `addons-path` as it is empty and will result into an invalid addons-path folder error, but you will have to add it back later on !" +msgstr "" + +#: ../../content/developer/tutorials/getting_started/02_setup.rst:126 msgid "Log in to Odoo" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:124 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:128 msgid "Open http://localhost:8069/ on your browser. We recommend using `Chrome `_, `Firefox `_, or any other browser with development tools." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:128 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:132 msgid "To log in as the administrator user, use the following credentials:" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:130 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:134 msgid "email: `admin`" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:131 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:135 msgid "password: `admin`" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:134 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:138 msgid "Enable the developer mode" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:136 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:140 msgid "The developer or debug mode is useful for training as it gives access to additional (advanced) tools. In the next chapters, **we will always assume that you have enabled the developer mode**." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:139 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:143 msgid ":ref:`Enable the developer mode ` now. Choose the method that you prefer; they are all equivalent." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:143 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:147 msgid "The main page of the Settings screen is only accessible if at least one application is installed. You will be led into installing your own application in the next chapter." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:147 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:151 msgid "Extra tools" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:150 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:154 msgid "Useful Git commands" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:152 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:156 msgid "Here are some useful Git commands for your day-to-day work." msgstr "" @@ -26649,131 +31839,131 @@ msgstr "" msgid "When you switch branches, both repositories (odoo and enterprise) must be synchronized, i.e. both need to be in the same branch." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:166 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:170 msgid "Fetch and rebase:" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:179 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:183 msgid "Code Editor" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:181 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:185 msgid "If you are working at Odoo, many of your colleagues are using `VSCode `_, `VSCodium `_ (the open source equivalent), `PyCharm `_, or `Sublime Text `_. However, you are free to choose your preferred editor." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:186 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:190 msgid "It is important to configure your linters correctly. Using a linter helps you by showing syntax and semantic warnings or errors. Odoo source code tries to respect Python's and JavaScript's standards, but some of them can be ignored." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:190 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:194 msgid "For Python, we use PEP8 with these options ignored:" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:192 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:196 msgid "`E501`: line too long" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:193 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:197 msgid "`E301`: expected 1 blank line, found 0" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:194 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:198 msgid "`E302`: expected 2 blank lines, found 1" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:196 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:200 msgid "For JavaScript, we use ESLint and you can find a `configuration file example here `_." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:200 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:204 msgid "Administrator tools for PostgreSQL" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:202 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:206 msgid "You can manage your PostgreSQL databases using the command line as demonstrated earlier or using a GUI application such as `pgAdmin `_ or `DBeaver `_." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:206 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:210 msgid "To connect the GUI application to your database we recommend you connect using the Unix socket." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:208 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:212 msgid "Host name/address: `/var/run/postgresql`" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:209 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:213 msgid "Port: `5432`" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:210 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:214 msgid "Username: `$USER`" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:213 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:217 msgid "Python Debugging" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:215 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:219 msgid "When facing a bug or trying to understand how the code works, simply printing things out can go a long way, but a proper debugger can save a lot of time." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:218 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:222 msgid "You can use a classic Python library debugger (`pdb `_, `pudb `_ or `ipdb `_), or you can use your editor's debugger." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:222 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:226 msgid "In the following example we use ipdb, but the process is similar with other libraries." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:224 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:228 msgid "Install the library:" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:230 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:234 msgid "Place a trigger (breakpoint):" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:249 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:253 msgid "Here is a list of commands:" msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:253 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:257 msgid "Print the list of available commands if not argument is supplied. With a command as an argument, print the help about that command." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:258 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:262 msgid "The value of the `expression` is pretty-printed using the `pprint` module." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:262 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:266 msgid "Print a stack trace with the most recent frame at the bottom." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:266 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:270 msgid "Move the current frame one level down in the stack trace (to a newer frame)." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:270 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:274 msgid "Move the current frame one level up in the stack trace (to an older frame)." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:274 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:278 msgid "Continue the execution until the next line in the current function is reached or it returns." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:278 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:282 msgid "Continue the execution and only stop when a breakpoint is encountered." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:282 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:286 msgid "Execute the current line. Stop at the first possible occasion (either in a function that is called or on the next line in the current function)." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:287 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:291 msgid "Quit the debugger. The program being executed is aborted." msgstr "" -#: ../../content/developer/tutorials/getting_started/02_setup.rst:289 +#: ../../content/developer/tutorials/getting_started/02_setup.rst:293 msgid "Now that your server is running, it's time to start :ref:`writing your own application `!" msgstr "" @@ -28887,10 +34077,6 @@ msgstr "" msgid "Add the following field:" msgstr "" -#: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:218 -msgid "Sequence" -msgstr "" - #: ../../content/developer/tutorials/getting_started/12_sprinkles.rst:221 msgid "Add the sequence to the ``estate.property.type`` list view with the correct widget." msgstr "" diff --git a/locale/sources/finance.pot b/locale/sources/finance.pot index 0bfbb725b..9e8e638a3 100644 --- a/locale/sources/finance.pot +++ b/locale/sources/finance.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,7 +49,7 @@ msgid "Odoo uses the double-entry bookkeeping system, whereby every entry needs msgstr "" #: ../../content/applications/finance/accounting.rst:67 -#: ../../content/applications/finance/accounting.rst:217 +#: ../../content/applications/finance/accounting.rst:223 msgid ":doc:`Accounting Cheat Sheet `" msgstr "" @@ -86,219 +86,227 @@ msgid ":doc:`Manage a bank in a foreign currency `" msgstr "" -#: ../../content/applications/finance/accounting.rst:111 +#: ../../content/applications/finance/accounting.rst:117 msgid "Accounts receivable and payable" msgstr "" -#: ../../content/applications/finance/accounting.rst:113 +#: ../../content/applications/finance/accounting.rst:119 msgid "By default, there is a single account for the account receivable entries and one for the account payable entries. As transactions are linked to your **contacts**, you can run a report per customer, vendor, or supplier." msgstr "" -#: ../../content/applications/finance/accounting.rst:117 +#: ../../content/applications/finance/accounting.rst:123 msgid "The **Partner Ledger** report displays the balance of your customers and suppliers. It is available by going to :menuselection:`Accounting --> Reporting --> Partner Ledger`." msgstr "" -#: ../../content/applications/finance/accounting.rst:121 +#: ../../content/applications/finance/accounting.rst:127 #: ../../content/applications/finance/accounting/reporting.rst:5 msgid "Reporting" msgstr "" -#: ../../content/applications/finance/accounting.rst:123 +#: ../../content/applications/finance/accounting.rst:129 msgid "The following financial :doc:`reports ` are available and updated in real-time:" msgstr "" -#: ../../content/applications/finance/accounting.rst:127 +#: ../../content/applications/finance/accounting.rst:133 #: ../../content/applications/finance/fiscal_localizations/austria.rst:28 #: ../../content/applications/finance/fiscal_localizations/chile.rst:951 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:365 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:418 msgid "Financial reports" msgstr "" -#: ../../content/applications/finance/accounting.rst:129 +#: ../../content/applications/finance/accounting.rst:135 msgid "Statement" msgstr "" -#: ../../content/applications/finance/accounting.rst:129 +#: ../../content/applications/finance/accounting.rst:135 #: ../../content/applications/finance/accounting/customer_invoices.rst:216 msgid "Balance sheet" msgstr "" -#: ../../content/applications/finance/accounting.rst:131 +#: ../../content/applications/finance/accounting.rst:137 #: ../../content/applications/finance/accounting/customer_invoices.rst:206 msgid "Profit and loss" msgstr "" -#: ../../content/applications/finance/accounting.rst:133 +#: ../../content/applications/finance/accounting.rst:139 msgid "Cash flow statement" msgstr "" -#: ../../content/applications/finance/accounting.rst:135 -#: ../../content/applications/finance/accounting.rst:174 +#: ../../content/applications/finance/accounting.rst:141 +#: ../../content/applications/finance/accounting.rst:180 #: ../../content/applications/finance/accounting/get_started/vat_units.rst:77 #: ../../content/applications/finance/fiscal_localizations/thailand.rst:38 msgid "Tax report" msgstr "" -#: ../../content/applications/finance/accounting.rst:137 +#: ../../content/applications/finance/accounting.rst:143 msgid "ES sales list" msgstr "" -#: ../../content/applications/finance/accounting.rst:139 +#: ../../content/applications/finance/accounting.rst:145 msgid "Audit" msgstr "" -#: ../../content/applications/finance/accounting.rst:139 +#: ../../content/applications/finance/accounting.rst:145 msgid "General ledger" msgstr "" -#: ../../content/applications/finance/accounting.rst:141 +#: ../../content/applications/finance/accounting.rst:147 msgid "Trial balance" msgstr "" -#: ../../content/applications/finance/accounting.rst:143 +#: ../../content/applications/finance/accounting.rst:149 msgid "Journal report" msgstr "" -#: ../../content/applications/finance/accounting.rst:145 +#: ../../content/applications/finance/accounting.rst:151 msgid "Intrastat report" msgstr "" -#: ../../content/applications/finance/accounting.rst:147 +#: ../../content/applications/finance/accounting.rst:153 msgid "Check register" msgstr "" -#: ../../content/applications/finance/accounting.rst:149 +#: ../../content/applications/finance/accounting.rst:155 #: ../../content/applications/finance/fiscal_localizations/argentina.rst:138 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:124 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:138 #: ../../content/applications/finance/fiscal_localizations/peru.rst:325 msgid "Partner" msgstr "" -#: ../../content/applications/finance/accounting.rst:149 +#: ../../content/applications/finance/accounting.rst:155 msgid "Partner ledger" msgstr "" -#: ../../content/applications/finance/accounting.rst:151 +#: ../../content/applications/finance/accounting.rst:157 msgid "Aged receivable" msgstr "" -#: ../../content/applications/finance/accounting.rst:153 +#: ../../content/applications/finance/accounting.rst:159 msgid "Aged payable" msgstr "" -#: ../../content/applications/finance/accounting.rst:155 +#: ../../content/applications/finance/accounting.rst:161 msgid "Management" msgstr "" -#: ../../content/applications/finance/accounting.rst:155 +#: ../../content/applications/finance/accounting.rst:161 msgid "Invoice analysis" msgstr "" -#: ../../content/applications/finance/accounting.rst:157 +#: ../../content/applications/finance/accounting.rst:163 msgid "Unrealized currency gains/losses" msgstr "" -#: ../../content/applications/finance/accounting.rst:159 +#: ../../content/applications/finance/accounting.rst:165 msgid "Depreciation schedule" msgstr "" -#: ../../content/applications/finance/accounting.rst:161 +#: ../../content/applications/finance/accounting.rst:167 msgid "Disallowed expenses" msgstr "" -#: ../../content/applications/finance/accounting.rst:163 +#: ../../content/applications/finance/accounting.rst:169 msgid "Budget analysis" msgstr "" -#: ../../content/applications/finance/accounting.rst:165 +#: ../../content/applications/finance/accounting.rst:171 msgid "Product margins" msgstr "" -#: ../../content/applications/finance/accounting.rst:167 +#: ../../content/applications/finance/accounting.rst:173 msgid "1099 report" msgstr "" -#: ../../content/applications/finance/accounting.rst:171 +#: ../../content/applications/finance/accounting.rst:177 msgid ":doc:`Create and customize reports ` with Odoo's report engine." msgstr "" -#: ../../content/applications/finance/accounting.rst:176 +#: ../../content/applications/finance/accounting.rst:182 msgid "Odoo computes all accounting transactions for the specific tax period and uses these totals to calculate the tax obligation." msgstr "" -#: ../../content/applications/finance/accounting.rst:180 +#: ../../content/applications/finance/accounting.rst:186 msgid "Once the tax report has been generated for a period, Odoo locks it and prevents the creation of new journal entries involving VAT. Any correction to customer invoices or vendor bills has to be recorded in the next period." msgstr "" -#: ../../content/applications/finance/accounting.rst:185 +#: ../../content/applications/finance/accounting.rst:191 msgid "Depending on the country's localization, an XML version of the tax report can be generated to be uploaded to the VAT platform of the relevant taxation authority." msgstr "" -#: ../../content/applications/finance/accounting.rst:189 +#: ../../content/applications/finance/accounting.rst:195 #: ../../content/applications/finance/accounting/bank/bank_synchronization.rst:5 msgid "Bank synchronization" msgstr "" -#: ../../content/applications/finance/accounting.rst:191 +#: ../../content/applications/finance/accounting.rst:197 msgid "The bank synchronization system directly connects with your bank institution to automatically import all transactions into your database. It gives an overview of your cash flow without logging into an online banking system or waiting for paper bank statements." msgstr "" -#: ../../content/applications/finance/accounting.rst:196 +#: ../../content/applications/finance/accounting.rst:202 msgid ":doc:`Bank synchronization `" msgstr "" -#: ../../content/applications/finance/accounting.rst:199 +#: ../../content/applications/finance/accounting.rst:205 msgid "Inventory valuation" msgstr "" -#: ../../content/applications/finance/accounting.rst:201 +#: ../../content/applications/finance/accounting.rst:207 msgid "Both periodic (manual) and perpetual (automated) inventory valuations are supported in Odoo. The available methods are standard price, average price, :abbr:`LIFO (Last-In, First-Out)` and :abbr:`FIFO (First-In, First-Out).`" msgstr "" -#: ../../content/applications/finance/accounting.rst:206 +#: ../../content/applications/finance/accounting.rst:212 msgid ":doc:`View the impact of the valuation methods on transactions <../inventory_and_mrp/inventory/management/reporting/inventory_valuation_config>`" msgstr "" -#: ../../content/applications/finance/accounting.rst:210 +#: ../../content/applications/finance/accounting.rst:216 msgid "Retained earnings" msgstr "" -#: ../../content/applications/finance/accounting.rst:212 +#: ../../content/applications/finance/accounting.rst:218 msgid "Retained earnings are the portion of income retained by a business. Odoo calculates current year earnings in real-time, so no year-end journal or rollover is required. The profit and loss balance is automatically reported on the balance sheet report." msgstr "" -#: ../../content/applications/finance/accounting.rst:220 +#: ../../content/applications/finance/accounting.rst:226 msgid "Fiduciaries" msgstr "" -#: ../../content/applications/finance/accounting.rst:222 +#: ../../content/applications/finance/accounting.rst:228 msgid "The :guilabel:`Accounting Firms` mode can be activated by going to :menuselection:`Accounting --> Configuration --> Settings --> Accounting Firms mode`. When enabled:" msgstr "" -#: ../../content/applications/finance/accounting.rst:225 +#: ../../content/applications/finance/accounting.rst:231 msgid "The document's sequence becomes editable on all documents;" msgstr "" -#: ../../content/applications/finance/accounting.rst:226 +#: ../../content/applications/finance/accounting.rst:232 msgid "The :guilabel:`Total (tax incl.)` field appears to speed up and control the encoding by automating line creation with the right account and tax;" msgstr "" -#: ../../content/applications/finance/accounting.rst:228 +#: ../../content/applications/finance/accounting.rst:234 msgid ":guilabel:`Invoice Date` and :guilabel:`Bill Date` are pre-filled when encoding a transaction." msgstr "" -#: ../../content/applications/finance/accounting.rst:229 +#: ../../content/applications/finance/accounting.rst:235 msgid "A :guilabel:`Quick encoding` option is available for customer invoices and vendor bills." msgstr "" @@ -400,10 +408,12 @@ msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/cash_rounding.rst:14 #: ../../content/applications/finance/accounting/customer_invoices/customer_addresses.rst:13 #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:63 +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:109 #: ../../content/applications/finance/accounting/customer_invoices/epc_qr_code.rst:21 #: ../../content/applications/finance/accounting/customer_invoices/payment_terms.rst:46 #: ../../content/applications/finance/accounting/customer_invoices/snailmail.rst:12 #: ../../content/applications/finance/accounting/customer_invoices/terms_conditions.rst:15 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:37 #: ../../content/applications/finance/accounting/get_started/multi_currency.rst:15 #: ../../content/applications/finance/accounting/get_started/vat_units.rst:22 #: ../../content/applications/finance/accounting/payments/batch.rst:11 @@ -423,7 +433,7 @@ msgstr "" #: ../../content/applications/finance/accounting/taxes/fiscal_positions.rst:20 #: ../../content/applications/finance/accounting/taxes/retention.rst:23 #: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:18 -#: ../../content/applications/finance/documents.rst:17 +#: ../../content/applications/finance/documents.rst:16 #: ../../content/applications/finance/fiscal_localizations.rst:21 #: ../../content/applications/finance/fiscal_localizations/argentina.rst:17 #: ../../content/applications/finance/fiscal_localizations/australia.rst:18 @@ -432,7 +442,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/belgium.rst:8 #: ../../content/applications/finance/fiscal_localizations/belgium.rst:370 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:25 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:20 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:21 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:34 #: ../../content/applications/finance/fiscal_localizations/germany.rst:58 #: ../../content/applications/finance/fiscal_localizations/italy.rst:8 @@ -456,7 +466,7 @@ msgstr "" #: ../../content/applications/finance/payment_providers/authorize.rst:60 #: ../../content/applications/finance/payment_providers/demo.rst:9 #: ../../content/applications/finance/payment_providers/mollie.rst:8 -#: ../../content/applications/finance/payment_providers/paypal.rst:96 +#: ../../content/applications/finance/payment_providers/paypal.rst:101 #: ../../content/applications/finance/payment_providers/sips.rst:9 #: ../../content/applications/finance/payment_providers/wire_transfer.rst:30 msgid "Configuration" @@ -1774,7 +1784,7 @@ msgid "Invoicing in most countries occurs when a contractual obligation is met. msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:35 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:234 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:284 msgid "Invoice creation" msgstr "" @@ -1944,7 +1954,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/brazil.rst:168 #: ../../content/applications/finance/fiscal_localizations/chile.rst:368 #: ../../content/applications/finance/fiscal_localizations/chile.rst:378 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:165 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:192 #: ../../content/applications/finance/fiscal_localizations/mexico.rst:190 #: ../../content/applications/finance/fiscal_localizations/peru.rst:73 #: ../../content/applications/finance/fiscal_localizations/peru.rst:246 @@ -2952,85 +2962,22 @@ msgid "Select an EDI format for a specific customer" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:76 -msgid "Peppol formats" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:78 -msgid "Use the fields :guilabel:`Peppol e-address (EAS)` and :guilabel:`Peppol Endpoint` to identify the recipient in the Peppol Network." -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:82 -msgid "`Peppol BIS Billing 3.0 - Electronic Address Scheme (EAS) code list `_" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:89 -msgid "Partner's country" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:90 -msgid "Peppol e-address (EAS)" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:91 -msgid "Peppol Endpoint" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:92 -#: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:3 -msgid "Luxembourg" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:93 -msgid "9938 - Luxemburg VAT number" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:94 -msgid "a valid Luxemburgish VAT number" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:95 -#: ../../content/applications/finance/fiscal_localizations/netherlands.rst:3 -msgid "Netherlands" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:96 -msgid "0190 - Dutch Originator's Identification Number" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:97 -msgid "a valid OIN number" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:98 -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:3 -msgid "Belgium" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:99 -msgid "9925 - Belgium VAT number" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:100 -msgid "a valid Belgian VAT number" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:103 msgid "National electronic invoicing" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:105 +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:78 msgid "Depending on your company's country (e.g., :doc:`Italy <../../fiscal_localizations/italy>`, :doc:`Spain <../../fiscal_localizations/spain>`, :doc:`Mexico <../../fiscal_localizations/mexico>`, etc.), you may be required to issue e-invoicing documents in a specific format for all your invoices. In this case, you can define a default e-invoicing format for your sales journal." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:111 +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:84 msgid "To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open your sales journal, go to the :guilabel:`Advanced Settings` tab, and enable the formats you need for this journal." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:117 +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:90 msgid "E-invoices generation" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:119 +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:92 msgid "From a confirmed invoice, click :guilabel:`Send & Print` to open the send window. Check the e-invoicing option to generate and attach the e-invoice file." msgstr "" @@ -3038,6 +2985,66 @@ msgstr "" msgid "The Peppol option is checked and an e-invoicing XML file is attached to the email." msgstr "" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:99 +msgid "Peppol" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:101 +msgid "The `Peppol `_ network ensures the exchange of documents and information between enterprises and governmental authorities. It is primarily used for electronic invoicing, and its access points (connectors to the Peppol network) allow enterprises to exchange electronic documents. Odoo is now an **access point** enabling electronic invoicing transactions without the need to send invoices and bills by email or post." +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:111 +msgid "First, :ref:`install ` the :guilabel:`Peppol` module (`account_peppol`)." +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 +msgid "Peppol module install" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:116 +msgid "Then, go to :menuselection:`Accounting --> Configuration --> Settings`, tick the :guilabel:`Use PEPPOL Invoicing`, and fill in the following information:" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:119 +msgid "`PEPPOL EAS `_" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:120 +msgid ":guilabel:`Peppol Endpoint`" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:121 +msgid ":guilabel:`Phone Number`, including the country code (e.g., `+32` in Belgium)" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:122 +msgid ":guilabel:`Primary contact email`" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:124 +msgid "If you are migrating from another access point, insert the :guilabel:`Migration key` from the previous provider." +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 +msgid "Configuration for peppol" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:130 +msgid "Finally, click on :guilabel:`Validate registration`." +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:132 +msgid "A text message containing a code is sent to the phone number provided to finalize the registration process." +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 +msgid "phone validation" +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:138 +msgid "All invoices and vendor bills are now sent directly using the Peppol network." +msgstr "" + #: ../../content/applications/finance/accounting/customer_invoices/epc_qr_code.rst:3 msgid "EPC QR codes" msgstr "" @@ -4021,348 +4028,719 @@ msgid ":doc:`../fiscal_localizations`" msgstr "" #: ../../content/applications/finance/accounting/get_started.rst:190 -msgid "`Odoo Tutorials: Accounting Basics `_" +msgid "`Odoo Tutorials: Accounting and Invoicing - Getting started [video] `_" msgstr "" #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:3 -msgid "Inventory average price valuation" +msgid "Average price on returned goods" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:5 -msgid "As stated in the :doc:`inventory valuation page `, one of the possible costing method you can use in perpetual stock valuation, is the average cost." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:9 +msgid "*Average cost valuation* (AVCO) is an inventory valuation method that evaluates cost based on the total cost of goods bought or produced during a period, divided by the total number of items on-hand. Inventory valuation is used to:" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:10 -msgid "This document answers to one recurrent question for companies using that method to make their stock valuation: how does a shipping returned to its supplier impact the average cost and the accounting entries? This document is **only** for the specific use case of a perpetual valuation (as opposed to the periodic one) and in average price costing method (as opposed to standard of FIFO)." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:13 +msgid "reflect the value of a company's assets;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:14 +msgid "keep track of the amount of unsold goods;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:15 +msgid "account for monetary value in goods that have yet to generate profit;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:16 +msgid "report on flow of goods throughout the quarter." msgstr "" #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:18 -msgid "Definition of average cost" +msgid "Because |AVCO| uses the weighted average to evaluate the cost, it is a good fit for companies that sell only a few different products in large quantities. In Odoo, this costing analysis is *automatically updated* each time products are received." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:20 -msgid "The average cost method calculates the cost of ending inventory and cost of goods sold on the basis of weighted average cost per unit of inventory." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:22 +msgid "Thus, when shipments are returned to their supplier, Odoo automatically generates accounting entries to reflect the change in inventory valuation. However, Odoo does **not** automatically update the |AVCO| calculation, because :ref:`this can potentially create inconsistencies with inventory valuation `." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:24 -msgid "The weighted average cost per unit is calculated using the following formula:" -msgstr "" - -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:27 -msgid "When new products arrive in a warehouse, the new average cost is recomputed as:" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:28 +msgid "This document addresses a specific use case for theoretical purposes. Navigate :ref:`here ` for instructions on how to set up and use |AVCO| in Odoo." msgstr "" #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:33 -msgid "When products leave the warehouse: the average cost **does not** change" +msgid ":ref:`Using inventory valuation `" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:36 -msgid "Defining the purchase price" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:34 +msgid ":ref:`Other inventory valuation methods `" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:38 -msgid "The purchase price is estimated at the reception of the products (you might not have received the vendor bill yet) and reevaluated at the reception of the vendor bill. The purchase price includes the cost you pay for the products, but it may also includes additional costs, like landed costs." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:39 +msgid "To use average cost inventory valuation on a product, navigate to :menuselection:`Inventory --> Configuration --> Product Categories` and select the category that will be using |AVCO|. On the product category page, set :guilabel:`Costing Method` to `Average Cost (AVCO)` and :guilabel:`Inventory Valuation` to `Automated`." msgstr "" #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:45 -msgid "Average cost example" +msgid ":ref:`Inventory valuation configuration `" msgstr "" #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:48 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:82 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:101 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:117 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:144 +msgid "Using average cost valuation" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:50 +msgid "The average cost method adjusts the inventory valuation when products are received in the warehouse. This section explains how it works, but if the explanation is unnecessary, skip to the :ref:`return to supplier use case ` section." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:57 +msgid "Formula" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:59 +msgid "When new products arrive, the new average cost for each product is recomputed using the formula:" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:61 +msgid "Avg~Cost = \\frac{(Old~Qty \\times Old~Avg~Cost) + (Incoming~Qty \\times Purchase~Price)}{Final~Qty}\n" +"\n" +"" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:64 +msgid "**Old Qty**: product count in stock before receiving the new shipment;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:65 +msgid "**Old Avg Cost**: calculated average cost for a single product from the previous inventory valuation;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:67 +msgid "**Incoming Qty**: count of products arriving in the new shipment;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:68 +msgid "**Purchase Price**: estimated price of products at the reception of products (since vendor bills may arrive later). The amount includes not only the price for the products, but also added costs, such as shipping, taxes, and :ref:`landed costs `. At reception of the vendor bill, this price is adjusted;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:72 +msgid "**Final Qty**: quantity of on-hand stock after the stock move." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:77 +msgid "When products leave the warehouse, the average cost **does not** change. Read about why the average cost valuation is **not** adjusted :ref:`here `." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:83 +msgid "Compute average cost" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:85 +msgid "To understand how the average cost of a product changes with each shipment, consider the following table of warehouse operations and stock moves. Each is a different example of how the average cost valuation is affected." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:90 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:196 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:237 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:274 msgid "Operation" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:48 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:82 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:101 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:117 -msgid "Delta Value" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:90 +msgid "Incoming Value" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:48 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:82 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:101 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:117 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:144 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:90 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:196 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:237 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:274 msgid "Inventory Value" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:48 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:82 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:101 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:117 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:144 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:90 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:196 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:237 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:274 msgid "Qty On Hand" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:48 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:82 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:101 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:117 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:144 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:90 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:196 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:237 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:274 msgid "Avg Cost" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:50 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:146 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:150 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:154 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:156 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:160 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:92 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:276 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:280 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:284 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:286 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:290 msgid "$0" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:50 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:146 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:92 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:276 #: ../../content/applications/finance/fiscal_localizations/france.rst:240 msgid "0" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:52 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:148 -msgid "Receive 8 Products at $10" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:94 +msgid "Receive 8 tables at $10/unit" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:52 -msgid "+8\\*$10" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:94 +msgid "8 * $10" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:52 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:148 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:150 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:94 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:278 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:280 msgid "$80" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:52 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:148 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:150 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:94 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:278 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:280 msgid "8" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:52 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:148 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:150 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:94 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:278 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:280 msgid "$10" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:54 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:152 -msgid "Receive 4 Products at $16" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:96 +msgid "Receive 4 tables at $16/unit" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:54 -msgid "+4\\*$16" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:96 +msgid "4 * $16" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:54 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:152 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:154 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:96 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:282 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:284 msgid "$144" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:54 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:152 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:154 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:96 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:282 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:284 #: ../../content/applications/finance/fiscal_localizations/france.rst:88 #: ../../content/applications/finance/fiscal_localizations/france.rst:111 msgid "12" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:54 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:56 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:84 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:86 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:103 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:105 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:107 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:119 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:121 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:123 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:152 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:154 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:156 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:158 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:160 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:96 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:98 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:198 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:200 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:239 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:241 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:243 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:282 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:284 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:286 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:288 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:290 msgid "$12" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:56 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:156 -msgid "Deliver 10 Products" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:98 +msgid "Deliver 10 tables" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:56 -msgid "-10\\*$12" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:98 +msgid "-10 * $12" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:56 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:84 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:103 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:119 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:156 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:98 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:198 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:239 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:286 msgid "$24" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:56 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:84 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:103 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:119 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:156 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:98 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:198 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:239 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:286 msgid "2" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:60 -msgid "At the beginning, the Avg Cost is set to 0 set as there is no product in the inventory. When the first reception is made, the average cost becomes logically the purchase price." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:104 +msgid "Ensure comprehension of the above computations by reviewing the \"Receive 8 tables at $10/unit\" example." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:64 -msgid "At the second reception, the average cost is updated because the total inventory value is now ``$80 + 4*$16 = $144``. As we have 12 units on hand, the average price per unit is ``$144 / 12 = $12``." -msgstr "" - -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:68 -msgid "By definition, the delivery of 10 products does not change the average cost. Indeed, the inventory value is now $24 as we have only 2 units remaining of each ``$24 / 2 = $12``." -msgstr "" - -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:73 -msgid "Purchase return use case" -msgstr "" - -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:75 -msgid "In case of a product returned to its supplier after reception, the inventory value is reduced using the average cost formulae (not at the initial price of these products!)." -msgstr "" - -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:79 -msgid "Which means that the above table will be updated as follow:" -msgstr "" - -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:86 #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:107 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:123 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:158 -msgid "Return of 1 Product initially bought at $10" +msgid "Initially, the product stock is 0, so all values are $0." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:86 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:105 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:121 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:123 -msgid "-1\\*$12" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:109 +msgid "In the first warehouse operation, `8` tables are received at `$10` each. The average cost is calculated using the :ref:`formula `:" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:112 +msgid "Avg~Cost = \\frac{0 + 8 \\times $10}{8} = \\frac{$80}{8} = $10\n" +"\n" +"" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:115 +msgid "Since the *incoming quantity* of tables is `8` and the *purchase price* for each is `$10`," +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:116 +msgid "The inventory value in the numerator is evaluated to `$80`;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:117 +msgid "`$80` is divided by the total amount of tables to store, `8`;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:118 +msgid "`$10` is the average cost of a single table from the first shipment." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:120 +msgid "To verify this in Odoo, in the *Purchase* app, order `8` quantities of a new product, `Table`, with no previous stock moves, for `$10` each." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:123 +msgid "In the table's :guilabel:`Product Category` field in the :guilabel:`General Information` tab of the product form, click the :guilabel:`➡️ (arrow)` icon, to open an :guilabel:`External Link` to edit the product category. Set the :guilabel:`Costing Method` to `Average Cost (AVCO)` and :guilabel:`Inventory Valuation` to `Automated`." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:128 +msgid "Then, return to the purchase order. Click :guilabel:`Confirm Order`, and click :guilabel:`Receive Products` to confirm receipt." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:131 +msgid "Next, check the inventory valuation record generated by the product reception by navigating to :menuselection:`Inventory --> Reporting --> Inventory Valuation`. Select the drop-down for `Table`, and view the :guilabel:`Total Value` column for the *valuation layer* (:dfn:`inventory valuation at a specific point in time = on-hand quantity * unit price`). The 8 tables in-stock are worth $80." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:0 +msgid "Show inventory valuation of 8 tables in Odoo." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:142 +msgid "When the product category's :guilabel:`Costing Method` is set to :guilabel:`AVCO`, then the average cost of a product is also displayed on the :guilabel:`Cost` field, under the :guilabel:`General Information` tab, on the product page itself." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:147 +msgid "Product delivery (use case)" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:149 +msgid "For outgoing shipments, :ref:`outbound products have no effect on the average cost valuation `. Although the average cost valuation is not recalculated, the inventory value still decreases because the product is removed from stock and delivered to the customer location." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:155 +msgid "To demonstrate that the average cost valuation is not recalculated, examine the \"Deliver 10 tables\" example." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:86 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:105 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:121 #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:158 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:160 +msgid "Avg~Cost = \\frac{12 \\times $12 + (-10) \\times $12}{12-10} = \\frac{24}{2} = $12\n" +"\n" +"" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:161 +msgid "Because 10 tables are being sent out to customers, the *incoming quantity* is `-10`. The previous average cost (`$12`) is used in lieu of a vendor's *purchase price*;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:163 +msgid "The *incoming inventory value* is `-10 * $12 = -$120`;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:164 +msgid "The old *inventory value* (`$144`) is added to the *incoming inventory value* (`-$120`), so `$144 + -$120 = $24`;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:166 +msgid "Only `2` tables remain after shipping out `10` tables from `12`. So the current *inventory value* (`$24`) is divided by the on-hand quantity (`2`);" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:168 +msgid "`$24 / 2 = $12`, which is the same average cost as the previous operation." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:170 +msgid "To verify this in Odoo, sell `10` tables in the *Sales* app, validate the delivery, and then review the inventory valuation record by going to in :menuselection:`Inventory --> Reporting --> Inventory Valuation`. In the topmost valuation layer, delivering `10` tables reduces the product's value by `-$120`." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:175 +msgid "**Note**: What is not represented in this stock valuation record is the revenue made from this sale, so this decrease is not a loss to the company." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:0 +msgid "Show how deliveries decrease inventory valuation." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:185 +msgid "Return items to supplier (use case)" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:187 +msgid "Because the price paid to suppliers can differ from the price the product is valued at with the |AVCO| method, Odoo handles returned items in a specific way." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:190 +msgid "Products are returned to suppliers at the original purchase price, but;" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:191 +msgid "The internal cost valuation remains unchanged." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:193 +msgid "The above :ref:`example table ` is updated as follows:" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:196 +msgid "Qty*Avg Cost" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:200 +msgid "Return 1 table bought at $10" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:200 +msgid "-1 * $12" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:200 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:241 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:288 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:290 #: ../../content/applications/finance/fiscal_localizations/france.rst:242 msgid "1" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:90 -msgid "Explanation: counter example" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:203 +msgid "In other words, returns to vendors are perceived by Odoo as another form of a product exiting the warehouse. To Odoo, because the table is valued at $12 per unit, the inventory value is reduced by `$12` when the product is returned; the initial purchase price of `$10` is unrelated to the table's average cost." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:92 -msgid "Remember the definition of **Average Cost**, saying that we do not update the average cost of a product leaving the inventory. If you break this rule, you may lead to inconsistencies in your inventory." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:209 +msgid "To return a single table that was purchased for `$10`, navigate to the receipt in the *Inventory* app for the :ref:`8 tables purchased in Exercise 1 ` by going to the :guilabel:`Inventory Overview`, clicking on :guilabel:`Receipts`, and selecting the desired receipt." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:96 -msgid "As an example, here is the scenario when you deliver one piece to the customer and return the other one to your supplier (at the cost you purchased it). Here is the operation:" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:214 +msgid "Then, click :guilabel:`Return` on the validated delivery order, and modify the quantity to `1` in the reverse transfer window. This creates an outgoing shipment for the table. Select :guilabel:`Validate` to confirm the outgoing shipment." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:105 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:121 -msgid "Customer Shipping 1 product" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:218 +msgid "Return to :menuselection:`Inventory --> Reporting --> Inventory Valuation` to see how the outgoing shipment decreases the inventory value by $12." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:107 -msgid "-1\\*$10" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:0 +msgid "Inventory valuation for return." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:107 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:158 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:228 +msgid "Eliminate stock valuation errors in outgoing products" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:230 +msgid "Inconsistencies can occur in a company's inventory when the average cost valuation is recalculated on outgoing shipments." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:233 +msgid "To demonstrate this error, the table below displays a scenario in which 1 table is shipped to a customer and another is returned to a supplier at the purchased price." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:237 +msgid "Qty*Price" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:241 +msgid "Ship 1 product to customer" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:241 +msgid "-1 \\* $12" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:243 +msgid "Return 1 product initially bought at $10" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:243 +msgid "-1 \\* $10" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:243 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:288 msgid "**$2**" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:107 -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:123 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:243 msgid "**0**" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:110 -msgid "As you can see in this example, this is not correct: an inventory valuation of $2 for 0 pieces in the warehouse." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:246 +msgid "In the final operation above, the final inventory valuation for the table is `$2` even though there are `0` tables left in stock." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:113 -msgid "The correct scenario should be to return the goods at the current average cost:" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:249 +msgid "Correct method" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:123 -msgid "**$0**" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:251 +msgid "Use the average cost to value the return. This does not mean the company gets $12 back for a $10 purchase; the item returned for $10 is valued internally at $12. The inventory value change represents a product worth $12 no longer being accounted for in company assets." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:126 -msgid "On the other hand, using the average cost to value the return ensure a correct inventory value at all times." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:256 +msgid "Anglo-Saxon accounting" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:130 -msgid "Further thoughts on anglo saxon mode" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:258 +msgid "In addition to using |AVCO|, companies that use **Anglo-Saxon accounting** also keep a holding account that tracks the amount to be paid to vendors. Once a vendor delivers an order, **inventory value** increases based on the vendor price of the products that have entered the stock. The holding account (called **stock input**) is credited and only reconciled once the vendor bill is received." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:132 -msgid "For people in using the **anglo saxon accounting** principles, there is another concept to take into account: the stock input account of the product, which is intended to hold at any time the value of vendor bills to receive. So the stock input account will increase on reception of incoming shipments and will decrease when receiving the related vendor bills." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:264 +msgid ":ref:`Anglo-Saxon vs. Continental `" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:139 -msgid "Back to our example, we see that when the return is valued at the average price, the amount booked in the stock input account is the original purchase price:" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:266 +msgid "The table below reflects journal entries and accounts. The *stock input* account stores the money intended to pay vendors when the vendor bill has not yet been received. To balance accounts when returning products that have a price difference between the price the product is **valued at** and the price it was bought for, a *price difference* account is created." msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:144 -msgid "stock input" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:274 +msgid "Stock Input" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:144 -msgid "price diff" +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:274 +msgid "Price Diff" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:148 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:278 +msgid "Receive 8 tables at $10" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:278 msgid "($80)" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:150 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:280 msgid "Receive vendor bill $80" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:152 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:282 +msgid "Receive 4 tables at $16" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:282 msgid "($64)" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:154 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:284 msgid "Receive vendor bill $64" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:158 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:286 +msgid "Deliver 10 tables to customer" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:288 +msgid "Return 1 table initially bought at $10" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:288 msgid "**$10**" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:158 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:288 msgid "**$12**" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:160 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:290 msgid "Receive vendor refund $10" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:160 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:290 msgid "$2" msgstr "" -#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:163 -msgid "This is because the vendor refund will be made using the original purchase price, so to zero out the effect of the return in the stock input in last operation, we need to reuse the original price. The price difference account located on the product category is used to book the difference between the average cost and the original purchase price." +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:294 +msgid "Product reception" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:297 +msgid "Summary" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:299 +msgid "At product reception, Odoo ensures companies can pay for goods that were purchased by preemptively moving an amount matching the price of received goods into the :doc:`liability account `, **Stock Input**. Then, once the bill has been received, the amount in the holding account is transferred to *Accounts Payable*. Transfers into this account means the bill has been paid. **Stock Input** is reconciled once the vendor bill is received." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:306 +msgid "Inventory valuation is a method of calculating how much each in-stock product is worth internally. Since there is a difference between the price the product is **valuated at** and the price the product was actually **purchased for**, the **Inventory Valuation** account is unrelated to the crediting and debiting operations of the **Stock Input** account." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:311 +msgid "To conceptualize all this, follow the breakdown below." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:314 +msgid "Accounts balanced at received products" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:316 +msgid "In this example, a company starts with zero units of a product, `table`, in stock. Then, 8 tables are received from the vendor:" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:319 +msgid "The **Stock Input** account stores `$80` of credit owed to the vendor. The amount in this account is unrelated to the inventory value." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:321 +msgid "`$80` worth of tables came **in** (**debit** the *Inventory Value* account `$80`), and" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:322 +msgid "`$80` must be paid **out** for received goods (**credit** the *Stock Input* account `$80`)." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:325 +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:368 +msgid "In Odoo" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:327 +msgid "Odoo generates an accounting journal entry when shipments that use |AVCO| costing method are received. Configure a :guilabel:`Price Difference Account` by selecting the :guilabel:`➡️ (arrow)` icon next to the :guilabel:`Product Category` field on the product page." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:331 +msgid "Under :guilabel:`Account Properties`, create a new :guilabel:`Price Difference Account` by typing in the name of the account and clicking :guilabel:`Create and Edit`. Then set the account :guilabel:`Type` as `Expenses`, and click :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:-1 +msgid "Create price difference account." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:339 +msgid "Then, receive the shipment in the *Purchase* app or *Inventory* app, and navigate to the :menuselection:`Accounting app --> Accounting --> Journal Entries`. In the list, find the :guilabel:`Reference` that matches the warehouse reception operation for the relevant product." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:-1 +msgid "Show accounting entry of 8 tables from the list." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:347 +msgid "Click on the line for 8 tables. This accounting journal entry shows that when the 8 tables were received, the `Stock Valuation` account increased by `$80`. Conversely, the **Stock Input** account (set as `Stock Interim (Received)` account by default) is credited `$80`." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:-1 +msgid "Debit stock valuation and credit stock input 80 dollars." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:356 +msgid "Accounts balanced at received vendor bill" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:358 +msgid "In this example, a company starts with zero units of a product, table, in stock. Then, 8 tables are received from the vendor. When the bill is received from vendor for 8 tables:" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:361 +msgid "Use `$80` in the **Stock Input** account to pay the bill. This cancels out and the account now holds `$0`." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:363 +msgid "Debit **Stock Input** `$80` (to reconcile this account)." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:364 +msgid "Credit **Accounts payable** `$80`. This account stores the amount the company owes others, so accountants use the amount to write checks to vendors." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:370 +msgid "Once the vendor requests payment, navigate to the :menuselection:`Purchase app --> Orders --> Purchase` and select the :abbr:`PO (Purchase Order)` for 8 tables. Inside the :abbr:`PO (Purchase Order)`, select :guilabel:`Create Bill`." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:374 +msgid "Switch to the :guilabel:`Journal Items` tab to view how `$80` is transferred from the holding account, `Stock Interim (Received)` to `Accounts Payable`. :guilabel:`Confirm` the bill to record the payment to the vendor." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:-1 +msgid "Show bill linked to the purchase order for 8 tables." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:383 +msgid "On product delivery" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:385 +msgid "In the :ref:`above example table `, when 10 products are delivered to a customer, the **Stock Input** account is untouched because there are no new products coming in. To put it simply:" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:389 +msgid "**Inventory valuation** is credited `$120`. Subtracting from inventory valuation represents `$120` worth of products exiting the company." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:391 +msgid "Debit **Accounts Receivable** to record revenue from the sale." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:-1 +msgid "Show journal items linked to sale order." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:399 +msgid "In the accounting journal entry invoicing a customer for 10 tables, the accounts **Product Sales**, **Tax Received**, and **Accounts Receivable** all pertain to the sale of the product. **Accounts Receivable** is the account where the customer payment will be received." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:403 +msgid "Anglo-Saxon accounting recognizes the cost of goods sold (COGS) once the sale is made. So, up until the product is sold, scrapped, or returned, costs of keeping the product in stock are not accounted for. The **Expense** account is debited `$120` to log the costs of storing 10 tables during this period of time." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:409 +msgid "On product return" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:411 +msgid "In the :ref:`above example table `, when returning 1 product to a vendor purchased at `$10`, a company expects `$10` in the **Accounts Payable** account from the vendor. However, **Stock Input** account must be debited `$12` because the average cost is `$12` at the time of the return. The missing `$2` is accounted for in the :guilabel:`Price Difference Account`, which is set up in the product's :guilabel:`Product Category`." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:418 +msgid "Behavior of *price difference accounts* varies from localization. In this case, the account is intended to store differences between vendor price and *automated* inventory valuation methods." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:421 +msgid "Summary:" +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:423 +msgid "Debit **Stock Input** account `$10` to move the table from stock to stock input. This move is to indicate that the table is to be processed for an outgoing shipment." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:425 +msgid "Debit **Stock Input** an additional `$2` to account for the **Price Difference**." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:426 +msgid "Credit **Stock Valuation** `$12` because the item is leaving the stock." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:-1 +msgid "2 dollar difference expensed in Price Difference account." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:432 +msgid "Once the vendor's refund is received," +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:434 +msgid "Credit **Stock Input** account `$10` to reconcile the price of the table." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:435 +msgid "Debit **Accounts Payable** `$10` to have the accountants collect and register the payment in their journal." +msgstr "" + +#: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:-1 +msgid "Return to get 10 dollars back." msgstr "" #: ../../content/applications/finance/accounting/get_started/chart_of_accounts.rst:3 @@ -4371,7 +4749,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/belgium.rst:17 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:154 #: ../../content/applications/finance/fiscal_localizations/chile.rst:363 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:215 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:247 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:241 #: ../../content/applications/finance/fiscal_localizations/romania.rst:65 #: ../../content/applications/finance/fiscal_localizations/united_arab_emirates.rst:38 @@ -4614,7 +4992,8 @@ msgid "Select a **default tax** that will be applied when this account is chosen msgstr "" #: ../../content/applications/finance/accounting/get_started/chart_of_accounts.rst:126 -#: ../../content/applications/finance/documents.rst:58 +#: ../../content/applications/finance/documents.rst:52 +#: ../../content/applications/finance/sign.rst:227 msgid "Tags" msgstr "" @@ -7138,7 +7517,7 @@ msgid "The subformula allows you to define how the move lines matching the domai msgstr "" #: ../../content/applications/finance/accounting/reporting/customize.rst:104 -#: ../../content/applications/finance/accounting/reporting/customize.rst:234 +#: ../../content/applications/finance/accounting/reporting/customize.rst:270 msgid "`sum`" msgstr "" @@ -7322,55 +7701,115 @@ msgstr "" msgid "This formula matches accounts whose code starts with `21D`, regardless of their balance sign." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:224 -msgid "'External Value' engine" +#: ../../content/applications/finance/accounting/reporting/customize.rst:223 +msgid "In addition to using code prefixes to include accounts, you can also match them with **account tags**. This is especially useful, for example, if your country lacks a standardized chart of accounts, where the same prefix might be used for different purposes across companies." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:226 -msgid "The 'external value' engine is used to refer to **manual** and **carryover values**. Those values are not stored using `account.move.line`, but with `account.report.external.value`. Each of these objects directly points to the expression it impacts, so very little needs to be done about their selection here." +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "`tag(25)`" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "This formula matches accounts whose associated tags contain the one with id *25*." msgstr "" #: ../../content/applications/finance/accounting/reporting/customize.rst:231 -msgid "**Formulas** can be one of the following:" +msgid "If the tag you reference is defined in a data file, an xmlid can be used instead of the id." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:234 -msgid "If the result must be the sum of all the external values in the period." +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "`tag(my_module.my_tag)`" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:237 -msgid "`most_recent`" +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "This formula matches accounts whose associated tags include the tag denoted by *my_module.my_tag*." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:237 -msgid "If the result must be the value of the latest external value in the period." +#: ../../content/applications/finance/accounting/reporting/customize.rst:238 +msgid "You can also use arithmetic expressions with tags, possibly combining them with prefix selections." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:239 -msgid "In addition, **subformulas** can be used in two ways:" +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "`tag(my_module.my_tag) + tag(42) + 10`" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:242 -msgid "`rounding=X`" -msgstr "" - -#: ../../content/applications/finance/accounting/reporting/customize.rst:242 -msgid "Replacing `X` with a number instructs to round the amount to X decimals." -msgstr "" - -#: ../../content/applications/finance/accounting/reporting/customize.rst:246 -msgid "`editable`" +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "The balances of accounts tagged as *my_module.my_tag* will be summed with those of accounts linked to the tag with ID *42* and accounts with the code prefix `10`" msgstr "" #: ../../content/applications/finance/accounting/reporting/customize.rst:245 -msgid "Indicates this expression can be edited manually, triggering the display of an icon in the report, allowing the user to perform this action." +msgid "`C` and `D` suffixes can be used in the same way with tags." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:249 -msgid "Manual values are created at the `date_to` currently selected in the report." +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "`tag(my_module.my_tag)C`" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "This formula matches accounts with the tag *my_module.my_tag* and a credit balance." msgstr "" #: ../../content/applications/finance/accounting/reporting/customize.rst:251 +msgid "Prefix exclusion also works with tags." +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "`tag(my_module.my_tag)\\\\(10)`" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:0 +msgid "This formula matches accounts with the tag *my_module.my_tag* and a code not starting with `10`." +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:260 +msgid "'External Value' engine" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:262 +msgid "The 'external value' engine is used to refer to **manual** and **carryover values**. Those values are not stored using `account.move.line`, but with `account.report.external.value`. Each of these objects directly points to the expression it impacts, so very little needs to be done about their selection here." +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:267 +msgid "**Formulas** can be one of the following:" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:270 +msgid "If the result must be the sum of all the external values in the period." +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:273 +msgid "`most_recent`" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:273 +msgid "If the result must be the value of the latest external value in the period." +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:275 +msgid "In addition, **subformulas** can be used in two ways:" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:278 +msgid "`rounding=X`" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:278 +msgid "Replacing `X` with a number instructs to round the amount to X decimals." +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:282 +msgid "`editable`" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:281 +msgid "Indicates this expression can be edited manually, triggering the display of an icon in the report, allowing the user to perform this action." +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:285 +msgid "Manual values are created at the `date_to` currently selected in the report." +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:287 msgid "Both subformulas can be mixed by separating them with a `;`." msgstr "" @@ -7382,19 +7821,19 @@ msgstr "" msgid "is a correct subformula mixing both behaviors." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:258 +#: ../../content/applications/finance/accounting/reporting/customize.rst:294 msgid "'Custom Python Function' engine" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:260 +#: ../../content/applications/finance/accounting/reporting/customize.rst:296 msgid "This engine is a means for developers to introduce custom computation of expressions on a case-by-case basis. The formula is the name of a **python function** to call, and the subformula is a **key** to fetch in the **dictionary** returned by this function. Use it only if you are making a custom module of your own." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:266 +#: ../../content/applications/finance/accounting/reporting/customize.rst:302 msgid "Columns" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:268 +#: ../../content/applications/finance/accounting/reporting/customize.rst:304 msgid "Reports can have an **indefinite number** of columns to display. Each column gets its values from the **expressions** declared on the **lines**. The field :guilabel:`expression_label` of the column gives the label of the expressions whose value is displayed. If a line has no **expression** in that field, then nothing is displayed for it in this column. If multiple columns are required, you must use different **expression** labels." msgstr "" @@ -7402,7 +7841,7 @@ msgstr "" msgid "Columns of report." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:278 +#: ../../content/applications/finance/accounting/reporting/customize.rst:314 msgid "When using the **period comparison** feature found under the :guilabel:`Options` tab of an accounting report, all columns are repeated in and for each period." msgstr "" @@ -9869,34 +10308,34 @@ msgid "Documents" msgstr "" #: ../../content/applications/finance/documents.rst:5 -msgid "**Odoo Documents** allows you to store, view and manage files within Odoo." +msgid "**Odoo Documents** allows you to store, view, and manage files within Odoo." msgstr "" #: ../../content/applications/finance/documents.rst:7 -msgid "You can upload any type of file (max 64MB per file on Odoo Online), and organize them in various workspaces." +msgid "You can upload any file (max 64MB per file on Odoo Online) and organize them in various workspaces." msgstr "" -#: ../../content/applications/finance/documents.rst:11 +#: ../../content/applications/finance/documents.rst:10 msgid "`Odoo Documents: product page `_" msgstr "" -#: ../../content/applications/finance/documents.rst:12 -msgid "`Odoo Tutorials: Documents basics `_" +#: ../../content/applications/finance/documents.rst:11 +msgid "`Odoo Tutorials: Documents basics [video] `_" msgstr "" #: ../../content/applications/finance/documents.rst:13 -msgid "`Odoo Tutorials: Using Documents with your Accounting App `_" +msgid "`Odoo Tutorials: Using Documents with your Accounting App [video] `_" msgstr "" -#: ../../content/applications/finance/documents.rst:19 -msgid "By going to :menuselection:`Documents --> Configuration --> Settings`, you can enable the centralization of files attached to a specific area of your activity. For example, by ticking :guilabel:`Human Resources`, your HR documents are automatically available in the HR workspace, while documents related to Payroll are automatically available in the Payroll sub-workspace . You can change the default workspace by using the dropdown menu and edit its properties by clicking the internal link button (:guilabel:`➔`)." +#: ../../content/applications/finance/documents.rst:18 +msgid "By going to :menuselection:`Documents --> Configuration --> Settings`, you can enable the centralization of files attached to a specific area of your activity. For example, by ticking :guilabel:`Human Resources`, your HR documents are automatically available in the HR workspace, while documents related to Payroll are automatically available in the Payroll sub-workspace . You can change the default workspace using the dropdown menu and edit its properties by clicking the internal link button (:guilabel:`➔`)." msgstr "" #: ../../content/applications/finance/documents.rst:-1 msgid "Enable the centralization of files attached to a specific area of your activity." msgstr "" -#: ../../content/applications/finance/documents.rst:31 +#: ../../content/applications/finance/documents.rst:29 msgid "If you enable the centralization of your accounting files and documents, it is necessary to click on :guilabel:`Journals` and define each journal independently to allow automatic synchronization." msgstr "" @@ -9904,111 +10343,262 @@ msgstr "" msgid "Enable the centralization of files attached to your accounting." msgstr "" -#: ../../content/applications/finance/documents.rst:39 +#: ../../content/applications/finance/documents.rst:36 msgid "If you select a new workspace, existing documents aren't moved. Only newly created documents will be found under the new workspace." msgstr "" -#: ../../content/applications/finance/documents.rst:43 +#: ../../content/applications/finance/documents.rst:40 msgid "Workspaces" msgstr "" -#: ../../content/applications/finance/documents.rst:45 -msgid "Workspaces are hierarchical folders having their own set of tags and actions. Default workspaces exist, but you can create your own by going to :menuselection:`Documents --> Configuration --> Workspaces` and clicking on :guilabel:`Create`." +#: ../../content/applications/finance/documents.rst:42 +msgid "Workspaces are hierarchical folders having their own set of tags and :ref:`actions `. Default workspaces exist, but you can create your own by going to :menuselection:`Documents --> Configuration --> Workspaces` and clicking :guilabel:`New`. On the new page, fill in the following information:" msgstr "" -#: ../../content/applications/finance/documents.rst:50 -msgid ":guilabel:`Workspaces` and :guilabel:`Sub-workspaces` can be created, edited, or deleted by clicking on the gear icon :guilabel:`⚙` on the left menu." +#: ../../content/applications/finance/documents.rst:47 +#: ../../content/applications/finance/fiscal_localizations/brazil.rst:70 +#: ../../content/applications/finance/fiscal_localizations/brazil.rst:233 +#: ../../content/applications/finance/fiscal_localizations/chile.rst:234 +#: ../../content/applications/finance/fiscal_localizations/ecuador.rst:78 +#: ../../content/applications/finance/fiscal_localizations/ecuador.rst:271 +msgid ":guilabel:`Name`" msgstr "" -#: ../../content/applications/finance/documents.rst:-1 -msgid "Create sub-workspaces from the left menu" +#: ../../content/applications/finance/documents.rst:48 +msgid ":guilabel:`Parent Workspace`: if you want to create a sub-workspace, select its :guilabel:`Parent Workspace`" msgstr "" -#: ../../content/applications/finance/documents.rst:60 -msgid "Tags are used within workspaces to add a level of differentiation between documents. They are organized per category and filters can be used to sort them." +#: ../../content/applications/finance/documents.rst:54 +msgid "Tags are used within workspaces to add a level of differentiation between documents. They are organized per category, and filters can be used to sort them." msgstr "" -#: ../../content/applications/finance/documents.rst:64 -msgid "The tags of a parent workspace apply to the child workspaces automatically." +#: ../../content/applications/finance/documents.rst:57 +msgid "Tags can be created from the :guilabel:`Tags` tab. Click :guilabel:`Add a line`, create the :guilabel:`Tag Category`, and :guilabel:`Name` your tags." msgstr "" -#: ../../content/applications/finance/documents.rst:65 -msgid "Tags can be created and modified by going to :menuselection:`Configuration --> Tags`." +#: ../../content/applications/finance/documents.rst:61 +msgid "The tags of a parent workspace apply to the child workspaces automatically;" +msgstr "" + +#: ../../content/applications/finance/documents.rst:62 +msgid "Tags can be created and modified by going to :menuselection:`Configuration --> Tags`;" +msgstr "" + +#: ../../content/applications/finance/documents.rst:63 +msgid "Tags can also be created or edited by clicking the gear icon :guilabel:`⚙` on the left menu." msgstr "" #: ../../content/applications/finance/documents.rst:66 -msgid "Tags can also be created, edited, or deleted, by clicking on the gear icon :guilabel:`⚙`, on the left menu." +msgid "Access rights" msgstr "" -#: ../../content/applications/finance/documents.rst:70 +#: ../../content/applications/finance/documents.rst:68 +msgid "To manage your workspace access rights, go to :menuselection:`Documents --> Configuration --> Workspaces`, open the workspace you want to edit, and go to the :guilabel:`Access Rights` tab. You can add :guilabel:`Write Groups` that can view, create, and edit the workspace's documents. You can also add :guilabel:`Read Groups` that can only view the workspace's documents." +msgstr "" + +#: ../../content/applications/finance/documents.rst:74 +#: ../../content/applications/finance/fiscal_localizations/argentina.rst:31 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:16 +#: ../../content/applications/finance/fiscal_localizations/brazil.rst:39 +#: ../../content/applications/finance/fiscal_localizations/chile.rst:32 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:35 +#: ../../content/applications/finance/fiscal_localizations/ecuador.rst:48 +#: ../../content/applications/finance/fiscal_localizations/egypt.rst:18 +#: ../../content/applications/finance/fiscal_localizations/france.rst:59 +#: ../../content/applications/finance/fiscal_localizations/india.rst:18 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:19 +#: ../../content/applications/finance/fiscal_localizations/kenya.rst:18 +#: ../../content/applications/finance/fiscal_localizations/kenya.rst:36 +#: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:16 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:68 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:100 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:124 +#: ../../content/applications/finance/fiscal_localizations/romania.rst:16 +#: ../../content/applications/finance/fiscal_localizations/saudi_arabia.rst:17 +#: ../../content/applications/finance/fiscal_localizations/thailand.rst:16 +#: ../../content/applications/finance/fiscal_localizations/united_arab_emirates.rst:18 +#: ../../content/applications/finance/fiscal_localizations/united_kingdom.rst:16 +msgid "Description" +msgstr "" + +#: ../../content/applications/finance/documents.rst:76 +msgid "You can add descriptive information to your workspace by going to :menuselection:`Documents --> Configuration --> Workspaces`, opening the workspace you want to describe and going to the :guilabel:`Description` tab." +msgstr "" + +#: ../../content/applications/finance/documents.rst:81 +msgid "Workspaces can also be created and edited by clicking the gear icon :guilabel:`⚙` on the left menu." +msgstr "" + +#: ../../content/applications/finance/documents.rst:0 +msgid "Create sub-workspaces from the left menu" +msgstr "" + +#: ../../content/applications/finance/documents.rst:88 msgid "Documents management" msgstr "" -#: ../../content/applications/finance/documents.rst:72 -msgid "When clicking on a specific document, the right panel displays different options. On the top, additional options might be available: :guilabel:`Download`, :guilabel:`Share`, :guilabel:`Replace`, :guilabel:`Lock` or :guilabel:`Split`. It is also possible to :guilabel:`Open chatter` or :guilabel:`Archive` the document." +#: ../../content/applications/finance/documents.rst:90 +msgid "When selecting or opening a document, the right panel displays different options. On the top, additional options might be available: :guilabel:`Download`, :guilabel:`Share`, :guilabel:`Replace`, :guilabel:`Lock` or :guilabel:`Split`. It is also possible to :guilabel:`Open chatter` or :guilabel:`Archive` the document." msgstr "" #: ../../content/applications/finance/documents.rst:-1 msgid "right panel options" msgstr "" -#: ../../content/applications/finance/documents.rst:81 -msgid "Then, you can modify the name of your file by clicking on :guilabel:`Document`. A :guilabel:`Contact` or an :guilabel:`Owner` can be assigned. The related :guilabel:`Workspace` can be modified and it is possible to access the related :guilabel:`Journal Entry` or to add :guilabel:`Tags`." +#: ../../content/applications/finance/documents.rst:99 +msgid "Then, you can modify the name of your file by clicking on :guilabel:`Document`. A :guilabel:`Contact` or an :guilabel:`Owner` can be assigned. The related :guilabel:`Workspace` can be modified and it is possible to access the related :guilabel:`Journal Entry` or add :guilabel:`Tags`." msgstr "" -#: ../../content/applications/finance/documents.rst:87 +#: ../../content/applications/finance/documents.rst:105 msgid "The :guilabel:`Contact` is the person related to the document and assigned to it. He can only view the document and not modify it. I.e.: an existing supplier in your database is the contact for their bill." msgstr "" -#: ../../content/applications/finance/documents.rst:90 -msgid "The person who creates a document is, by default :guilabel:`Owner` of it and has complete rights to the document. It is possible to replace the owner of a document. I.e.: an employee must be owner of a document to be able to see it in \"My Profile\"." +#: ../../content/applications/finance/documents.rst:108 +msgid "The person who creates a document is, by default :guilabel:`Owner` of it and has complete rights to it. It is possible to replace the owner of a document. I.e., an employee must be owner of a document to be able to see it in \"My Profile\"." msgstr "" -#: ../../content/applications/finance/documents.rst:94 -msgid "Finally, different :guilabel:`Actions` are available at the bottom of the right panel, depending on the workspace where your document is stored." +#: ../../content/applications/finance/documents.rst:112 +msgid "Different :ref:`Actions ` are available at the bottom of the right panel, depending on the workspace where your document is stored." msgstr "" -#: ../../content/applications/finance/documents.rst:98 -msgid "Workflow actions" +#: ../../content/applications/finance/documents.rst:116 +msgid "Split PDF documents" msgstr "" -#: ../../content/applications/finance/documents.rst:100 -msgid "Workflow actions help you streamline the management of your documents and your overall business operations. These are automated actions that can be created and customized for each workspace. For example, create documents, process bills, sign, organize files, add tags to a file or move it to another workspace with a single click etc. These workflow actions appear on the right panel when it meets the criteria you set." +#: ../../content/applications/finance/documents.rst:118 +msgid "Select the PDF you want to split, and click the scissors icon. A new view displays all the pages of the document." msgstr "" -#: ../../content/applications/finance/documents.rst:107 -msgid "Create workflow actions" +#: ../../content/applications/finance/documents.rst:121 +msgid "By default, each page of the document will be split when clicking :guilabel:`Split`. To remove a split between two pages, click on the scissors icon." msgstr "" -#: ../../content/applications/finance/documents.rst:109 -msgid "To create workflow actions, go to :menuselection:`Documents --> Configuration --> Actions` and then click on :guilabel:`Create`." -msgstr "" - -#: ../../content/applications/finance/documents.rst:113 -msgid "An action applies to all :guilabel:`Child Workspaces` under the :guilabel:`Parent Workspace` you selected." -msgstr "" - -#: ../../content/applications/finance/documents.rst:117 -msgid "Set the conditions" -msgstr "" - -#: ../../content/applications/finance/documents.rst:119 -msgid "You can :guilabel:`Create` a new :guilabel:`Action` or edit an existing one. You can define the :guilabel:`Action Name` and then set the conditions that trigger the appearance of the action button (:guilabel:`▶`) on the right-side panel when selecting a file." -msgstr "" - -#: ../../content/applications/finance/documents.rst:123 -msgid "There are three basic types of conditions you can set:" -msgstr "" - -#: ../../content/applications/finance/documents.rst:125 -msgid ":guilabel:`Tags`: you can both use the :guilabel:`Contains` and :guilabel:`Does not contain` conditions, meaning the files *must have* or *mustn't have* the tags set here." +#: ../../content/applications/finance/documents.rst:-1 +msgid "split your documents" msgstr "" #: ../../content/applications/finance/documents.rst:128 +msgid "To merge documents from your dashboard, select them and click the scissors icon. Click on the scissors between the two documents and click :guilabel:`Split` to merge the documents." +msgstr "" + +#: ../../content/applications/finance/documents.rst:132 +#: ../../content/applications/finance/payment_providers.rst:175 +msgid "Additional features" +msgstr "" + +#: ../../content/applications/finance/documents.rst:134 +msgid "Select a workspace and click the arrow next to the :guilabel:`Upload` button to access additional features:" +msgstr "" + +#: ../../content/applications/finance/documents.rst:138 +msgid "Request" +msgstr "" + +#: ../../content/applications/finance/documents.rst:140 +msgid "You can create \"missing documents\" and organize them as documents, to remind users to download them." +msgstr "" + +#: ../../content/applications/finance/documents.rst:142 +msgid "Select the workspace where the file should be stored, click :guilabel:`Upload`, then :guilabel:`Request`. Add the :guilabel:`Document Name`, select the person you need it from in the :guilabel:`Request To` field, fill in the :guilabel:`Due Date In`, confirm the :guilabel:`Workspace`, the document should belong to, and add :guilabel:`Tags` and a :guilabel:`Note`, if needed. Then, click :guilabel:`Request`. A placeholder for the missing document is created in the workspace." +msgstr "" + +#: ../../content/applications/finance/documents.rst:149 +msgid "When your document is available, click the placeholder to upload it." +msgstr "" + +#: ../../content/applications/finance/documents.rst:151 +msgid "You can see all missing documents by going to the **Activity** view and to the :guilabel:`Requested Document` column." +msgstr "" + +#: ../../content/applications/finance/documents.rst:155 +msgid "From the :guilabel:`Activity` view, you can send a **reminder email** to users from whom you are expecting a document. Go to the :guilabel:`Requested Document` column, click on ⋮ and :guilabel:`Document Request: Reminder`." +msgstr "" + +#: ../../content/applications/finance/documents.rst:159 +msgid "Click on a date to see the details of a specific request. You can update it by clicking on the pen icon, :guilabel:`Preview` the content of the reminder email, or :guilabel:`Send Now` to send a reminder email." +msgstr "" + +#: ../../content/applications/finance/documents.rst:0 +msgid "send a reminder email from the Activity view" +msgstr "" + +#: ../../content/applications/finance/documents.rst:167 +msgid "Add a link" +msgstr "" + +#: ../../content/applications/finance/documents.rst:169 +msgid "To add a link to your documents dashboard, click on :guilabel:`Add a Link`, enter the :guilabel:`URL`, and :guilabel:`Name` it." +msgstr "" + +#: ../../content/applications/finance/documents.rst:173 +msgid "Share" +msgstr "" + +#: ../../content/applications/finance/documents.rst:175 +msgid "You can create a share link to a document or all documents of a workspace. It allows anyone to download the file(s) or upload files to a workspace." +msgstr "" + +#: ../../content/applications/finance/documents.rst:178 +msgid "To do so, select the workspace or the document and click the arrow next to the :guilabel:`Upload` button then :guilabel:`Share`. On the pop-up, the share :guilabel:`URL` is displayed. :guilabel:`Copy` it to share it with anyone. :guilabel:`Name` the share link and set a validity date for the URL by filling in the :guilabel:`Valid Until` field. Tick the :guilabel:`Include Sub Folders` box if you also want to share a workspace's sub-folders. To let users upload their own documents, select :guilabel:`Download and Upload`." +msgstr "" + +#: ../../content/applications/finance/documents.rst:186 +msgid "It is possible to only share one or more documents (without their workspace) by selecting them and clicking :guilabel:`Share`." +msgstr "" + +#: ../../content/applications/finance/documents.rst:190 +msgid "New spreadsheet" +msgstr "" + +#: ../../content/applications/finance/documents.rst:192 +msgid "To create a new :doc:`spreadsheet `, click :guilabel:`New Spreadsheet`. You can select a :guilabel:`Blank spreadsheet` or an :doc:`existing template `." +msgstr "" + +#: ../../content/applications/finance/documents.rst:198 +msgid "Workflow actions" +msgstr "" + +#: ../../content/applications/finance/documents.rst:200 +msgid "Workflow actions help manage documents and overall business operations. These are automated actions that can be created and customized for each workspace. With a single click you can, for example, create, move, sign, and add tags to a document, and process bills." +msgstr "" + +#: ../../content/applications/finance/documents.rst:204 +msgid "These workflow actions appear on the right panel when a document meets the set criteria." +msgstr "" + +#: ../../content/applications/finance/documents.rst:207 +msgid "Create workflow actions" +msgstr "" + +#: ../../content/applications/finance/documents.rst:209 +msgid "To create workflow actions, go to :menuselection:`Documents --> Configuration --> Actions` and click :guilabel:`New`." +msgstr "" + +#: ../../content/applications/finance/documents.rst:213 +msgid "An action applies to all **sub-workspaces** under the :guilabel:`Related Workspace` you selected." +msgstr "" + +#: ../../content/applications/finance/documents.rst:216 +msgid "Set the conditions" +msgstr "" + +#: ../../content/applications/finance/documents.rst:218 +msgid "You can :guilabel:`Create` a new :guilabel:`Action` or edit an existing one. You can define the :guilabel:`Action Name` and then set the conditions that trigger the appearance of the action button (:guilabel:`▶`) on the right-side panel when selecting a file." +msgstr "" + +#: ../../content/applications/finance/documents.rst:222 +msgid "There are three basic types of conditions you can set:" +msgstr "" + +#: ../../content/applications/finance/documents.rst:224 +msgid ":guilabel:`Tags`: you can use the :guilabel:`Contains` and :guilabel:`Does not contain` conditions, meaning the files *must have* or *mustn't have* the tags set here." +msgstr "" + +#: ../../content/applications/finance/documents.rst:227 msgid ":guilabel:`Contact`: the files must be associated with the contact set here." msgstr "" -#: ../../content/applications/finance/documents.rst:130 +#: ../../content/applications/finance/documents.rst:229 msgid ":guilabel:`Owner`: the files must be associated with the owner set here." msgstr "" @@ -10016,111 +10606,119 @@ msgstr "" msgid "Example of a workflow action's basic condition in Odoo Documents" msgstr "" -#: ../../content/applications/finance/documents.rst:137 -msgid "If you don't set any conditions, the action button appears for all files located inside the selected workspace." +#: ../../content/applications/finance/documents.rst:235 +msgid "If you don't set any conditions, the action button appears for all files inside the selected workspace." msgstr "" -#: ../../content/applications/finance/documents.rst:141 +#: ../../content/applications/finance/documents.rst:239 msgid "Advanced condition type: domain" msgstr "" -#: ../../content/applications/finance/documents.rst:144 -msgid "It is recommended to have some knowledge of Odoo development to properly configure *Domain* filters." +#: ../../content/applications/finance/documents.rst:242 +msgid "It is recommended to have some knowledge of Odoo development to configure *Domain* filters properly." msgstr "" -#: ../../content/applications/finance/documents.rst:147 -msgid "To access the *Domain* condition, the :ref:`developer mode ` needs to be activated. Once that's done, select the :guilabel:`Domain` condition type, and click on :guilabel:`Add Filter`." +#: ../../content/applications/finance/documents.rst:245 +msgid "The :ref:`developer mode ` needs to be activated to access the :guilabel:`Domain` condition from the :guilabel:`Actions` tab. Once done, select the :guilabel:`Domain` condition type and click :guilabel:`Add condition`." msgstr "" -#: ../../content/applications/finance/documents.rst:-1 -msgid "Activating the domain condition type in Odoo Documents" -msgstr "" - -#: ../../content/applications/finance/documents.rst:154 -msgid "To create a rule, you typically select a :guilabel:`field`, an :guilabel:`operator`, and a :guilabel:`value`. For example, if you want to add a workflow action to all the PDF files inside a workspace, set the :guilabel:`field` to *Mime Type*, the :guilabel:`operator` to *contains*, and the :guilabel:`value` to *pdf*." +#: ../../content/applications/finance/documents.rst:249 +msgid "To create a rule, you typically select a :guilabel:`field`, an :guilabel:`operator`, and a :guilabel:`value`. For example, if you want to add a workflow action to all the PDF files inside a workspace, set the :guilabel:`field` to *Mime Type*, the :guilabel:`operator` to *contains*, and the pdf :guilabel:`value`." msgstr "" #: ../../content/applications/finance/documents.rst:-1 msgid "Example of a workflow action's domain condition in Odoo Documents" msgstr "" -#: ../../content/applications/finance/documents.rst:163 -msgid "Click on :guilabel:`Add node` (plus-circle icon) and :guilabel:`Add branch` (ellipsis icon) to add conditions and sub-conditions. You can then specify if your rule should match :guilabel:`ALL` or :guilabel:`ANY` conditions. You can also edit the rule directly using the :guilabel:`Code editor`." +#: ../../content/applications/finance/documents.rst:257 +msgid "Click :guilabel:`Add New Rule` (plus icon) and :guilabel:`Add branch` to add conditions and sub-conditions. You can then specify if your rule should match :guilabel:`all` or :guilabel:`any` conditions. You can also edit the rule directly using the :guilabel:`Code editor`." msgstr "" -#: ../../content/applications/finance/documents.rst:-1 -msgid "Add a node or a branch to a workflow action's condition in Odoo Documents" -msgstr "" - -#: ../../content/applications/finance/documents.rst:172 +#: ../../content/applications/finance/documents.rst:262 msgid "Configure the actions" msgstr "" -#: ../../content/applications/finance/documents.rst:174 +#: ../../content/applications/finance/documents.rst:264 msgid "Select the :guilabel:`Actions` tab to set up your action. You can simultaneously:" msgstr "" -#: ../../content/applications/finance/documents.rst:176 +#: ../../content/applications/finance/documents.rst:266 msgid "**Set Contact**: add a contact to the file, or replace an existing contact with a new one." msgstr "" -#: ../../content/applications/finance/documents.rst:177 +#: ../../content/applications/finance/documents.rst:267 msgid "**Set Owner**: add an owner to the file, or replace an existing owner with a new one." msgstr "" -#: ../../content/applications/finance/documents.rst:178 +#: ../../content/applications/finance/documents.rst:268 msgid "**Move to Workspace**: move the file to any workspace." msgstr "" -#: ../../content/applications/finance/documents.rst:179 +#: ../../content/applications/finance/documents.rst:269 msgid "**Create**: create one of the following items attached to the file in your database:" msgstr "" -#: ../../content/applications/finance/documents.rst:181 -msgid "**Product template**: create a product you can edit directly." +#: ../../content/applications/finance/documents.rst:271 +msgid "**Link to record**: link the document to a record (i.e. link to a vehicle in Fleet);" msgstr "" -#: ../../content/applications/finance/documents.rst:182 -msgid "**Task**: create a Project task you can edit directly." +#: ../../content/applications/finance/documents.rst:272 +msgid "**Product template**: create a product you can edit directly;" msgstr "" -#: ../../content/applications/finance/documents.rst:183 -msgid "**Signature request**: create a new Sign template to send out." +#: ../../content/applications/finance/documents.rst:273 +msgid "**Task**: create a Project task you can edit directly;" msgstr "" -#: ../../content/applications/finance/documents.rst:184 -msgid "**Sign directly**: create a Sign template to sign directly." +#: ../../content/applications/finance/documents.rst:274 +msgid "**Signature PDF template**: create a new Sign template to send out;" msgstr "" -#: ../../content/applications/finance/documents.rst:185 -msgid "**Vendor bill**: create a vendor bill using OCR and AI to scrape information from the file content." +#: ../../content/applications/finance/documents.rst:275 +msgid "**PDF to sign**: create a PDF to sign;" msgstr "" -#: ../../content/applications/finance/documents.rst:187 -msgid "**Customer invoice**: create a customer invoice using OCR and AI to scrape information from the file." +#: ../../content/applications/finance/documents.rst:276 +msgid "**Applicant**: create a new HR application you can edit directly;" msgstr "" -#: ../../content/applications/finance/documents.rst:189 -msgid "**Vendor credit note**: create a vendor credit note using OCR and AI to scrape information from the file." +#: ../../content/applications/finance/documents.rst:277 +msgid "**Vendor bill**: create a vendor bill using OCR and AI to scrape information from the file content;" msgstr "" -#: ../../content/applications/finance/documents.rst:191 -msgid "**Credit note**: create a customer credit note using OCR and AI to scrape information from the file." +#: ../../content/applications/finance/documents.rst:279 +msgid "**Customer invoice**: create a customer invoice using OCR and AI to scrape information from the file;" msgstr "" -#: ../../content/applications/finance/documents.rst:193 -msgid "**Applicant**: create a new HR application you can edit directly." +#: ../../content/applications/finance/documents.rst:281 +msgid "**Vendor credit note**: create a vendor credit note using OCR and AI to scrape information from the file;" msgstr "" -#: ../../content/applications/finance/documents.rst:195 +#: ../../content/applications/finance/documents.rst:283 +msgid "**Credit note**: create a customer credit note using OCR and AI to scrape information from the file;" +msgstr "" + +#: ../../content/applications/finance/documents.rst:285 +msgid "**Miscellaneous Operations**: create a record in :guilabel:`Miscellaneous Operations` in Accounting;" +msgstr "" + +#: ../../content/applications/finance/documents.rst:287 +msgid "**Bank Statement**: create a Bank Statement in Finance;" +msgstr "" + +#: ../../content/applications/finance/documents.rst:288 +msgid "**Expense**: create an expense automatically based on a file's content." +msgstr "" + +#: ../../content/applications/finance/documents.rst:290 msgid "**Set Tags**: add, remove, and replace any number of tags." msgstr "" -#: ../../content/applications/finance/documents.rst:196 +#: ../../content/applications/finance/documents.rst:291 msgid "**Activities - Mark all as Done**: mark all activities linked to the file as done." msgstr "" -#: ../../content/applications/finance/documents.rst:197 +#: ../../content/applications/finance/documents.rst:292 msgid "**Activities - Schedule Activity**: create a new activity linked to the file as configured in the action. You can choose to set the activity on the document owner." msgstr "" @@ -10128,15 +10726,15 @@ msgstr "" msgid "Example of a workflow action Odoo Documents" msgstr "" -#: ../../content/applications/finance/documents.rst:205 +#: ../../content/applications/finance/documents.rst:299 msgid "Digitize documents with AI and optical character recognition (OCR)" msgstr "" -#: ../../content/applications/finance/documents.rst:207 -msgid "Documents available in the Finance workspace can be digitized. Select the document you want to digitize, click on :guilabel:`Create Bill`, :guilabel:`Create Customer Invoice` or :guilabel:`Create credit note`, and then click on :guilabel:`Send for Digitization`." +#: ../../content/applications/finance/documents.rst:301 +msgid "Documents available in the Finance workspace can be digitized. Select the document to digitize, click :guilabel:`Create Bill`, :guilabel:`Create Customer Invoice`, or :guilabel:`Create credit note`, and then click :guilabel:`Send for Digitization`." msgstr "" -#: ../../content/applications/finance/documents.rst:212 +#: ../../content/applications/finance/documents.rst:306 msgid ":doc:`AI-powered document digitization <../finance/accounting/vendor_bills/invoice_digitization>`" msgstr "" @@ -11164,7 +11762,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/argentina.rst:20 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:28 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:23 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:24 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:37 #: ../../content/applications/finance/fiscal_localizations/germany.rst:61 #: ../../content/applications/finance/fiscal_localizations/mexico.rst:57 @@ -11179,7 +11777,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/austria.rst:14 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:37 #: ../../content/applications/finance/fiscal_localizations/chile.rst:30 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:32 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:33 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:46 #: ../../content/applications/finance/fiscal_localizations/egypt.rst:16 #: ../../content/applications/finance/fiscal_localizations/france.rst:182 @@ -11203,7 +11801,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/austria.rst:15 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:38 #: ../../content/applications/finance/fiscal_localizations/chile.rst:31 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:33 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:34 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:47 #: ../../content/applications/finance/fiscal_localizations/egypt.rst:17 #: ../../content/applications/finance/fiscal_localizations/india.rst:17 @@ -11222,30 +11820,6 @@ msgstr "" msgid "Technical name" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/argentina.rst:31 -#: ../../content/applications/finance/fiscal_localizations/austria.rst:16 -#: ../../content/applications/finance/fiscal_localizations/brazil.rst:39 -#: ../../content/applications/finance/fiscal_localizations/chile.rst:32 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:34 -#: ../../content/applications/finance/fiscal_localizations/ecuador.rst:48 -#: ../../content/applications/finance/fiscal_localizations/egypt.rst:18 -#: ../../content/applications/finance/fiscal_localizations/france.rst:59 -#: ../../content/applications/finance/fiscal_localizations/india.rst:18 -#: ../../content/applications/finance/fiscal_localizations/italy.rst:19 -#: ../../content/applications/finance/fiscal_localizations/kenya.rst:18 -#: ../../content/applications/finance/fiscal_localizations/kenya.rst:36 -#: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:16 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:68 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:100 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:124 -#: ../../content/applications/finance/fiscal_localizations/romania.rst:16 -#: ../../content/applications/finance/fiscal_localizations/saudi_arabia.rst:17 -#: ../../content/applications/finance/fiscal_localizations/thailand.rst:16 -#: ../../content/applications/finance/fiscal_localizations/united_arab_emirates.rst:18 -#: ../../content/applications/finance/fiscal_localizations/united_kingdom.rst:16 -msgid "Description" -msgstr "" - #: ../../content/applications/finance/fiscal_localizations/argentina.rst:32 msgid ":guilabel:`Argentina - Accounting`" msgstr "" @@ -12746,6 +13320,10 @@ msgstr "" msgid "The SAF-T button to export the file in XML format" msgstr "" +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:3 +msgid "Belgium" +msgstr "" + #: ../../content/applications/finance/fiscal_localizations/belgium.rst:10 msgid "Install the :guilabel:`🇧🇪 Belgium` :ref:`fiscal localization package ` to get all the default accounting features of the Belgian localization, following the :abbr:`IFRS(International Financial Reporting Standards)` rules." msgstr "" @@ -13348,14 +13926,6 @@ msgstr "" msgid "Select the :guilabel:`Company` option at the top of the page. Then, configure the following fields:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/brazil.rst:70 -#: ../../content/applications/finance/fiscal_localizations/brazil.rst:233 -#: ../../content/applications/finance/fiscal_localizations/chile.rst:234 -#: ../../content/applications/finance/fiscal_localizations/ecuador.rst:78 -#: ../../content/applications/finance/fiscal_localizations/ecuador.rst:271 -msgid ":guilabel:`Name`" -msgstr "" - #: ../../content/applications/finance/fiscal_localizations/brazil.rst:71 msgid ":guilabel:`Address` (add :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`, :guilabel:`Country`)" msgstr "" @@ -13518,7 +14088,7 @@ msgid "Do not delete taxes, as they are used for the AvaTax tax computation. If msgstr "" #: ../../content/applications/finance/fiscal_localizations/brazil.rst:200 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:158 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:181 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:253 #: ../../content/applications/finance/fiscal_localizations/egypt.rst:172 #: ../../content/applications/finance/fiscal_localizations/mexico.rst:246 @@ -13915,7 +14485,7 @@ msgid ":ref:`Signature certificates `" msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:105 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:139 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:162 msgid "Fiscal information" msgstr "" @@ -14493,7 +15063,7 @@ msgid "Invoice Commercial status updated to claimed." msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:553 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:350 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:403 msgid "Common errors" msgstr "" @@ -14578,7 +15148,7 @@ msgid "The resolution number is incorrect or missing." msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:597 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:291 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:344 #: ../../content/applications/finance/fiscal_localizations/mexico.rst:335 msgid "Credit notes" msgstr "" @@ -14645,7 +15215,7 @@ msgid "Credit note for partial refund to correct amounts, using the SII referenc msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:659 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:315 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:368 msgid "Debit notes" msgstr "" @@ -15029,71 +15599,71 @@ msgid "Colombia" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:7 -msgid "Odoo's Colombian localization package provides accounting, fiscal and legal features in Colombia such as chart of accounts, taxes and electronic invoicing." +msgid "Odoo's Colombian localization package provides accounting, fiscal, and legal features for databases in Colombia – such as chart of accounts, taxes, and electronic invoicing." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:10 -msgid "In addition, we have a series of videos covering how to start from scratch, configuration, main workflows, and specific use cases." +msgid "In addition, a series of videos on the subject is also available. These videos cover how to start from scratch, set up configurations, complete common workflows, and provide in-depth looks at some specific use cases as well." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:14 -msgid "`Odoo Colombian localization videos `_." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:15 +msgid "`Smart Tutorial - Colombian Localization `_." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:25 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:26 msgid ":ref:`Install ` the following modules to get all the features of the Colombian localization:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:35 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:36 msgid ":guilabel:`Colombia - Accounting`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:36 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:37 msgid "`l10n_co`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:37 -msgid "Default :ref:`fiscal localization package `. This module adds the base accounting features for the Colombian localization: chart of accounts, taxes, withholdings, identification document type." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:40 -msgid ":guilabel:`Colombian - Accounting Reports`" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:38 +msgid "Default :ref:`fiscal localization package `. This module adds the base accounting features for the Colombian localization: chart of accounts, taxes, withholdings, and identification document type." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:41 -msgid "`l10n_co_reports`" +msgid ":guilabel:`Colombian - Accounting Reports`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:42 -msgid "Includes accounting reports for sending certifications to suppliers for withholdings applied." +msgid "`l10n_co_reports`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:43 -msgid ":guilabel:`Electronic invoicing for Colombia with Carvajal`" +msgid "Includes accounting reports for sending certifications to suppliers for withholdings applied." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:44 -msgid "`l10n_co_edi`" +msgid ":guilabel:`Electronic invoicing for Colombia with Carvajal`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:45 -msgid "This module includes the features that are required for the integration with Carvajal and generates the electronic invoices and support document related to the vendor bills based on |DIAN| regulations." +msgid "`l10n_co_edi`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:48 -msgid ":guilabel:`Colombian - Point of Sale`" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:46 +msgid "This module includes the features required for integration with Carvajal, and generates the electronic invoices and support documents related to the vendor bills, based on |DIAN| regulations." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:49 -msgid "`l10n_co_pos`" +msgid ":guilabel:`Colombian - Point of Sale`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:50 -msgid "Includes Point of Sale Receipt for Colombian Localization." +msgid "`l10n_co_pos`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:53 -msgid "When a database is created from scratch selecting :guilabel:`Colombia` as the country, Odoo automatically installs the base modules *Colombia - Accounting* and *Colombia - Accounting Reports*." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:51 +msgid "Includes Point of Sale receipts for Colombian localization." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:54 +msgid "When `Colombia` is selected for a company's :guilabel:`Fiscal Localization`, Odoo automatically installs certain modules." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:58 @@ -15101,242 +15671,348 @@ msgid "Company configuration" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:60 -msgid "To configure your company information, go to the :menuselection:`Contacts` app and search for your company. Alternatively, activate :ref:`developer mode ` and navigate to :menuselection:`General Setting --> Company --> Update Info --> Contact`. Then, edit the contact form to configure the following information:" +msgid "To configure your company information, go to the :menuselection:`Contacts` app, and search for your company." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:65 -msgid ":guilabel:`Company Name`." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:66 -msgid ":guilabel:`Address`: Including :guilabel:`City`, :guilabel:`Department` and :guilabel:`Zip Code`." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:63 +msgid "Alternatively, activate :ref:`developer mode ` and navigate to :menuselection:`General Setting --> Company --> Update Info --> Contact`. Then, edit the contact form and configure the following information:" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:67 -msgid ":guilabel:`Tax ID`: When it is a `NIT`, it must have the *verification digit* at the end of the ID followed by a hyphen (`-`)." +msgid ":guilabel:`Company Name`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:70 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:68 +msgid ":guilabel:`Address`: Including :guilabel:`City`, :guilabel:`Department` and :guilabel:`ZIP` code." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:69 +msgid ":guilabel:`Identification Number`: Select the :guilabel:`Identification Type` (`NIT`, `Cédula de Ciudadanía`, `Registro Civil`, etc.). When the :guilabel:`Identification Type` is `NIT`, the :guilabel:`Identification Number` **must** have the *verification digit* at the end of the ID prefixed by a hyphen (`-`)." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:74 msgid "Next, configure the :guilabel:`Fiscal Information` in the :guilabel:`Sales & Purchase` tab:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:72 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:147 -msgid ":guilabel:`Obligaciones y Responsabilidades`: Select the fiscal responsibility for the company (:guilabel:`O-13` Gran Contribuyente, :guilabel:`O-15` Autorretenedor, :guilabel:`O-23` Agente de retención IVA, :guilabel:`O-47` Regimen de tributación simple, :guilabel:`R-99-PN` No Aplica)." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:75 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:150 -msgid ":guilabel:`Gran Contribuyente`: If the company is *Gran Contribuyente* this option should be selected." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:77 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:152 -msgid ":guilabel:`Fiscal Regimen`: Select the Tribute Name for the company (:guilabel:`IVA`, :guilabel:`INC`, :guilabel:`IVA e INC`, :guilabel:`No Aplica`)" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:76 +msgid ":guilabel:`Obligaciones y Responsabilidades`: Select the fiscal responsibility for the company (`O-13` Gran Contribuyente, `O-15` Autorretenedor, `O-23` Agente de retención IVA, `O-47` Regimen de tributación simple, `R-99-PN` No Aplica)." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:79 -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:154 -msgid ":guilabel:`Commercial Name`: If the company uses a specific commercial name, and it needs to be displayed in the invoice." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:173 +msgid ":guilabel:`Gran Contribuyente`: If the company is *Gran Contribuyente* this option should be selected." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:81 +msgid ":guilabel:`Fiscal Regimen`: Select the Tribute Name for the company (`IVA`, `INC`, `IVA e INC`, or `No Aplica`)" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:83 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:177 +msgid ":guilabel:`Commercial Name`: If the company uses a specific commercial name, and it needs to be displayed in the invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:87 msgid "Carjaval credentials configuration" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:85 -msgid "Once the modules installed, the user credentials must be configured in order to connect with Carvajal Web Service. Navigate to :menuselection:`Accounting --> Configuration --> Settings` and scroll to the :guilabel:`Colombian Electronic Invoicing` section. Then, fill in the required configuration information provided by Carvajal:" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:90 -msgid ":guilabel:`Username` and :guilabel:`Password`: Correspond to the username and password provided by Carvajal to the company." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:92 -msgid ":guilabel:`Company Registry`: Company's NIT number *without* the verification code." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:93 -msgid ":guilabel:`Account ID`: Company ID followed by `_01`." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:89 +msgid "Once the modules are installed, the user credentials **must** be configured, in order to connect with Carvajal Web Service. To do so, navigate to :menuselection:`Accounting --> Configuration --> Settings` and scroll to the :guilabel:`Colombian Electronic Invoicing` section. Then, fill in the required configuration information provided by Carvajal:" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:94 -msgid ":guilabel:`Colombia Template Code`: Select one of the two available templates (:guilabel:`CGEN03` or :guilabel:`CGNE04`) to be used in the PDF format of the electronic invoice." +msgid ":guilabel:`Username` and :guilabel:`Password`: Username and password (provided by Carvajal) to the company." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:96 +msgid ":guilabel:`Company Registry`: Company's NIT number *without* the verification code." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:97 +msgid ":guilabel:`Account ID`: Company's NIT number followed by `_01`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:98 +msgid ":guilabel:`Colombia Template Code`: Select one of the two available templates (`CGEN03` or `CGNE04`) to be used in the PDF format of the electronic invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:101 +msgid "Enable the :guilabel:`Test mode` checkbox to connect with the Carvajal testing environment." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:103 +msgid "Once Odoo and Carvajal are fully configured and ready for production, deactivate the :guilabel:`Test mode` checkbox to use the production database." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:-1 msgid "Configure credentials for Carvajal web service in Odoo." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:101 -msgid "Check the :guilabel:`Test mode` checkbox to connect with the Carvajal testing environment. Once Odoo and Carvajal are fully configured and ready for production, uncheck the :guilabel:`Test mode` checkbox to use the production database." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:106 -msgid ":guilabel:`Test mode` must be used **only** on replicated databases, **not** the production environment." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:110 -msgid "Report data configuration" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:112 -msgid "Report data can be defined for the fiscal section and bank information of the PDF as part of the configurable information sent in the XML." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:111 +msgid ":guilabel:`Test mode` must **only** be used on duplicated databases, **not** the production environment." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:115 -msgid "Navigate to :menuselection:`Accounting --> Configuration --> Settings` and scroll to the :guilabel:`Colombian Electronic Invoicing` section." +msgid "Report data configuration" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:121 -msgid "Master data configuration" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:117 +msgid "Report data can be defined for the fiscal section and bank information of the PDF as part of the configurable information sent in the XML." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:120 +msgid "Navigate to :menuselection:`Accounting --> Configuration --> Settings`, and scroll to the :guilabel:`Colombian Electronic Invoicing` section, in order to find the :guilabel:`Report Configuration` fields. Here the header information for each report type can be configured." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:124 +msgid ":guilabel:`Gran Contribuyente`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:125 +msgid ":guilabel:`Tipo de Régimen`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:126 +msgid ":guilabel:`Retenedores de IVA`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:127 -msgid "Identification information" +msgid ":guilabel:`Autorretenedores`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:128 +msgid ":guilabel:`Resolución Aplicable`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:129 -msgid "Document types defined by the |DIAN| are available on the partner form as part of the Colombian localization. Colombian partners must have their :guilabel:`Identification Number` (VAT) and :guilabel:`Document Type` set." +msgid ":guilabel:`Actividad Económica`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:134 -msgid "When the :guilabel:`Document Type` is `NIT`, the :guilabel:`Identification Number` needs to be configured in Odoo, including the *verification digit*; Odoo splits this number when the data to is sent to the third party." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:130 +msgid ":guilabel:`Bank Information`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:141 -msgid "The partner's responsibility codes (section 53 in the RUT document) are included as part of the electronic invoicing module, as it is required by the |DIAN|." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:135 +msgid "Master data configuration" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:144 -msgid "The required fields can be found under :menuselection:`Partner --> Sales & Purchase Tab --> Fiscal Information`:" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:140 +msgid "Partner contacts can be created in the *Contacts* app. To do so, navigate to :menuselection:`Contacts`, and click the :guilabel:`Create` button." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:160 -msgid "In addition to adding general information (in the :guilabel:`General Information` tab) on the product form, either the :guilabel:`UNSPSC Category`, :guilabel:`Barcode`, or :guilabel:`Internal Reference` field must also be configured." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:143 +msgid "Then, name the contact, and using the radio buttons, select the contact type, either :guilabel:`Individual` or :guilabel:`Company`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:146 +msgid "Complete the full :guilabel:`Address`, including the :guilabel:`City`, :guilabel:`State`, and :guilabel:`ZIP` code. Then, complete the identification and fiscal information." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:150 +msgid "Identification information" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:152 +msgid "Identification types, defined by the |DIAN|, are available on the partner form, as part of the Colombian localization. Colombian partners **must** have their :guilabel:`Identification Number` (VAT) and :guilabel:`Document Type` set." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:157 +msgid "When the :guilabel:`Document Type` is `NIT`, the :guilabel:`Identification Number` needs to be configured in Odoo, including the *verification digit at the end of the ID, prefixed by a hyphen (`-`)*." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:164 +msgid "The partner's responsibility codes (section 53 in the :abbr:`RUT (Registro único tributario)` document) are included as part of the electronic invoicing module, as it is required by the |DIAN|." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:167 -msgid "If sales transactions include products with taxes, the :guilabel:`Value Type` field in the :guilabel:`Advanced Options` tab needs to be configured per tax. To do so, go to :menuselection:`Accounting --> Configuration --> Taxes`, and select the related tax." +msgid "The required fields can be found under :menuselection:`Partner --> Sales & Purchase Tab --> Fiscal Information section`:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:171 -msgid "Retention tax types (:guilabel:`ICA`, :guilabel:`IVA`, :guilabel:`Fuente`) are also included. This configuration is used to display taxes in the invoice PDF correctly." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:170 +msgid ":guilabel:`Obligaciones y Responsabilidades`: Select the fiscal responsibility for the company (`O-13` Gran Contribuyente, `O-15` Autorretenedor, `O-23` Agente de retención IVA, `O-47` Regimen de tributación simple, or `R-99-PN` No Aplica)." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:175 +msgid ":guilabel:`Fiscal Regimen`: Select the tribute name for the company (`IVA`, `INC`, `IVA e INC`, or `No Aplica`)" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:183 +msgid "To manage products, navigate to :menuselection:`Accounting --> Customers --> Products`, then click on a product." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:186 +msgid "When adding general information on the product form, it is required that either the :guilabel:`UNSPSC Category` (:guilabel:`Accounting` tab), or :guilabel:`Internal Reference` (:guilabel:`General Information` tab) field is configured. Be sure to :guilabel:`Save` the product once configured." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:194 +msgid "To create or modify taxes, go to :menuselection:`Accounting --> Configuration --> Taxes`, and select the related tax." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:197 +msgid "If sales transactions include products with taxes, the :guilabel:`Value Type` field in the :guilabel:`Advanced Options` tab needs to be configured per tax. Retention tax types (:guilabel:`ICA`, :guilabel:`IVA`, :guilabel:`Fuente`) are also included. This configuration is used to display taxes correctly in the invoice PDF." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:-1 msgid "The ICA, IVA and Fuente fields in the Advanced Options tab in Odoo." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:178 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:209 #: ../../content/applications/finance/fiscal_localizations/saudi_arabia.rst:85 msgid "Sales journals" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:182 -msgid "Once the |DIAN| has assigned the official sequence and prefix for the electronic invoice resolution, the sales journals related to the invoice documents must be updated in Odoo. To do so, navigate to :menuselection:`Accounting --> Configuration --> Journals`." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:211 +msgid "Once the |DIAN| has assigned the official sequence and prefix for the electronic invoice resolution, the sales journals related to the invoice documents **must** be updated in Odoo. To do so, navigate to :menuselection:`Accounting --> Configuration --> Journals`, and select an existing sales journal, or create a new one with the :guilabel:`Create` button." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:186 -msgid "Configure the following data in the :guilabel:`Advanced Settings` tab:" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:216 +msgid "On the sales journal form, input the :guilabel:`Journal Name`, :guilabel:`Type`, and set a unique :guilabel:`Short Code` in the :guilabel:`Journals Entries` tab. Then, configure the following data in the :guilabel:`Advanced Settings` tab:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:188 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:220 msgid ":guilabel:`Electronic invoicing`: Enable :guilabel:`UBL 2.1 (Colombia)`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:189 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:221 msgid ":guilabel:`Invoicing Resolution`: Resolution number issued by |DIAN| to the company." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:190 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:222 msgid ":guilabel:`Resolution Date`: Initial effective date of the resolution." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:191 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:223 msgid ":guilabel:`Resolution end date`: End date of the resolution's validity." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:192 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:224 msgid ":guilabel:`Range of Numbering (minimum)`: First authorized invoice number." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:193 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:225 msgid ":guilabel:`Range of Numbering (maximum)`: Last authorized invoice number." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:196 -msgid "The sequence and resolution of the journal must match the one configured in Carvajal and the |DIAN|." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:228 +msgid "The sequence and resolution of the journal **must** match the one configured in Carvajal and the |DIAN|." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:200 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:232 msgid "Invoice sequence" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:202 -msgid "The invoice sequence and prefix must be correctly configured when the first document is created." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:205 -msgid "Odoo automatically assigns a prefix and sequence to the following documents." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:208 -msgid "Purchase journals" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:210 -msgid "Once the |DIAN| has assigned the official sequence and prefix for the support document related to vendor bills, the purchase journals related to their supporting documents need to be updated in Odoo. The process is similar to the configuration of the :ref:`sales journals `." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:217 -msgid "The :doc:`chart of accounts ` is installed by default as part of the localization module, the accounts are mapped automatically in taxes, default account payable, and default account receivable. The chart of accounts for Colombia is based on the PUC (Plan Unico de Cuentas)." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:226 -msgid "Main workflows" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:229 -msgid "Electronic invoices" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:234 +msgid "The invoice sequence and prefix **must** be correctly configured when the first document is created." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:237 -msgid "The functional workflow taking place before an invoice validation does not alter the main changes introduced with the electronic invoice." +msgid "Odoo automatically assigns a prefix and sequence to the following invoices." msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:240 -msgid "Electronic invoices are generated and sent to both the |DIAN| and customer through Carvajal's web service integration. These documents can be created from your sales order or manually. Go to :menuselection:`Accounting --> Customers --> Invoices` and configure:" +msgid "Purchase journals" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:244 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:242 +msgid "Once the |DIAN| has assigned the official sequence and prefix for the *support document* related to vendor bills, the purchase journals related to their supporting documents need to be updated in Odoo. The process is similar to the configuration of the :ref:`sales journals `." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:249 +msgid "The :doc:`chart of accounts ` is installed by default as part of the localization module, the accounts are mapped automatically in taxes, default account payable, and default account receivable. The chart of accounts for Colombia is based on the PUC (Plan Unico de Cuentas)." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:257 +msgid "Main workflows" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:260 +msgid "Electronic invoices" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:262 +msgid "The following is a breakdown of the main workflow for electronic invoices with the Colombian localization:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:265 +msgid "Sender creates an invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:266 +msgid "Electronic invoice provider generates the legal XML file." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:267 +msgid "Electronic invoice provider creates the CUFE (Invoice Electronic Code) with the electronic signature." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:269 +msgid "Electronic invoice provider sends a notification to |DIAN|." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:270 +msgid "|DIAN| validates the invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:271 +msgid "|DIAN| accepts or rejects the invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:272 +msgid "Electronic invoice provider generates the PDF invoice with a QR code." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:273 +msgid "Electronic invoice provider sends invoice to the acquirer." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:274 +msgid "Acquirer sends a receipt of acknowledgement, and accepts or rejects the invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:275 +msgid "Sender downloads a :file:`.zip` file with the PDF and XML." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:-1 +msgid "Electronic invoice workflow for Colombian localization." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:287 +msgid "The functional workflow taking place before an invoice validation does **not** alter the main changes introduced with the electronic invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:290 +msgid "Electronic invoices are generated and sent to both the |DIAN| and customer through Carvajal's web service integration. These documents can be created from your sales order or manually generated. To create a new invoice, go to :menuselection:`Accounting --> Customers --> Invoices`, and select :guilabel:`Create`. On the invoice form configure the following fields:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:295 msgid ":guilabel:`Customer`: Customer's information." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:245 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:296 msgid ":guilabel:`Journal`: Journal used for electronic invoices." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:246 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:297 msgid ":guilabel:`Electronic Invoice Type`: Select the type of document. By default, :guilabel:`Factura de Venta` is selected." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:248 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:299 msgid ":guilabel:`Invoice Lines`: Specify the products with the correct taxes." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:250 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:301 msgid "When done, click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:255 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:306 #: ../../content/applications/finance/fiscal_localizations/india.rst:116 #: ../../content/applications/finance/fiscal_localizations/india.rst:257 #: ../../content/applications/finance/fiscal_localizations/peru.rst:389 msgid "Invoice validation" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:257 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:308 msgid "After the invoice confirmation, an XML file is created and sent automatically to Carvajal. The invoice is then processed asynchronously by the E-invoicing service UBL 2.1 (Colombia). The file is also displayed in the chatter." msgstr "" @@ -15344,135 +16020,135 @@ msgstr "" msgid "Carvajal XML invoice file in Odoo chatter." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:264 -msgid "The :guilabel:`Electronic Invoice Name` field is now displayed in the :guilabel:`EDI Documents` tab with the name of the XML file. Additionally, the :guilabel:`Electronic Invoice Status` field is displayed with the initial value :guilabel:`To Send`. To process the invoice manually, click on the :guilabel:`Process Now` button." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:316 +msgid "The :guilabel:`Electronic Invoice Name` field is now displayed in the :guilabel:`EDI Documents` tab, with the name of the XML file. Additionally, the :guilabel:`Electronic Invoice Status` field is displayed with the initial value :guilabel:`To Send`. To process the invoice manually, click on the :guilabel:`Process Now` button." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:272 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:324 msgid "Reception of legal XML and PDF" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:274 -msgid "The electronic invoice vendor (Carvajal) receives the XML file and proceeds to validate its structure and information." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:326 +msgid "The electronic invoice vendor (Carvajal) receives the XML file, and proceeds to validate its structure and information." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:277 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:329 msgid "After validating the electronic invoice, proceed to generate a legal XML which includes a digital signature and a unique code (CUFE), a PDF invoice that includes a QR code and the CUFE is also generated. If everything is correct the :guilabel:`Electronic Invoicing` field value changes to :guilabel:`Sent`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:282 -msgid "A ZIP containing the legal electronic invoice in XML format and the invoice in PDF format is downloaded and displayed in the invoice chatter:" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:334 +msgid "A :file:`.zip` containing the legal electronic invoice (in XML format) and the invoice in (PDF format) is downloaded and displayed in the invoice chatter:" msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:-1 msgid "ZIP file displayed in the invoice chatter in Odoo." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:288 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:341 msgid "The electronic invoice status changes to :guilabel:`Accepted`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:293 -msgid "The process for credit notes is the same as for invoices. To create a credit note with reference to an invoice, go to :menuselection:`Accounting --> Customers --> Invoices`. On the invoice, click :guilabel:`Add Credit Note` and complete the following information:" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:346 +msgid "The process for credit notes is the same as for invoices. To create a credit note with reference to an invoice, go to :menuselection:`Accounting --> Customers --> Invoices`. On the invoice, click :guilabel:`Add Credit Note`, and complete the following information:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:297 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:350 msgid ":guilabel:`Credit Method`: Select the type of credit method." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:299 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:352 msgid ":guilabel:`Partial Refund`: Use this option when it is a partial amount." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:300 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:353 msgid ":guilabel:`Full Refund`: Use this option if the credit note is for the full amount." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:301 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:354 msgid ":guilabel:`Full refund and new draft invoice`: Use this option if the credit note is auto-validated and reconciled with the invoice. The original invoice is duplicated as a new draft." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:305 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:358 msgid ":guilabel:`Reason`: Enter the reason for the credit note." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:306 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:359 msgid ":guilabel:`Reversal Date`: Select if you want a specific date for the credit note or if it is the journal entry date." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:308 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:361 msgid ":guilabel:`Use Specific Journal`: Select the journal for your credit note or leave it empty if you want to use the same journal as the original invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:310 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:363 msgid ":guilabel:`Refund Date`: If you chose a specific date, select the date for the refund." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:312 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:365 msgid "Once reviewed, click the :guilabel:`Reverse` button." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:317 -msgid "The process for debit notes is similar to credit notes. To create a debit note with reference to an invoice, go to :menuselection:`Accounting --> Customers --> Invoices`. On the invoice, click the :guilabel:`Add Debit Note` button and complete the following information:" +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:370 +msgid "The process for debit notes is similar to credit notes. To create a debit note with reference to an invoice, go to :menuselection:`Accounting --> Customers --> Invoices`. On the invoice, click the :guilabel:`Add Debit Note` button, and enter the following information:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:321 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:374 msgid ":guilabel:`Reason`: Type the reason for the debit note." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:322 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:375 msgid ":guilabel:`Debit note date`: Select the specific options." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:323 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:376 msgid ":guilabel:`Copy lines`: Select this option if you need to register a debit note with the same lines of invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:325 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:378 msgid ":guilabel:`Use Specific Journal`: Select the printer point for your debit note, or leave it empty if you want to use the same journal as the original invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:328 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:381 msgid "When done, click :guilabel:`Create Debit Note`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:331 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:384 msgid "Support document for vendor bills" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:333 -msgid "With master data, credentials, and the purchase journal configured for support documents related to vendor bills, you can start using support documents." +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:386 +msgid "With master data, credentials, and the purchase journal configured for support documents related to vendor bills, you can start using *support documents*." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:336 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:389 msgid "Support documents for vendor bills can be created from your purchase order or manually. Go to :menuselection:`Accounting --> Vendors --> Bills` and fill in the following data:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:339 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:392 msgid ":guilabel:`Vendor`: Enter the vendor's information." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:340 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:393 msgid ":guilabel:`Bill Date`: Select the date of the bill." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:341 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:394 msgid ":guilabel:`Journal`: Select the journal for support documents related to the vendor bills." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:342 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:395 msgid ":guilabel:`Invoiced Lines`: Specify the products with the correct taxes." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:344 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:397 msgid "Once reviewed, click the :guilabel:`Confirm` button. Upon confirmation, an XML file is created and automatically sent to Carvajal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:352 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:405 msgid "During the XML validation, the most common errors are related to missing master data (*Contact Tax ID*, *Address*, *Products*, *Taxes*). In such cases, error messages are shown in the chatter after updating the electronic invoice status." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:356 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:409 msgid "After the master data is corrected, it's possible to reprocess the XML with the new data and send the updated version, using the :guilabel:`Retry` button." msgstr "" @@ -15480,11 +16156,11 @@ msgstr "" msgid "XML validation errors shown in the invoice chatter in Odoo." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:368 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:421 msgid "Certificado de Retención en ICA" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:370 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:423 msgid "This report is a certification to vendors for withholdings made for the Colombian Industry and Commerce (ICA) tax. The report can be found under :menuselection:`Accounting --> Reporting --> Colombian Statements --> Certificado de Retención en ICA`." msgstr "" @@ -15492,11 +16168,11 @@ msgstr "" msgid "Certificado de Retención en ICA report in Odoo Accounting." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:378 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:432 msgid "Certificado de Retención en IVA" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:380 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:434 msgid "This report issues a certificate on the amount withheld from vendors for VAT withholding. The report can be found under :menuselection:`Accounting --> Reporting --> Colombian Statements --> Certificado de Retención en IVA`." msgstr "" @@ -15504,11 +16180,11 @@ msgstr "" msgid "Certificado de Retención en IVA report in Odoo Accounting." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:388 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:443 msgid "Certificado de Retención en la Fuente" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/colombia.rst:390 +#: ../../content/applications/finance/fiscal_localizations/colombia.rst:445 msgid "This certificate is issued to partners for the withholding tax that they have made. The report can be found under :menuselection:`Accounting --> Reporting --> Colombian Statements --> Certificado de Retención en Fuente`." msgstr "" @@ -19615,6 +20291,10 @@ msgstr "" msgid "To verify KRA has received the invoice information, take the :guilabel:`CU Invoice Number` and enter it in the :guilabel:`Invoice Number Checker` section on `Kenya Revenue Authority website `_. Click :guilabel:`Validate` and find the invoice details." msgstr "" +#: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:3 +msgid "Luxembourg" +msgstr "" + #: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:8 msgid ":ref:`Install ` the following modules to get all the features of the Luxembourgish localization:" msgstr "" @@ -21007,6 +21687,10 @@ msgstr "" msgid "DIOT Example contact." msgstr "" +#: ../../content/applications/finance/fiscal_localizations/netherlands.rst:3 +msgid "Netherlands" +msgstr "" + #: ../../content/applications/finance/fiscal_localizations/netherlands.rst:6 msgid "XAF Export" msgstr "" @@ -23485,10 +24169,6 @@ msgstr "" msgid "Your customers can make a bank transfer to register a SEPA Direct Debit mandate and get their bank account charged directly." msgstr "" -#: ../../content/applications/finance/payment_providers.rst:175 -msgid "Additional features" -msgstr "" - #: ../../content/applications/finance/payment_providers.rst:177 msgid "Some payment providers support additional features for the payment flow. Refer to the :ref:`table above ` to check if your payment provider supports these features." msgstr "" @@ -23802,7 +24482,7 @@ msgstr "" #: ../../content/applications/finance/payment_providers/demo.rst:12 #: ../../content/applications/finance/payment_providers/mollie.rst:11 #: ../../content/applications/finance/payment_providers/ogone.rst:9 -#: ../../content/applications/finance/payment_providers/paypal.rst:81 +#: ../../content/applications/finance/payment_providers/paypal.rst:86 #: ../../content/applications/finance/payment_providers/sips.rst:12 #: ../../content/applications/finance/payment_providers/stripe.rst:12 msgid ":ref:`payment_providers/add_new`" @@ -23817,7 +24497,7 @@ msgstr "" #: ../../content/applications/finance/payment_providers/flutterwave.rst:44 #: ../../content/applications/finance/payment_providers/mercado_pago.rst:36 #: ../../content/applications/finance/payment_providers/mollie.rst:31 -#: ../../content/applications/finance/payment_providers/paypal.rst:116 +#: ../../content/applications/finance/payment_providers/paypal.rst:121 #: ../../content/applications/finance/payment_providers/razorpay.rst:46 #: ../../content/applications/finance/payment_providers/sips.rst:32 #: ../../content/applications/finance/payment_providers/stripe.rst:133 @@ -24718,7 +25398,7 @@ msgid "To allow your customers to save their credit card credentials for future msgstr "" #: ../../content/applications/finance/payment_providers/ogone.rst:103 -#: ../../content/applications/finance/payment_providers/paypal.rst:78 +#: ../../content/applications/finance/payment_providers/paypal.rst:83 msgid "Settings in Odoo" msgstr "" @@ -24735,10 +25415,14 @@ msgid "`Paypal `_ is an American online payment provide msgstr "" #: ../../content/applications/finance/payment_providers/paypal.rst:9 +msgid "While PayPal is available in `over 200 countries/regions `_, only `a selection of currencies are supported `_." +msgstr "" + +#: ../../content/applications/finance/payment_providers/paypal.rst:14 msgid "Settings in PayPal" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:11 +#: ../../content/applications/finance/payment_providers/paypal.rst:16 msgid "To access your PayPal account settings, log into PayPal, open the :guilabel:`Account Settings`, and open the :guilabel:`Website payments` menu." msgstr "" @@ -24746,103 +25430,103 @@ msgstr "" msgid "PayPal account menu" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:19 +#: ../../content/applications/finance/payment_providers/paypal.rst:24 msgid "Note that for PayPal to work **in Odoo**, the options :ref:`Auto Return ` and :ref:`PDT ` **must** be enabled." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:25 +#: ../../content/applications/finance/payment_providers/paypal.rst:30 msgid "Auto Return" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:27 +#: ../../content/applications/finance/payment_providers/paypal.rst:32 msgid "The **Auto Return** feature automatically redirects customers to Odoo once the payment is processed." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:29 +#: ../../content/applications/finance/payment_providers/paypal.rst:34 msgid "From :guilabel:`Website payments`, go to :menuselection:`Website preferences --> Update --> Auto return for website payments --> Auto return` and select :guilabel:`On`. Enter the address of your Odoo database (e.g., `https://yourcompany.odoo.com`) in the :guilabel:`Return URL` field, and :guilabel:`Save`." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:35 +#: ../../content/applications/finance/payment_providers/paypal.rst:40 msgid "Any URL does the job. Odoo only needs the setting to be enabled since it uses another URL." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:40 +#: ../../content/applications/finance/payment_providers/paypal.rst:45 msgid "Payment Data Transfer (PDT)" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:42 +#: ../../content/applications/finance/payment_providers/paypal.rst:47 msgid ":abbr:`PDT (Payment Data Transfer)` allows to receive payment confirmations, displays the payment status to the customers, and verifies the authenticity of the payments. From :menuselection:`Website preferences --> Update`, scroll down to :guilabel:`Payment data transfer` and select :guilabel:`On`." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:47 +#: ../../content/applications/finance/payment_providers/paypal.rst:52 msgid "PayPal displays your **PDT Identity Token** as soon as :ref:`Auto return ` and :ref:`Payment Data Transfer (PDT) ` are enabled. If you need the **PDT Identity Token**, disable and re-enable :guilabel:`Payment data transfer` to display the token again." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:52 +#: ../../content/applications/finance/payment_providers/paypal.rst:57 msgid "PayPal Account Optional" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:54 +#: ../../content/applications/finance/payment_providers/paypal.rst:59 msgid "We advise not to prompt customers to log in with a PayPal account upon payment. It is better and more accessible for customers to pay with a debit/credit card. To disable that prompt, go to :menuselection:`Account Settings --> Website payments --> Update` and select :guilabel:`On` for :guilabel:`PayPal account optional`." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:60 +#: ../../content/applications/finance/payment_providers/paypal.rst:65 msgid "Payment Messages Format" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:62 +#: ../../content/applications/finance/payment_providers/paypal.rst:67 msgid "If you use accented characters (or anything other than primary Latin characters) for customer names or addresses, then you **must** configure the encoding format of the payment request sent by Odoo to PayPal. If you do not, some transactions fail without notice." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:66 +#: ../../content/applications/finance/payment_providers/paypal.rst:71 msgid "To do so, go to `your production account `_. Then, click :guilabel:`More Options` and set the two default encoding formats as :guilabel:`UTF-8`." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:71 +#: ../../content/applications/finance/payment_providers/paypal.rst:76 msgid "For Encrypted Website Payments & EWP_SETTINGS error, please check the `Paypal documentation `_." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:73 +#: ../../content/applications/finance/payment_providers/paypal.rst:78 msgid "Configure your :ref:`Paypal Sandbox account `, then follow this `link `_ to configure the encoding format in a test environment." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:83 +#: ../../content/applications/finance/payment_providers/paypal.rst:88 msgid "Odoo needs your **API Credentials** to connect with your PayPal account. To do so, go to :menuselection:`Accounting --> Configuration --> Payment Providers` and :guilabel:`Activate` PayPal. Then, enter your PayPal account credentials in the :guilabel:`Credentials` tab:" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:87 +#: ../../content/applications/finance/payment_providers/paypal.rst:92 msgid ":guilabel:`Email`: the login email address in Paypal;" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:88 +#: ../../content/applications/finance/payment_providers/paypal.rst:93 msgid ":guilabel:`PDT Identity Token`: the key used to verify the authenticity of transactions." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:93 +#: ../../content/applications/finance/payment_providers/paypal.rst:98 msgid "Test environment" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:98 +#: ../../content/applications/finance/payment_providers/paypal.rst:103 msgid "Thanks to PayPal sandbox accounts, you can test the entire payment flow in Odoo." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:100 +#: ../../content/applications/finance/payment_providers/paypal.rst:105 msgid "Log into the `Paypal Developer Site `_ using your PayPal credentials, which creates two sandbox accounts:" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:103 +#: ../../content/applications/finance/payment_providers/paypal.rst:108 msgid "A business account (to use as merchants, e.g., `pp.merch01-facilitator@example.com `_);" msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:105 +#: ../../content/applications/finance/payment_providers/paypal.rst:110 msgid "A default personal account (to use as shoppers, e.g., `pp.merch01-buyer@example.com `_)." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:108 +#: ../../content/applications/finance/payment_providers/paypal.rst:113 msgid "Log into PayPal sandbox using the merchant account and follow the same configuration instructions. Enter your sandbox credentials in Odoo (:menuselection:`Accounting --> Configuration --> Payment Providers --> PayPal` in the :guilabel:`Credentials` tab, and make sure the status is set on :guilabel:`Test Mode`." msgstr "" -#: ../../content/applications/finance/payment_providers/paypal.rst:113 +#: ../../content/applications/finance/payment_providers/paypal.rst:118 msgid "Run a test transaction from Odoo using the sandbox personal account." msgstr "" @@ -25210,7 +25894,7 @@ msgid "Sign" msgstr "" #: ../../content/applications/finance/sign.rst:5 -msgid "**Odoo Sign** allows you to send, sign and approve documents online, using electronic signatures." +msgid "**Odoo Sign** allows you to send, sign, and approve documents online, using electronic signatures." msgstr "" #: ../../content/applications/finance/sign.rst:7 @@ -25218,7 +25902,7 @@ msgid "An **electronic signature** shows a person's agreement to the content of msgstr "" #: ../../content/applications/finance/sign.rst:11 -msgid "With Sign, you can upload any PDF file and add fields to it. These fields are automatically filled in with the user's details present in your database." +msgid "With Sign, you can upload any PDF file and add fields to it. These fields can be automatically filled in with the user's details present in your database." msgstr "" #: ../../content/applications/finance/sign.rst:15 @@ -25226,7 +25910,7 @@ msgid "`Odoo Sign: product page `_" msgstr "" #: ../../content/applications/finance/sign.rst:16 -msgid "`Odoo Tutorials: Sign `_" +msgid "`Odoo Tutorials: Sign [video] `_" msgstr "" #: ../../content/applications/finance/sign.rst:19 @@ -25318,154 +26002,247 @@ msgid "The above information has no legal value; it is only provided for general msgstr "" #: ../../content/applications/finance/sign.rst:86 -msgid "Roles" +msgid "Send a document to sign" msgstr "" -#: ../../content/applications/finance/sign.rst:88 -msgid "Each field in a Sign document is related to a role that corresponds to a specific person. When a document is being signed, the person assigned to the role needs to fill in their assigned fields and sign it." +#: ../../content/applications/finance/sign.rst:89 +msgid "One-time signature" msgstr "" -#: ../../content/applications/finance/sign.rst:92 -msgid "Roles are available by going to :menuselection:`Sign --> Configuration --> Roles`." +#: ../../content/applications/finance/sign.rst:91 +msgid "You can click :guilabel:`Upload a PDF to sign` from your dashboard for a one-time signature. Select your document, open it, and drag and drop the required :ref:`fields ` in your document. You can modify the :ref:`role ` assigned to a field by clicking on it and selecting the one you want." msgstr "" -#: ../../content/applications/finance/sign.rst:94 -msgid "It is possible to update existing roles or to create new roles by clicking on :guilabel:`Create`. Choose a :guilabel:`Role Name`, add an :guilabel:`Extra Authentication Step` to confirm the identity of the signing person, and if the document can be reassigned to another contact, select :guilabel:`Change Authorized` for the role. A :guilabel:`Color` can also be chosen for the role. This color can help understand which roles are responsible for which field when configuring a template." +#: ../../content/applications/finance/sign.rst:96 +msgid "When ready, click :guilabel:`Send`, and fill in the required fields. Once sent, your document remains available. Go to :menuselection:`Documents --> All Documents` to see your document and the status of the signatures." msgstr "" -#: ../../content/applications/finance/sign.rst:102 -msgid "Secured identification" +#: ../../content/applications/finance/sign.rst:-1 +msgid "Signature status" msgstr "" #: ../../content/applications/finance/sign.rst:104 -msgid "As the owner of a document, you may request an :guilabel:`Extra Authentication Step` through an SMS verification or via Itsme® (available in Belgium and the Netherlands). Both authentication options require :ref:`credits `. If you do not have any credits left, the authentication steps will be skipped." +#: ../../content/applications/finance/spreadsheet/templates.rst:3 +msgid "Templates" msgstr "" -#: ../../content/applications/finance/sign.rst:110 -msgid ":doc:`In-App Purchase (IAP) <../general/in_app_purchase>`" +#: ../../content/applications/finance/sign.rst:106 +msgid "You can create document templates when you have to send the same document several times. From your dashboard, click :guilabel:`Upload a PDF template`. Select the document and add the required :ref:`fields `. You can modify the :ref:`role ` of a field by clicking on it and selecting the one you want." msgstr "" #: ../../content/applications/finance/sign.rst:111 +msgid "Click :guilabel:`Template Properties` to add :guilabel:`Tags` to your template, define a :guilabel:`Signed Document Workspace`, add :guilabel:`Signed Document Tags`, set a :guilabel:`Redirect Link` that will be available in the signature confirmation message received after the signature, or define :guilabel:`Authorized Users` if you want to restrict the use of your template to specific authorized users or groups." +msgstr "" + +#: ../../content/applications/finance/sign.rst:117 +msgid "Your templates are visible by default on your dashboard. You can click :guilabel:`Send` to quickly send a document template to a signer or :guilabel:`Sign Now` if you are ready to sign your document immediately." +msgstr "" + +#: ../../content/applications/finance/sign.rst:122 +msgid "You can **create a template from a document that was previously sent**. To do so, go to :menuselection:`Documents --> All Documents`. On the document you want to retrieve, click on ⋮, then :guilabel:`Template`. Click on ⋮ again, then :guilabel:`Restore`. Your document now appears on your dashboard next to your other templates." +msgstr "" + +#: ../../content/applications/finance/sign.rst:130 +msgid "Roles" +msgstr "" + +#: ../../content/applications/finance/sign.rst:132 +msgid "Each field in a Sign document is related to a role corresponding to a specific person. When a document is being signed, the person assigned to the role must fill in their assigned fields and sign it." +msgstr "" + +#: ../../content/applications/finance/sign.rst:136 +msgid "Roles are available by going to :menuselection:`Sign --> Configuration --> Roles`." +msgstr "" + +#: ../../content/applications/finance/sign.rst:138 +msgid "It is possible to update existing roles or to create new roles by clicking on :guilabel:`New`. Choose a :guilabel:`Role Name`, add an :guilabel:`Extra Authentication Step` to confirm the identity of the signing person, and if the document can be reassigned to another contact, select :guilabel:`Change Authorized` for the role. A :guilabel:`Color` can also be chosen for the role. This color can help understand which roles are responsible for which field when configuring a template." +msgstr "" + +#: ../../content/applications/finance/sign.rst:146 +msgid "Secured identification" +msgstr "" + +#: ../../content/applications/finance/sign.rst:148 +msgid "As the owner of a document, you may request an :guilabel:`Extra Authentication Step` through :ref:`SMS verification ` or via :ref:`Itsme® ` (available in Belgium and the Netherlands). Both authentication options require :ref:`credits `. If you do not have any credits left, the authentication steps will be skipped." +msgstr "" + +#: ../../content/applications/finance/sign.rst:154 +msgid ":doc:`In-App Purchase (IAP) <../general/in_app_purchase>`" +msgstr "" + +#: ../../content/applications/finance/sign.rst:155 msgid ":doc:`SMS pricing and FAQ <../marketing/sms_marketing/pricing/pricing_and_faq>`" msgstr "" -#: ../../content/applications/finance/sign.rst:114 +#: ../../content/applications/finance/sign.rst:160 msgid "SMS verification" msgstr "" -#: ../../content/applications/finance/sign.rst:116 +#: ../../content/applications/finance/sign.rst:162 msgid "Go to :menuselection:`Sign --> Configuration --> Roles`. Click in the :guilabel:`Extra Authentication Step` column for the role, and select :guilabel:`Unique Code Via SMS`." msgstr "" +#: ../../content/applications/finance/sign.rst:166 +msgid "Before being able to send SMS Text Messages, you need to register your phone number. To do so, go to :menuselection:`Sign --> Configuration --> Settings` and click :guilabel:`Buy credits` under :guilabel:`Authenticate by SMS`." +msgstr "" + +#: ../../content/applications/finance/sign.rst:170 +msgid "Go to the document to sign, add the field for which the SMS verification is required, for example, the :guilabel:`Signature` field, and click :guilabel:`Send`. On the new page, select the :guilabel:`customer` and click :guilabel:`Send`." +msgstr "" + +#: ../../content/applications/finance/sign.rst:174 +msgid "The person signing the document fills in the :guilabel:`Signature` field, then :guilabel:`Sign`, and clicks :guilabel:`Validate & Send Completed Document`. A :guilabel:`Final Validation` page pops up where to add their phone number. One-time codes are sent by SMS." +msgstr "" + #: ../../content/applications/finance/sign.rst:-1 msgid "Add a hash to your document" msgstr "" -#: ../../content/applications/finance/sign.rst:123 -msgid "Go to the document to sign, add the field for which the SMS verification is required, for example the :guilabel:`Signature` field, and click :guilabel:`Send`. A page pops up, select the customer, and click :guilabel:`Send`." -msgstr "" - -#: ../../content/applications/finance/sign.rst:127 -msgid "The person signing the document fills in the :guilabel:`Signature` field and clicks :guilabel:`Validate & Send Completed Document`. A :guilabel:`Final Validation` page pops up where to add their phone number. One-time codes are sent by SMS." -msgstr "" - -#: ../../content/applications/finance/sign.rst:-1 -msgid "fill in your phone number for final validation" -msgstr "" - -#: ../../content/applications/finance/sign.rst:136 +#: ../../content/applications/finance/sign.rst:182 msgid "This feature is enabled by default." msgstr "" -#: ../../content/applications/finance/sign.rst:137 +#: ../../content/applications/finance/sign.rst:183 msgid "As soon as the :guilabel:`Extra Authentication Step` applies to a role, this validation step is requested for any field assigned to this role." msgstr "" -#: ../../content/applications/finance/sign.rst:141 +#: ../../content/applications/finance/sign.rst:189 msgid "Itsme®" msgstr "" -#: ../../content/applications/finance/sign.rst:143 -msgid "Go to :menuselection:`Sign --> Configuration --> Settings` and enable :guilabel:`Identify with itsme®`." +#: ../../content/applications/finance/sign.rst:191 +msgid "Itsme® authentication can be used to allow signatories to provide their identity using itsme®. This feature is only available in **Belgium** and the **Netherlands**." msgstr "" -#: ../../content/applications/finance/sign.rst:146 -msgid "Then, go to :menuselection:`Sign --> Configuration --> Roles`. Click in the :guilabel:`Extra Authentication Step` column for the role, and select :guilabel:`Via itsme®`." +#: ../../content/applications/finance/sign.rst:194 +msgid "The feature can be enabled in :guilabel:`Sign Settings` and applies automatically to the :guilabel:`Customer (identified with itsme®)` role. To enable it for other roles, go to :menuselection:`Sign --> Configuration --> Roles`. Click in the :guilabel:`Extra Authentication Step` column for the role, and select :guilabel:`Via itsme®`." msgstr "" -#: ../../content/applications/finance/sign.rst:149 -msgid "Go to the document that needs to be signed and add the :guilabel:`Signature` field. Switch the role to :guilabel:`customer (identified with itsme®)`, and click :guilabel:`Validate`, and :guilabel:`Send`." +#: ../../content/applications/finance/sign.rst:199 +msgid "Go to the document that needs to be signed and add the :guilabel:`Signature` field. Switch to any role configured to use the feature, and click :guilabel:`Validate` and :guilabel:`Send`." msgstr "" #: ../../content/applications/finance/sign.rst:-1 msgid "select customer identified with itsme®" msgstr "" -#: ../../content/applications/finance/sign.rst:157 -msgid "The person signing the document fills in the :guilabel:`Signature` field and clicks :guilabel:`Validate & Send Completed Document`. A :guilabel:`Final Validation` page pops up, and the person must authenticate with itsme®." +#: ../../content/applications/finance/sign.rst:205 +msgid "Upon signing the document, the signer completes the :guilabel:`Signature` field and proceeds by clicking on :guilabel:`Validate & Send Completed Document`, triggering a :guilabel:`Final verification` page where authentication via itsme® is required." msgstr "" -#: ../../content/applications/finance/sign.rst:162 -msgid "This feature is only available in Belgium and the Netherlands." +#: ../../content/applications/finance/sign.rst:210 +msgid "Signatory hash" msgstr "" -#: ../../content/applications/finance/sign.rst:167 -msgid "Field Types" +#: ../../content/applications/finance/sign.rst:212 +msgid "Each time someone signs a document, a **hash** - a unique digital signature of the operation - is generated to ensure traceability, integrity, and inalterability. This process guarantees that any changes made after a signature is affixed can be easily detected, maintaining the document's authenticity and security throughout its lifecycle." msgstr "" -#: ../../content/applications/finance/sign.rst:169 -msgid "Various field types can be used to sign documents (placeholder, autocompletion, ...). By configuring your own field types, also known as signature item types, the signing process can be even faster for your customers, partners, and employees." +#: ../../content/applications/finance/sign.rst:217 +msgid "A visual security frame displaying the beginning of the hash is added to the signatures. Internal users can hide or show it by turning the :guilabel:`Frame` option on or off when signing the document." msgstr "" -#: ../../content/applications/finance/sign.rst:173 +#: ../../content/applications/finance/sign.rst:-1 +msgid "Adding the visual security frame to a signature." +msgstr "" + +#: ../../content/applications/finance/sign.rst:229 +msgid "Tags can be used to categorize and organize documents, allowing users to search for and filter documents based on specific criteria quickly." +msgstr "" + +#: ../../content/applications/finance/sign.rst:232 +msgid "You can manage tags by going to :menuselection:`Configuration --> Tags`. To create a tag, click :guilabel:`New`. On the new line, add the :guilabel:`Tag Name` and select a :guilabel:`Color Index` for your tag." +msgstr "" + +#: ../../content/applications/finance/sign.rst:236 +msgid "To apply a tag to a document, use the dropdown list available in your document." +msgstr "" + +#: ../../content/applications/finance/sign.rst:239 +msgid "Sign order" +msgstr "" + +#: ../../content/applications/finance/sign.rst:241 +msgid "When a document needs to be signed by different parties, the signing order lets you control the order in which your recipients receive it for signature." +msgstr "" + +#: ../../content/applications/finance/sign.rst:244 +msgid "By going to :menuselection:`Configuration --> Settings`, you can :guilabel:`Enable Signing Order`. Each recipient receives the signature request notification only once the previous recipient has completed their action." +msgstr "" + +#: ../../content/applications/finance/sign.rst:248 +msgid "Add at least two :guilabel:`Signature` fields with different roles to your document. Click :guilabel:`Send`, go to the :guilabel:`Options` tab, and tick the :guilabel:`Specify signing order` box." +msgstr "" + +#: ../../content/applications/finance/sign.rst:252 +msgid "Add the signer's :guilabel:`Name or email` information. You can decide on the :guilabel:`Sign Order` by typing :guilabel:`1` or :guilabel:`2` in the :guilabel:`Sign Order` column." +msgstr "" + +#: ../../content/applications/finance/sign.rst:256 +msgid "`Odoo Quick Tips: Sign order [video] `_" +msgstr "" + +#: ../../content/applications/finance/sign.rst:261 +msgid "Field types" +msgstr "" + +#: ../../content/applications/finance/sign.rst:263 +msgid "Fields are used in a document to indicate what information must be completed by the signers. You can add fields to your document simply by dragging and dropping them for the left column into your document." +msgstr "" + +#: ../../content/applications/finance/sign.rst:267 +msgid "Various field types can be used to sign documents (placeholder, autocompletion, etc.). By configuring your own field types, also known as signature item types, the signing process can be even faster for your customers, partners, and employees." +msgstr "" + +#: ../../content/applications/finance/sign.rst:271 msgid "To create and edit field types, go to :menuselection:`Sign --> Configuration --> Settings --> Edit field types`." msgstr "" -#: ../../content/applications/finance/sign.rst:176 -msgid "You can select an existing field by clicking on it or you can :guilabel:`Create` a new one. First, edit the :guilabel:`Field Name`. Then, select a :guilabel:`Field Type`:" +#: ../../content/applications/finance/sign.rst:274 +msgid "You can select an existing field by clicking on it, or you can :guilabel:`Create` a new one. First, edit the :guilabel:`Field Name`. Then, select a :guilabel:`Field Type`:" msgstr "" -#: ../../content/applications/finance/sign.rst:179 +#: ../../content/applications/finance/sign.rst:277 msgid ":guilabel:`Signature`: users are asked to enter their signature either by drawing it, generating an automatic one based on their name, or uploading a local file (usually an image). Each subsequent :guilabel:`Signature` field type then reuses the data entered in the first field." msgstr "" -#: ../../content/applications/finance/sign.rst:182 +#: ../../content/applications/finance/sign.rst:280 msgid ":guilabel:`Initial`: users are asked to enter their initials, in a similar way to the :guilabel:`Signature` field." msgstr "" -#: ../../content/applications/finance/sign.rst:184 +#: ../../content/applications/finance/sign.rst:282 msgid ":guilabel:`Text`: users enter text on a single line." msgstr "" -#: ../../content/applications/finance/sign.rst:185 +#: ../../content/applications/finance/sign.rst:283 msgid ":guilabel:`Multiline Text`: users enter text on multiple lines." msgstr "" -#: ../../content/applications/finance/sign.rst:186 +#: ../../content/applications/finance/sign.rst:284 msgid ":guilabel:`Checkbox`: users can tick a box (e.g., to mark their approval or consent)." msgstr "" -#: ../../content/applications/finance/sign.rst:187 +#: ../../content/applications/finance/sign.rst:285 msgid ":guilabel:`Selection`: users choose a single option from a variety of options." msgstr "" -#: ../../content/applications/finance/sign.rst:189 +#: ../../content/applications/finance/sign.rst:287 msgid "The :guilabel:`Auto-fill Partner Field` setting is used to automatically fill in a field during the signature process. It uses the value of one of the fields on the contact (`res.partner`) model of the person signing the document. To do so, enter the contact model field's technical name." msgstr "" -#: ../../content/applications/finance/sign.rst:194 +#: ../../content/applications/finance/sign.rst:292 msgid "To know the technical name of a field, enable developer mode and hover your mouse on the question mark next to the field." msgstr "" -#: ../../content/applications/finance/sign.rst:198 +#: ../../content/applications/finance/sign.rst:296 msgid "Auto-completed values are suggestions and can be modified as required by the person signing the document." msgstr "" -#: ../../content/applications/finance/sign.rst:201 -msgid "The size of the fields can also be changed by editing the :guilabel:`Default Width` and :guilabel:`Default Height`. Both sizes are defined as a percentage of the full-page expressed as a decimal, with 1 equalling the full-page's width or height. By default, the width of new fields you create is set to 15% (0.150) of a full-page's width, while their height is set to 1.5% (0.015) of a full-page's height." +#: ../../content/applications/finance/sign.rst:299 +msgid "The size of the fields can also be changed by editing the :guilabel:`Default Width` and :guilabel:`Default Height`. Both sizes are defined as a percentage of the full page expressed as a decimal, with 1 equalling the full page's width or height. By default, the width of new fields you create is set to 15% (0.150) of a full page's width, while their height is set to 1.5% (0.015) of a full page's height." msgstr "" -#: ../../content/applications/finance/sign.rst:207 +#: ../../content/applications/finance/sign.rst:305 msgid "Next, write a :guilabel:`Tip`. Tips are displayed inside arrows on the left-hand side of the user's screen during the signing process to help them understand what the step entails (e.g., \"Sign here\" or “Fill in your birthdate”). You can also use a :guilabel:`Placeholder` text to be displayed inside the field before it is completed." msgstr "" @@ -25473,22 +26250,6 @@ msgstr "" msgid "Tip and placeholder example in Odoo Sign" msgstr "" -#: ../../content/applications/finance/sign.rst:217 -msgid "Signatory hash" -msgstr "" - -#: ../../content/applications/finance/sign.rst:219 -msgid "A :guilabel:`hash` can be added to a document that is shared (attached to an email or printed, for example) to indicate that the signature is electronic and that there is some traceability behind it. The :guilabel:`hash` corresponds to a unique ID number related to the signed document." -msgstr "" - -#: ../../content/applications/finance/sign.rst:223 -msgid "If you are an :doc:`internal user <../general/users/manage_users>`, you can choose to tick or untick the frame option when signing the document. Tick the box to have the frame and hash visible." -msgstr "" - -#: ../../content/applications/finance/sign.rst:232 -msgid "The :guilabel:`hash` is only applicable to the signature field." -msgstr "" - #: ../../content/applications/finance/spreadsheet.rst:6 msgid "Spreadsheet" msgstr "" @@ -25637,10 +26398,6 @@ msgstr "" msgid "To change which records are :ref:`used by the pivot `, right-click on a pivot cell, select :guilabel:`See pivot properties`, and click :guilabel:`Edit domain`." msgstr "" -#: ../../content/applications/finance/spreadsheet/templates.rst:3 -msgid "Templates" -msgstr "" - #: ../../content/applications/finance/spreadsheet/templates.rst:5 msgid "Spreadsheet templates allow you to quickly create spreadsheets without starting from scratch." msgstr "" diff --git a/locale/sources/general.pot b/locale/sources/general.pot index bb70fdd9c..30eddc487 100644 --- a/locale/sources/general.pot +++ b/locale/sources/general.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2753,7 +2753,7 @@ msgid "Reporting" msgstr "" #: ../../content/applications/general/reporting.rst:5 -msgid "You can find under the :guilabel:`Reporting` menu of most apps several reports that let you analyze and visualize your records' data." +msgid "You can find several reports under the :guilabel:`Reporting` menu of most apps that let you analyze and visualize the data of your records." msgstr "" #: ../../content/applications/general/reporting.rst:11 @@ -2776,11 +2776,11 @@ msgstr "" msgid "Selecting the graph view" msgstr "" -#: ../../content/applications/general/reporting.rst:34 +#: ../../content/applications/general/reporting.rst:33 msgid "Pivot view" msgstr "" -#: ../../content/applications/general/reporting.rst:36 +#: ../../content/applications/general/reporting.rst:35 msgid "The :ref:`pivot view ` is used to aggregate your records' data and break it down for analysis. The view is often found under the :guilabel:`Reporting` menu of apps but can be found elsewhere. Click the **pivot view button** located at the top right to access it." msgstr "" @@ -2788,23 +2788,23 @@ msgstr "" msgid "Selecting the pivot view" msgstr "" -#: ../../content/applications/general/reporting.rst:47 +#: ../../content/applications/general/reporting.rst:45 msgid "Choosing measures" msgstr "" -#: ../../content/applications/general/reporting.rst:49 +#: ../../content/applications/general/reporting.rst:47 msgid "After selecting a view, you should ensure only the relevant records are :doc:`filtered `. Next, you should choose what is measured. By default, a measure is always selected. If you wish to edit it, click :guilabel:`Measures` and choose one or, only for pivots, multiple measures." msgstr "" -#: ../../content/applications/general/reporting.rst:54 +#: ../../content/applications/general/reporting.rst:52 msgid "When you select a measure, Odoo aggregates the values recorded on that field for the filtered records. Only numerical fields (:ref:`integer `, :ref:`decimal `, :ref:`monetary `) can be measured. In addition, the :guilabel:`Count` option is used to count the total number of filtered records." msgstr "" -#: ../../content/applications/general/reporting.rst:60 +#: ../../content/applications/general/reporting.rst:58 msgid "After choosing what you want to measure, you can define how the data should be :ref:`grouped ` depending on the dimension you want to analyze. By default, the data is often grouped by *Date > Month*, which is used to analyze the evolution of a measure over the months." msgstr "" -#: ../../content/applications/general/reporting.rst:65 +#: ../../content/applications/general/reporting.rst:63 msgid "When you filter a single time period, the option to compare it against another one appears." msgstr "" @@ -2812,11 +2812,11 @@ msgstr "" msgid "Using the comparison option" msgstr "" -#: ../../content/applications/general/reporting.rst:75 +#: ../../content/applications/general/reporting.rst:72 msgid "Select measures" msgstr "" -#: ../../content/applications/general/reporting.rst:77 +#: ../../content/applications/general/reporting.rst:74 msgid "Among other measures, you could add the :guilabel:`Margin` and :guilabel:`Count` measures to the Sales Analysis report. By default, the :guilabel:`Untaxed Amount` measure is selected." msgstr "" @@ -2824,11 +2824,11 @@ msgstr "" msgid "Selecting different measures on the Sales Analysis report" msgstr "" -#: ../../content/applications/general/reporting.rst:85 +#: ../../content/applications/general/reporting.rst:81 msgid "Group measures" msgstr "" -#: ../../content/applications/general/reporting.rst:87 +#: ../../content/applications/general/reporting.rst:83 msgid "You could group the measures by :guilabel:`Product Category` at the level of rows on the previous Sales Analysis report example." msgstr "" @@ -2836,19 +2836,19 @@ msgstr "" msgid "Adding a group on the Sales Analysis report" msgstr "" -#: ../../content/applications/general/reporting.rst:97 +#: ../../content/applications/general/reporting.rst:92 msgid "Using the pivot view" msgstr "" -#: ../../content/applications/general/reporting.rst:99 +#: ../../content/applications/general/reporting.rst:94 msgid "Grouping data is quintessential to the pivot view. It enables drilling down the data to gain deeper insights. While you can use the :guilabel:`Group By` option to quickly add a group at the level of rows, as shown in the example above, you can also click the plus button (:guilabel:`➕`) next to the :guilabel:`Total` header at the level of rows *and* columns, and then select one of the **preconfigured groups**. To remove one, click the minus button (:guilabel:`➖`)." msgstr "" -#: ../../content/applications/general/reporting.rst:105 +#: ../../content/applications/general/reporting.rst:100 msgid "Once you have added a group, you can add new ones on the opposite axis or the newly created subgroups." msgstr "" -#: ../../content/applications/general/reporting.rst:109 +#: ../../content/applications/general/reporting.rst:104 msgid "You could further divide the measures on the previous Sales Analysis report example by the :guilabel:`Salesperson` group at the level of columns and by the :guilabel:`Order Date > Month` group on the :guilabel:`All / Saleable / Office Furniture` product category." msgstr "" @@ -2856,39 +2856,39 @@ msgstr "" msgid "Adding multiple groups on the Sales Analysis report" msgstr "" -#: ../../content/applications/general/reporting.rst:118 +#: ../../content/applications/general/reporting.rst:112 msgid "Switch the rows and columns' groups by clicking the flip axis button (:guilabel:`⇄`)." msgstr "" -#: ../../content/applications/general/reporting.rst:119 +#: ../../content/applications/general/reporting.rst:113 msgid "Click on a measure's label to sort the values by ascending (⏶) or descending (⏷) order." msgstr "" -#: ../../content/applications/general/reporting.rst:120 +#: ../../content/applications/general/reporting.rst:114 msgid "Download a `.xlsx` version of the pivot by clicking the download button (:guilabel:`⭳`)." msgstr "" -#: ../../content/applications/general/reporting.rst:125 +#: ../../content/applications/general/reporting.rst:119 msgid "Using the graph view" msgstr "" -#: ../../content/applications/general/reporting.rst:127 -msgid "Three graphs are available, the bar, line, and pie charts." +#: ../../content/applications/general/reporting.rst:121 +msgid "Three graphs are available: the bar, line, and pie charts." msgstr "" -#: ../../content/applications/general/reporting.rst:129 +#: ../../content/applications/general/reporting.rst:123 msgid "**Bar charts** are used to show the distribution or a comparison of several categories. They are especially useful as they can deal with larger data sets." msgstr "" -#: ../../content/applications/general/reporting.rst:132 +#: ../../content/applications/general/reporting.rst:126 msgid "**Line charts** are useful to show changing time series and trends over time." msgstr "" -#: ../../content/applications/general/reporting.rst:134 +#: ../../content/applications/general/reporting.rst:128 msgid "**Pie charts** are used to show the distribution or a comparison of a small number of categories when they form a meaningful whole." msgstr "" -#: ../../content/applications/general/reporting.rst:139 +#: ../../content/applications/general/reporting.rst:133 msgid "Bar chart" msgstr "" @@ -2896,7 +2896,7 @@ msgstr "" msgid "Viewing the Sales Analysis report as a bar chart" msgstr "" -#: ../../content/applications/general/reporting.rst:145 +#: ../../content/applications/general/reporting.rst:138 msgid "Line chart" msgstr "" @@ -2904,7 +2904,7 @@ msgstr "" msgid "Viewing the Sales Analysis report as a line chart" msgstr "" -#: ../../content/applications/general/reporting.rst:151 +#: ../../content/applications/general/reporting.rst:143 msgid "Pie chart" msgstr "" @@ -2912,11 +2912,11 @@ msgstr "" msgid "Viewing the Sales Analysis report as a pie chart" msgstr "" -#: ../../content/applications/general/reporting.rst:158 +#: ../../content/applications/general/reporting.rst:149 msgid "For **bar** and **line** charts, you can use the stacked option when you have at least two groups, which then appear on top of each other instead of next to each other." msgstr "" -#: ../../content/applications/general/reporting.rst:163 +#: ../../content/applications/general/reporting.rst:154 msgid "Stacked bar chart" msgstr "" @@ -2924,7 +2924,7 @@ msgstr "" msgid "Stacked bar chart example" msgstr "" -#: ../../content/applications/general/reporting.rst:169 +#: ../../content/applications/general/reporting.rst:159 msgid "Regular bar chart" msgstr "" @@ -2932,7 +2932,7 @@ msgstr "" msgid "Non-stacked bar chart example" msgstr "" -#: ../../content/applications/general/reporting.rst:175 +#: ../../content/applications/general/reporting.rst:164 msgid "Stacked line chart" msgstr "" @@ -2940,8 +2940,8 @@ msgstr "" msgid "Stacked line chart example" msgstr "" -#: ../../content/applications/general/reporting.rst:181 -#: ../../content/applications/general/reporting.rst:198 +#: ../../content/applications/general/reporting.rst:169 +#: ../../content/applications/general/reporting.rst:184 msgid "Regular line chart" msgstr "" @@ -2949,11 +2949,11 @@ msgstr "" msgid "Non-stacked line chart example" msgstr "" -#: ../../content/applications/general/reporting.rst:187 +#: ../../content/applications/general/reporting.rst:174 msgid "For **line** charts, you can use the cumulative option to sum values, which is especially useful to show the change in growth over a time period." msgstr "" -#: ../../content/applications/general/reporting.rst:192 +#: ../../content/applications/general/reporting.rst:179 msgid "Cumulative line chart" msgstr "" diff --git a/locale/sources/hr.pot b/locale/sources/hr.pot index 6dd0f4bed..4f3fdba27 100644 --- a/locale/sources/hr.pot +++ b/locale/sources/hr.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -471,27 +471,27 @@ msgstr "" msgid "All uploaded documents associated with the employee appear in the documents smart-button." msgstr "" -#: ../../content/applications/hr/payroll.rst:3 +#: ../../content/applications/hr/payroll.rst:5 msgid "Payroll" msgstr "" -#: ../../content/applications/hr/payroll.rst:5 +#: ../../content/applications/hr/payroll.rst:7 msgid "Odoo *Payroll* is used to process work entries and create payslips for employees, including both regular pay and commission. Payroll works in conjunction with other Odoo apps, such as *Employees*, *Timesheets*, *Time Off*, and *Attendances*." msgstr "" -#: ../../content/applications/hr/payroll.rst:9 +#: ../../content/applications/hr/payroll.rst:11 msgid "The *Payroll* app helps ensure there are no issues or conflicts when validating work entries, handles country-specific localizations to ensure that payslips follow local rules and taxes, and allows for salary assignments. Payroll configuration is critical to ensure accurate and timely processing of payslips." msgstr "" -#: ../../content/applications/hr/payroll.rst:15 +#: ../../content/applications/hr/payroll.rst:17 msgid "Settings" msgstr "" -#: ../../content/applications/hr/payroll.rst:17 +#: ../../content/applications/hr/payroll.rst:19 msgid "To access the *Settings*, go to :menuselection:`Payroll --> Configuration --> Settings`. Whether or not payslips are posted in accounting, and whether SEPA payments are created, is selected here." msgstr "" -#: ../../content/applications/hr/payroll.rst:20 +#: ../../content/applications/hr/payroll.rst:22 msgid "The :guilabel:`Settings` screen is where localization settings are configured. *Localizations* are country-specific settings pre-configured in Odoo at the creation of the database, and account for all taxes, fees, and allowances for that particular country. The :guilabel:`Localization` section of the :guilabel:`Settings` includes a detailed view of all benefits provided to employees." msgstr "" @@ -499,36 +499,36 @@ msgstr "" msgid "Settings available for Payroll." msgstr "" -#: ../../content/applications/hr/payroll.rst:29 +#: ../../content/applications/hr/payroll.rst:31 msgid "Any country-specific localizations are set up in the :guilabel:`Localization` section of the :guilabel:`Settings` screen. All localization items are pre-populated when the country is specified during the creation of the database. It is not recommended to alter the localization settings unless specifically required." msgstr "" -#: ../../content/applications/hr/payroll.rst:37 +#: ../../content/applications/hr/payroll.rst:39 #: ../../content/applications/hr/payroll/work_entries.rst:3 msgid "Work entries" msgstr "" -#: ../../content/applications/hr/payroll.rst:39 +#: ../../content/applications/hr/payroll.rst:41 msgid "A *work entry* is an individual record on an employee's timesheet. Work entries can be configured to account for all types of work and time off, such as :guilabel:`Attendance`, :guilabel:`Sick Time Off`, :guilabel:`Training`, or :guilabel:`Public Holiday`." msgstr "" -#: ../../content/applications/hr/payroll.rst:44 +#: ../../content/applications/hr/payroll.rst:46 msgid ":doc:`Manage work entries `" msgstr "" -#: ../../content/applications/hr/payroll.rst:47 +#: ../../content/applications/hr/payroll.rst:49 msgid "Work entry types" msgstr "" -#: ../../content/applications/hr/payroll.rst:49 +#: ../../content/applications/hr/payroll.rst:51 msgid "When creating a work entry in the *Payroll* application, or when an employee enters information in the *Timesheets* application, a :guilabel:`Work Entry Type` needs to be selected. The list of :guilabel:`Work Entry Types` is automatically created based on localization settings set in the database." msgstr "" -#: ../../content/applications/hr/payroll.rst:54 +#: ../../content/applications/hr/payroll.rst:56 msgid "To view the current work entry types available, go to :menuselection:`Payroll --> Configuration --> Work Entry Types`." msgstr "" -#: ../../content/applications/hr/payroll.rst:57 +#: ../../content/applications/hr/payroll.rst:59 msgid "Each work entry type has a code to aid in the creation of payslips, and ensure all taxes and fees are correctly entered." msgstr "" @@ -536,27 +536,27 @@ msgstr "" msgid "List of all work entry types currently available." msgstr "" -#: ../../content/applications/hr/payroll.rst:65 +#: ../../content/applications/hr/payroll.rst:67 msgid "New work entry type" msgstr "" -#: ../../content/applications/hr/payroll.rst:67 +#: ../../content/applications/hr/payroll.rst:69 msgid "To create a new work entry type, click the :guilabel:`Create` button. Enter the information on the form:" msgstr "" -#: ../../content/applications/hr/payroll.rst:70 +#: ../../content/applications/hr/payroll.rst:72 msgid ":guilabel:`Work Entry Type Name`: The name should be short and descriptive, such as `Sick Time` or `Public Holiday`." msgstr "" -#: ../../content/applications/hr/payroll.rst:72 +#: ../../content/applications/hr/payroll.rst:74 msgid ":guilabel:`Code`: This code appears with the work entry type on timesheets and payslips. Since the code is used in conjunction with the *Accounting* application, it is advised to check with the accounting department for a code to use." msgstr "" -#: ../../content/applications/hr/payroll.rst:75 +#: ../../content/applications/hr/payroll.rst:77 msgid ":guilabel:`Sequence`: The sequence determines the order that the work entry is computed in the payslip list." msgstr "" -#: ../../content/applications/hr/payroll.rst:77 +#: ../../content/applications/hr/payroll.rst:79 msgid "Check boxes: If any of the items in the list applies to the work entry, check off the box by clicking it. If :guilabel:`Time Off` is checked off, a :guilabel:`Time Off Type` field appears. This field has a drop-down menu to select the specific type of time off, or a new type of time off can be entered." msgstr "" @@ -564,35 +564,35 @@ msgstr "" msgid "New work entry type form." msgstr "" -#: ../../content/applications/hr/payroll.rst:86 +#: ../../content/applications/hr/payroll.rst:88 msgid ":guilabel:`Rounding`: The rounding method determines how timesheet entries are displayed on the payslip." msgstr "" -#: ../../content/applications/hr/payroll.rst:89 +#: ../../content/applications/hr/payroll.rst:91 msgid ":guilabel:`No Rounding`: A timesheet entry is not modified." msgstr "" -#: ../../content/applications/hr/payroll.rst:90 +#: ../../content/applications/hr/payroll.rst:92 msgid ":guilabel:`Half Day`: A timesheet entry is rounded to the closest half day amount." msgstr "" -#: ../../content/applications/hr/payroll.rst:91 +#: ../../content/applications/hr/payroll.rst:93 msgid ":guilabel:`Day`: A timesheet entry is rounded to the closest full day amount." msgstr "" -#: ../../content/applications/hr/payroll.rst:94 +#: ../../content/applications/hr/payroll.rst:96 msgid "If the working time is set to an 8-hour work day (40-hour work week), and an employee enters a time of 5.5 hours on a timesheet, and :guilabel:`Rounding` is set to :guilabel:`No Rounding`, the entry remains 5.5 hours. If :guilabel:`Rounding` is set to :guilabel:`Half Day`, the entry is changed to 4 hours. If it is set to :guilabel:`Day`, it is changed to 8 hours." msgstr "" -#: ../../content/applications/hr/payroll.rst:100 +#: ../../content/applications/hr/payroll.rst:102 msgid "Working times" msgstr "" -#: ../../content/applications/hr/payroll.rst:102 +#: ../../content/applications/hr/payroll.rst:104 msgid "To view the currently configured working times, go to :menuselection:`Payroll --> Configuration --> Working Times`. The working times that are available for an employee's contracts and work entries are found in this list." msgstr "" -#: ../../content/applications/hr/payroll.rst:106 +#: ../../content/applications/hr/payroll.rst:108 msgid "Working times are company-specific. Each company must identify each type of working time they use. For example, an Odoo database containing multiple companies that use a standard 40-hour work week needs to have a separate working time entry for each company that uses the 40-hour standard work week." msgstr "" @@ -600,11 +600,11 @@ msgstr "" msgid "All working times currently set up in the database." msgstr "" -#: ../../content/applications/hr/payroll.rst:116 +#: ../../content/applications/hr/payroll.rst:118 msgid "New working time" msgstr "" -#: ../../content/applications/hr/payroll.rst:118 +#: ../../content/applications/hr/payroll.rst:120 msgid "To create a new working time, click the :guilabel:`Create` button. Enter the information on the form." msgstr "" @@ -612,43 +612,43 @@ msgstr "" msgid "New working type form." msgstr "" -#: ../../content/applications/hr/payroll.rst:125 +#: ../../content/applications/hr/payroll.rst:127 msgid "The fields are auto-populated for a regular 40-hour work week but can be modified. First, change the name of the working time by modifying the text in the :guilabel:`Name` field. Next, make any adjustments to the days and times that apply to the new working time." msgstr "" -#: ../../content/applications/hr/payroll.rst:129 +#: ../../content/applications/hr/payroll.rst:131 msgid "In the :guilabel:`Working Hours` tab, modify the :guilabel:`Day of Week`, :guilabel:`Day Period`, and :guilabel:`Work Entry Type` selections by clicking on the drop-down menus in each column and making the desired selection. The :guilabel:`Work From` and :guilabel:`Work To` columns are modified by typing in the time." msgstr "" -#: ../../content/applications/hr/payroll.rst:135 +#: ../../content/applications/hr/payroll.rst:137 msgid "The :guilabel:`Work From` and :guilabel:`Work To` times must be in a 24-hour format. For example, `2:00 PM` would be entered as `14:00`." msgstr "" -#: ../../content/applications/hr/payroll.rst:138 +#: ../../content/applications/hr/payroll.rst:140 msgid "If the working time should be in a two-week configuration, click the :guilabel:`Switch To 2 Week Calendar` button. This creates entries for an :guilabel:`Even week` and an :guilabel:`Odd week`." msgstr "" -#: ../../content/applications/hr/payroll.rst:142 +#: ../../content/applications/hr/payroll.rst:144 msgid "Salary" msgstr "" -#: ../../content/applications/hr/payroll.rst:147 +#: ../../content/applications/hr/payroll.rst:149 msgid "Structure types" msgstr "" -#: ../../content/applications/hr/payroll.rst:149 +#: ../../content/applications/hr/payroll.rst:151 msgid "In Odoo, an employee's payslip is based on *structures* and *structure types*, which both affect how an employee enters timesheets. Each structure type is an individual set of rules for processing a timesheet entry, which consists of different structures nested within it. Structure types define how often an employee gets paid, the working hours, and if wages are based on a salary (fixed) or how many hours the employee worked (varied)." msgstr "" -#: ../../content/applications/hr/payroll.rst:155 +#: ../../content/applications/hr/payroll.rst:157 msgid "For example, a structure type could be `Employee`, and that structure type could have two different structures in it: a `Regular Pay` structure which includes all the separate rules for processing regular pay, as well as a structure for an `End of Year Bonus` which includes the rules only for the end of year bonus. Both the `Regular Pay` structure and `End of Year Bonus` structure are structures within the `Employee` structure type." msgstr "" -#: ../../content/applications/hr/payroll.rst:161 +#: ../../content/applications/hr/payroll.rst:163 msgid "The different structure types can be seen by going to :menuselection:`Payroll --> Configuration --> Structure Types`." msgstr "" -#: ../../content/applications/hr/payroll.rst:164 +#: ../../content/applications/hr/payroll.rst:166 msgid "There are two default structure types configured in Odoo: *Employee* and *Worker*. Typically, *Employee* is used for salaried employees, which is why the wage type is *Monthly Fixed Wage*, and *Worker* is typically used for employees paid by the hour, so the wage type is *Hourly Wage*." msgstr "" @@ -656,7 +656,7 @@ msgstr "" msgid "List of all structure types." msgstr "" -#: ../../content/applications/hr/payroll.rst:172 +#: ../../content/applications/hr/payroll.rst:174 msgid "Click the :guilabel:`Create` button to make a new structure type. Most fields are pre-populated, but all fields can be edited. Once the fields are edited, click the :guilabel:`Save` button to save the changes, or click :guilabel:`Discard` to delete the entry." msgstr "" @@ -664,19 +664,19 @@ msgstr "" msgid "New structure type box." msgstr "" -#: ../../content/applications/hr/payroll.rst:181 +#: ../../content/applications/hr/payroll.rst:183 msgid "Structures" msgstr "" -#: ../../content/applications/hr/payroll.rst:183 +#: ../../content/applications/hr/payroll.rst:185 msgid "*Salary structures* are the different ways an employee gets paid within a specific *structure*, and are specifically defined by various rules." msgstr "" -#: ../../content/applications/hr/payroll.rst:186 +#: ../../content/applications/hr/payroll.rst:188 msgid "The amount of structures a company needs for each structure type depends on how many different ways employees are paid, and how their pay is calculated. For example, a common structure that could be useful to add may be a `Bonus`." msgstr "" -#: ../../content/applications/hr/payroll.rst:190 +#: ../../content/applications/hr/payroll.rst:192 msgid "To view all the various structures for each structure type, go to :menuselection:`Payroll --> Configuration --> Structures`." msgstr "" @@ -684,11 +684,11 @@ msgstr "" msgid "All available salary structures." msgstr "" -#: ../../content/applications/hr/payroll.rst:197 +#: ../../content/applications/hr/payroll.rst:199 msgid "Each :ref:`structure type ` lists the various structures associated with it. Each structure contains a set of rules that define it." msgstr "" -#: ../../content/applications/hr/payroll.rst:200 +#: ../../content/applications/hr/payroll.rst:202 msgid "Click on a structure to view its :guilabel:`Salary Rules`. These rules are what calculate the payslip for the employee." msgstr "" @@ -696,15 +696,15 @@ msgstr "" msgid "Salary structure details for Regular Pay." msgstr "" -#: ../../content/applications/hr/payroll.rst:208 +#: ../../content/applications/hr/payroll.rst:210 msgid "Rules" msgstr "" -#: ../../content/applications/hr/payroll.rst:210 +#: ../../content/applications/hr/payroll.rst:212 msgid "Each structure has a set of *salary rules* to follow for accounting purposes. These rules are configured by the localization, and affect the *Accounting* application, so modifications to the default rules, or the creation of new rules, should only be done when necessary." msgstr "" -#: ../../content/applications/hr/payroll.rst:214 +#: ../../content/applications/hr/payroll.rst:216 msgid "To view all the rules, go to :menuselection:`Payroll app --> Configuration --> Rules`. Click on a structure (such as :guilabel:`Regular Pay`) to view all the rules." msgstr "" @@ -712,7 +712,7 @@ msgstr "" msgid "Rules for each salary structure type." msgstr "" -#: ../../content/applications/hr/payroll.rst:221 +#: ../../content/applications/hr/payroll.rst:223 msgid "To make a new rule, click :guilabel:`Create`. A new rule form appears. Enter the information in the fields, then click :guilabel:`Save`." msgstr "" @@ -720,47 +720,47 @@ msgstr "" msgid "Enter the information for the new rule." msgstr "" -#: ../../content/applications/hr/payroll.rst:228 +#: ../../content/applications/hr/payroll.rst:230 msgid "The required fields for a rule are:" msgstr "" -#: ../../content/applications/hr/payroll.rst:230 +#: ../../content/applications/hr/payroll.rst:232 msgid ":guilabel:`Name`: Enter a name for the rule." msgstr "" -#: ../../content/applications/hr/payroll.rst:231 +#: ../../content/applications/hr/payroll.rst:233 msgid ":guilabel:`Category`: Select a category the rule applies to from the drop-down menu, or enter a new one." msgstr "" -#: ../../content/applications/hr/payroll.rst:233 +#: ../../content/applications/hr/payroll.rst:235 msgid ":guilabel:`Code`: Enter a code to be used for this new rule. It is recommended to coordinate with the accounting department for a code as this will affect them." msgstr "" -#: ../../content/applications/hr/payroll.rst:235 +#: ../../content/applications/hr/payroll.rst:237 msgid ":guilabel:`Salary Structure`: Select a salary structure the rule applies to from the drop-down menu, or enter a new one." msgstr "" -#: ../../content/applications/hr/payroll.rst:237 +#: ../../content/applications/hr/payroll.rst:239 msgid ":guilabel:`Condition Based on`: In the :guilabel:`General` tab, select from the drop-down menu whether the rule is :guilabel:`Always True` (always applies), a :guilabel:`Range` (applies to a specific range, which is entered beneath the selection), or a :guilabel:`Python Expression` (the code is entered beneath the selection)." msgstr "" -#: ../../content/applications/hr/payroll.rst:241 +#: ../../content/applications/hr/payroll.rst:243 msgid ":guilabel:`Amount Type`: In the :guilabel:`General` tab, select from the drop-down menu whether the amount is a :guilabel:`Fixed Amount`, a :guilabel:`Percentage (%)`, or a :guilabel:`Python Code`. Depending on what is selected, the fixed amount, percentage, or Python code needs to be entered next." msgstr "" -#: ../../content/applications/hr/payroll.rst:247 +#: ../../content/applications/hr/payroll.rst:249 msgid "Rule parameters" msgstr "" -#: ../../content/applications/hr/payroll.rst:250 +#: ../../content/applications/hr/payroll.rst:252 msgid "Currently, the :guilabel:`Rule Parameters` feature found inside the :menuselection:`Payroll app --> Configuration` menu is still in development and only serves a specific use case for Belgian markets. The documentation will be updated when this section has matured to more markets." msgstr "" -#: ../../content/applications/hr/payroll.rst:255 +#: ../../content/applications/hr/payroll.rst:257 msgid "Other input types" msgstr "" -#: ../../content/applications/hr/payroll.rst:257 +#: ../../content/applications/hr/payroll.rst:259 msgid "When creating payslips, it is sometimes necessary to add other entries for specific circumstances, like expenses, reimbursements, or deductions. These other inputs can be configured by going to :menuselection:`Payroll --> Configuration --> Other Input Types`." msgstr "" @@ -768,7 +768,7 @@ msgstr "" msgid "Other input types for payroll." msgstr "" -#: ../../content/applications/hr/payroll.rst:265 +#: ../../content/applications/hr/payroll.rst:267 msgid "To create a new input type, click the :guilabel:`Create` button. Enter the :guilabel:`Description`, the :guilabel:`Code`, and which structure it applies to in the :guilabel:`Availability in Structure` field. Click the :guilabel:`Save` button to save the changes, or click :guilabel:`Discard` to delete the entry." msgstr "" @@ -776,27 +776,27 @@ msgstr "" msgid "Create a new Input Type." msgstr "" -#: ../../content/applications/hr/payroll.rst:275 +#: ../../content/applications/hr/payroll.rst:277 msgid "Salary package configurator" msgstr "" -#: ../../content/applications/hr/payroll.rst:277 +#: ../../content/applications/hr/payroll.rst:279 msgid "The various options under the :guilabel:`Salary Package Configurator` section of the :menuselection:`Payroll --> Configuration` menu all affect an employee's potential salary. These sections (:guilabel:`Advantages`, :guilabel:`Personal Info`, and :guilabel:`Resume`) specify what benefits can be offered to an employee in their salary package." msgstr "" -#: ../../content/applications/hr/payroll.rst:282 +#: ../../content/applications/hr/payroll.rst:284 msgid "Depending on what information an employee enters (such as deductions, dependents, etc.), their salary is adjusted accordingly. When an applicant applies for a job on the company website, the sections under :guilabel:`Salary Package Configurator` directly affect what the applicant sees, and what is populated as the applicant enters information." msgstr "" -#: ../../content/applications/hr/payroll.rst:288 +#: ../../content/applications/hr/payroll.rst:290 msgid "Advantages" msgstr "" -#: ../../content/applications/hr/payroll.rst:290 +#: ../../content/applications/hr/payroll.rst:292 msgid "When offering potential employees a position, there can be certain *advantages* set in Odoo in addition to the salary to make the offer more appealing (such as extra time off, access to a company car, reimbursement for a phone or internet, etc.)." msgstr "" -#: ../../content/applications/hr/payroll.rst:294 +#: ../../content/applications/hr/payroll.rst:296 msgid "To see the advantages, go to :menuselection:`Payroll --> Configuration --> Advantages`. Advantages are grouped by :guilabel:`Structure type`." msgstr "" @@ -804,7 +804,7 @@ msgstr "" msgid "Settings available for payroll." msgstr "" -#: ../../content/applications/hr/payroll.rst:301 +#: ../../content/applications/hr/payroll.rst:303 msgid "To make a new advantage, click the :guilabel:`Create` button. Enter the information in the fields, then click the :guilabel:`Save` button to save the changes, or click :guilabel:`Discard` to delete the entry." msgstr "" @@ -812,39 +812,39 @@ msgstr "" msgid "List of advantages employee's can have." msgstr "" -#: ../../content/applications/hr/payroll.rst:309 +#: ../../content/applications/hr/payroll.rst:311 msgid "The required fields for an advantage are:" msgstr "" -#: ../../content/applications/hr/payroll.rst:311 +#: ../../content/applications/hr/payroll.rst:313 msgid ":guilabel:`Name`: Enter the name for the advantage." msgstr "" -#: ../../content/applications/hr/payroll.rst:312 +#: ../../content/applications/hr/payroll.rst:314 msgid ":guilabel:`Advantage Field`: Select from the drop-down menu what field in the payslip this advantage appears under." msgstr "" -#: ../../content/applications/hr/payroll.rst:314 +#: ../../content/applications/hr/payroll.rst:316 msgid ":guilabel:`Advantage Type`: Select from the drop-down menu what type of advantage the benefit is. Select from :guilabel:`Monthly Benefit in Kind`, :guilabel:`Monthly Advantages in Net`, :guilabel:`Monthly Advantages in Cash`, or :guilabel:`Yearly Advantages in Cash`." msgstr "" -#: ../../content/applications/hr/payroll.rst:317 +#: ../../content/applications/hr/payroll.rst:319 msgid ":guilabel:`Salary Structure Type`: Select from the drop-down menu which salary structure type this advantage applies to." msgstr "" -#: ../../content/applications/hr/payroll.rst:321 +#: ../../content/applications/hr/payroll.rst:323 msgid "Personal info" msgstr "" -#: ../../content/applications/hr/payroll.rst:323 +#: ../../content/applications/hr/payroll.rst:325 msgid "Every employee in Odoo has an *employee card* that includes all of their personal information, resume, work information, and documents. To view an employee's card, go to the main :menuselection:`Payroll` app dashboard, and click on the employee's card, or go to :menuselection:`Payroll --> Employees --> Employees` and click on the employee's card. Employee cards can also be viewed by going to the :menuselection:`Employees` app." msgstr "" -#: ../../content/applications/hr/payroll.rst:330 +#: ../../content/applications/hr/payroll.rst:332 msgid "An employee card can be thought of as an employee personnel file." msgstr "" -#: ../../content/applications/hr/payroll.rst:332 +#: ../../content/applications/hr/payroll.rst:334 msgid "The *Personal Information* section lists all of the fields that are available to enter on the employee's card. To access this section, go to :menuselection:`Payroll --> Configuration --> Personal Info`." msgstr "" @@ -852,7 +852,7 @@ msgstr "" msgid "Personal information that appear on employee cards to enter." msgstr "" -#: ../../content/applications/hr/payroll.rst:340 +#: ../../content/applications/hr/payroll.rst:342 msgid "To edit an entry, select it from the list. Then, click the :guilabel:`Edit` button, and modify the entry. When done, click :guilabel:`Save` or :guilabel:`Discard` to save the information or cancel the edits." msgstr "" @@ -860,23 +860,23 @@ msgstr "" msgid "New personal information entry." msgstr "" -#: ../../content/applications/hr/payroll.rst:348 +#: ../../content/applications/hr/payroll.rst:350 msgid "The two most important fields on the personal info form are :guilabel:`Is Required` and :guilabel:`Display Type`. Checking the :guilabel:`Is Required` box makes the field mandatory on the employee's card." msgstr "" -#: ../../content/applications/hr/payroll.rst:352 +#: ../../content/applications/hr/payroll.rst:354 msgid "The :guilabel:`Display Type` drop-down menu allows for the information to be entered in a variety of ways, from a :guilabel:`Text` box, to a customizable :guilabel:`Radio` button, a :guilabel:`Checkbox`, a :guilabel:`Document`, and more." msgstr "" -#: ../../content/applications/hr/payroll.rst:356 +#: ../../content/applications/hr/payroll.rst:358 msgid "Once the information is entered, click the :guilabel:`Save` button to save the entry." msgstr "" -#: ../../content/applications/hr/payroll.rst:359 +#: ../../content/applications/hr/payroll.rst:361 msgid "Resume" msgstr "" -#: ../../content/applications/hr/payroll.rst:362 +#: ../../content/applications/hr/payroll.rst:364 msgid "Currently, the :guilabel:`Resume` feature found inside the :menuselection:`Payroll app --> Configuration` menu is still in development and only serves a specific use case for Belgian markets. The documentation will be updated when this section has matured to more markets." msgstr "" diff --git a/locale/sources/inventory_and_mrp.pot b/locale/sources/inventory_and_mrp.pot index 1764b7ec3..c2cc0563e 100644 --- a/locale/sources/inventory_and_mrp.pot +++ b/locale/sources/inventory_and_mrp.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -70,11 +70,10 @@ msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/operations/barcode_nomenclature.rst:3 #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/cancel.rst:6 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:6 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:8 #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/label_type.rst:6 #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:6 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:6 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:6 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:8 msgid "Overview" msgstr "" @@ -182,697 +181,849 @@ msgstr "" msgid "GS1 barcode nomenclature" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:5 -msgid "`GS1 nomenclature `_ consolidates multiple pieces of information in a single barcode. Each piece needs to follow a specific barcode pattern—which is a defined format of numbers, letters, special characters, and character length—to ensure proper interpretation of the barcode. By scanning the barcode on an unopened box, GS1 nomenclature can identify the product, lot number, number of units contained, and more." -msgstr "" - #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:12 -msgid "`All GS1 barcodes `_" +msgid "`GS1 nomenclature `_ consolidates various product and supply chain data into a single barcode. Odoo takes in `unique Global Trade Item Numbers `_ (GTIN), purchased by businesses, to enable global shipping, sales, and eCommerce product listing." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:13 -msgid ":ref:`Odoo's default GS1 rules `" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:14 -msgid ":ref:`Why's my barcode not working? `" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:19 -msgid "Set up barcode nomenclature" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:17 +msgid "Configure GS1 nomenclature to scan barcodes of sealed boxes and identify essential product information, such as |GTIN|, lot number, quantity information, and more." msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:21 +msgid "|GTINs| are unique product identification that **must** be `purchased from GS1 `_ to use GS1 barcodes." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:25 +msgid "`All GS1 barcodes `_" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:26 +msgid ":ref:`Odoo's default GS1 rules `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:27 +msgid ":ref:`Why's my barcode not working? `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:32 +msgid "Set up barcode nomenclature" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:34 msgid "To use GS1 nomenclature, navigate to the :menuselection:`Inventory app --> Configuration --> Settings`. Then under the :guilabel:`Barcode` section, check the :guilabel:`Barcode Scanner` box. Next, select :menuselection:`Barcode Nomenclature --> Default GS1 Nomenclature` from the default barcode nomenclature options." msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:-1 -msgid "Choose GS1 from dropdown and click the internal link to see the list of GS1 rules." +msgid "Choose GS1 from dropdown and click the external link to see the list of GS1 rules." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:30 -msgid "To view and edit a list of GS1 *rules* and *barcode patterns* Odoo supports by default, click the :guilabel:`➡️ (External link)` icon to the right of the :guilabel:`Barcode Nomenclature` selection." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:33 -msgid "Opening the pop-up table provides an editable view of GS1 :guilabel:`Rule Names` available in Odoo. The table contains all the information that can be condensed with a GS1 barcode, along with the corresponding :guilabel:`Barcode Pattern`." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:38 -msgid "After setting GS1 as the barcode nomenclature, :menuselection:`Barcode Nomenclatures` can also be accessed by first enabling :ref:`developer mode `. Navigate to :menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures` and finally, select :guilabel:`Default GS1 Nomenclature`." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:43 +msgid "The list of GS1 *rules* and *barcode patterns* Odoo supports by default is accessible by clicking the :guilabel:`➡️ (arrow)` icon to the right of the :guilabel:`Barcode Nomenclature` selection." msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:46 -msgid "Use GS1 barcode" +msgid "In the :guilabel:`Open: Nomenclature` pop-up table, view and edit the GS1 :guilabel:`Rule Names` available in Odoo. The table contains all the information that can be condensed with a GS1 barcode, along with the corresponding :guilabel:`Barcode Pattern`." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:48 -msgid "To build GS1 barcodes in Odoo, combine multiple pieces of information using the specified barcode pattern. The `application identifier `_ (A.I.) serves as the universal prefix for GS1 for barcode identification. Odoo uses regular expressions to describe barcode patterns concisely. Each barcode pattern begins with a required 2-4 digit :abbr:`A.I. (application identifier)`, which corresponds to the rule defined in the system's :ref:`barcode nomenclature list `. By including the appropriate :abbr:`A.I. (application identifier)` from the list, Odoo can accurately interpret GS1 barcodes. While most barcode patterns have a flexible length, some specific patterns, such as barcodes for dates, have defined length requirements." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:51 +msgid "After setting GS1 as the barcode nomenclature, the :menuselection:`Barcode Nomenclatures` settings can also be accessed by a hidden menu that's discoverable after enabling :ref:`developer mode `. Once enabled, navigate to the :menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures` menu and finally, select :guilabel:`Default GS1 Nomenclature`." msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:60 -msgid "Use the FNC1 separator (`\\x1D`) to end the barcode without needing to reach the maximum character length." +msgid "Use GS1 barcodes in Odoo" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:63 -msgid "Refer to the :ref:`GS1 nomenclature list ` to see a comprehensive list of all barcode patterns and rules to follow. Otherwise, the following section contains examples of how to generate a barcode for common items in a warehouse." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:62 +msgid "For product identification using GS1 barcodes in Odoo, businesses obtain a `unique GTIN `_ as an internationally distinct product identifier purchased from GS1. This |GTIN| is combined with specific product details following GS1's designated *barcode pattern*. The barcode pattern's arrangement of numbers and letters must adhere to GS1 conventions for accurate interpretation by global systems along the supply chain." msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:68 -msgid "Product + quantity + lot" +msgid "Every barcode starts with a 2-4 digit `application identifier `_ (A.I.). This required prefix universally indicates what kind of information the barcode contains. Odoo follows GS1 rules for identifying information, as detailed in the :ref:`default GS1 rules list `. Including the relevant |AI| from the list enables Odoo to correctly interpret GS1 barcodes. While most barcode patterns have a fixed length requirement, certain ones, such as lots and serial numbers, have flexible length." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:70 -msgid "To build a GS1 barcode for a box that contains a product, number of units in it, and the lot number, the following barcode patterns are used:" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:77 +msgid "For flexible-length barcode patterns not placed at the end of the GS1 barcode, use the FNC1 separator (`\\\\x1D`) to end the barcode." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:74 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:188 -msgid "Name" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:80 +msgid "Example: The barcode pattern for lot numbers is 20 characters long. Instead of creating a 20-character lot number barcode, like `LOT00000000000000001`, use the FNC1 separator to make it shorter: `LOT001\\x1D`." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:74 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:188 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:302 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:84 +msgid "Refer to the :ref:`GS1 nomenclature list ` to see a comprehensive list of all barcode patterns and rules to follow. Otherwise, refer to :ref:`this GS1 usage doc ` for specific examples of combining |GTIN| to product information and configuring the workflow." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:90 +msgid ":ref:`Lots workflow `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:91 +msgid ":ref:`Non-unit quantities workflow `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:96 +msgid "Create rules" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:98 +msgid "GS1 rules are a specific format of information contained in the barcode, beginning with an |AI| and containing a defined length of characters. Scanning GS1 barcodes from the :ref:`default GS1 list ` auto-fills corresponding data in the Odoo database." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:103 +msgid "Adding GS1 barcode rules in Odoo ensures accurate interpretation of unique, non-standard GS1 formats." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:106 +msgid "To do so, begin by turning on :ref:`developer mode ` and navigating to the :guilabel:`Barcode Nomenclatures` list in :menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures`. Then, select the :guilabel:`Default GS1 Nomenclature` list item." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:110 +msgid "On the :guilabel:`Default GS1 Nomenclature` page, select :guilabel:`Add a line` at the bottom of the table, which opens a window to create a new rule. The :guilabel:`Rule Name` field is used internally to identify what the barcode represents. The barcode :guilabel:`Types` are different classifications of information that can be understood by the system (e.g. product, quantity, best before date, package, coupon). The :guilabel:`Sequence` represents the priority of the rule; this means the smaller the value, the higher the rule appears on the table. Odoo follows the sequential order of this table and will use the first rule it matches based on the sequence. The :guilabel:`Barcode Pattern` is how the sequence of letters or numbers is recognized by the system to contain information about the product." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:120 +msgid "After filling in the information, click the :guilabel:`Save & New` button to make another rule or click :guilabel:`Save & Close` to save and return to the table of rules." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:126 +msgid "Barcode troubleshooting" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:128 +msgid "Since GS1 barcodes are challenging to work with, here are some checks to try when the barcodes are not working as expected:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:131 +msgid "Ensure that the :guilabel:`Barcode Nomenclature` setting is set as :menuselection:`Default GS1 Nomenclature`. Jump to the :ref:`nomenclature setup section ` for more details." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:134 +msgid "Ensure that the fields scanned in the barcode are enabled in Odoo. For example, to scan a barcode containing lots and serial numbers, make sure the :guilabel:`Lots & Serial Numbers` feature is enabled in :ref:`Odoo's settings ` and :ref:`on the product `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:138 +msgid "Omit punctuation such as parentheses `()` or brackets `[]` between the :abbr:`A.I. (Application Identifier)` and the barcode sequence. These are typically used in examples for ease of reading and should **not** be included in the final barcode. For more details on building GS1 barcodes, go to :ref:`this section `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:142 +msgid "When a single barcode contains multiple encoded fields, Odoo requires all rules to be listed in the barcode nomenclature for Odoo to read the barcode. :ref:`This section ` details how to add new rules in the barcode nomenclature." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:146 +msgid "Test barcodes containing multiple encoded fields, piece by piece, to figure out which field is causing the issue." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:150 +msgid "When testing a barcode containing the |GTIN|, lot number, and quantity, start by scanning the |GTIN| alone. Then, test the |GTIN| with the lot number, and finally, try scanning the whole barcode." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:154 +msgid "After diagnosing the encoded field is unknown, :ref:`add new rules ` to Odoo's default list to recognize GS1 barcodes with unique specifications." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:159 +msgid "While the new field will be read, the information won't link to an existing field in Odoo without developer customizations. However, adding new rules is necessary to ensure the rest of the fields in the barcode are interpreted correctly." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:166 +msgid "GS1 nomenclature list" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:168 +msgid "The table below contains Odoo's default list of GS1 rules. Barcode patterns are written in regular expressions. Only the first three rules require a `check digit `_ as the final character." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:173 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:38 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:166 msgid "Rule Name" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:74 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:188 -msgid "A.I." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:173 +msgid "Type" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:74 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:188 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:302 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:173 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:38 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:166 msgid "Barcode Pattern" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:74 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:188 -msgid "Field in Odoo" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:173 +msgid "GS1 Content Type" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:76 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:190 -msgid "Product" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:173 +msgid "Odoo field" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:76 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:190 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:306 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:175 +msgid "Serial Shipping Container Code" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:175 +msgid "Package" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:175 +msgid "(00)(\\\\d{18})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:175 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:177 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:180 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:183 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:186 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:189 +msgid "Numeric identifier" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:175 +msgid "Package name" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:177 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:40 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:168 msgid "Global Trade Item Number (GTIN)" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:76 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:190 -msgid "01" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:177 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:180 +msgid "Unit Product" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:76 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:190 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:306 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:177 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:40 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:168 msgid "(01)(\\\\d{14})" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:76 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:190 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:306 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:177 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:40 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:168 msgid ":guilabel:`Barcode` field on product form" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:79 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:335 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:337 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:340 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:342 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:344 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:346 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:348 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:350 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:352 -msgid "Quantity" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:180 +msgid "GTIN of contained trade items" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:79 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:193 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:335 -msgid "Variable count of items" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:180 +msgid "(02)(\\\\d{14})" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:79 -msgid "30" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:180 +msgid "Packaging" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:79 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:335 -msgid "(30)(\\\\d{0,8})" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:183 +msgid "Ship to / Deliver to global location" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:79 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:193 -msgid ":guilabel:`Units` field on transfer form" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:183 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:186 +msgid "Destination location" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:81 -msgid "Lot Number" +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:183 +msgid "(410)(\\\\d{13})" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:81 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:320 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:186 +msgid "Ship / Deliver for forward" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:186 +msgid "(413)(\\\\d{13})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:186 +msgid "Source location" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:189 +msgid "I.D. of a physical location" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:189 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:17 +msgid "Location" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:189 +msgid "(414)(\\\\d{13})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:191 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:45 msgid "Batch or lot number" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:81 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:191 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:194 +msgid "Lot" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:191 +msgid "(10) ([!\"%-/0-9:-?A-Z_a-z]{0,20})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:191 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:194 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:225 +msgid "Alpha-numeric name" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:194 +msgid "Serial number" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:194 +msgid "(21) ([!\"%-/0-9:-?A-Z_a-z]{0,20})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:197 +msgid "Packaging date (YYMMDD)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:197 +msgid "Packaging Date" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:197 +msgid "(13)(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:197 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:200 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:203 +msgid "Date" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:197 +msgid "Pack date" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:200 +msgid "Best before date (YYMMDD)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:200 +msgid "Best before Date" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:200 +msgid "(15)(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:200 +msgid "Best before date" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:203 +msgid "Expiration date (YYMMDD)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:203 +msgid "Expiration Date" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:203 +msgid "(17)(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:203 +msgid "Expiry date" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:206 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:43 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:171 +msgid "Variable count of items" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:206 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:208 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:211 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:213 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:215 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:217 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:219 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:221 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:223 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:43 +msgid "Quantity" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:206 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:43 +msgid "(30)(\\\\d{0,8})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:206 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:208 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:211 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:213 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:215 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:217 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:219 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:221 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:223 +msgid "Measure" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:206 +msgid "UoM: Units" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:208 +msgid "Count of trade items" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:208 +msgid "(37)(\\\\d{0,8})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:208 +msgid "Qty in units for containers (AI 02)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:211 +msgid "Net weight: kilograms (kg)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:211 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:171 +msgid "(310[0-5])(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:211 +msgid "Qty in kg" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:213 +msgid "Length in meters (m)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:213 +msgid "(311[0-5])(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:213 +msgid "Qty in m" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:215 +msgid "Net volume: liters (L)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:215 +msgid "(315[0-5])(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:215 +msgid "Qty in L" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:217 +msgid "Net volume: cubic meters (m\\ :sup:`3`)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:217 +msgid "(316[0-5])(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:217 +msgid "Qty in m\\ :sup:`3`" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:219 +msgid "Length in inches (in)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:219 +msgid "(321[0-5])(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:219 +msgid "Qty in inches" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:221 +msgid "Net weight/volume: ounces (oz)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:221 +msgid "(357[0-5])(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:221 +msgid "Qty in oz" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:223 +msgid "Net volume: cubic feet (ft\\ :sup:`3`)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:223 +msgid "(365[0-5])(\\\\d{6})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:223 +msgid "Qty in ft\\ :sup:`3`" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:225 +msgid "Packaging type" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:225 +msgid "Packaging Type" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:225 +msgid "(91) ([!\"%-/0-9:-?A-Z_a-z]{0,90})" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:225 +msgid "Package type" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:3 +msgid "GS1 barcode usage" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:10 +msgid "GS1 barcodes provide a standardized format that barcode scanners can interpret. They encode information in a :ref:`specific structure recognized globally `, allowing scanners to understand and process supply chain data consistently." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:14 +msgid "Odoo *Barcode* interprets and prints GS1 barcodes, automating product identification and tracking in warehouse operations such as receiving, picking, and shipping." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:17 +msgid "The following sections contain examples of how Odoo uses GS1 barcodes provided by the business to identify common warehouse items and automate certain warehouse workflows." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:21 +msgid "Odoo **does not** create GS1 barcodes. Businesses must purchase a unique Global Trade Item Number (GTIN) from GS1. Then, they can combine their existing GS1 barcodes with product and supply chain information (also provided by GS1) to create barcodes in Odoo." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:26 +msgid "`Purchase GTINs `_" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:27 +msgid ":ref:`GS1 nomenclature `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:32 +msgid "Configure barcodes for product, quantity, and lots" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:34 +msgid "To build a GS1 barcode that contains information about a product, its quantities, and the lot number, the following barcode patterns and Application Identifiers (A.I.) are used:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:38 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:166 +msgid "Name" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:38 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:166 +msgid "A.I." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:38 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:166 +msgid "Field in Odoo" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:40 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:168 +msgid "Product" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:40 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:135 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:168 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:203 +msgid "01" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:43 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:139 +msgid "30" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:43 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:171 +msgid ":guilabel:`Units` field on transfer form" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:45 +msgid "Lot Number" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:45 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:143 msgid "10" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:81 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:45 msgid "(10)([!\"%-/0-9:-?A-Z_a-z]{0,20})" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:81 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:45 msgid ":guilabel:`Lot` on Detailed Operations pop-up" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:88 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:52 +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:39 #: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:14 -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:20 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:22 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:48 #: ../../content/applications/inventory_and_mrp/inventory/management/misc/wave_transfers.rst:16 -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:51 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:53 #: ../../content/applications/inventory_and_mrp/inventory/management/products/uom.rst:16 -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:9 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:11 #: ../../content/applications/inventory_and_mrp/inventory/management/shipments_deliveries/delivery_three_steps.rst:18 #: ../../content/applications/inventory_and_mrp/inventory/management/shipments_deliveries/receipts_three_steps.rst:16 #: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/resupply_warehouses.rst:11 -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:42 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:44 #: ../../content/applications/inventory_and_mrp/inventory/routes/concepts/cross_dock.rst:18 #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/putaway.rst:18 #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/putaway.rst:84 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:16 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:18 #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/label_type.rst:13 #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:15 #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/multipack.rst:11 #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:17 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:14 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:16 #: ../../content/applications/inventory_and_mrp/manufacturing/management/subcontracting.rst:23 -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:9 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:11 #: ../../content/applications/inventory_and_mrp/manufacturing/management/work_center_time_off.rst:15 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:13 #: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:10 msgid "Configuration" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:90 -msgid "To track products using lots, first enable the :ref:`Lots and Serial Numbers ` feature. To do so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`. Next, under the :guilabel:`Traceability` heading, check the box for :guilabel:`Lots & Serial Numbers`." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:54 +msgid "First, :ref:`enable product tracking using lots ` by navigating to :menuselection:`Inventory app --> Configuration --> Settings`, and checking the box for :guilabel:`Lots & Serial Numbers` under the :guilabel:`Traceability` heading." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:95 -msgid "Then, set up the product barcode by navigating to the intended product form in :menuselection:`Inventory app --> Products --> Products` and selecting the product. On the product form, click :guilabel:`Edit`. Then, in the :guilabel:`General Information` tab, fill in the :guilabel:`Barcode` field with the 14-digit `Global Trade Item Number (GTIN) `_, which is a universal and unique identifying number from GS1." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:58 +msgid "Then, set up the product barcode by navigating to the intended product form in :menuselection:`Inventory app --> Products --> Products` and selecting the product. On the product form, click :guilabel:`Edit`. Then, in the :guilabel:`General Information` tab, fill in the :guilabel:`Barcode` field with the unique 14-digit `Global Trade Item Number (GTIN) `_, which is a universally recognized identifying number that is provided by GS1." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:103 -msgid "On the product form, omit the :abbr:`A.I. (application identifier)` `01` for GTIN product barcode pattern, as it is only used to encode multiple barcodes into a single barcode that contains detailed information about the package contents." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:66 +msgid "On the product form, omit the |AI| `01` for |GTIN| product barcode pattern, as it is only used to encode multiple barcodes into a single barcode that contains detailed information about the package contents." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:108 -msgid "To create a barcode for the product, `Fuji Apple`, enter the 14-digit GTIN `12345678901231` in the :guilabel:`Barcode` field on the product form." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:72 +msgid "To record the GS1 barcode for the product, `Fuji Apple`, enter the 14-digit |GTIN| `20611628936004` in the :guilabel:`Barcode` field on the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:0 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:0 msgid "Enter 14-digit GTIN into the Barcode field on product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:116 -msgid "It is also possible to view a list of all products and barcodes. To access this list, go to :menuselection:`Inventory --> Configuration --> Settings`. Under the :guilabel:`Barcode` heading, click on the :guilabel:`Configure Product Barcodes` button under the :guilabel:`Barcode Scanner` section. Enter the 14-digit GTIN into the :guilabel:`Barcode` column, then click :guilabel:`Save`." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:80 +msgid "To view a list of *all* products and their corresponding barcodes in the Odoo database, navigate to :menuselection:`Inventory app --> Configuration --> Settings`. Under the :guilabel:`Barcode` heading, click on the :guilabel:`Configure Product Barcodes` button under the :guilabel:`Barcode Scanner` section. Enter the 14-digit |GTIN| into the :guilabel:`Barcode` column, then click :guilabel:`Save`." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:0 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:0 msgid "View the Product Barcodes page from inventory settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:128 -msgid "Next, enable lots and serial number tracking on the product. Select the :guilabel:`Inventory` tab on the product form. Under :guilabel:`Tracking`, choose the :guilabel:`By Lots` radio button." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:92 +msgid "After activating tracking by lots and serial numbers from the settings page, specify that this feature is to be applied on each product by navigating to the :guilabel:`Inventory` tab on the product form. Under :guilabel:`Tracking`, choose the :guilabel:`By Lots` radio button." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:-1 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:-1 msgid "Enable product tracking by lots in the \"Inventory\" tab of the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:136 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:198 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:101 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:176 msgid "Scan barcode on receipt" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:138 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:103 msgid "To ensure accurate lot interpretation in Odoo on product barcodes scanned during a receipt operation, navigate to the :menuselection:`Barcode` app to manage the :ref:`receipt picking process `." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:142 -msgid "From the :guilabel:`Barcode Scanning` dashboard, click the :guilabel:`Operations` button, then the :guilabel:`Receipts` button to view the list of vendor receptions to process. Receipts generated from :abbr:`POs (Purchase Orders)` are listed, but new receipt operations can also be created directly through the :menuselection:`Barcode` app using the :guilabel:`Create` button." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:107 +msgid "From the :guilabel:`Barcode Scanning` dashboard, click the :guilabel:`Operations` button, then the :guilabel:`Receipts` button to view the list of vendor receipts to process. Receipts generated from :abbr:`POs (Purchase Orders)` are listed, but new receipt operations can also be created directly through the :menuselection:`Barcode` app using the :guilabel:`Create` button." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:147 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:112 msgid "On the list of receipts, click on the warehouse operation (`WH/IN`) and scan product barcodes and lot numbers with a barcode scanner. The scanned product then appears on the list. Use the :guilabel:`✏️ (pencil)` button to open a window and manually enter quantities for specific lot numbers." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:153 -msgid "After placing a :abbr:`PO (Purchase Order)` for 50 apples, navigate to the associated receipt. Scan the product barcode, and Odoo will prompt for the lot number." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:118 +msgid "After placing a :abbr:`PO (Purchase Order)` for fifty apples, navigate to the associated receipt in the *Barcode* app." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:0 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:121 +msgid "Scan the barcode containing the |GTIN|, quantity, and lot number. For testing with a barcode scanner, below is an example barcode for the fifty Fuji apples in Lot 2." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:129 +msgid "50 Fuji apples in Lot0002" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:131 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:199 +msgid "2D Matrix" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:0 +msgid "2D matrix of GS1 barcode of 50 fuji apples with an assigned lot number." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:134 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:202 +msgid "|AI| (product)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:136 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:204 +msgid "GS1 Barcode (product)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:137 +msgid "20611628936004" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:138 +msgid "|AI| (quantity)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:140 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:208 +msgid "GS1 Barcode (quantity)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:141 +msgid "00000050" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:142 +msgid "|AI| (lot)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:144 +msgid "GS1 Barcode (lot #)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:145 +msgid "LOT0002" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:146 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:210 +msgid "Full GS1 barcode" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:147 +msgid "01206116289360043 000000050 10LOT0002" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:149 +msgid ":ref:`If the configuration is correct `, `50/50` :guilabel:`Units` processed will be displayed and the :guilabel:`Validate` button turns green. Click the :guilabel:`Validate` button to complete the reception." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:0 msgid "Scan the barcode for a product on the reception picking page in the *Barcode* app." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:160 -msgid "Scan the lot number to process 1 of 50 apples. To avoid scanning 49 remaining barcodes, click the :guilabel:`✏️ (pencil)` button next to the desired lot number." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:160 +msgid "Configure barcode for product and non-unit quantity" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:0 -msgid "Scan lot number and click the pencil to edit quantities." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:167 -msgid "Doing so opens a mobile-friendly keypad page to specify received quantities. Use the keypad to specify the :guilabel:`Units` for the lot number. When finished, click :guilabel:`Confirm`." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:0 -msgid "Change scanned quantities using pencil button." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:174 -msgid "Repeat this process to specify additional lot numbers and quantities in this receipt. Once the :guilabel:`Units` are all accounted for, finish the reception by clicking the :guilabel:`Validate` button." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:178 -msgid "Alternatively, scan the barcode containing the product, lot number, and quantity to complete the receipt operation in fewer steps." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:182 -msgid "Product + non-unit quantity" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:184 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:162 msgid "To build a GS1 barcode that contains products measured in a non-unit quantity, like kilograms, for example, the following barcode patterns are used:" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:193 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:171 msgid "Quantity in kilograms" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:193 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:171 msgid "310[0-5]" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:193 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:340 -msgid "(310[0-5])(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:200 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:178 msgid "To confirm that quantities are correctly interpreted in Odoo, place an order in the *Purchase* app using the appropriate unit of measure (:guilabel:`UoM`) for the quantity of products to be purchased." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:205 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:183 msgid ":ref:`Simplify vendor unit conversions with UoMs `" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:207 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:185 msgid "After the order is placed, navigate to the :menuselection:`Barcode` app to :ref:`receive the vendor shipment `." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:211 -msgid "On the receipt in the *Barcode* app, receive an order for `52.1 kg` of peaches by scanning the barcode. If `52.1 / 52.1` :guilabel:`kg` appears on the page, this means the reception was processed without issue. Finally, press :guilabel:`Validate`." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:189 +msgid "On the receipt in the *Barcode* app, receive an order for `52.1 kg` of peaches by scanning the barcode containing the |GTIN| and quantity of peaches in kilograms." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:215 -msgid "Note: the :abbr:`A.I. (application identifier)` for kilograms, `310` + `1`, was used to represent `52.1` kg as a barcode: `000521`. This is because the `1` represents how many digits from the right to place the decimal point." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:197 +msgid "52.1 kg of Peaches" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:0 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:0 +msgid "2D matrix of GS1 barcode of 52.1 kg of peaches." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:205 +msgid "00614141000012" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:206 +msgid "|AI| (kg, 1 decimal point)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:207 +msgid "3101" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:209 +msgid "000521" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:211 +msgid "0100614141000012 3101000521" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:213 +msgid ":ref:`If the configuration is correct `, `52.1 / 52.1` :guilabel:`kg` will be displayed and the :guilabel:`Validate` button turns green. Finally, press :guilabel:`Validate` to complete the validation." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:0 msgid "Scan barcode screen for a reception operation in the Barcode app." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:223 -msgid "For additional verification purposes, the quantities of received products are also recorded on the :guilabel:`Product Moves` report, accessible by navigating to :menuselection:`Inventory app --> Reporting --> Product Moves`." +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:222 +msgid "Verify product moves" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:227 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:224 +msgid "For additional verification, the quantities of received products are also recorded on the :guilabel:`Product Moves` report, accessible by navigating to :menuselection:`Inventory app --> Reporting --> Product Moves`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:228 msgid "The items on the :guilabel:`Product Moves` report are grouped by product by default. To confirm the received quantities, click on a product line to open its collapsible drop-down menu, which displays a list of *stock move lines* for the product. The latest stock move matches the warehouse reception reference number (e.g. `WH/IN/00013`) and quantity processed in the barcode scan, demonstrating that the records processed in the *Barcode* app were properly stored in *Inventory*." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:-1 +#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:-1 msgid "Reception stock move record for 52.1 kg of peaches." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:240 -msgid "Create rules" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:242 -msgid "If a supplier uses a GS1 barcode with a field not supported by Odoo's :ref:`default GS1 list `, Odoo will fail to interpret the entire barcode. To ensure the complete reading of the barcode, it is necessary to add the missing barcode to Odoo's list." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:248 -msgid "While the new field will be read, the information won't link to an existing field in Odoo without developer customizations. However, adding new rules is still useful to ensure the rest of the fields in the barcode are interpreted correctly." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:252 -msgid "Begin by turning on :ref:`developer mode ` and navigating to the :guilabel:`Barcode Nomenclatures` list in :menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures`. Then, select the :guilabel:`Default GS1 Nomenclature` list item." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:256 -msgid "On the :guilabel:`Default GS1 Nomenclature` page, select :guilabel:`Add a line` at the bottom of the table, which opens a window to create a new rule. The :guilabel:`Rule Name` field is used internally to identify what the barcode represents. The barcode :guilabel:`Types` are different classifications of information that can be understood by the system (e.g. product, quantity, best before date, package, coupon). The :guilabel:`Sequence` represents the priority of the rule; this means the smaller the value, the higher the rule appears on the table. Odoo follows the sequential order of this table and will use the first rule it matches based on the sequence. The :guilabel:`Barcode Pattern` is how the sequence of letters or numbers is recognized by the system to contain information about the product." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:266 -msgid "After filling in the information, click the :guilabel:`Save & New` button to make another rule or click :guilabel:`Save & Close` to save and return to the table of rules." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:272 -msgid "Barcode troubleshooting" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:274 -msgid "Since GS1 barcodes are challenging to work with, here are some checks to try when the barcodes are not working as expected:" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:277 -msgid "Ensure that the :guilabel:`Barcode Nomenclature` setting is set as :menuselection:`Default GS1 Nomenclature`. Jump to the :ref:`nomenclature setup section ` for more details." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:280 -msgid "Ensure that the fields scanned in the barcode are enabled in Odoo. For example, to scan a barcode containing lots and serial numbers, make sure the :guilabel:`Lots & Serial Numbers` feature is enabled in :ref:`Odoo's settings ` and :ref:`on the product `." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:284 -msgid "Omit punctuation such as parentheses `()` or brackets `[]` between the :abbr:`A.I. (Application Identifier)` and the barcode sequence. These are typically used in examples for ease of reading and should **not** be included in the final barcode. For more details on building GS1 barcodes, go to :ref:`this section `." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:288 -msgid "When a single barcode contains multiple encoded fields, Odoo requires all rules to be listed in the barcode nomenclature for Odoo to read the barcode. :ref:`This section ` details how to add new rules in the barcode nomenclature." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:295 -msgid "GS1 nomenclature list" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:297 -msgid "The table below contains Odoo's default list of GS1 rules. Barcode patterns are written in regular expressions. Only the first three rules require a `check digit `_ as the final character." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:302 -msgid "Type" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:302 -msgid "GS1 Content Type" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:302 -msgid "Odoo field" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:304 -msgid "Serial Shipping Container Code" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:304 -msgid "Package" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:304 -msgid "(00)(\\\\d{18})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:304 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:306 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:309 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:312 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:315 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:318 -msgid "Numeric identifier" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:304 -msgid "Package name" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:306 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:309 -msgid "Unit Product" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:309 -msgid "GTIN of contained trade items" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:309 -msgid "(02)(\\\\d{14})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:309 -msgid "Packaging" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:312 -msgid "Ship to / Deliver to global location" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:312 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:315 -msgid "Destination location" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:312 -msgid "(410)(\\\\d{13})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:315 -msgid "Ship / Deliver for forward" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:315 -msgid "(413)(\\\\d{13})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:315 -msgid "Source location" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:318 -msgid "I.D. of a physical location" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:318 -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:15 -msgid "Location" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:318 -msgid "(414)(\\\\d{13})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:320 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:323 -msgid "Lot" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:320 -msgid "(10) ([!\"%-/0-9:-?A-Z_a-z]{0,20})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:320 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:323 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:354 -msgid "Alpha-numeric name" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:323 -msgid "Serial number" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:323 -msgid "(21) ([!\"%-/0-9:-?A-Z_a-z]{0,20})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:326 -msgid "Packaging date (YYMMDD)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:326 -msgid "Packaging Date" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:326 -msgid "(13)(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:326 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:329 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:332 -msgid "Date" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:326 -msgid "Pack date" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:329 -msgid "Best before date (YYMMDD)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:329 -msgid "Best before Date" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:329 -msgid "(15)(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:329 -msgid "Best before date" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:332 -msgid "Expiration date (YYMMDD)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:332 -msgid "Expiration Date" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:332 -msgid "(17)(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:332 -msgid "Expiry date" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:335 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:337 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:340 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:342 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:344 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:346 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:348 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:350 -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:352 -msgid "Measure" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:335 -msgid "UoM: Units" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:337 -msgid "Count of trade items" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:337 -msgid "(37)(\\\\d{0,8})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:337 -msgid "Qty in units for containers (AI 02)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:340 -msgid "Net weight: kilograms (kg)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:340 -msgid "Qty in kg" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:342 -msgid "Length in meters (m)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:342 -msgid "(311[0-5])(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:342 -msgid "Qty in m" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:344 -msgid "Net volume: liters (L)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:344 -msgid "(315[0-5])(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:344 -msgid "Qty in L" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:346 -msgid "Net volume: cubic meters (m\\ :sup:`3`)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:346 -msgid "(316[0-5])(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:346 -msgid "Qty in m\\ :sup:`3`" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:348 -msgid "Length in inches (in)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:348 -msgid "(321[0-5])(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:348 -msgid "Qty in inches" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:350 -msgid "Net weight/volume: ounces (oz)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:350 -msgid "(357[0-5])(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:350 -msgid "Qty in oz" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:352 -msgid "Net volume: cubic feet (ft\\ :sup:`3`)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:352 -msgid "(365[0-5])(\\\\d{6})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:352 -msgid "Qty in ft\\ :sup:`3`" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:354 -msgid "Packaging type" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:354 -msgid "Packaging Type" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:354 -msgid "(91) ([!\"%-/0-9:-?A-Z_a-z]{0,90})" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:354 -msgid "Package type" -msgstr "" - #: ../../content/applications/inventory_and_mrp/barcode/operations/internal.rst:3 msgid "Process to Transfers" msgstr "" @@ -974,47 +1125,95 @@ msgid "Set up your barcode scanner" msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:7 -msgid "Getting started with barcode scanning in Odoo is fairly easy. Yet, a good user experience relies on an appropriate hardware setup. This guide will help you through the task of choosing and configuring the barcode scanner." +msgid "Follow this guide to choose and set up a barcode scanner compatible with Odoo's *Inventory* and *Barcode* apps." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:13 -msgid "Find the barcode scanner that suits your needs" +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:14 +msgid "An image of an example barcode scanner." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:15 -msgid "The 3 recommended type of barcode scanners to work with the Odoo **Inventory** and **Barcode Scanning** apps are the **USB scanner**, **the bluetooth scanner** and the **mobile computer scanner**." +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:17 +msgid "Scanner types" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:19 +msgid "Before setting up a barcode scanner, it is important to determine which scanner type best meets the needs of the business. There are three main types, each with their own benefits and use cases:" msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:22 -msgid "If you scan products at a computer location, the **USB scanner** is the way to go. Simply plug it in the computer to start scanning. Just make sure when you buy it that the scanner is compatible with your keyboard layout or can be configured to be so." +msgid "**USB scanners** are connected to a computer, and are suitable for businesses that scan products at a fixed location, like at the checkout in a grocery store. Ensure the chosen USB scanner is compatible with the keyboard layout of the computer." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:27 -msgid "The **bluetooth scanner** can be paired with a smartphone or a tablet and is a good choice if you want to be mobile but don't need a big investment. An approach is to log in Odoo on you smartphone, pair the bluetooth scanner with the smartphone and work in the warehouse with the possibility to check your smartphone from time to time and use the software 'manually'." +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:26 +msgid "**Bluetooth scanners** pair with a smartphone or tablet, making them an ideal cost-effective and portable barcode scanner option. In this scenario, Odoo is installed on the smartphone, allowing warehouse operators to handle operations, and check stock directly through their mobile devices." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:34 -msgid "For heavy use, the **mobile computer scanner** is the handiest solution. It consists of a small computer with a built-in barcode scanner. This one can turn out to be a very productive solution, however you need to make sure that is is capable of running Odoo smoothly. The most recent models using Android + Google Chrome or Windows + Internet Explorer Mobile should do the job. However, due to the variety of models and configurations on the market, it is essential to test it first." +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:30 +msgid "**Mobile computer scanners** are mobile devices with a built-in barcode scanner. First, ensure the device can run the Odoo mobile app properly. Recent models that use Android OS with the Google Chrome browser, or Windows OS with Microsoft Edge, should work. However, testing is crucial due to the variety of available models and configurations." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:44 -msgid "Configure your barcode scanner" +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:36 +msgid "`Compatible hardware with Odoo Inventory `_" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:47 +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:41 +msgid "When setting up the barcode scanner, make sure the following configurations are correct so the scanner can properly interpret barcodes with Odoo." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:45 msgid "Keyboard layout" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:52 -msgid "An USB barcode scanner needs to be configured to use the same keyboard layout as your operating system. Otherwise, your scanner won't translate characters correctly (replacing a 'A' with a 'Q' for example). Most scanners are configured by scanning the appropriate barcode in the user manual." +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:47 +msgid "When using a USB barcode scanner, match its keyboard layout with the operating system's layout for proper interpretation of characters. Generally, the scanning mode should be set to accept a USB keyboard (HID), with the language set based on the keyboard that is in use." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:59 +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:51 +msgid "To configure the keyboard layout for a **Zebra** scanner, scan the keyboard wedge barcode for the desired language in the scanner's user manual." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:57 +msgid "Example of a user manual for keyboard layout." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:57 +msgid "Examples of keyboard language settings in the Zebra scanner user manual." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:60 msgid "Automatic carriage return" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:61 -msgid "By default, Odoo has a 50 milliseconds delay between each successive scan (it helps avoid accidental double scanning). If you want to suppress this delay, you can configure your scanner to insert a carriage return at the end of each barcode. This is usually the default configuration and can be explicitly configured by scanning a specific barcode in the user manual ('CR suffix ON', 'Apply Enter for suffix', etc.)." +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:62 +msgid "Odoo has a default 50-millisecond delay between scans to prevent accidental double scanning. To synchronize with the barcode scanner, set it to include a *carriage return* (:dfn:`character like the \"Enter\" key on a keyboard`) after each scan. Odoo interprets the carriage return as the end of the barcode input; so Odoo accepts the scan, and waits for the next one." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:67 +msgid "Typically, on the scanner, a carriage return is included by default. Ensure it is set by scanning a specific barcode in the user manual, like `CR suffix ON` or `Apply Enter for suffix`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:71 +msgid "Zebra scanner" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:73 +msgid "When using Zebra scanners, ensure the following keystroke configurations are set to prevent errors." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:75 +msgid "Begin on the Zebra scanner's home screen, and select the :guilabel:`DataWedge` app (the icon for the app is a light blue barcode). On the :guilabel:`DataWedge Profiles` page, select the profile option to access the Zebra scanner's settings." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:79 +msgid "Scroll down to the :guilabel:`Keyboard Output` option, and ensure the :guilabel:`Enable/disable keystroke output` option is :guilabel:`Enabled`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:-1 +msgid "Show keystroke option in the Zebra scanner's DataWedge app." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/barcode/setup/hardware.rst:86 +msgid "Now, go back to the :guilabel:`Profile` options page, and select :guilabel:`Key event options`. Here, ensure the :guilabel:`Send Characters as Events` option is checked." msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:3 @@ -1045,31 +1244,31 @@ msgstr "" msgid "Be careful to add barcodes directly on the product variants and not on the template product. Otherwise, you won’t be able to differentiate them." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:47 +#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:49 msgid "Set Locations Barcodes" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:49 +#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:51 msgid "If you manage multiple locations, you will find useful to attribute a barcode to each location and stick it on the location. You can configure the locations barcodes in :menuselection:`Inventory --> Configuration --> Locations`." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:60 +#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:62 msgid "You can easily print the barcode you allocate to the locations via the *Print* menu." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:64 +#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:66 msgid "Barcode Formats" msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:66 +#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:68 msgid "Most retail products use EAN-13 barcodes, also known as GTIN (Global Trade Identification Numbers). GTIN are used by companies to uniquely identify their products and services. While GTIN and UPC are often used synonymously, GTIN refers to the number a barcode represents, while UPC refers to the barcode itself. More information about GTIN can be found on the GS1 website." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:71 +#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:73 msgid "In order to create GTIN for items, a company must have a GS1 Company Prefix. This prefix is the number that will appear at the beginning of each GTIN, and will identify the company as the owner of the barcode any the products it appears on. To learn more about GS1 Company Prefixes, or purchase a license for a prefix, visit the GS1 Company Prefix page." msgstr "" -#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:76 +#: ../../content/applications/inventory_and_mrp/barcode/setup/software.rst:78 msgid "Odoo users are able to use GTIN barcodes to identify their products. However, since Odoo supports any numeric string as a barcode, it is also possible to define a custom barcode for internal use." msgstr "" @@ -2450,23 +2649,23 @@ msgstr "" msgid "Batch picking" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:5 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:7 msgid "*Batch picking* enables a single picker to handle multiple orders at once, reducing the time needed to navigate to the same location in a warehouse." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:8 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:10 msgid "When picking in batches, orders are grouped and consolidated into a picking list. After the picking, the batch is taken to an output location, where the products are sorted into their respective delivery packages." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:13 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:15 msgid ":ref:`Use Barcode app for pickings `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:15 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:17 msgid "Since orders *must* be sorted at the output location after being picked, this picking method suits businesses with a few products that are ordered often. Storing high-demand items in easily accessible locations can increase the number of orders that are fulfilled efficiently." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:22 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:24 msgid "To activate the batch picking option, begin by going to :menuselection:`Inventory app --> Configuration --> Settings`. Under the :guilabel:`Operations` section, check the :guilabel:`Batch Transfers` box." msgstr "" @@ -2474,27 +2673,30 @@ msgstr "" msgid "Enable the *Batch Transfers* in Inventory > Configuration > Settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:30 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:32 msgid "Since batch picking is a method to optimize the *pick* operation in Odoo, the :guilabel:`Storage Locations` and :guilabel:`Multi-Step Routes` options under the :guilabel:`Warehouse` heading must also be checked on this settings page. When finished, click :guilabel:`Save`." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:-1 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:-1 msgid "Enable *Storage Locations* and *Multi-Step Routes* Inventory > Configuration > Settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:38 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:40 msgid "Lastly, enable the warehouse picking feature, by navigating to the warehouse settings page, which is accessible from :menuselection:`Inventory app --> Configuration --> Warehouses`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:41 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:43 msgid "From here, select the desired warehouse from the list. Then, from the radio options available for :guilabel:`Outgoing Shipments`, select either the :guilabel:`Send goods in output and then deliver (2 steps)` or :guilabel:`Pack goods, send goods in output and then deliver (3 steps)`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:46 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:48 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:131 msgid ":ref:`Delivery in two steps `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:47 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:49 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:132 msgid ":ref:`Delivery in three steps `" msgstr "" @@ -2502,47 +2704,47 @@ msgstr "" msgid "Set up 2-step or 3-step outgoing shipments." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:54 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:56 msgid "Create batch transfers" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:56 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:58 msgid "Manually create batch transfers directly from the :menuselection:`Inventory app --> Operations --> Batch Transfers` page. Click the :guilabel:`New` button to begin creating a batch transfer." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:59 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:61 msgid "On the batch transfer form, fill the following fields out accordingly:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:61 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:63 msgid ":guilabel:`Responsible`: employee assigned to the picking. Leave this field blank if *any* worker can fulfill this picking." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:63 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:65 msgid ":guilabel:`Operation Type`: from the drop-down menu, select the operation type under which the picking is categorized." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:65 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:67 msgid ":guilabel:`Scheduled Date`: specifies the date by which the :guilabel:`Responsible` person should complete the transfer to the output location." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:68 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:70 msgid "Next, in the :guilabel:`Transfers` list, click :guilabel:`Add a line` to open the :guilabel:`Add: Transfers` window." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:71 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:73 msgid "If the :guilabel:`Operation Type` field was filled, the list will filter transfer records matching the selected :guilabel:`Operation Type`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:74 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:76 msgid "Click the :guilabel:`New` button to create a new transfer." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:76 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:78 msgid "Once the transfer records are selected, click :guilabel:`Confirm` to confirm the batch picking." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:79 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:81 msgid "A new batch transfer assigned to the :guilabel:`Responsible`, `Joel Willis`, for the `Pick` :guilabel:`Operation Type`. The :guilabel:`Scheduled Date` is set to `August 11`." msgstr "" @@ -2550,11 +2752,11 @@ msgstr "" msgid "View of *Batch Transfers* form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:86 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:88 msgid "Clicking the :guilabel:`Add a line` button opens the :guilabel:`Add:Transfers` window, displaying only pickings. This is because the :guilabel:`Operation Type` was set to `Pick` on the batch transfer form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:90 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:92 msgid "Click the checkbox to the left of the transfers, `WH/PICK/00001` and `WH/PICK/00002`, to include them in the new transfer. Then, click the :guilabel:`Select` button to close the :guilabel:`Add:Transfers` window." msgstr "" @@ -2562,11 +2764,11 @@ msgstr "" msgid "Select multiple transfers from the *Add:Transfers* window." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:99 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:101 msgid "Add batch from transfers list" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:101 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:103 msgid "Another method of creating batch transfers is available using the :guilabel:`Add to batch` option in a list. Navigate to the :menuselection:`Inventory app --> Operations` drop-down menu, and select any of the :guilabel:`Transfers` to open a filtered list of transfers." msgstr "" @@ -2575,51 +2777,55 @@ msgid "Show all transfer types in a drop-down menu: Receipts, Deliveries, Intern "Manufacturings, Batch Transfers, Dropships." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:110 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:112 msgid "On the transfers list, select the checkbox to the left of the selected transfers to add in a batch. Next, navigate to the :guilabel:`Actions ⚙️ (gear)` button, and click :guilabel:`Add to batch` from the resulting drop-down menu." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:-1 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:0 msgid "Use *Add to batch* button, from the *Action* button's list." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:118 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:120 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:151 msgid "Doing so opens an :guilabel:`Add to batch` pop-up window, wherein the employee :guilabel:`Responsible` for the picking can be assigned." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:121 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:123 msgid "Choose from the two radio options to add to :guilabel:`an existing batch transfer` or create :guilabel:`a new batch transfer`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:124 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:126 msgid "To begin with a draft, select the :guilabel:`Draft` checkbox." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:126 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:128 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:160 msgid "Conclude the process by clicking :guilabel:`Confirm`." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:-1 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:-1 msgid "Show *Add to batch* window to create a batch transfer." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:133 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:135 msgid "Process batch transfer" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:135 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:137 msgid "Handle batch transfers in the :menuselection:`Inventory app --> Operations --> Batch Transfers` page." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:138 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:140 msgid "From here, select the intended transfer from the list. Then, on the batch transfer form, input the :guilabel:`Done` quantities for each product, under the :guilabel:`Detailed Operations` tab. Finally, select :guilabel:`Validate` to complete the picking." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:143 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:145 msgid "Be certain the batch transfer is complete when the :guilabel:`Validate` button is highlighted in purple. If the :guilabel:`Check Availability` button is highlighted instead, that means there are items in the batch that are currently *not* available in-stock." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:150 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:152 msgid "In a batch transfer involving products from pickings, `WH/PICK/00001` and `WH/PICK/00002`, the :guilabel:`Detailed Operations` tab shows that the product, `Cabinet with Doors`, has been picked because the :guilabel:`Done` column matches the value in the :guilabel:`Reserved` column. However, `0.00` quantities have been picked for the other product, `Cable Management Box`." msgstr "" @@ -2627,19 +2833,19 @@ msgstr "" msgid "Show batch transfer of products from two pickings in the *Detailed Operations* tab." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:159 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:161 msgid "Only in-stock products are visible in the :guilabel:`Detailed Operations` tab." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:161 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:163 msgid "To view the complete product list, switch to the :guilabel:`Operations` tab. On this list, the :guilabel:`Demand` column indicates the required quantity for the order. The :guilabel:`Reserved` column shows the available stock to fulfill the order. Lastly, the :guilabel:`Done` column specifies the products that have been picked, and are ready for the next step." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:167 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:169 msgid "The product, `Desk Pad`, from the same batch as the :ref:`example above `, is only visible in the :guilabel:`Operations` tab because there are no :guilabel:`Reserved` quantities in-stock to fulfill the batch picking." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:171 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:173 msgid "Click the :guilabel:`Check Availability` button to search the stock again for available products." msgstr "" @@ -2647,27 +2853,27 @@ msgstr "" msgid "Show unavailable reserved quantities in the *Operations* tab." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:178 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:180 msgid "Create backorder" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:180 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:182 msgid "On the batch transfer form, if the :guilabel:`Done` quantity of the product is *less* than the :guilabel:`Reserved` quantity, a pop-up window appears." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:183 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:185 msgid "This pop-up window provides the option: :guilabel:`Create Backorder?`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:185 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:187 msgid "Clicking the :guilabel:`Create Backorder` button automatically creates a new batch transfer, containing the remaining products." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:188 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:190 msgid "Click :guilabel:`No Backorder` to finish the picking *without* creating another batch picking." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:190 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:192 msgid "Click :guilabel:`Discard` to cancel the validation, and return to the batch transfer form." msgstr "" @@ -2675,15 +2881,15 @@ msgstr "" msgid "Show the *Create Backorder* pop-up." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:199 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:201 msgid "Process batch transfer: Barcode app" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:201 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:203 msgid "Created batch transfers are also listed in the :menuselection:`Barcode` app, accessible by selecting the :guilabel:`Batch Transfers` button." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:204 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:206 msgid "By default, confirmed batch pickings appear on the :guilabel:`Batch Transfers` page. On that page, click on the desired batch transfer to open the detailed list of products for the picking." msgstr "" @@ -2691,19 +2897,19 @@ msgstr "" msgid "Show list of to-do batch transfers in *Barcode* app." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:211 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:213 msgid "For the chosen batch transfer, follow the instructions at the top of the page in the black background. Begin by scanning the product's barcode to record a single product for picking. To record multiple quantities, click the :guilabel:`✏️ (pencil)` icon, and enter the required quantities for the picking." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:217 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:219 msgid "Products from the same order are labeled with the same color on the left. Completed pickings are highlighted in green." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:221 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:223 msgid "In a batch transfer for 2 `Cabinet with Doors`, 3 `Acoustic Bloc Screens`, and 4 `Four Person Desks`, the `3/3` and `4/4` :guilabel:`Units` indicate that the last two product pickings are complete." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:225 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:227 msgid "`1/2` units of the `Cabinet with Doors` has already been picked, and after scanning the product barcode for the second cabinet, Odoo prompts the user to `Scan a serial number` to record the unique serial number for :ref:`product tracking `." msgstr "" @@ -2711,10 +2917,266 @@ msgstr "" msgid "Display products to be picked in barcode view." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:233 +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/batch_transfers.rst:235 msgid "Once all the products have been picked, click on :guilabel:`Validate` to mark the batch transfer as :guilabel:`Done`." msgstr "" +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:3 +msgid "Cluster picking" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:10 +msgid "Cluster picking is an advanced order fulfillment approach derived from :ref:`batch picking `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:13 +msgid "In this strategy, pickers load a cart with multiple packages, each designated for a specific *sales order* (SO). Then, the picker travels to each storage location, and places the products directly in the package of the associated order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:17 +msgid "This method is most efficient for medium-sized companies, with high order volumes, and relatively few unique products, since the method eliminates the need for sorting products into packages for customers after picking." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:21 +msgid "However, cluster picking does have some disadvantages. For instance, urgent orders cannot be prioritized, and optimized batches must be manually created beforehand. As a result, the picking process can lead to bottlenecks." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:28 +msgid "|SO| 1 calls for one apple and orange" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:29 +msgid "|SO| 2 calls for one apple and banana" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:30 +msgid "|SO| 3 calls for one apple, orange, and banana" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:32 +msgid "Apples are stored in Shelf A, oranges in Shelf B, and bananas in Shelf C." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:34 +msgid "To pick products for three orders at once, the cart is loaded with three empty packages." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:36 +msgid "Starting at Shelf A, the picker places apples into each package. Next, the picker navigates to Shelf B, and places oranges in the packages designated for |SO| 1 and |SO| 3. Finally, the picker pushes the cart to Shelf C, and loads packages for |SO| 2 and |SO| 3 with a banana, each." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:40 +msgid "With the packages for all three |SOS| packed, the picker pushes the cart to the output location, where the packages are sealed and prepared for shipment." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:0 +msgid "Show example of fulfilling sales orders 2 and 3 at once." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:50 +msgid "To enable cluster picking, begin by navigating to :menuselection:`Inventory app --> Configuration --> Settings`. Under the :guilabel:`Operations` heading, activate the :guilabel:`Packages` and :guilabel:`Batch Transfers` options." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:-1 +msgid "Activate *Packages* and *Batch Transfers* features in the settings." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:58 +msgid "Since batch picking is used to optimize the *pick* operation in Odoo, the :guilabel:`Storage Locations` and :guilabel:`Multi-Step Routes` options, under the :guilabel:`Warehouse` heading, must also be checked on this settings page." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:62 +msgid "*Storage locations* allow products to be stored in specific locations they can be picked from, while *multi-step routes* enable the picking operation itself." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:65 +msgid "When finished, click :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:74 +msgid "Packages setup" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:76 +msgid "After the :guilabel:`Packages` feature is enabled, navigate to :menuselection:`Inventory app --> Products --> Packages`, and click the :guilabel:`New` button to create a new package." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:79 +msgid "On the new package form, the :guilabel:`Package Reference` is pre-filled with the next available `PACK` number in the system. :guilabel:`Pack Date` is automatically set to the creation date of the form." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:83 +msgid "For the :guilabel:`Package Use` field, the :guilabel:`Disposable Box` option should be selected if the package is used for a shipping. Alternatively, the :guilabel:`Reusable Box` option should be selected if the package is simply used as a method of grouping products from the same |SO| together before they are moved to the intended shipping box at the output location." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:89 +msgid ":ref:`Packages `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:92 +msgid "A package intended for cluster picking is named `CLUSTER-PACK-3` for easy identification. For this workflow, the products are directly packed using their intended shipping boxes, so :guilabel:`Package Use` is set to :guilabel:`Disposable Box`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:0 +msgid "Create new package form." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:101 +msgid "Create cluster batch" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:103 +msgid "To see how cluster picking works in Odoo, navigate to the :menuselection:`Sales` app, and create |SOS| that will be fulfilled together in the same batch. After confirming an |SO|, the :guilabel:`Delivery` smart button becomes visible. Displayed inside the icon is a number representing the amount of steps in the outgoing shipment process." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:109 +msgid "Begin by creating three |SOS| for the apples, oranges, and bananas, as shown in the :ref:`example above `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:112 +msgid "After confirming the |SO|, the :guilabel:`Delivery` smart button displays the number `2`, indicating there are two operations to complete: `Pick` and `Delivery`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:0 +msgid "Example sales order for an apple, orange, and banana." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:119 +msgid "With the |SOS| created, orders now must be grouped into batches. To do so, navigate to the *Inventory* dashboard and select the operation type card, :guilabel:`Delivery Orders` or :guilabel:`Pick` (whichever is the first operation in the delivery flow)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:123 +msgid "Doing so displays a filtered list of outgoing operations with the :guilabel:`Ready` status, indicating that all the products in the |SO| are in stock." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:127 +msgid "Cluster pick batches can be created for outgoing shipments in one, two, or three steps." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:130 +msgid ":ref:`Delivery in one step `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:134 +msgid "Click the checkbox to the left of the corresponding outgoing operation to add them to the batch. With the desired pickings selected, click the :guilabel:`⚙️ Actions (gear)` button, and select the :guilabel:`Add to batch` option from the resulting drop-down menu." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:139 +msgid "To create a cluster batch, as shown in the :ref:`example above `, in a warehouse configured with two-step outgoing shipments, the following pick operations are selected:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:143 +msgid "`WH/PICK/00007`: linked to |SO| 88 for one apple and orange." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:144 +msgid "`WH/PICK/00008`: linked to |SO| 89 for one apple and banana." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:145 +msgid "`WH/PICK/00009`: linked to |SO| 90 for one apple, orange, and banana." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:154 +msgid "Choose from the two options in the :guilabel:`Add to` field to either: add to :guilabel:`an existing batch transfer`, or create :guilabel:`a new batch transfer`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:157 +msgid "To create draft batch pickings to be confirmed at a later date, select the :guilabel:`Draft` checkbox." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:167 +msgid "Process batches" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:169 +msgid "To process batches, navigate to :menuselection:`Inventory app --> Operations --> Batch Transfers`. Click on a batch to select it." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:172 +msgid "In the :guilabel:`Detailed Operations` tab, products that are to be picked are grouped by location." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:174 +msgid "Under the :guilabel:`Source Package` or :guilabel:`Destination Package` field, enter the package used for the picking." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:178 +msgid "Use the :guilabel:`Source Package` field when the picking package is configured as *reusable* on the :ref:`package form `. This means the products are temporarily placed in a container during picking, before getting transferred to their final shipping box." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:182 +msgid "Alternatively, use the :guilabel:`Destination Package` field when the product is directly placed in its *disposable* shipping box during picking." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:186 +msgid "Process the cluster batch for the three orders of apples, oranges, and bananas :ref:`example ` by assigning each picking to a dedicated package." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:189 +msgid "At the storage location for apples, `WH/Stock/Shelf A`, assign the apples in all three pickings to one of the three disposable packages, `CLUSTER-PACK-1`, `CLUSTER-PACK-2`, or `CLUSTER-PACK-3`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:192 +msgid "Record this in Odoo using the :guilabel:`Destination Package` field in the :guilabel:`Detailed Operations` tab." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:0 +msgid "Example of processing cluster pickings in *Inventory*." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:200 +msgid "In Barcode" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:202 +msgid "To process cluster pickings directly from the *Barcode* app, select the :guilabel:`Batch Transfers` button from the *Barcode* dashboard. Then, select the desired batch." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:205 +msgid "On the batch transfer screen, the products in the picking are grouped by location, and each line is color-coded to associate products in the same picking together." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:208 +msgid "Then, follow the prompt to :guilabel:`Scan the source location` barcode for the storage location of the first product. Then, scan the barcode for the product and package to process the transfer." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:211 +msgid "Repeat this for all products, and click the :guilabel:`Validate` button." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:214 +msgid "To find the package barcode, navigate to :menuselection:`Inventory app --> Products --> Packages`, select the desired package, click the :guilabel:`⚙️ (gear)` icon at the top of the package form, and select the :guilabel:`Print` option." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:218 +msgid "Next, select one of the three print options to generate the package barcode from the :guilabel:`Package Reference` field." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:0 +msgid "Display where the package barcode can be generated." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:226 +msgid "Begin processing the cluster picking by going to the first storage location, `Shelf A`, and scanning the :ref:`location barcode `. Doing so highlights all the pickings that need products from this particular location." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:230 +msgid "Scan the barcode for the apple, which highlights the picking (labeled in red) for the product `Apple`, for the picking, `WH/PICK/00007`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:233 +msgid "Then, scan the `CLUSTER-PACK-1` package barcode, and place the product in the designated package." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:0 +msgid "Example of cluster batch from the *Barcode* app." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/misc/cluster_picking.rst:240 +msgid "After creating a batch transfer and assigning a package to a picking, Odoo suggests the specified package by displaying the name *in italics* under the product name, ensuring pickers place products into the correct boxes." +msgstr "" + #: ../../content/applications/inventory_and_mrp/inventory/management/misc/owned_stock.rst:3 msgid "Consignment: buy and sell stock without owning it" msgstr "" @@ -2920,274 +3382,371 @@ msgid "Planning" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:3 -msgid "How is the Scheduled Delivery Date Computed" +msgid "Scheduled delivery dates" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:5 -msgid "Providing the best possible service to customers is vital for business. It implies planning every move: manufacturing orders, deliveries, receptions, and so on. To do so, you need to configure lead time properly and coordinate scheduled dates." +msgid "Accurately forecasting delivery dates is vital for fulfilling customer expectations. In Odoo, the *Inventory* app allows for comprehensive lead time configuration, allowing coordination and planning of manufacturing orders, deliveries, and receptions." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:9 -msgid "By using lead times, Odoo provides end dates, the **Commitment Date**, for each process. On a sales order, for example, this is the date your customer will get the products he ordered." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:10 +msgid "Lead time types" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:13 -msgid "From the customers’ side, the commitment date is important because it gives them an estimation of when they will receive their products. The dates take all other lead times, such as manufacturing, delivery, or suppliers, into account." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:12 +msgid "Different lead times for different operations can impact various stages of the order fulfillment process. Here's a summary of the types of lead times in Odoo:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 +msgid "Show graphic of all lead times working together." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:19 -msgid "How are Lead Times Calculated?" +msgid ":ref:`Customer lead time `: The default time frame for fulfilling customer orders. The customer lead time is the number of days from the date the sales order (SO) is confirmed to the date the products are shipped from the warehouse. This is also known as *delivery lead time*." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:27 -msgid "As said above, there are several types of lead times. Each is calculated based on various indicators. Before going through the configuration, here is a brief summary of how lead times are calculated and what they are:" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:24 +msgid ":ref:`Sales security lead time `: moves the *scheduled delivery date* forward by a specified number of days. This serves as a buffer to allow the team ample time to prepare the outgoing shipment earlier, considering the possibility of delays in the fulfillment process." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:32 -msgid "**Customer Lead Time**: the customer lead time is the default duration you set. Therefore, the expected date on the sales orders is today + customer lead time." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:29 +msgid ":ref:`Purchase lead time `: the number of days from the confirmation of a purchase order (PO) to the receipt of products. It provides insight on the time it takes for products to arrive at the warehouse, facilitating effective scheduling and planning of supplier deliveries." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:36 -msgid "**Sales Security Lead Time**: the purpose is to be ready shipping that many days before the actual commitment taken with the customer. Then, the default scheduled date on the delivery order is **SO delivery date - Security Lead Time**." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:34 +msgid ":ref:`Purchase security lead time `: advances the order deadline on a :abbr:`PO (Purchase Order)` by a specified number of days. This proactive approach of placing orders earlier mitigates the risk of vendor or shipping delays. Thus, for products that are set to replenish to order, the need appears on the *Replenishment report* earlier, according to the specified number of days." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:41 -msgid "**Purchase Security Lead Time**: margin of error for vendor lead times. When the system generates Purchase Orders for procuring products, they will be scheduled that many days earlier to cope with unexpected vendor delays." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:40 +msgid ":ref:`Manufacturing lead time `: the number of days needed to complete a manufacturing order (MO) from the date of confirmation. This lead time includes weekends (non-working hours in Odoo), and is used to forecast an approximate production date for a finished good." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:46 -msgid "**Purchase Delivery Lead Time**: this is the expected time between a PO being confirmed and the receipt of the ordered products. The **Receipt scheduled date - Vendor delivery date** is the default *PO Order By* date." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:45 +msgid ":ref:`Manufacturing security lead time `: moves the scheduled date of the :abbr:`MO (Manufacturing Order)` forward by a specified number of days. When used in conjunction with :ref:`replenish to order `, the security lead time makes the need appear earlier on the replenishment report." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:51 -msgid "**Days to Purchase**: number of days the purchasing department takes to validate a PO. If another RFQ to the same vendor is already opened, Odoo adds the line to the RFQ instead of creating a new one. Then, the specific date is set on the line." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:53 +msgid "Sales lead times" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:56 -msgid "**Manufacturing Lead Time**: this is the expected time it takes to manufacture a product. This lead time is independent of the quantity to produce and does not take the routing time into account." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:55 +msgid "Customer lead times and sales security lead times can be configured to automatically compute an *expected delivery date* on a :abbr:`SO (Sales Order)`. The expected delivery date ensures a realistic *delivery dates* setting for shipments from the warehouse." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:61 -msgid "**Manufacturing Security Lead Time**: additional time to mitigate the risk of a manufacturing delay. In case of a *Replenish to Order*, the **Delivery Order scheduled date - Manufacturing Lead Time - Manufacturing Security Lead Time** is the default *Manufacturing Order* planned date." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:59 +msgid "Odoo issues a warning message if the set delivery date is earlier than the expected date, as it may not be feasible to fulfill the order by that time, which would impact other warehouse operations." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:68 -msgid "Sales - Lead Times" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:63 +msgid "A :abbr:`SO (Sales Order)` containing a `Coconut-scented candle` is confirmed on July 11th. The product has a customer lead time of 14 days, and the business uses a sales security lead time of 1 day. Based on the lead time inputs, Odoo suggests a delivery date in 15 days, on July 26th." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:70 -msgid "In the *Sales* app, there is an option called *Delivery Date*. It allows seeing an additional field on the sales orders, *Expected Date*. This one is automatically computed based on the different lead times previously configured." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:0 +msgid "Set *Delivery Date* in a sales order. Enables delivery lead times feature." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the delivery settings to have the delivery lead time taken into account" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:71 +msgid "The following sections demonstrate how to automatically compute expected delivery dates." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:79 -msgid "If the set up *Delivery Date* is earlier than the the *Expected Date*, a warning message is displayed." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:74 +msgid "Customer lead time" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the error that occurs when trying to choose an earlier date than what calculated\n" -"by Odoo" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:76 +msgid "Set the customer lead time on each product form, by navigating to the products page. To do so, go to :menuselection:`Sales app --> Products --> Products`. From there, select the desired product, and switch to the :guilabel:`Inventory` tab. Then, under the :guilabel:`Customer Lead Time` field, fill in the number of calendar days required to fulfill the delivery order from start to finish." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:87 -msgid "But, for all of this properly working, it is still necessary to configure all the lead times that could occur." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:82 +msgid "Set a 14-day customer lead time for the `Coconut-scented candle` by navigating to its product form. Then, in the :guilabel:`Inventory` tab, type `14.00` days into the :guilabel:`Customer Lead Time` field." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:91 -msgid "Customer Lead Time" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:0 +msgid "Set *Customer Lead Time* on the product form." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:93 -msgid "The *Customer Lead Time* is the time needed for your product to go from your warehouse to the customer place. It can be configured on any product by going to :menuselection:`Sales --> Products --> Products`. There, open your product form, go in the inventory tab, and add your *Customer Lead Time*." +msgid "Sales security lead time" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the customer lead time configuration from the product form" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:95 +msgid "*Sales security lead time* is set globally for the business in :menuselection:`Inventory app --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:103 -msgid "For example, product B is ordered on the 2nd of April but the *Customer Lead Time* is two days. In that case, the expected delivery date is the 4th of April." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:98 +msgid "On the configuration page, under the :guilabel:`Advanced Scheduling` heading, locate the box for :guilabel:`Security Lead Time for Sales`, and click the checkbox to enable the feature." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:108 -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:180 -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:217 -msgid "Security Lead Time" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:101 +msgid "Next, enter the desired number of calendar days. This security lead time is a buffer notifying the team to prepare for outgoing shipments earlier than the scheduled date." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:110 -msgid "In sales, *Security Lead Time* corresponds to backup days to ensure you are able to deliver the products in time. The purpose is to be ready shipping earlier in order to arrive on time." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:105 +msgid "Setting the :guilabel:`Security Lead Time for Sales` to `1.00` day, pushes the :guilabel:`Scheduled Date` of a delivery order (DO) forward by one day. In that case, if a product is initially scheduled for delivery on April 6th, but with a one-day security lead time, the new scheduled date for the delivery order would be April 5th." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:114 -msgid "The number of security days is subtracted from the calculation to compute a scheduled date earlier than the one promised to the customer." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:0 +msgid "View of the security lead time for sales configuration from the sales settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:117 -msgid "To set this up, go to :menuselection:`Inventory --> Configuration --> Settings` and enable the feature *Security Lead Time for Sales*." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the security lead time for sales configuration from the sales settings" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:124 -msgid "For example, product B is scheduled to be delivered on the 6th of April but the *Security Lead Time* is one day. In that case, the scheduled date for the delivery order is the 5th of April." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:129 +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:115 msgid "Deliver several products" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:131 -msgid "In many cases, customers order several products at the same time. Those can have different lead times but still need to be delivered, at once or separately. Fortunately, Odoo can help you handle these cases easily." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:117 +msgid "For orders that include multiple products with different lead times, the lead times can be configured directly from the quotation itself. On a quotation, click the :guilabel:`Other Info` tab, and set the :guilabel:`Shipping Policy` to:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:135 -msgid "From the *Other Info* tab of your *Sale Order*, you can choose between *When all products are ready* and *As soon as possible*. The first one is to deliver products at once, while the second is to deliver them separately." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:121 +msgid ":guilabel:`As soon as possible` to deliver products as soon as they are ready. The :guilabel:`Scheduled Date` of the :abbr:`DO (Delivery Order)` is determined by adding today's date to the shortest lead time among the products in the order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:140 -msgid "For example, products A and B are ordered at the same time. A has 8 lead days and B has 5. With the first option, the *Expected Date* is calculated based on the product with the most lead days, here A. If the order is confirmed on the 2nd of April, then the *Expected Date* is on the 10th of April." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:125 +msgid ":guilabel:`When all products are ready` to wait to fulfill the entire order at once. The :guilabel:`Scheduled Date` of the :abbr:`DO (Delivery Order)` is determined by adding today's date to the longest lead time among the products in the order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 +msgid "Show *Shipping Policy* field in the *Other Info* tab of a quotation." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:134 +msgid "In a quotation containing 2 products, `Yoga mat` and `Resistance band,` the products have a lead time of 8 days and 5 days, respectively. Today's date is April 2nd." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:137 +msgid "When the :guilabel:`Shipping Policy` is set to :guilabel:`As soon as possible`, the scheduled delivery date is 5 days from today: April 7th. On the other hand, selecting :guilabel:`When all products are ready` configures the scheduled date to be 8 days from today: April 10th." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:144 +msgid "Purchase lead times" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:146 -msgid "With the second option, the *Expected Date* is calculated based on the product with the least customer lead days. In this example, B is the product with the least lead days. So, the *Expected Date* is on the 7th of April." +msgid "Automatically determining the dates on which to place orders from suppliers can help simplify the procurement process." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:152 -msgid "Purchase - Lead Times" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:149 +msgid "Odoo calculates the supplier shipment *receipt date*, and :abbr:`PO (Purchase Order)` deadline, based on the required date the product is needed in the warehouse. By working backwards from the receipt date, vendor lead times and purchase security lead times are taken into account, in order to determine the :abbr:`PO (Purchase Order)` deadline." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:155 -msgid "Supplier Lead Time" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:157 -msgid "The *Supplier Lead Time* is the time needed for a product you purchased to be delivered. To configure it, open a product from :menuselection:`Purchase --> Products --> Products` and add a vendor under the *Purchase* tab." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:154 +msgid "This deadline is the date by which the order should be confirmed, in order to ensure timely arrival by the expected receipt date." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the way to add vendors to products" +msgid "Visualization of PO deadline and receipt date used with vendor lead times." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:166 -msgid "By clicking on *Add a line*, a new window is displayed. You can specify the *Delivery Lead Time* there. If done so, the delivery day for every purchase of that product is now equal to *Date of the Purchase Order + Delivery Lead Time*." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:162 +msgid ":ref:`PO scheduling with reordering rules `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the delivery lead time configuration from a vendor form" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:165 +msgid "Vendor lead time" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:167 +msgid "To set a vendor lead time for orders arriving in the warehouse from a vendor location, begin by navigating to a product form through :menuselection:`Purchase app --> Products --> Products`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:170 +msgid "Next, select the desired product, and switch to the :guilabel:`Purchase` tab. In the editable vendor pricelist, click the :guilabel:`Add a line` button to add vendor details, such as the :guilabel:`Vendor` name, :guilabel:`Price` offered for the product, and lastly, the :guilabel:`Delivery Lead Time`." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:176 -msgid "It is possible to add different vendors and, thus, different lead times depending on the vendor." +msgid "Multiple vendors and lead times can be added to the vendor pricelist. The default vendor and lead time selected will be the entry at the top of the list." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:182 -msgid "The *Security Lead Time* for purchase follows the same logic as the one for *Sales*, except that you are the customer. Then, it is the margin of error for your supplier to deliver your order." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:180 +msgid "On the vendor pricelist of the product form, the :guilabel:`Delivery Lead Time` for the selected vendor is set to `10 days.`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:186 -msgid "To set up *Security Lead Time* for purchase, go to :menuselection:`Inventory --> Configuration --> Settings` and enable the feature." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:0 +msgid "Add delivery lead times to vendor pricelist on a product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the security lead time for purchase from the inventory settings" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:187 +msgid "By setting the vendor lead time, the expected arrival date of the item is automatically determined as the date of the :abbr:`PO (Purchase Order)` confirmation, plus the vendor lead time. This ensures that warehouse employees are notified, if the products do **not** arrive within the expected timeframe." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:194 -msgid "Doing so, every time the system generates purchase orders, those are scheduled that many days earlier to cope with unexpected vendor delays." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:193 +msgid "On a :abbr:`PO (Purchase Order)` confirmed on July 11th, for a product configured with a 10-day vendor lead time, Odoo automatically sets the :guilabel:`Receipt Date` to July 21st. The receipt date also appears as the :guilabel:`Scheduled Date` on the warehouse receipt form, accessible from the :guilabel:`Receipt` smart button, located on the :guilabel:`PO (Purchase Order)`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:198 -msgid "Manufacturing - Lead Times" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:0 +msgid "Show expected *Receipt Date* of the product from the vendor." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:201 -msgid "Manufacturing Lead Time" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:0 +msgid "Show expected *Scheduled Date* of arrival of the product from the vendor." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:203 -msgid "The *Manufacturing Lead Time* is the time needed to manufacture the product. To specify it, open the *Inventory* tab of your product form and add the number of days the manufacturing takes." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the manufacturing lead time configuration from the product form" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:209 +msgid "Purchase security lead time" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:211 -msgid "When working with *Manufacturing Lead Times*, the *Deadline Start* of the *MO* is **Commitment Date - Manufacturing Lead Time**. For example, the MO’s deadline start date for an order having a commitment date on the 10th of July is June 27th." +msgid "*Purchase security lead time* is set globally for the business in :menuselection:`Inventory app --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:219 -msgid "The *Security Lead Time* for manufacturing allows generating manufacturing orders earlier to cope with the risk of manufacturing delays." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:214 +msgid "On the configuration page, under the :guilabel:`Advanced Scheduling` heading, locate the box for :guilabel:`Security Lead Time for Purchase`, and click the checkbox to enable the feature." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:223 -msgid "To enable it, go to :menuselection:`Manufacturing --> Configuration --> Settings` and tick *Security Lead Time*." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:217 +msgid "Next, enter the desired number of calendar days. By configuring the security lead time, a buffer is set to account for potential delays in supplier deliveries." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 -msgid "View of the security lead time for manufacturing from the manufacturing app settings" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:221 +msgid "Setting the :guilabel:`Security Lead Time for Purchase` to `2.00` days, pushes the :guilabel:`Scheduled Date` of receipt back by one day. In that case, if a product is initially scheduled to arrive on April 6th, with a two-day security lead time, the new scheduled date for the receipt would be April 8th." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:230 -msgid "For example, a customer orders B with a delivery date scheduled on the 20th of June. The *Manufacturing Lead Time* is 14 days and the *Security Lead Time* is 3 days, so the manufacturing of B needs to start at the latest on the 3rd of June, which is the MO’s planned date." +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:0 +msgid "Set security lead time for purchase from the Inventory > Configuration > Settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:236 -msgid "Global Example" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:233 +msgid "Manufacturing lead times" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:235 +msgid "Lead times can help simplify the procurement process for consumable materials and components used in manufactured products with bills of materials." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:238 -msgid "Here is a configuration:" +msgid "The :abbr:`MO (Manufacturing Order)` deadline, which is the deadline to begin the manufacturing process to complete the product by the scheduled delivery date, can be determined by configuring the manufacturing lead times and manufacturing security lead times." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:240 -msgid "1 day of security lead time for Sales" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 +msgid "Visualization of the determination of planned MO date manufacturing lead times." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:241 -msgid "2 days of security lead time for Manufacturing" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:247 +msgid "Manufacturing lead time" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:242 -msgid "3 days of manufacturing lead time" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:249 +msgid "Configure the manufacturing lead time directly on the product form, by navigating to :menuselection:`Manufacturing app --> Products --> Products`, and select the desired product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:243 -msgid "1 day of security lead time for Purchase" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:244 -msgid "4 days of supplier lead time" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:246 -msgid "Let’s say that a customer orders B on the 1st of September and the delivery date is planned to be within 20 days (September 20th). In such a scenario, here is when all the various steps are triggered." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:250 -msgid "**September 1st**: the sales order is created" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:251 -msgid "**September 10th**: the deadline to order components from the supplier because of the manufacturing process (4 days of supplier lead time)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:254 -msgid "**September 13th**: the reception of the product from the supplier (1 day of security lead time for Purchase)" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:252 +msgid "In the :guilabel:`Inventory` tab of the product, specify the calendar days needed to the manufacture the product in the :guilabel:`Manufacturing Lead Time` field." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:256 -msgid "**September 14th**: the deadline start date for the manufacturing (19th - 3 days of manufacturing lead time - 2 days of security lead time for Manufacturing)" +msgid "Specify a 14-day :guilabel:`Manufacturing Lead Time` for a product directly in the :guilabel:`Inventory` tab of the product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:259 -msgid "**September 19th**: the expected date on the delivery order form (1 day of security lead time for sales)" +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:0 +msgid "View of the manufacturing lead time configuration from the product form." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:263 +msgid "Establish a :abbr:`MO (Manufacturing Order)` deadline, based on the *expected delivery date*, indicated in the :guilabel:`Scheduled Date` field of the :abbr:`DO (Delivery Order)`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:266 +msgid "The :abbr:`MO (Manufacturing Order)` deadline, which is the :guilabel:`Scheduled Date` field on the :abbr:`MO (Manufacturing Order)`, is calculated as the *expected delivery date* subtracted by the manufacturing lead time." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:270 +msgid "This ensures the manufacturing process begins on time, in order to meet the delivery date." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:272 +msgid "However, it's important to note that lead times are based on calendar days. Lead times do **not** consider weekends, holidays, or *work center capacity* (:dfn:`the number of operations that can be performed at the work center simultaneously`)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:277 +msgid ":ref:`Manufacturing planning `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:278 +msgid ":ref:`Configure automatic MO scheduling with reordering rules `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:282 +msgid "A product's scheduled shipment date on the :abbr:`DO (Delivery Order)` is August 15th. The product requires 14 days to manufacture. So, the latest date to start the :abbr:`MO (Manufacturing Order)` to meet the commitment date is August 1st." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:289 +msgid "Manufacturing security lead time" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:291 +msgid "*Manufacturing security lead time* is set globally for the business in :menuselection:`Manufacturing app --> Configuration --> Settings`. Under the :guilabel:`Planning` heading, locate the box for :guilabel:`Security Lead Time`, and click the checkbox to enable the feature." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:295 +msgid "Next, enter the desired number of calendar days. By configuring the security lead time, a buffer is set to account for potential delays in the manufacturing process." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 +msgid "View of the security lead time for manufacturing from the manufacturing app settings." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:303 +msgid "A product has a scheduled shipment date on the :abbr:`DO (Delivery Order)` set for August 15th. The manufacturing lead time is 7 days, and manufacturing security lead time is 3 days. So, the :guilabel:`Scheduled Date` on the :abbr:`MO (Manufacturing Order)` reflects the latest date to begin the manufacturing order. In this example, the planned date on the :abbr:`MO (Manufacturing Order)` is August 5th." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:310 +msgid "Global example" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:312 +msgid "See the following example to understand how all the lead times work together to ensure timely order fulfillment:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:315 +msgid "**Sales security lead time**: 1 day" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:316 +msgid "**Manufacturing security lead time**: 2 days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:317 +msgid "**Manufacturing lead time**: 3 days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:318 +msgid "**Purchase security lead time**: 1 day" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:319 +msgid "**Vendor lead time**: 4 days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:321 +msgid "The customer places an order for a manufactured product on September 1st, and the scheduled delivery date from the warehouse is on September 20th. Odoo uses lead times and automated reordering rules to schedule the necessary operations, based on the outgoing shipment delivery date, September 20th:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:-1 +msgid "Show timeline of how lead times work together to schedule warehouse operations." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:329 +msgid "**September 1st**: Sales order created, confirmed by salesperson." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:331 +msgid "**September 9th**: Deadline to order components to ensure they arrive in time when manufacturing begins (4-day supplier lead time)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:334 +msgid "**September 13th**: Scheduled date of receipt for components. Initially, it was set to 9/14, but the 1-day purchase security lead time pushed the date earlier by 1 day." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:337 +msgid "**September 14th**: Deadline to begin manufacturing. Calculated by subtracting the manufacturing lead time of 3 days, and the manufacturing security lead time of 2 days, from the expected delivery date of September 19th." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:341 +msgid "**September 19th**: :guilabel:`Scheduled Date` on the delivery order form indicates the updated expected delivery date, which was originally set as September 20th. But the sales security lead time pushed the date forward by a day." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/planning/scheduled_dates.rst:345 +msgid "Odoo's replenishment planning maps a business' order fulfillment process, setting pre-determined deadlines and raw material order dates, including buffer days for potential delays. This ensures products are delivered on time." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/products.rst:5 @@ -3323,23 +3882,23 @@ msgstr "" msgid "Reordering rules" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:5 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:7 msgid "Reordering rules are used to keep forecasted stock levels above a certain threshold without exceeding a specified upper limit. This is accomplished by specifying a minimum quantity that stock should not fall below and a maximum quantity that stock should not exceed." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:9 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:11 msgid "Reordering rules can be configured for each product based on the route used to replenish it. If a product uses the *Buy* route, then a Request for Quotation (RFQ) is created when the reordering rule is triggered. If a product uses the *Manufacture* route, then a Manufacturing Order (MO) is created instead. This is the case regardless of the selected replenishment route." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:15 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:17 msgid "Configure products for reordering rules" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:17 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:19 msgid "In order to use reordering rules for a product, it must first be correctly configured. Begin by navigating to :guilabel:`Inventory --> Products --> Products`, then select an existing product, or create a new one by clicking :guilabel:`Create`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:21 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:23 msgid "First, on the :guilabel:`General Information` tab, make sure that the :guilabel:`Product Type` is set to :guilabel:`Storable Product`. This is necessary because Odoo only tracks stock quantities for storable products, and this number is used to trigger reordering rules." msgstr "" @@ -3347,7 +3906,7 @@ msgstr "" msgid "Set the Product Type as Storable." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:29 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:31 msgid "Next, click on the :guilabel:`Inventory` tab and select one or more routes from the :guilabel:`Routes` section. Doing so tells Odoo which route to use to replenish the product." msgstr "" @@ -3355,7 +3914,7 @@ msgstr "" msgid "Select one or more routes on the Inventory tab." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:36 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:38 msgid "If the product is reordered using the :guilabel:`Buy` route, confirm that the :guilabel:`Can be Purchased` checkbox is enabled under the product name. This makes the :guilabel:`Purchase` tab appear. Click on the :guilabel:`Purchase` tab, and specify at least one vendor, and the price that they sell the product for, so that Odoo knows which company the product should be purchased from." msgstr "" @@ -3363,11 +3922,11 @@ msgstr "" msgid "Specify a vendor and price on the Purchase tab." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:45 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:47 msgid "If the product is replenished using the :guilabel:`Manufacture` route, it needs to have at least one Bill of Materials (BoM) associated with it. This is necessary because Odoo only creates manufacturing orders for products with a :abbr:`BoM (Bill of Materials)`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:49 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:51 msgid "If a :abbr:`BoM (Bill of Materials)` does not already exist for the product, select the :guilabel:`Bill of Materials` smart button at the top of the product form, then click :guilabel:`Create` to configure a new :abbr:`BoM (Bill of Materials)`." msgstr "" @@ -3375,35 +3934,35 @@ msgstr "" msgid "The Bill of Materials smart button on a product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:58 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:60 msgid "Create new reordering rules" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:60 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:62 msgid "To create a new reordering rule, navigate to :menuselection:`Inventory --> Configuration --> Reordering Rules`, then click :guilabel:`Create`, and fill out the new line as follows:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:63 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:65 msgid ":guilabel:`Product`: The product that is replenished by the rule." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:64 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:66 msgid ":guilabel:`Location`: The location where the product is stored." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:65 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:67 msgid ":guilabel:`Min Quantity`: The minimum quantity that can be forecasted without the rule being triggered. When forecasted stock falls below this number, a replenishment order for the product is created." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:68 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:70 msgid ":guilabel:`Max Quantity`: The maximum quantity that stock is replenished up to." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:69 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:71 msgid ":guilabel:`Multiple Quantity`: Specify if the product should be replenished in batches of a certain quantity (e.g., a product could be replenished in batches of 20)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:71 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:73 msgid ":guilabel:`UoM`: The unit of measure used for reordering the product. This value can simply be `Units` or a specific unit of measurement for weight, length, etc." msgstr "" @@ -3411,43 +3970,43 @@ msgstr "" msgid "The form for creating a new reordering rule." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:79 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:81 msgid "Reordering rules can also be created from each product form. To do so, navigate to :menuselection:`Inventory --> Products --> Products`, then select a product. Click on :menuselection:`Reordering Rules --> Create`, then fill out the new line as detailed above." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:83 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:85 msgid "Once a reordering rule has been created for a product, if its forecasted quantity is below the rule's minimum quantity when the scheduler runs, a replenishment order for the product is automatically generated. By default, the scheduler runs once each day." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:88 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:90 msgid "To manually trigger a reordering rule before the scheduler runs, select :menuselection:`Inventory --> Operations --> Run Scheduler`. Then, select the green :guilabel:`Run Scheduler` button on the pop-up that appears. Be aware that this also triggers any other scheduled actions." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:92 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:94 msgid "If the :guilabel:`Buy` route is selected, then an :abbr:`RFQ (Request for Quotation)` is generated. To view and manage :abbr:`RFQs (Requests for Quotation)`, navigate to :menuselection:`Purchase --> Orders --> Requests for Quotation`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:96 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:98 msgid "If the :guilabel:`Manufacture` route is selected, then an :abbr:`MO (Manufacturing Order)` is generated. To view and manage :abbr:`MOs (Manufacturing Orders)`, navigate to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:101 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:103 msgid "Set a preferred route for reordering" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:103 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:105 msgid "Odoo allows for multiple routes to be selected under the :guilabel:`Inventory` tab on each product form. For instance, it is possible to select both :guilabel:`Buy` and :guilabel:`Manufacture`, thus enabling the functionality of both routes." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:107 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:109 msgid "Odoo also enables users to set a preferred route for a product's reordering rule. This is the route that the rule defaults to if multiple are selected. To select a preferred route, begin by navigating to :menuselection:`Inventory --> Configuration --> Reordering Rules`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:111 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:113 msgid "By default, the :guilabel:`Preferred Route` column is hidden on the :guilabel:`Reordering Rules` page. Enable it by selecting the :guilabel:`⋮ (three-dot)` option button on the right side of the page and checking the :guilabel:`Preferred Route` checkbox. Doing so reveals the :guilabel:`Preferred Route` column." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:116 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:118 msgid "Click inside of the column on the row of a reordering rule and a drop-down menu shows all available routes for that rule. Select one to set it as the preferred route." msgstr "" @@ -3455,10 +4014,109 @@ msgstr "" msgid "Select a preferred route from the drop-down." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:124 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/reordering_rules.rst:126 msgid "If multiple routes are enabled for a product but no preferred route is set for its reordering rule, the product is reordered using the selected route that is listed first on the :guilabel:`Inventory` tab of the product form." msgstr "" +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:3 +msgid "Scrap inventory" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:5 +msgid "In some cases, a product in inventory may be damaged or found to be defective. If it is not possible to repair or return the product, Odoo *Inventory* allows users to scrap it, ensuring that usable inventory counts remain accurate." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:10 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/scrap_manufacturing.rst:19 +msgid "Scrap orders can be viewed by navigating to :menuselection:`Inventory --> Operations --> Scrap`. Each scrap order shows the date and time the order was created, along with the product and quantity that was scrapped." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:14 +msgid "To view the total quantity of each item scrapped, navigate to :menuselection:`Inventory --> Configuration --> Locations`. Remove the :guilabel:`Internal` filter from the :guilabel:`Search...` bar to display virtual locations. Finally, select the :guilabel:`Virtual Locations/Scrap` location." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:19 +msgid "By default, scrapping a product removes it from physical inventory, and places it in a virtual location titled *Virtual Locations/Scrap*. A virtual location is **not** a physical space, but rather a designation in Odoo that is used to track items that are no longer in physical inventory." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:23 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:68 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:30 +msgid "Learn more" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:25 +msgid "For more information about virtual locations, see the documentation about the different types of :ref:`locations `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:29 +msgid "Scrap from stock" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:31 +msgid "To scrap a product located in inventory, begin by navigating to :menuselection:`Inventory --> Operations --> Scrap`. On the :guilabel:`Scrap Orders` page, click :guilabel:`Create` to configure a new scrap order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:35 +msgid "On the scrap order, select the product being scrapped from the :guilabel:`Product` drop-down menu, then enter the quantity in the :guilabel:`Quantity` field. The :guilabel:`Source Location` defaults to the location where the product is stored, and the :guilabel:`Scrap Location` defaults to :guilabel:`Virtual Locations/Scrap`, but either of these can be changed by selecting a different location from their respective drop-down menus." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:-1 +msgid "A new scrap order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:45 +msgid "Finally, click :guilabel:`Validate` to scrap the product. The on-hand inventory count for the scrapped product updates to subtract the scrapped quantity." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:49 +msgid "Scrap from a receipt, transfer, or delivery" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:51 +msgid "It is also possible to scrap products during the receipt, transfer, and delivery operations. This can be necessary if any products are found to be defective when receiving them into inventory, transferring them from one location to another, or preparing them for delivery." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:55 +msgid "To scrap a product during the receipt, transfer, or delivery operations, begin by navigating to the :menuselection:`Inventory` app. On the :guilabel:`Overview` page, select the :guilabel:`# TO PROCESS` button on the :guilabel:`Receipts`, :guilabel:`Internal Transfers`, or :guilabel:`Delivery Orders` card, depending on the type of operation the product is being scrapped from." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:61 +msgid "For the :guilabel:`Internal Transfers` card to appear on the :menuselection:`Overview` page of the :menuselection:`Inventory` app, the :guilabel:`Storage Locations` setting must be enabled. To do so, navigate to :menuselection:`Configuration --> Settings`, then enable the checkbox next to :guilabel:`Storage Locations` under the :guilabel:`Warehouse` heading." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:66 +msgid "Alternatively, a list of all delivery orders, receipts, and transfers can be viewed by navigating to :menuselection:`Inventory --> Operations --> Transfers`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:69 +msgid "Next, open a delivery order, receipt, or transfer from the corresponding page by clicking on it. A :guilabel:`Scrap` button appears at the top of the page. Click it to open the :guilabel:`Scrap` pop-up window." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:-1 +msgid "The scrap pop-up in the Inventory app." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:78 +msgid "The :guilabel:`Scrap` button will only appear on a receipt that has been validated. This is because Odoo only allows products to be scrapped once they have been entered into inventory." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:81 +msgid "On the :guilabel:`Scrap` pop-up window, select the product being scrapped from the :guilabel:`Product` drop-down menu. Then, enter the quantity in the :guilabel:`Quantity` field." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:84 +msgid "The :guilabel:`Source Location` defaults to the location where the product is stored, and the :guilabel:`Scrap Location` defaults to :guilabel:`Virtual Locations/Scrap`, but either of these can be changed by selecting a different location from their respective drop-down menus." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:88 +msgid "Finally, click :guilabel:`Done` to scrap the product. After doing so, the :guilabel:`Scrap` pop-up window disappears and a :guilabel:`Scraps` smart button appears in the top right of the page. Click it to view all of the scrap orders created from that operation." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/products/scrap_inventory.rst:-1 +msgid "The Scraps smart button." +msgstr "" + #: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:3 msgid "Selecting a replenishment strategy" msgstr "" @@ -3473,7 +4131,7 @@ msgid "Terminology" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:19 -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:54 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:56 msgid "Replenishment report and reordering rules" msgstr "" @@ -3489,47 +4147,47 @@ msgstr "" msgid "Reordering rules can be created and managed in the replenishment report, or from the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:31 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:33 msgid "Make to order" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:33 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:35 msgid "*Make to order (MTO)* is a procurement route that creates a draft purchase order (or manufacturing order) each time a sales order is confirmed, **regardless of the current stock level**." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:36 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:38 msgid "Unlike products replenished using reordering rules, Odoo automatically links the sales order to the |PO| or |MO| generated by the |MTO| route." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:39 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:41 msgid "Another difference between reordering rules and |MTO| is, with |MTO|, Odoo generates a draft |PO| or |MO| immediately after the |SO| is confirmed. With reordering rules, Odoo generates a draft |PO| or |MO| when the product's forecasted stock falls below the set minimum quantity." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:43 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:45 msgid "In addition, Odoo automatically adds quantities to the |PO| or |MO| as the forecast changes, so long as the |PO| or |MO| is not confirmed." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:46 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:48 msgid "The |MTO| route is the best replenishment strategy for products that are customized, and/or for products that have no stock kept on-hand." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:56 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:58 msgid "To access the replenishment report, go to :menuselection:`Inventory app --> Operations --> Replenishment.`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:59 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:61 msgid "By default, the replenishment report dashboard shows every product that needs to be manually reordered. If there is no specific rule for a product, Odoo assumes the :guilabel:`Min Quantity` and :guilabel:`Max Quantity` stock are both `0.00`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:64 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:66 msgid "For products that don't have a set reordering rule, Odoo calculates the forecast based on confirmed sales orders, deliveries, and receipts. For products that have a set reordering rule, Odoo calculates the forecast normally, but also takes into account the purchase/manufacturing lead time and security lead time." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:70 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:72 msgid "Before creating a new reordering rule, make sure the product has a *vendor* or a *bill of materials* configured on the product form. To check this, go to :menuselection:`Inventory app --> Products --> Products`, and select the product to open its product form. The vendor, if configured, is listed in the :guilabel:`Purchase` tab, and the bill on materials, if configured, is found in the :guilabel:`Bill of Materials` smart button at the top of the form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:76 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:78 msgid "The :guilabel:`Product Type`, located in the :guilabel:`General Information` tab on the product form, **must** be set to :guilabel:`Storable Product`. By definition, a consumable product does not have its inventory levels tracked, so Odoo cannot account for a consumable product in the replenishment report." msgstr "" @@ -3537,99 +4195,99 @@ msgstr "" msgid "Replenishment report listing all items needing to be purchased to meet current needs." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:85 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:87 msgid "To create a new reordering rule from the replenishment report, go to :menuselection:`Inventory app --> Operations --> Replenishment`, click :guilabel:`Create`, and select the desired product from the drop-down menu in the :guilabel:`Product` column. If necessary, a :guilabel:`Min Quantity` and a :guilabel:`Max Quantity` can be configured in the corresponding columns on the :guilabel:`Replenishment` report page, as well." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:91 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:93 msgid "To create a new reordering rule from the product form, go to :menuselection:`Inventory app --> Products --> Products`, and select a product to open its product form. Click the :guilabel:`Reordering Rules` smart button, click :guilabel:`Create`, and fill out the fields." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:96 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:98 msgid "Replenishment report fields" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:98 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:100 msgid "The following fields are on the :guilabel:`Replenishment` report. If any of these fields are not visible, click the :guilabel:`⋮ (additional options)` icon on the far right side of the report, then click the checkbox next to a field to make it visible." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:102 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:104 msgid ":guilabel:`Product`: the product that requires a replenishment." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:103 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:105 msgid ":guilabel:`Location`: the specific location where the product is stored." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:104 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:106 msgid ":guilabel:`Warehouse`: the warehouse where the product is stored." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:105 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:107 msgid ":guilabel:`On Hand`: the amount of product currently available." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:106 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:108 msgid ":guilabel:`Forecast`: the amount of product available after all current orders (sales, manufacturing, purchase, etc.) are taken into account." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:108 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:110 msgid ":guilabel:`Preferred Route`: how the product is procured, either :guilabel:`Buy`, :guilabel:`Manufactured`, :guilabel:`Dropship`, etc." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:110 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:112 msgid ":guilabel:`Vendor`: the company from which the product is acquired." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:111 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:113 msgid ":guilabel:`Bill of Materials`: the bill of materials for the product (if one is configured)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:112 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:114 msgid ":guilabel:`Trigger`: how the replenishment is created, either :guilabel:`Auto` (automatically, once the :guilabel:`On Hand` quantity goes below the :guilabel:`Min Quantity`) or :guilabel:`Manual` (only when the replenishment is requested)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:115 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:117 msgid ":guilabel:`Procurement Group`: the reference number for how the product is being acquired, such as a sales order, purchase order, or manufacturing order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:117 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:119 msgid ":guilabel:`Min Quantity`: the minimum amount of product that should be available. When inventory levels goes below this number, the replenishment is triggered." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:119 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:121 msgid ":guilabel:`Max Quantity`: the amount of product that should be available after replenishing the product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:121 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:123 msgid ":guilabel:`Multiple Quantity`: if the product should be ordered in specific quantities, enter the number that should be ordered. For example, if the :guilabel:`Multiple Quantity` is set to `5`, and only 3 are needed, 5 products are replenished." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:124 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:126 msgid ":guilabel:`To Order`: the amount of product that is currently needed, and will be ordered, if the :guilabel:`Order Once` or :guilabel:`Automate Orders` button is clicked." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:126 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:128 msgid ":guilabel:`UoM`: the unit of measure used to acquire the product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:127 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:129 msgid ":guilabel:`Company`: the company for which the product is acquired." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:129 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:131 msgid "By default, the quantity in the :guilabel:`To Order` field is the quantity required to reach the set :guilabel:`Max Quantity`. However, the :guilabel:`To Order` quantity can be adjusted by clicking on the field and changing the value. To replenish a product manually, click :guilabel:`Order Once`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:133 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:135 msgid "To automate a replenishment from the :guilabel:`Replenishment` page, click :guilabel:`Automate Orders` on the right-side of the line, represented by a :guilabel:`🔄 (circular arrow)` icon." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:136 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:138 msgid "When this button is clicked, Odoo will automatically generate a draft |PO|/|MO| every time the forecasted stock level falls below the set :guilabel:`Min Quantity` of the reordering rule." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:139 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:141 msgid "On the :guilabel:`Replenishment` page, a reordering rule or manual replenishment can be temporarily deactivated for a given period, by clicking the :guilabel:`🔕 (snooze)` icon on the far-right of the line." msgstr "" @@ -3637,7 +4295,7 @@ msgstr "" msgid "Snooze options to turn off notifications for reordering for a period of time." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:147 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:149 msgid "A |PO| or |MO| created by a manual replenishment has a :guilabel:`Replenishment Report` as the source document. A |PO| or |MO| created by an automated reordering rule has the |SO| reference number(s) that triggered the rule as the source document." msgstr "" @@ -3645,59 +4303,59 @@ msgstr "" msgid "Quote request list shows which quotes are directly from the replenishment report." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:156 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:158 msgid "Make to order (MTO) route" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:158 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:160 msgid "Since the |MTO| route is recommended for customized products, the route is hidden by default." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:167 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:169 msgid "To activate the |MTO| route in Odoo:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:161 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:163 msgid "Go to :menuselection:`Inventory app --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:162 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:164 msgid "Activate the :guilabel:`Multi-Step Routes` setting, located under the :guilabel:`Warehouse` section, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:164 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:166 msgid "Then, go to :menuselection:`Inventory app --> Configuration --> Routes`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:165 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:167 msgid "Click on :menuselection:`Filters --> Archived` to show archived routes." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:166 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:168 msgid "Select the checkbox next to :guilabel:`Replenish on Order (MTO)`, and click on :menuselection:`Action --> Unarchive`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:170 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:172 msgid "Activating the :guilabel:`Multi-Step Routes` setting also activates :guilabel:`Storage Locations`. If these features aren't applicable to the warehouse, disable these settings after unarchiving the |MTO| route." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:174 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:176 msgid "To set a product's procurement route to |MTO|, go to :menuselection:`Inventory app --> Products --> Products`, and click on the desired product to open its product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:177 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:179 msgid "Then, click the :guilabel:`Inventory` tab, and in the :guilabel:`Routes` section of options, select :guilabel:`Replenish on Order (MTO)`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:180 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:182 msgid "For products purchased directly from a vendor, make sure the :guilabel:`Buy` route is selected, in addition to the :guilabel:`Replenish on Order (MTO)` route. Also, make sure a vendor is configured in the :guilabel:`Purchase` tab of the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:184 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:186 msgid "For products manufactured in-house, make sure the :guilabel:`Manufacture` route is selected, in addition to the :guilabel:`Replenish on Order (MTO)` route. Also, make sure a bill of materials is configured for the product, which is accessible via the :guilabel:`Bill of Materials` smart button on the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:190 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/strategies.rst:192 msgid "The |MTO| route cannot be selected alone. |MTO| **only** works if the :guilabel:`Manufacture` or :guilabel:`Buy` route is also selected." msgstr "" @@ -3885,35 +4543,35 @@ msgstr "" msgid ":ref:`Use Different Units of Measure `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:64 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:66 msgid "Packages" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:66 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:68 msgid "Packages are a physical container that holds one or several products from a picking, typically used for outgoing deliveries or internal transfers. Packages can be a reusable or disposable (shipping) box, and are **not** specific to a product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:70 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:72 msgid "Reusable boxes temporarily hold products during a picking to be brought to either a packing or shipping area. Disposable boxes are the actual shipping containers (e.g. cardboard boxes, envelopes, shipping bags, etc). These are used to ship the products out to customers." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:74 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:76 msgid "Multiple items in a sales order (SO) can be separated into different packages to accommodate the products. For example, an :abbr:`SO (Sales Order)` that has 20 boxes of pencils and 4 boxes of erasers can be separated into two separate packages, each containing 10 boxes of pencils and 2 boxes of erasers." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:80 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:82 msgid "Products do *not* have to be divided equally. Products can be divided into as many packages that are needed to accommodate the :abbr:`SO (Sales Order)`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:83 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:85 msgid "In Odoo, the quantity of products in each package needs to be recorded, so there is a full history for each product, including which package each item is shipped out in." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:86 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:88 msgid "To use this method, ensure the :guilabel:`Packages` option is enabled, by navigating to :menuselection:`Inventory app --> Configuration --> Settings --> Operations`. Click the :guilabel:`Packages` check box, and then :guilabel:`Save` to activate the feature." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:90 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:92 msgid "On a delivery order, assign which package to use by clicking on the :guilabel:`≣ (Detailed Operations)` icon to the right of each product in the :guilabel:`Operations` tab." msgstr "" @@ -3921,31 +4579,31 @@ msgstr "" msgid "Find detailed operations icon to the right on the product line." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:97 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:99 msgid "Clicking the :guilabel:`≣ (Detailed Operations)` icon of a product reveals a pop-up window. In this window, the :guilabel:`Product` name, :guilabel:`Demand`, and :guilabel:`Quantity Done` are clearly displayed above the customizable product line." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:101 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:103 msgid "Here, the warehouse location the product is coming from can be modified, in addition to the :guilabel:`Source Package` and :guilabel:`Destination Package`, which represents what package(s) the product(s) will be packaged into." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:105 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:107 msgid "Click :guilabel:`Add a line` to include each additional package used. Enter the desired amount in the :guilabel:`Done` field to specify the amount of products that will go into the :guilabel:`Destination Package`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:110 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:112 msgid "Multiple packages in a single delivery" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:112 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:114 msgid "Although a :abbr:`DO (Delivery Order)` is typically associated with a single package, orders can be split by clicking the :guilabel:`≣ (Detailed Operations)` icon next to the products on an :abbr:`SO (Sales Order)` line. This opens the :guilabel:`Detailed Operations` window with an editable table to specify which products are intended for which package." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:118 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:120 msgid "To package 10 boxes of pencils with 2 boxes of erasers from the same :abbr:`SO (Sales Order)`, begin by navigating to the :abbr:`DO (Delivery Order)`. Then, select the :guilabel:`≣ (four horizontal lines)` icon to the right of the product, `Box of Pencils`. Clicking the icon opens the :guilabel:`Detailed Operations` window that is used to detail how products, like the 20 `Box of Pencils`, are packaged." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:124 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:126 msgid "Type in `10` under the :guilabel:`Done` field to package 10 products into the :guilabel:`Destination Package`. To specify the destination package, type the name of an existing package (such as `PACK0000006`) under the field, :guilabel:`Destination Package`. If the package does not exist, Odoo displays the :guilabel:`Create` button to create a new package. Click :guilabel:`Add a line` to assign the remaining products in another package, `PACK0000007`." msgstr "" @@ -3953,7 +4611,7 @@ msgstr "" msgid "Detailed operations pop-up where the amount of product going in a pack can be specified." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:134 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:136 msgid "Select :guilabel:`Detailed Operations` on the product line for `Box of Erasers` and similarly set 2 :guilabel:`Done` products to `PACK0000006` and `PACK0000007` each." msgstr "" @@ -3961,71 +4619,71 @@ msgstr "" msgid "Put in pack button to match the done amount matches the demand." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:141 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:143 msgid "Once all the products for each line have been entered, click :guilabel:`Confirm` to return to the :abbr:`DO (Delivery Order)`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:144 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:146 msgid "The :guilabel:`Done` quantity on the :abbr:`DO (Delivery Order)` updates as products are selected for each package. When the :guilabel:`Done` amount matches the :guilabel:`Demand` amount, click the :guilabel:`Validate` button to complete the delivery order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:149 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:151 msgid "The :guilabel:`Put In Pack` button is intended to quickly package all products in the :abbr:`DO (Delivery Order)` into one new package. The option to rename the package, or modify its contents, is available in the :guilabel:`Detailed Operations` pop-up." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:153 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:155 msgid "Clicking on the :guilabel:`Packages` smart button in the upper-right corner of the delivery order reveals a separate page, showing all the packages used in that :abbr:`DO (Delivery Order)`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:157 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:159 msgid "Packagings" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:159 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:161 msgid "*Packaging* is product specific, and refers to a disposable container that holds several units of a specific product. Unlike packages, packagings cannot be reusable, and each specific packaging must be defined on the individual product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:163 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:165 msgid "For example, different packages for cans of soda can be configured as a 6-pack, a 12-pack, or a case of 36. Each flavor of soda would need a `6`, `12`, and `36` can packaging configured on the individual product since packagings are product specific, not generic." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:168 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:170 msgid "Set up packagings" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:170 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:172 msgid "To use packagings, ensure the :guilabel:`Product Packagings` feature is enabled. To do that, navigate to :menuselection:`Inventory app --> Configuration --> Settings`. Then, under the :guilabel:`Products` heading, check the box next to :guilabel:`Product Packagings`, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:175 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:177 msgid "In Odoo, product packagings are used on sales/purchase orders and inventory transfers." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:177 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:179 msgid "Next, to create packagings, navigate to :menuselection:`Inventory app --> Products --> Products` and click on the desired product, then click :guilabel:`Edit` on the product page." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:180 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:182 msgid "Under the :guilabel:`Inventory` tab, scroll down to the :guilabel:`Packaging` section, and click :guilabel:`Add a line`. Then, a pop-up window appears, in which the following information for each packaging should be entered:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:184 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:186 msgid ":guilabel:`Packaging`: name of packaging that appears on sales/purchase orders as a packaging option for the product" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:186 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:188 msgid ":guilabel:`Contained quantity`: amount of product in the packaging" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:187 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:189 msgid ":guilabel:`Barcode`: identifier used with the :ref:`Barcode app ` to trace the packaging of a product during stock moves or pickings. Leave blank if not in use" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:189 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:191 msgid ":guilabel:`Company`: indicates the packaging is only available at the selected company. Leave blank to make the packaging available across all companies." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:193 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:195 msgid "Create a packaging type for 6 cans of the product, `Grape Soda`, by naming the :guilabel:`Packaging` to `6-pack` and setting the :guilabel:`Contained quantity` to `6` in the pop-up window that appears after clicking on :guilabel:`Add a line`." msgstr "" @@ -4033,11 +4691,11 @@ msgstr "" msgid "Create 6-pack case for product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:201 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:203 msgid "When all the necessary information has been entered, either click :guilabel:`Save & Close` to save the packaging and return to the product detail form, or :guilabel:`Save & New` to save the packaging and create another one in a fresh pop-up window." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:206 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:208 msgid "View all product packagings in the :guilabel:`Inventory` tab of the product form." msgstr "" @@ -4046,15 +4704,15 @@ msgid "Show packaging and contained quantities, specified on the product page fo "Inventory tab." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:214 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:216 msgid "View all packagings" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:216 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:218 msgid "To view all packagings that have been created, go to :menuselection:`Inventory app --> Configuration --> Product Packagings`. Doing so reveals the :guilabel:`Product Packagings` page with a complete list of all packagings that have been created for all products. Create new packagings by clicking :guilabel:`Create`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:222 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:224 msgid "Two soda products, `Grape Soda` and `Diet Coke`, have three types of packaging configured. On the :guilabel:`Product Packagings` page, each product can sold as a `6-Pack` that contains 6 products, `12-Pack` of 12 products, or a `Case` of 32 products." msgstr "" @@ -4062,15 +4720,15 @@ msgstr "" msgid "List of different packagings for products." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:231 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:233 msgid "Apply packagings" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:233 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:235 msgid "When creating a sales order in the :menuselection:`Sales` app, specify the packagings that should be used for the product(s). The chosen packaging is displayed on the :abbr:`SO (Sales Order)` under the :guilabel:`Package` field." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:238 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:240 msgid "18 cans of the product, `Grape Soda`, is packed using three 6-pack packagings." msgstr "" @@ -4078,7 +4736,7 @@ msgstr "" msgid "Assign packagings on the Sales Order Line." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:245 +#: ../../content/applications/inventory_and_mrp/inventory/management/products/usage.rst:247 msgid "Packaging can be used in conjunction with Odoo :ref:`Barcode `. When receiving products from suppliers, scanning the packaging barcode automatically adds the number of units in the packaging to the internal count of the product." msgstr "" @@ -4090,11 +4748,11 @@ msgstr "" msgid "Integrating additional costs to products (landed costs)" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:5 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:7 msgid "The landed cost feature in Odoo allows the user to include additional costs (shipment, insurance, customs duties, etc.) into the cost of the product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:11 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:13 msgid "First, go to :menuselection:`Inventory --> Configuration --> Settings --> Valuation` and activate the :guilabel:`Landed Costs` feature. Odoo also gives the option to set a :guilabel:`Default Journal` in which the landed costs accounting entries will be recorded." msgstr "" @@ -4102,15 +4760,15 @@ msgstr "" msgid "Activate the landed cost feature in Inventory settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:20 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:22 msgid "Add costs to products" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:23 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:25 msgid "Receive the vendor bill" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:25 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:27 msgid "After a vendor fulfills a purchase order and sends a bill, click :guilabel:`Create Bill` on the purchase order to create a vendor bill in Odoo. If the vendor bill includes landed costs, such as custom duties, tick the box in the :guilabel:`Landed Costs` column on the vendor bill invoice line." msgstr "" @@ -4118,15 +4776,15 @@ msgstr "" msgid "Enable Landed Costs option on vendor bill line." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:33 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:35 msgid "For charges that are always landed costs, create a landed cost product in Odoo. That way, the landed cost product can be quickly added to the vendor bill as an invoice line instead of manually entering the landed cost information every time a vendor bill comes in." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:37 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:39 msgid "First, create a new product in :menuselection:`Inventory --> Products --> Products --> Create`. Next, name the landed cost product. Then, set the :guilabel:`Product Type` to :guilabel:`Service`. A landed cost product must always be a service product type. After that, go to the :guilabel:`Purchase` tab and check the box next to :guilabel:`Is a Landed Cost`. Finally, click :guilabel:`Save` to finish creating the landed cost product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:43 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:45 msgid "If this product is always a landed cost, you can also define it on the product and avoid having to tick the box on each vendor bill." msgstr "" @@ -4134,7 +4792,7 @@ msgstr "" msgid "Option to define a product as a landed cost." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:50 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:52 msgid "Once the landed cost is added to the vendor bill (either by checking the :guilabel:`Landed Cost` option on the invoice line or adding a landed cost product to the bill), click the :guilabel:`Create Landed Costs` button at the top of the bill. Odoo automatically creates a landed cost record with the set landed cost pre-filled in the :guilabel:`Additional Costs` product lines. From here, decide which picking the additional costs apply to by clicking :guilabel:`Edit` and selecting the picking reference number from the :guilabel:`Transfers` drop-down menu. Finally, click :guilabel:`Save`." msgstr "" @@ -4142,15 +4800,15 @@ msgstr "" msgid "Use a warehouse transfer to cover a landed cost in the accounting journal." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:62 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:64 msgid "After setting the picking, click :guilabel:`Compute` on the landed cost record. Then, go to the :guilabel:`Valuation Adjustments` tab to see the impact of the landed costs. Finally, click :guilabel:`Validate` to post the landed cost entry to the accounting journal." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:66 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:68 msgid "The user can access the journal entry that has been created by the landed cost by clicking on the :guilabel:`Journal Entry`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:70 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:72 msgid "The product that the landed cost is applied to must have a product category set to a :abbr:`FIFO (First In, First Out)` or an :abbr:`AVCO (Average Costing)` method." msgstr "" @@ -4158,7 +4816,7 @@ msgstr "" msgid "Landed cost journal entry" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:78 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/integrating_landed_costs.rst:80 msgid "Landed cost records can also be directly created in :menuselection:`Inventory --> Operations --> Landed Costs`, it is not necessary to create a landed cost record from the vendor bill." msgstr "" @@ -4186,107 +4844,107 @@ msgstr "" msgid "Automated inventory valuation is a method recommended for expert accountants, given the extra steps involved in journal entry configuration. Even after the initial setup, the method will need to be periodically checked to ensure accuracy, and adjustments may be needed on an ongoing basis depending on the needs and priorities of the business." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:33 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:35 msgid "Types of accounting" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:35 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:37 msgid "Accounting entries will depend on the accounting mode: *Continental* or *Anglo-Saxon*." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:38 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:40 msgid "Verify the accounting mode by activating the :ref:`developer-mode` and navigating to :menuselection:`Accounting --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:41 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:43 msgid "In *Anglo-Saxon* accounting, the costs of goods sold (COGS) are reported when products are sold or delivered. This means that the cost of a good is only recorded as an expense when a customer is invoiced for a product. *Interim Stock Accounts* are used for the input and output accounts, and are both *Asset Accounts* in the balance sheet." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:46 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:48 msgid "In *Continental* accounting, the cost of a good is reported as soon as a product is received into stock. Additionally, a single *Expense* account is used for both input and output accounts in the balance sheet." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:51 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:55 msgid "Costing methods" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:53 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:57 msgid "Below are the three costing methods that can be used in Odoo for inventory valuation." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:55 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:59 msgid "**Standard Price**: is the default costing method in Odoo. The cost of the product is manually defined on the product form, and this cost is used to compute the valuation. Even if the purchase price on a purchase order differs, the valuation will still use the cost defined on the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:59 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:63 msgid "**Average Cost (AVCO)**: calculates the valuation of a product based on the average cost of that product, divided by the total number of available stock on-hand. With this costing method, inventory valuation is *dynamic*, and constantly adjusts based on the purchase price of products." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:62 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:66 msgid "**First In First Out (FIFO)**: tracks the costs of incoming and outgoing items in real-time and uses the real price of the products to change the valuation. The oldest purchase price is used as the cost for the next good sold until an entire lot of that product is sold. When the next inventory lot moves up in the queue, an updated product cost is used based on the valuation of that specific lot. This method is arguably the most accurate inventory valuation method for a variety of reasons, however, it's highly sensitive to input data and human error." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:70 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:74 msgid "Changing the costing method greatly impacts inventory valuation. It's highly recommended to consult an accountant first before making any adjustments here." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:74 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:78 msgid "Configure automated inventory valuation in Odoo" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:76 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:80 msgid "Make changes to inventory valuation options by navigating to :menuselection:`Inventory --> Configuration --> Product Categories`, and choose the category/categories where the automated valuation method should apply." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:81 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:85 msgid "It is possible to use different valuation settings for different product categories." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:83 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:87 msgid "Under the :guilabel:`Inventory Valuation` heading are two labels: :guilabel:`Costing Method` and :guilabel:`Inventory Valuation`. Pick the desired :guilabel:`Costing Method` using the drop-down menu (e.g. :guilabel:`Standard`, :guilabel:`Average Cost (AVCO)`, or :guilabel:`First In First Out (FIFO)`) and switch the :guilabel:`Inventory Valuation` to :guilabel:`Automated`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:89 -msgid ":doc:`Using the inventory valuation `" +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:93 +msgid ":ref:`Using the inventory valuation`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:93 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:96 msgid "When choosing :guilabel:`Average Cost (AVCO)` as the :guilabel:`Costing Method`, changing the numerical value in the :guilabel:`Cost` field for products in the respective product category creates a new record in the *Inventory Valuation* report to adjust the value of the product. The :guilabel:`Cost` amount will then automatically update based on the average purchase price both of inventory on hand and the costs accumulated from validated purchase orders." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:99 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:102 msgid "When the :guilabel:`Costing Method` is changed, products already in stock that were using the :guilabel:`Standard` costing method **do not** change value; rather, the existing units keep their value, and any product moves from then on affect the average cost, and the cost of the product will change. If the value in the :guilabel:`Cost` field on a product form is changed manually, Odoo will generate a corresponding record in the *Inventory Valuation* report." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:105 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:108 msgid "On the same screen, the :guilabel:`Account Stock Properties` fields will appear, as they are now required fields given the change to automated inventory valuation. These accounts are defined as follows:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:109 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:112 msgid ":guilabel:`Stock Valuation Account`: when automated inventory valuation is enabled on a product, this account will hold the current value of the products." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:111 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:114 msgid ":guilabel:`Stock Input Account`: counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. This is the default value for all products in a given category, and can also be set directly on each product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:115 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:118 msgid ":guilabel:`Stock Output Account`: counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. This is the default value for all products in a given category, and can also be set directly on each product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:121 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:124 msgid "Access reporting data generated by inventory valuation" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:123 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:126 msgid "To start, go to :menuselection:`Accounting --> Reporting --> Balance Sheet`. At the top of the dashboard, change the :guilabel:`As of` field value to :guilabel:`Today`, and adjust the filtering :guilabel:`Options` to :guilabel:`Unfold All` in order to see all of the latest data displayed, all at once." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:128 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:131 msgid "Under the parent :guilabel:`Current Assets` line item, look for the nested :guilabel:`Stock Valuation Account` line item, where the total valuation of all of the inventory on hand is displayed." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:132 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/inventory_valuation_config.rst:135 msgid "Access more specific information with the :guilabel:`Stock Valuation Account` drop-down menu, by selecting either the :guilabel:`General Ledger` to see an itemized view of all of the journal entries, or by selecting :guilabel:`Journal Items` to review all of the individualized journal entries that were submitted to the account. As well, annotations to the :guilabel:`Balance Sheet` can be added by choosing :guilabel:`Annotate`, filling in the text box, and clicking :guilabel:`Save`." msgstr "" @@ -4298,43 +4956,43 @@ msgstr "" msgid "Using inventory valuation" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:5 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:7 msgid "*Inventory valuation* is a quintessential accounting procedure that calculates the value of on-hand stock. Once determined, the inventory valuation amount is then incorporated into a company's overall value." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:9 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:11 msgid "In Odoo, this process can be conducted manually— by warehouse employees physically counting the products— or automatically through the database." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:13 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:15 msgid "Automatic inventory valuation" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:15 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:17 msgid "To use Odoo to automatically generate a trail of inventory valuation entries, first navigate to the :menuselection:`Product Categories` list by going to :menuselection:`Inventory app --> Configuration --> Product Categories` and select the desired product category. On the form, set the :guilabel:`Inventory Valuation` as :guilabel:`Automated` and the :guilabel:`Costing Method` to any of the three options." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:22 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:24 msgid ":ref:`Set up inventory valuation `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:24 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:26 msgid "In order to understand how moving products in and out of stock affects the company's overall value, consider the following product and stock moves scenario below." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:28 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:30 msgid "Receive a product" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:30 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:32 msgid "To track the value of incoming products, such as a simple *table*, configure the product category on the the product itself. To get there, navigate to :menuselection:`Inventory app --> Products --> Products` and click the desired product. On the product form, click the :guilabel:`➡️ (right arrow)` icon beside the :guilabel:`Product Category` field, which opens an internal link to edit the product category. Next, set the :guilabel:`Costing Method` as :guilabel:`First In First Out (FIFO)` and :guilabel:`Inventory Valuation` as :guilabel:`Automated`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:38 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:40 msgid "Alternatively access the :guilabel:`Product Categories` dashboard by navigating to :menuselection:`Inventory app --> Configuration --> Product Categories` and select the desired product category." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:42 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:44 msgid "Next, assume 10 tables are purchased at a price of $10.00, each. The :abbr:`PO (Purchase Order)` for those tables will show the subtotal of the purchase as $100, plus any additional costs or taxes." msgstr "" @@ -4342,15 +5000,15 @@ msgstr "" msgid "Purchase order with 10 tables products valued at $10.00 each." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:49 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:51 msgid "After selecting :guilabel:`Validate` on the :abbr:`PO (Purchase Order)`, the :guilabel:`Valuation` smart button is enabled. Clicking on this button displays a report showing how the inventory valuation for the table was affected by this purchase." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:54 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:56 msgid ":ref:`Developer mode ` **must** be turned on to see the :guilabel:`Valuation` smart button." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:58 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:60 msgid "The :doc:`consignment ` feature allows ownership to items in stock. Thus, products owned by other companies are not accounted for in the host company's inventory valuation." msgstr "" @@ -4358,15 +5016,15 @@ msgstr "" msgid "See Valuation smart button on a receipt, with Developer mode enabled." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:66 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:68 msgid "For a comprehensive dashboard that includes the inventory valuation of all product shipments, inventory adjustments, and warehouse operations, refer to the :ref:`stock valuation report `." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:71 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:73 msgid "Deliver a product" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:73 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:75 msgid "In the same logic, when a table is shipped to a customer and leaves the warehouse, the stock valuation decreases. The :guilabel:`Valuation` smart button on the :abbr:`DO (Delivery Order)`, likewise, displays the stock valuation record as it does on a :abbr:`PO (Purchase Order)`." msgstr "" @@ -4374,15 +5032,15 @@ msgstr "" msgid "Decreased stock valuation after a product is shipped." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:84 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:86 msgid "Inventory valuation report" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:86 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:88 msgid "To view the current value of all products in the warehouse, first turn on :ref:`Developer mode ` and navigate to :menuselection:`Inventory app --> Reporting --> Valuation`. The :guilabel:`Stock Valuation` dashboard displays detailed records of products with the :guilabel:`Date`, :guilabel:`Quantity`, :guilabel:`Unit Value`, and :guilabel:`Total Value` of the inventory." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:93 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:95 msgid ":ref:`Developer mode ` **must** be enabled to see the :guilabel:`Valuation` option under :guilabel:`Reporting`." msgstr "" @@ -4390,23 +5048,23 @@ msgstr "" msgid "Inventory valuation report showing multiple products." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:100 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:102 msgid "The :guilabel:`Valuation At Date` button, located in the top-left corner of the :guilabel:`Stock Valuation` page, reveals a pop-up window. In this pop-up, the inventory valuation of products available during a prior specified date can be seen and selected." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:105 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:107 msgid "View a detailed record of a product's inventory value, stock move, and on-hand stock by selecting the teal :guilabel:`➡️ (right arrow)` button to the right of the :guilabel:`Reference` column value." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:110 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:112 msgid "Update product unit price" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:112 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:114 msgid "For any company: lead times, supply chain failures, and other risk factors can contribute to invisible costs. Although Odoo attempts to accurately represent the stock value, *manual valuation* serves as an additional tool to update the unit price of products." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:117 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:119 msgid "Manual valuation is intended for products that can be purchased and received for a cost greater than 0, or have product categories set with :guilabel:`Costing Method` set as either :guilabel:`Average Cost (AVCO)` or :guilabel:`First In First Out (FIFO)`." msgstr "" @@ -4414,15 +5072,15 @@ msgstr "" msgid "Add manual valuation of stock value to a product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:125 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:127 msgid "Create manual valuation entries on the :guilabel:`Stock Valuation` dashboard by first navigating to :menuselection:`Inventory app --> Reporting --> Valuation`. Next, to enable the *product revaluation* feature, select :menuselection:`Group by --> Product` to organize all the records by product. Click on the gray :guilabel:`▶️ (drop-down triangle)` icon to reveal stock valuation line items below, as well as a teal :guilabel:`➕ (plus)` button on the right." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:131 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:133 msgid "Click the teal :guilabel:`+ (plus)` button to open up the :guilabel:`Product Revaluation` form. Here, the inventory valuation for a product can be recalculated, by increasing or decreasing the unit price of each product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:136 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:138 msgid "The :guilabel:`▶️ (drop-down triangle)` and :guilabel:`➕ (plus)` buttons are only visible after grouping entries by product." msgstr "" @@ -4430,19 +5088,19 @@ msgstr "" msgid "Product revaluation form adding a value of $1.00 with the reason being inflation." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:144 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:146 msgid "Inventory valuation journal entries" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:146 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:148 msgid "In Odoo, automatic inventory valuation records are also recorded in the :menuselection:`Accounting app --> Accounting --> Journal Entries` dashboard. On this comprehensive list of accounting entries, inventory valuation records are identified by checking values in the :guilabel:`Journal` column, or looking for the :guilabel:`Reference` column value which matches the warehouse operation reference (e.g. `WH/IN/00014` for receipts)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:152 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:154 msgid "Clicking on an inventory valuation journal entry opens a *double-entry accounting* record. These records are generated by Odoo to track the change of value in inventory valuation as products are moved in and out of the warehouse." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:157 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:159 msgid "To view the inventory valuation of 10 *tables*, costing $10.00 each, upon reception from the vendor, go to the :menuselection:`Journal Entries` page found in :menuselection:`Accounting app --> Accounting --> Journal Entries`. Here, click the journal line where the :guilabel:`Reference` column value matches the reference on the receipt, `WH/IN/00014`." msgstr "" @@ -4450,7 +5108,7 @@ msgstr "" msgid "Stock valuation page depicting the products within a shipment." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:166 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:168 msgid "`Stock interim` is a holding account for money intended to pay vendors for the product. The `stock valuation` account stores the value of all on-hand stock." msgstr "" @@ -4458,7 +5116,7 @@ msgstr "" msgid "Accounting entry for the inventory valuation of 10 tables." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:174 +#: ../../content/applications/inventory_and_mrp/inventory/management/reporting/using_inventory_valuation.rst:176 msgid "`Odoo Tutorial: Inventory Valuation `_" msgstr "" @@ -5369,6 +6027,90 @@ msgstr "" msgid "A receipt for stock received to one warehouse from another." msgstr "" +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:3 +msgid "Locations" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:5 +msgid "A *location* is a specific space within a warehouse. This can be a shelf, room, aisle, etc. There are three types of locations in Odoo:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:8 +msgid "*Physical locations* are spaces within a warehouse owned by the user's company. These can be a an area where items are stored like an aisle or shelf, or an area where operations take place, like loading and unloading bays." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:11 +msgid "*Partner locations* are the same as physical locations except that they exist within the warehouse of a customer or vendor." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:13 +msgid "*Virtual locations* are locations that do not exist physically, but where items that are not in inventory can be placed. These can be items that have not yet entered inventory, like products that are on the way to a warehouse, or items that are no longer in inventory due to loss or other factors." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:19 +msgid "In order to use locations, the :guilabel:`Storage Locations` setting must be enabled. To do so, navigate to :menuselection:`Inventory --> Configuration --> Settings`, scroll down to the :guilabel:`Warehouse` heading, and enable the :guilabel:`Storage Locations` checkbox." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:24 +msgid "Create a new location inside a warehouse" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:26 +msgid "Starting from the :menuselection:`Inventory` app, select :menuselection:`Configuration --> Locations --> Create`. The new location form can then be configured as follows:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:29 +msgid ":guilabel:`Location Name`: the name that will be used to reference the location" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:30 +msgid ":guilabel:`Parent Location`: the location or warehouse that the new location exists within" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:31 +msgid ":guilabel:`Location Type`: choose the category that the location belongs to" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:32 +msgid ":guilabel:`Company`: the company that owns the warehouse that the location is inside of" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:33 +msgid ":guilabel:`Is a Scrap Location?`: check this box to allow for scrapped/damaged goods to be stored in this location" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:35 +msgid ":guilabel:`Is a Return Location?`: check this box to allow products to be returned to this location" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:37 +msgid ":guilabel:`Barcode`: the barcode number assigned to the location" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:38 +msgid ":guilabel:`Removal Strategy`: the :ref:`strategy ` for how items should be taken from inventory" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:-1 +msgid "The form for creating a new location." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:46 +msgid "Create location hierarchies" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:48 +msgid "The *Parent Location* setting on the new location form allows for a location to exist within a warehouse or another location. Every location can serve as a parent location, and every parent location can have multiple locations within it, allowing for the creation of a virtually infinite hierarchical structure." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:54 +msgid "Location hierarchy could be organized so that a shelf is located within an aisle, which is located within a room, which is located within the overall warehouse." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/use_locations.rst:57 +msgid "To create the location hierarchy in the example above, set the warehouse as the parent of the room, the room as the parent of the aisle, and the aisle as the parent of the shelf. This can be adapted to a hierarchy of any magnitude." +msgstr "" + #: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouse_replenishment_transfer.rst:3 msgid "Transfer products between warehouses using replenishment" msgstr "" @@ -5537,31 +6279,31 @@ msgstr "" msgid "In Odoo, a **Warehouse** is the actual building/place in which a company's items are stocked. Multiple warehouses can be set up in Odoo and the user can create moves between warehouses." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:17 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:19 msgid "A **Location** is a specific space within the warehouse. It can be a sublocation of the warehouse (a shelf, a floor, an aisle, and so on). Therefore, a location is part of one warehouse only and it is not possible to link one location to multiple warehouses. In Odoo, as many locations can be configured as needed under one warehouse." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:22 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:24 msgid "There are three types of locations:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:24 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:26 msgid "The **Physical Locations** are internal locations that are part of the warehouses that the company owns. They can be the loading and unloading areas of the warehouse, a shelf, a department, etc." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:28 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:30 msgid "The **Partner Locations** are spaces within a customer and/or vendor's warehouse. They work the same way as physical locations, with the only difference being that they are not owned by the user's company." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:32 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:34 msgid "The **Virtual Locations** are places that do not exist, but in which products can be placed when they are not physically in an inventory yet (or anymore). They come in handy when recording lost products (**Inventory Loss**), or accounting for products that are on their way to the warehouse (**Procurements**)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:37 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:39 msgid "In Odoo, locations are structured hierarchically. Locations can be structured as a tree, dependent on a parent-child relationship. This gives more detailed levels of analysis of the stock operations and the organization of the warehouses." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:44 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:46 msgid "To activate locations, go to :menuselection:`Configuration --> Settings` and enable :guilabel:`Storage Locations`. Then, click :guilabel:`Save`." msgstr "" @@ -5569,20 +6311,20 @@ msgstr "" msgid "Enable the storage location feature in Odoo Inventory settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:52 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:54 msgid "To manage several routes within the warehouses, also enable :guilabel:`Multi-Step Routes` and check :doc:`../../routes/concepts/use_routes`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:56 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:58 #: ../../content/applications/inventory_and_mrp/inventory/routes/concepts/stock_warehouses.rst:41 msgid "Create a new warehouse" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:58 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:60 msgid "To create a warehouse, go to :menuselection:`Configuration --> Warehouse Management --> Warehouses` and click on :guilabel:`Create`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:61 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:63 msgid "Then, fill out a :guilabel:`Warehouse Name` and a :guilabel:`Short Name`. The short name is five characters maximum." msgstr "" @@ -5590,11 +6332,11 @@ msgstr "" msgid "Short name field of a warehouse on Odoo Inventory." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:69 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:71 msgid "The :guilabel:`Short Name` appears on transfer orders and other warehouse documents. Odoo recommends using an understandable one like \"WH/[first letters of location]\"." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:72 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:74 msgid "Now, go back to the :guilabel:`Inventory` dashboard. There, new operations related to the newly created warehouse have been automatically generated." msgstr "" @@ -5602,19 +6344,19 @@ msgstr "" msgid "Inventory app dashboard displaying new transfer types for the recently created warehouse." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:80 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:82 msgid "Adding a second warehouse will automatically activate the :guilabel:`Locations` setting." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:83 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:85 msgid "Create a new location" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:85 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:87 msgid "To create a location, go to :menuselection:`Configuration --> Warehouse Management --> Locations` and click on :guilabel:`Create`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:88 +#: ../../content/applications/inventory_and_mrp/inventory/management/warehouses/warehouses_locations.rst:90 msgid "Then, fill out a :guilabel:`Location Name` and a :guilabel:`Parent Location` and click :guilabel:`Save`." msgstr "" @@ -6448,302 +7190,345 @@ msgid "Storage Categories used in a variety of putaway rules." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:3 -msgid "What is a Removal Strategy (FIFO, LIFO, FEFO, Closest location)?" +msgid "Removal strategies (FIFO, LIFO, FEFO)" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:5 -msgid "Usually, *Removal Strategies* are defined in picking operations to select the best products, optimize the distance for the worker, for quality control purposes, or to first move products with the closest expiration date." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:7 +msgid "For companies with warehouses, **removal strategies** determine which products are taken from the warehouse, and when. Removal strategies are typically defined for specific picking operations. This helps companies to select the best products, optimize the distance workers need to travel when picking items for orders, and account for quality control, such as moving products with expiration dates." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:9 -msgid "When a product movement needs to be done, Odoo finds available products that can be assigned to the transfer. The way Odoo assigns these products depends on the *Removal Strategy* defined in the *Product Category* or on the *Location*." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:13 +msgid "Usually, *Removal Strategies* are defined in picking operations to select the best products to optimize the distance for the worker, for quality control purposes, or to first move the products with the closest expiration date." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:14 -msgid "What happens inside the warehouse?" +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:17 +msgid "When a product needs to be moved, Odoo finds available products that can be assigned to the transfer. The way Odoo assigns these products depends on the :guilabel:`Removal Strategy` defined in either the :guilabel:`Product Category` or the :guilabel:`Location` dashboards." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:16 -msgid "Imagine a generic warehouse plan, with receiving docks and areas, storage locations, picking and packing areas, and shipping docks. All products go through all these locations, but some rules, such as removal strategies, can have an effect on which products are taken for the pickings." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:21 +msgid "To change the :guilabel:`Removal Strategy`, go to :menuselection:`Inventory app --> Configuration --> Locations` or :menuselection:`Product Categories`. Click on a :guilabel:`Location` or :guilabel:`Product Category`, and then click :guilabel:`Edit`. Change the product category :guilabel:`Force Removal Strategy` or the location :guilabel:`Removal Strategy` by clicking on the drop-down menu and selecting the desired removal strategy. After selecting the new removal strategy, click :guilabel:`Save`." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 -msgid "Empty stock waiting for deliveries at the docks." +msgid "Change the Force Removal Strategy for either the Product Categories or Locations." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:24 -msgid "Here, vendor trucks unload pallets of goods at the docks. Then, operators scan the products in the receiving area with the reception date and, if the product has an expiration date, the expiration date. After that, products are stored in their respective locations." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:33 +msgid "What happens inside the warehouse?" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:35 +msgid "Most warehouses share the same important areas: receiving docks and sorting areas, storage locations, picking and packing areas, and shipping/loading docks. While all products entering or leaving the warehouse might go through each of these locations at some point, removal strategies can have an effect on which products are taken, from where, and when." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:40 +msgid "In this example below, vendor trucks unload pallets of goods at the receiving docks. Then, operators scan the products in the receiving area, with the reception date and expiration date. After that, products are stored in their respective storage locations." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:45 +msgid "Not all products have expiration dates, but in this example, expiration dates apply." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 msgid "Products entering stock via the receiving area." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:32 -msgid "Next, several orders for the same product are made, but in this example, the goods weren't received on the same day and they don't have the same expiration date. In that situation, logically, sending those with the closest date first is preferred. Depending on the chosen removal strategy, Odoo generates a transfer with the products that fit the settings the best." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:51 +msgid "In Odoo, receive products by navigating to the :menuselection:`Inventory` application, and in the kanban view, click on either the :guilabel:`Receipts` heading or :guilabel:`# TO PROCESS` button. On the :guilabel:`Receipts` dashboard, find and click on the individual receipt which will open the warehouse intake form. Click :guilabel:`Edit`, and then enter the received quantity in the :guilabel:`Done` column. To finish, :guilabel:`Validate` to receive the products and register them in the Odoo database." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:59 +msgid "Receiving products can also be done within the Odoo *Barcode* application. If using the *Barcode* app, scan the product(s), update the quantity, and finally, click :guilabel:`Validate`. After products are received in Odoo, the products can then be moved to their respective storage locations." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:64 +msgid "Continuing with the same example, below, imagine several sales orders are made for the products received earlier, that use expiration dates. In this example, the products weren't received on the same day, and they don't have the same expiration date. In this situation, logically, sending products with the closest expiration date is preferred, instead of products received first or last. Using the chosen removal strategy configured for those products (in this example, :ref:`FEFO `), Odoo generates a transfer for the products with the soonest expiration date to the picking area, then the packing area, and finally, to the shipping docks for delivery to the customer." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 -msgid ":alt: Products being packed at the packing area for delivery, taking expiration dates into\n" +msgid "Products being packed at the packing area for delivery, taking the expiration dates into\n" "account." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:43 -msgid "To pick for delivery, the product's lot/serial number can be found on the transfer form." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:46 -msgid "How does it work?" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:49 -msgid "First In, First Out (FIFO)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:51 -msgid "When using a *First In, First Out* (FIFO) strategy, a demand for some products triggers a removal rule, which requests a transfer for the lot/serial number that has entered the stock first." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:54 -msgid "For example, imagine there are three lots of nails in the warehouse. Those three have the following lot numbers: :guilabel:`00001`, :guilabel:`00002`, :guilabel:`00003`, each with five boxes of nails in it." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:58 -msgid ":guilabel:`00001` entered the stock on the 23rd of May, :guilabel:`00002` on the 25th of May, and :guilabel:`00003` on the 1st of June. A customer orders six boxes on the 11th of June. With the :abbr:`FIFO (First In, First Out)` removal strategy selected, a transfer is requested for the five boxes of :guilabel:`00001` and one of the boxes in :guilabel:`00002`, because :guilabel:`00001` entered the stock before the others. The box from :guilabel:`00002` is taken next because it has the oldest reception date after :guilabel:`00001`." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:65 -msgid "So, for every order of a product with the :abbr:`FIFO (First In, First Out)` strategy selected, Odoo requests a transfer for the products that have been in the stock for the longest period." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:69 -msgid "Last In, First Out (LIFO)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:71 -msgid "Similar to :abbr:`FIFO (First In, First Out)`, the *Last In, First Out* (LIFO) strategy moves products based on the date they entered the stock. Here, a demand for some products triggers a removal rule that requests a transfer for the lot/serial number that has entered the stock most recently." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:76 -msgid "For example, imagine there are three lots of screws in the warehouse. Those three have the following numbers: :guilabel:`10001`, :guilabel:`10002`, and :guilabel:`10003`, each with 10 boxes of screws in it." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:80 -msgid ":guilabel:`10001` entered the stock on the 1st of June, :guilabel:`10002` on the 3rd of June, and :guilabel:`10003` on the 6th of June. A customer orders seven boxes on the 8th of June. With the :abbr:`LIFO (Last In, First Out)` removal strategy selected, a transfer is requested for seven boxes of :guilabel:`10003` because that lot is the last one to have entered the stock." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:79 +msgid "To pick for delivery, the product's lot/serial number can be found on the transfer form. To learn more about picking and shipping, refer to either the :ref:`Two-step delivery ` or :ref:`Three-step delivery ` documentation." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:85 -msgid "Basically, for every order of a product with the :abbr:`LIFO (Last In, First Out)` strategy used, a transfer for the last lot to have entered the stock is requested." +msgid "How each removal strategy works" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:89 -msgid "The :abbr:`LIFO (Last In, First Out)` strategy is banned in many countries and can lead to only having old or obsolete products in the stock." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:87 +msgid "Removal strategies determine which products are taken from the warehouse when orders are confirmed." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:93 -msgid "First Expire, First Out (FEFO)" +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:90 +msgid "First In, First Out (FIFO)" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:95 -msgid "The *First Expired, First Out* (FEFO) strategy is a bit different from the other two removal strategies. For :abbr:`FEFO (First Expired, First Out)`, the expiration date is important, not the date the product entered the stock." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:92 +msgid "When using a :guilabel:`First In, First Out (FIFO)` strategy, demand for a product triggers a removal rule, which requests a transfer for the lot/serial number that entered the stock first (and therefore, has been in stock for the longest time)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:96 +msgid "For example, imagine there are three lots of nails in the warehouse, and have the corresponding lot numbers: `00001`, `00002`, `00003`. Each lot has five boxes of nails in it." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:99 -msgid "For example, imagine there are three lots of six-egg boxes (in this specific case, don't forget to use :doc:`units of measure <../../management/products/uom>`). Those three lots have the following numbers: :guilabel:`20001`, :guilabel:`20002`, and :guilabel:`20003`, each with five boxes in it." +msgid "Lot `00001` entered the stock on May 23, lot `00002` on May 25, and lot `00003` on June 1. A customer orders six boxes on June 11." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:103 -msgid ":guilabel:`20001` entered the stock on the 1st of July and expires on the 15th of July, :guilabel:`20002` entered on the 2nd and expires on the 14th of July, and :guilabel:`20003` entered on the 4th and expires on the 21st of July. A customer orders six boxes on the 5th of July. With the :abbr:`FEFO (First Expired, First Out)` strategy selected, a transfer is requested for the five boxes of :guilabel:`20002` and one from :guilabel:`20001`. The transfer for all the boxes in lot :guilabel:`20002` is because they have the closest expiration date. The transfer also requests one box from :guilabel:`20001` because has the next closest expiration date after lot :guilabel:`20002`." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:102 +msgid "Using the :abbr:`FIFO (First In, First Out)` removal strategy, a transfer request will pick the five boxes from lot `00001` first, and then from the boxes in lot `00002`, since lot `00001` entered the stock first. The box from lot `00002` is taken next because it has the oldest receipt date after lot `00001`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 +msgid "The detailed operations for the transfer shows the nail lots to be removed." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:112 -msgid "Basically, for every sales order of a product with the :abbr:`FEFO (First Expired, First Out)` strategy, a transfer is requested for the product that has the nearest expiration date from the order date." +msgid "Last In, First Out (LIFO)" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:117 -msgid "Closest Location" +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:114 +msgid "Similar to the :abbr:`FIFO (First In, First Out)` method, the :guilabel:`Last In, First Out (LIFO)` removal strategy moves products based on the date they entered a warehouse's stock. Instead of removing the oldest stock on-hand, however, it targets the **newest** stock on-hand for removal." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:119 -msgid "The *Closest Location* strategy is completely different from the other removal strategies. It is not related to the date of entry in the warehouse, but rather the location of the product. It is commonly used for products that do not deteriorate with time." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:118 +msgid "Every time an order for products with the :abbr:`LIFO (Last In, First Out)` method is placed, a transfer is created for the lot/serial number that has most recently entered the stock (the **last** lot/serial number that entered the warehouse's inventory)." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:123 -msgid "The aim is to avoid making the warehouse worker take a long journey to the bottom of the stock when the product is also located at a near location. This method is only available if the :guilabel:`Storage Locations` setting is on. The closest location is actually the one that comes first in the alphabetic order." +msgid "In many countries, the :abbr:`LIFO (Last In, First Out)` removal strategy in banned, since it can potentially result in old, expired, or obsolete products being delivered to customers." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:126 +msgid "For example, imagine there are three lots of boxes of screws in the warehouse, and have the corresponding lot numbers: `10001`, `10002`, and `10003`, each with 10 boxes of screws per lot." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:129 -msgid "Use removal strategies" +msgid "Lot `10001` entered the stock on June 1, lot `10002` on June 3, and lot `10003` on June 6. A customer orders seven boxes on June 8." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:131 -msgid "To differentiate some units from others, the units need to be tracked, either by *lot* or by *serial number*. To do so, go to :menuselection:`Inventory --> Configuration --> Settings`. Then, activate the :guilabel:`Storage Location`, :guilabel:`Multi-Step Routes`, and :guilabel:`Lots & Serial Numbers` settings." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:132 +msgid "Using the :abbr:`LIFO (Last In, First Out)` removal strategy, a transfer is requested for seven boxes of screws from lot `10003` because that lot is the last one to have entered the stock." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 -msgid "Features to enable in order to properly use removal strategies." +msgid "The detailed operations shows which lots are being selected for the picking." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:141 -msgid "To work with the :abbr:`FEFO (First Expired, First Out)` strategy, also activate the :guilabel:`Expiration Dates` feature." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:140 +msgid "First Expired, First Out (FEFO)" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:144 -msgid "Next, go to :menuselection:`Inventory --> Configuration --> Product Categories` to define the removal strategy on a product category." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:142 +msgid "While the :abbr:`FIFO (First In, First Out)` and :abbr:`LIFO (Last In, First Out)` methods target products for removal based on date of entry into the warehouse, the :guilabel:`First Expired, First Out (FEFO)` method targets products for removal based on their assigned expiration dates." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:146 +msgid "Using the :abbr:`FEFO (First Expired, First Out)` removal strategy, every sales order that includes products with this removal strategy assigned ensures that transfers are requested for products with the expiration date soonest to the order date." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:150 +msgid "As an example, imagine there are three lots of six-egg boxes. Those three lots have the following lot numbers: `20001`, `20002`, and `20003`, each with five boxes in it." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:153 +msgid "Lot `20001` entered the stock on July 1 and expires on July 15, lot `20002` entered on July 2 and expires on July 14, and lot `20003` entered on July 3 and expires on July 21. A customer orders six boxes on July 5." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:157 +msgid "Using the :abbr:`FEFO (First Expired, First Out)` method, a transfer is requested for the five boxes from lot `20002` and one from lot `20001`. All the boxes in lot `20002` are transferred because they have the earliest expiration date. The transfer also requests one box from lot `20001` because it has the next closest expiration date after lot `20002`." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 -msgid "Force removal strategy set up as first in first out." +msgid "The detailed operations for the transfer shows the lots to be removed." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:152 -msgid "FIFO (First In, First Out)" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:154 -msgid "As explained, a :abbr:`FIFO (First In, First Out)` removal strategy implies that products stocked first move out first. Companies should use this method if they are selling products with short demand cycles, such as clothes, and to ensure they are not stuck with outdated styles in stock." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:158 -msgid "In this example, there are three lots of white shirts. The shirts are from the :guilabel:`All/Clothes` category, where *FIFO* is set as the removal strategy. In the stock location (:guilabel:`WH/Stock`), the user can find the three lots available." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 -msgid "View of the white shirt lots inventory valuation." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:166 -msgid "Lot :guilabel:`000001` contains five shirts, :guilabel:`000002` contains three shirts, and :guilabel:`000003` contains two shirts." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:167 +msgid "Using removal strategies" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:169 -msgid "As seen above, :guilabel:`000001` entered the stock first. Now, create a sales order of six white shirts to check that those products from lot :guilabel:`000001` are the first ones to move out." +msgid "To differentiate some units of products from others, the units need to be tracked, either by :guilabel:`Lot` or by :guilabel:`Serial Number`. To do so, go to :menuselection:`Inventory --> Configuration --> Settings`. Then, activate the :guilabel:`Storage Locations`, :guilabel:`Multi-Step Routes`, and :guilabel:`Lots & Serial Numbers` settings. Click :guilabel:`Save` to save changes." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:172 -msgid "On the delivery order linked to the picking, the oldest lot numbers should have been reserved thanks to the :abbr:`FIFO (First In, First Out)` strategy." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 +msgid ":alt: Traceability settings." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 +msgid ":alt: Warehouse settings." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:183 +msgid "To use the :abbr:`FEFO (First Expired, First Out)` removal strategy, the :guilabel:`Expiration Dates` setting needs to be activated as well. To enable this, go to :menuselection:`Inventory app --> Configuration --> Settings`, scroll down to the :guilabel:`Traceability` section, and click the checkbox next to :guilabel:`Expiration Dates`. Remember to click :guilabel:`Save` to save all changes." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:189 +msgid "Now, specific removal strategies can be defined on product categories. To do this, go to :menuselection:`Inventory app --> Configuration --> Product Categories`, and choose a product category to define the removal strategy on. In the :guilabel:`Force Removal Strategy` field, choose a removal strategy." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 +msgid ":alt: Removal strategy on a product category." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:198 +msgid "To view all products with lots/serial numbers assigned to them, navigate to :menuselection:`Inventory app --> Products --> Lots/Serial Numbers`. This reveals a page with drop-down menus of all products assigned lots or serial numbers, filtered by *product* by default. To change the category these products are filtered by, click :guilabel:`Product` (in the search bar, in the top right of the page) to remove the default filter, and select a new filter if desired." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 +msgid "Click on Products, then Lots/Serial Numbers to display all the products with lots or serial\n" +"numbers." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:209 +msgid "To view the serial numbers being selected for a sales order, go to the :guilabel:`Sales app` and select the sales order in question. In the sales order, click the :guilabel:`Delivery` smart button in the top right. In the :guilabel:`Operations` tab, click the :guilabel:`⦙≣ (Detailed Operations)` icon in the far right for the product in question. The :guilabel:`Detailed Operations` window appears, and displays the lot or serial numbers selected for that specific product for the delivery order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:217 +msgid "FIFO (First In, First Out)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:219 +msgid "The :abbr:`FIFO (First In, First Out)` removal strategy implies that products which enter a warehouse's stock first are removed first. Companies should use this method if they are selling products with short demand cycles, such as clothes, to ensure they are not stuck with outdated styles in stock." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:224 +msgid "In this example, there are three lots of white shirts. The shirts are from the *All/Clothes* category, where *FIFO* is set as the removal strategy. In the :guilabel:`Inventory Valuation Report`, the three different receipts are listed with the amounts." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 +msgid "View of the lots of white shirts in the inventory valuation report." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:232 +msgid "Lot `000001` contains five shirts, lot `000002` contains three shirts, and lot `000003` contains two shirts." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:235 +msgid "To see the removal strategy in action, go to the :menuselection:`Sales app` and click :guilabel:`Create` to create a sales order. Next, select a :guilabel:`Customer` from the drop-down menu. Then click :guilabel:`Add a product` in the :guilabel:`Order Lines` tab. Select a product (for this example, the :guilabel:`White Shirt`) from the drop-down menu, or type in the name of the product in the field. Enter a quantity (for this example, `6.00`) in the :guilabel:`Quantity` field, then click :guilabel:`Save`, then click :guilabel:`Confirm`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:242 +msgid "Once the sales order is confirmed, the delivery order will be created and linked to the picking, and the oldest lot numbers will be reserved thanks to the :abbr:`FIFO (First In, First Out)` strategy. All five shirts from lot `000001` and one shirt from lot `000002` will be selected to be sent to the customer." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 msgid "Two lots being reserved for a sales order with the FIFO strategy." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:180 +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:252 msgid "LIFO (Last In, First Out)" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:182 -msgid "With a *LIFO* strategy, that's quite the opposite. In fact, the products that are received last move out first. :abbr:`LIFO (Last In, First Out)` is mostly used for products without a shelf life." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:254 +msgid "The :abbr:`LIFO (Last In, First Out)` removal strategy works in the **opposite** manner from the :abbr:`FIFO (First In, First Out)` strategy. With this method, the products that are received **last** are moved out first. This method is mostly used for products without a shelf life, and no time-sensitive factors, such as expiration dates." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:185 -msgid "In this example, let's use the white shirts again to test the :abbr:`LIFO (Last In, First Out)` strategy. First, open the product category via :menuselection:`Inventory --> Configuration --> Product Categories` and change the removal strategy to :abbr:`LIFO (Last In, First Out)`." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:259 +msgid "In this example, there are three lots of cinder blocks. The blocks are from the *All/Building Materials* category, where *FIFO* is set as the removal strategy. In the :guilabel:`Inventory Valuation Report`, the three different receipts are listed with the amounts." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 -msgid "Last in first out strategy set up as forced removal strategy." +msgid "View of the lots of cinder blocks in the inventory valuation report." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:193 -msgid "Then, create a sales order for four white shirts and check that the reserved products are from lots :guilabel:`000003` and :guilabel:`000002`." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:267 +msgid "Lot `000020` contains three cinder blocks, lot `000030` contains five cinder blocks, and lot `0000400` contains four cinder blocks." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:270 +msgid "To see how the :abbr:`LIFO (Last In, First Out)` strategy works, first navigate to :menuselection:`Inventory app --> Configuration --> Product Categories`, and select a product category (for this example, the :guilabel:`All/Building Materials` category) to edit. This reveals a product category form." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:275 +msgid "Once on the product category form, under the :guilabel:`Logistics` section, change the :guilabel:`Force Removal Strategy` to :guilabel:`Last In First Out (LIFO)`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 +msgid "Last in first out (LIFO) strategy set up as forced removal strategy." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:282 +msgid "To see the removal strategy in action, go to the :menuselection:`Sales app` and click :guilabel:`Create` to create a sales order. Next, select a :guilabel:`Customer` from the drop-down menu. Then click :guilabel:`Add a product` in the :guilabel:`Order Lines` tab. Select a product (for this example, the :guilabel:`Cinder Block`) from the drop-down menu, or type in the name of the product in the field. Enter a quantity (for this example, `5.00`) in the :guilabel:`Quantity` field, then click :guilabel:`Save`, then click :guilabel:`Confirm`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:289 +msgid "Once the sales order is confirmed, the delivery order will be created and linked to the picking, and the newest lot numbers will be reserved thanks to the :abbr:`LIFO (Last In, First Out)` strategy. All four cinder blocks from lot `0000400` and one cinder block from lot `000030` will be selected to be sent to the customer." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 msgid "Two lots being reserved for sale with the LIFO strategy." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:201 -msgid "Don't forget that the :abbr:`LIFO (Last In, First Out)` strategy is banned in many countries!" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:204 +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:301 msgid "FEFO (First Expired, First Out)" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:206 -msgid "With the :abbr:`FEFO (First Expired, First Out)` removal strategy, the way products are picked is not based on the reception date. In this particular case, they are dispatched according to their expiration date." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:303 +msgid "The :abbr:`FEFO (First Expired, First Out)` removal strategy differs from the :abbr:`FIFO (First In, First Out)` and :abbr:`LIFO (Last In, First Out)` strategies, because it targets products for removal based on **expiration dates** instead of their warehouse receipt dates. With this method, the products that are going to expire first are moved out first. This method is used for perishable products, such as medicine, food, and beauty products." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:211 -msgid "For have more information about expiration dates, please have a look at :doc:`the related doc <../../management/lots_serial_numbers/expiration_dates>`." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:309 +msgid "Lots are picked based on their **removal date** from earliest to latest. Removal dates indicate how many days *before* the expiration date the product needs to be removed from stock. The removal date is set on the product form. Lots without a removal date defined are picked after lots with removal dates." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:214 -msgid "By activating the :guilabel:`Expiration Dates` feature, it becomes possible to define different expiration dates on the serial/lot numbers that will be used in :abbr:`FEFO (First Expired, First Out)`. These expiration dates can be set by going to :menuselection:`Inventory --> Products --> Lots/Serial Numbers`." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:315 +msgid "If products are not removed from stock when they should be, lots that are past the expiration date may still be picked for delivery orders!" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:319 +msgid "For more information about expiration dates, reference the :doc:`Expiration dates ` document." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:323 +msgid "First, go to :menuselection:`Inventory app --> Configuration --> Settings` and ensure :guilabel:`Expiration Dates` is enabled. Once the :guilabel:`Expiration Dates` setting is enabled, it's possible to define different expiration dates for individual serialized products, as well as for lot numbers containing many products." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:328 +msgid "In this example, there are three lots of hand cream. The creams are from the *All/Health & Beauty* category, where *FEFO* is set as the removal strategy. In the :guilabel:`Inventory Valuation Report`, the three different receipts are listed with the amounts." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:332 +msgid "Lot `0000001` contains twenty tubes of hand cream, expiring on Sept 30, lot `0000002` contains ten tubes of hand cream, expiring on November 30, and lot `0000003` contains ten tubes of hand cream, expiring on October 31." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 +msgid "View the hand cream lot numbers and expiration dates in the inventory report." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:340 +msgid "Expiration dates can be entered when validating the received products, or set on products by going to :menuselection:`Inventory app --> Products --> Lots/Serial Numbers`. Click :guilabel:`Create`, enter the serial number, and select the product from the drop-down menu. Next, select the expiration date in the :guilabel:`Dates` tab. Finally, click :guilabel:`Save`." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 msgid "View of the removal date for 0000001." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:223 -msgid "Lots are picked based on their removal date, from earliest to latest. Lots without a removal date defined are picked after lots with removal dates." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:349 +msgid "To see how the :abbr:`FEFO (First Expired, First Out)` strategy works, first navigate to :menuselection:`Inventory app --> Configuration --> Product Categories`, and select a product category (in this example, the :guilabel:`All/Health & Beauty` category) to edit. This reveals a product category form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:227 -msgid "Other dates are for informational and reporting purposes only. If not removed from the stock, lots that are past the expiration dates may still be picked for delivery orders!" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:230 -msgid "To use the :abbr:`FEFO (First Expired, First Out)` strategy, go to :menuselection:`Inventory --> Configuration --> Product Categories` and set :abbr:`FEFO (First Expired, First Out)` in the :guilabel:`Force Removal Strategy` field." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:354 +msgid "Once on the product category form, under the :guilabel:`Logistics` section, change the :guilabel:`Force Removal Strategy` to :abbr:`FEFO (First Expired, First Out)`." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 -msgid "View of the FEFO strategy being set up as forced removal strategy." +msgid "FEFO forced removal strategy set on the product category." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:238 -msgid "For this particular case, the stock has hand cream. There are three lots of them." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:361 +msgid "Next, go to the :menuselection:`Sales app` and click :guilabel:`Create` to create a sales order. Next, select a :guilabel:`Customer` from the drop-down menu. Then click :guilabel:`Add a product` in the :guilabel:`Order Lines` tab. Select a product (for this example, the :guilabel:`Hand Cream`) from the drop-down menu, or type in the name of the product in the field. Enter a quantity (in this example, `25.00`) in the :guilabel:`Quantity` field, then click :guilabel:`Save`, then click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:241 -msgid "**Lot / Serial No**" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:241 -msgid "**Product**" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:241 -msgid "**Expiration Date**" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:243 -msgid "0000001" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:243 -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:245 -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:247 -msgid "Hand Cream" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:243 -msgid "09/30/2019" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:245 -msgid "0000002" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:245 -msgid "11/30/2019" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:247 -msgid "0000003" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:247 -msgid "10/31/2019" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:250 -msgid "When a sales order for 25 units of Hand Cream is created, Odoo automatically reserves the lots with the closest expiration date, :guilabel:`0000001` and :guilabel:`0000003`." +#: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:368 +msgid "Once the sales order is confirmed, the delivery order will be created and linked to the picking, and the lot numbers expiring first will be reserved thanks to the :abbr:`FEFO (First Expired, First Out)` strategy. All twenty tubes of hand cream from lot `0000001` and five from lot `0000003` will be selected to be sent to the customer, detailed in the :guilabel:`Detailed Operations` tab in the sales order." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/routes/strategies/removal.rst:-1 -msgid "Two hand cream lots reserved for sell with the FEFO strategy." +msgid "Hand cream lot numbers selected for the sales order." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping.rst:5 @@ -6892,84 +7677,84 @@ msgstr "" msgid "How to invoice the shipping cost to the customer?" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:8 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:10 msgid "There are two ways to invoice the shipping costs:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:10 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:12 msgid "Agree with the customer over a cost and seal it down in the sale order" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:13 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:15 msgid "Invoice the real cost of the shipping." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:18 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:20 msgid "To configure the price of your delivery methods, go to the **Inventory** app, click on :menuselection:`Configuration --> Delivery --> Delivery Methods`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:21 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:23 msgid "You can manually set a price for the shipping: It can be fixed or based on rules." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:24 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:26 msgid "Or you can use the transportation company computation system. Read the document :doc:`../setup/third_party_shipper`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:28 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:30 msgid "How to invoice the shipping costs to the customer?" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:31 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:33 msgid "Invoice the price set on the sale order" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:33 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:55 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:35 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:57 msgid "On your sale order, choose the carrier that will be used. Click on **Delivery Method** to choose the right one." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:39 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:41 msgid "The price is computed when you **save** the sale order or when you click on **Set price**." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:42 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:44 msgid "To invoice the price of the delivery charge on the sale order, click on **Set price**, it will add a line with the name of the delivery method as a product. It may vary from the real price." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:46 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:48 msgid "When you create the invoice, it will take the price set on the sale order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:53 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:55 msgid "Invoice the real shipping costs" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:61 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:63 msgid "The price is computed when you **save** the sale order. Confirm the sale order and proceed to deliver the product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:64 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:66 msgid "The real shipping cost is computed when the delivery order is validated, you can see the real cost in the chatter of the delivery order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:70 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:72 msgid "Go back to the sale order, the real cost is now added to the sale order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:76 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:78 msgid "When you create the invoice, it will take the price computed by the carrier." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:83 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:85 msgid "If you split the delivery and make several ones, each delivery order will add a line to the sale order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:87 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:89 msgid ":doc:`../setup/third_party_shipper`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:88 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/invoicing.rst:90 msgid ":doc:`labels`" msgstr "" @@ -7055,7 +7840,7 @@ msgid "Odoo can handle various delivery methods, including third party shippers msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:18 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:17 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:19 msgid "Install the shipper company connector module" msgstr "" @@ -7064,19 +7849,17 @@ msgid "In the **Inventory** module, click on :menuselection:`Configuration --> S msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:27 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:26 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:28 msgid "Then click on **Apply**." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:30 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:34 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:33 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:35 msgid "Configure the delivery method" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:32 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:36 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:35 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:37 msgid "To configure your delivery methods, go to the **Inventory** module, click on :menuselection:`Configuration --> Delivery Methods`." msgstr "" @@ -7097,37 +7880,37 @@ msgid "The first one is linked to **your account** (develop key, password,...). msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:49 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:62 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:64 msgid "The second column varies according to the **provider**. You can choose the packaging type, the service type, the weight unit..." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:52 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:65 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:67 msgid "Uncheck **Test Mode** when you are done with the testings." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:55 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:77 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:79 msgid "Company configuration" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:57 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:79 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:81 msgid "In order to compute the right price, the provider needs your company information. Be sure your address and phone number are correctly encoded." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:64 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:86 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:88 msgid "To check your information, go to the **Settings** application and click on **General Settings**. Click on the first link **Configure your company data**." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:68 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:90 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:92 msgid "Product configuration" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:70 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:92 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:94 msgid "The shipper companies need the weight of your product, otherwise the price computation cannot be done." msgstr "" @@ -7144,7 +7927,7 @@ msgid "The delivery order created from the sale order will take the shipping inf msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:90 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:135 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:137 msgid "If you create a delivery transfer from the inventory module, you can add the third party shipper in the additional info tab." msgstr "" @@ -7153,7 +7936,7 @@ msgid "Click on **Validate** to receive the tracking number and **the label(s)** msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/operation/labels.rst:98 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:151 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:153 msgid "The label to stick on your package is available in the history underneath :" msgstr "" @@ -7282,87 +8065,265 @@ msgid "Shipping Setup" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:3 -msgid "How to setup a delivery method?" +msgid "Delivery methods" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:5 +msgid "When activated in Odoo, the *Delivery Methods* setting adds the option of calculating the cost of shipping on sales orders and e-commerce shopping carts." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:8 -msgid "Odoo can handle various delivery methods, but it is not activated by default. Delivery methods can be used for your sale orders, your deliveries but also on your e-commerce." +msgid "When integrated with a :ref:`third-party carrier `, shipping prices are calculated based on the carrier's pricing and packaging information." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:12 -msgid "Delivery methods allow you to manage the transport company, the price and the destination. You can even integrate Odoo with external shippers to compute the real price and the packagings." +msgid ":ref:`Third-party shipping carrier setup `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:20 -msgid "Install the inventory module" +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:13 +msgid "`Odoo Tutorials: Delivery Prices `_" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:19 +msgid "To calculate shipping on sales orders and e-commerce, the *Delivery Costs* module must be installed. To do so, navigate to the :menuselection:`Apps` application from the main Odoo dashboard." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:22 -msgid "Delivery methods are handled by the **Delivery costs** module. Go to **Apps** and search for the module. You should remove the **Apps** filter in order to see it :" +msgid "Then, remove the :guilabel:`Apps` filter, and type in `Delivery Costs` in the :guilabel:`Search...` bar. After finding the :guilabel:`Delivery Costs` module, click :guilabel:`Activate` to install it." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:-1 +msgid "Install the *Delivery Costs* module." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:30 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:29 -msgid "If you want to integrate delivery methods in your e-commerce, you'll have to install the **eCommerce Delivery** module." +msgid "Add shipping method" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:32 +msgid "To configure delivery methods, go to :menuselection:`Inventory app --> Configuration --> Shipping Methods`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:36 +msgid "If the :guilabel:`Shipping Methods` option is not available from the :guilabel:`Configuration` drop-down menu, verify whether the feature is enabled by following these steps:" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:39 -msgid "First set a name and a transporter company." +msgid "Go to :menuselection:`Inventory app --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:44 -msgid "Then you'll have to set the pricing. It can be fixed or based on rules." +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:40 +msgid "Scroll to the :guilabel:`Shipping` section and enable the :guilabel:`Delivery Methods` feature by checking the corresponding checkbox." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:46 -msgid "If the price is fixed, tick **Fixed price**. You'll just have to define the price. If you want the delivery to be free above a certain amount, tick the option **Free if Order total is more than** and set a price." +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:0 +msgid "Enable the *Delivery Methods* feature by checking the box in Configuration > Settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:54 -msgid "If the price varies according to rules, tick **Based on Rules**. Click on **add an item to a pricing rule**. Choose a condition based on either the weight, the volume, the price or the quantity." +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:47 +msgid "On the :guilabel:`Shipping Methods` page, add a method by clicking :guilabel:`New`. Doing so opens a form to provide details about the shipping provider, including:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:50 +msgid ":guilabel:`Shipping Method` (*Required field*): the name of the delivery method (e.g. `flat-rate shipping`, `same day delivery`, etc.)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:52 +msgid ":guilabel:`Provider` (*Required field*): choose the delivery service, like Fedex, if using a :ref:`third-party carrier `. Ensure the integration with the shipping carrier is properly installed and select the provider from the drop-down menu." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:56 +msgid "For more details on configuring custom shipping methods, such as :ref:`fixed price `, :ref:`based on rules `, or :ref:`pickup in store ` options, refer to their respective sections below." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:59 +msgid ":guilabel:`Website`: configure shipping methods for an e-commerce page. Select the applicable website from the drop-down menu, or leave it blank to apply the method to all web pages." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:61 -msgid "Finally you can limit the delivery method to a few destinations. The limit can be applied to some countries, states or even zip codes. This feature limits the list of countries on your e-commerce." +msgid ":guilabel:`Company`: if the shipping method should apply to a specific company, select it from the drop-down menu. Leave the field blank to apply the method to all companies." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:69 -msgid "You can integrate Odoo with external shippers in order to compute the real price and packagings, and handle the printing the shipping labels. See :doc:`third_party_shipper`" +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:63 +msgid ":guilabel:`Delivery Product` (*Required field*): the product listed on the :ref:`sales order line ` as the delivery charge." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:74 -msgid "Delivery process" +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:65 +msgid ":guilabel:`Free if order amount is above`: checking this box enables free shipping if the customer spends above the specified amount." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:77 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:110 -msgid "Sale order" +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:68 +msgid "For examples on how to configure specific shipping methods, refer to the sections below." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:82 -msgid "You can now choose the **Delivery Method** on your sale order. If you want to invoice the price of the delivery charge on the sale order, click on **Set price**, it will add a line with the name of the delivery method as a product." +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:73 +msgid "Fixed price" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:75 +msgid "To configure a shipping price that is the same for all orders, go to :menuselection:`Inventory app --> Configuration --> Shipping Methods`. Then, click :guilabel:`New`, and on the shipping method form, set the :guilabel:`Provider` to the :guilabel:`Fixed Price` option. Selecting this option makes the :guilabel:`Fixed Price` field become available, which is where the fixed rate shipping amount is defined." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:81 +msgid "To enable free shipping if the amount of the order exceeds a specified amount, check the box :guilabel:`Free if order amount is above` and fill in the amount." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:85 +msgid "To set up `$20` flat-rate shipping that becomes free if the customer spends over `$100`, fill in the following fields:" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:88 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:130 -msgid "Delivery" +msgid ":guilabel:`Shipping Method`: `Flat-rate shipping`" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:89 +msgid ":guilabel:`Provider`: :guilabel:`Fixed Price`" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:90 -msgid "You can add or change the delivery method on the delivery itself." +msgid ":guilabel:`Fixed Price`: `$20.00`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:95 -msgid "On the delivery, check the **Carrier Information**. The carrier is the chosen delivery method." +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:91 +msgid ":guilabel:`Free if order amount is above`: `$100.00`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:99 -msgid ":doc:`third_party_shipper`" +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:92 +msgid ":guilabel:`Delivery Product`: `[SHIP] Flat`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:100 -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:158 -msgid ":doc:`../operation/invoicing`" +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:0 +msgid "Example of filling out a shipping method." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:101 +msgid "Based on rules" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:103 +msgid "To calculate the price of shipping based on pricing rules, set the :guilabel:`Provider` field to the :guilabel:`Based on Rules` option. Optionally, adjust :guilabel:`Margin on Rate` and :guilabel:`Additional margin` to include additional shipping costs." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:108 +msgid "Create pricing rules" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:110 +msgid "Navigate to the :guilabel:`Pricing` tab and click :guilabel:`Add a line`. Doing so opens the :guilabel:`Create Pricing Rules` window, where the :guilabel:`Condition` related to the product weight, volume, price, or quantity is compared to a defined amount to calculate the :guilabel:`Delivery Cost`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:115 +msgid "Once finished, click either :guilabel:`Save & New` to add another rule, or :guilabel:`Save & Close`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:118 +msgid "To charge customers $20 in shipping for orders with five or fewer products, set the :guilabel:`Condition` to `Quantity <= 5.00`, and the :guilabel:`Delivery Cost` to `$20`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:0 +msgid "Display window to add a pricing rule. Set a condition and delivery cost." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:125 +msgid "To restrict shipping to specific destinations on the eCommerce website, in the shipping method form, navigate to the :guilabel:`Destination Availability` tab and define the :guilabel:`Countries`, :guilabel:`States`, and :guilabel:`Zip Prefixes`. Leave these fields empty if all locations apply." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:130 +msgid "Calculate delivery cost" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:132 +msgid "Shipping cost is the :guilabel:`Delivery cost` specified in the rule that satisfies the :guilabel:`Condition`, plus any extra charges from the :guilabel:`Margin on rate` and :guilabel:`Additional margin`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:136 +msgid "Total = Rule's~Delivery~Cost + (Margin~on~rate \\times Rule's~Delivery~Cost) + Additional~margin\n" +"\n" +"" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:140 +msgid "With the two following rules set up:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:142 +msgid "If the order contains five or fewer products, shipping is $20" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:143 +msgid "If the order contains more than five products, shipping is $50." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:145 +msgid ":guilabel:`Margin on Rate` is `10%` and :guilabel:`Additional margin` is `$9.00`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:-1 +msgid "Show example of \"Based on rules\" shipping method with margins configured." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:151 +msgid "When the first rule is applied, the delivery cost is $31 (20 + (0.1 * 20) + 9). When the second rule is applied, the delivery cost is $64 (50 + (0.1 * 50) + 9)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:157 +msgid "Pickup in store" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:159 +msgid "To configure in-store pickup, select :guilabel:`Pickup in store` in the :guilabel:`Provider` field and specify the pickup location in :guilabel:`Warehouse`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:162 +msgid "To invoice the customer for the shipping cost to the pickup location, choose the :guilabel:`Get Rate and Create Shipment` option in the :guilabel:`Integration Level` field. Then, pick either the :guilabel:`Estimated cost` or :guilabel:`Real cost` radio options in the :guilabel:`Invoicing Policy` field to decide whether the added shipping charge on the sales order is the precise cost from the shipping carrier." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:169 +msgid ":ref:`Invoice cost of shipping `" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:174 +msgid "Add shipping" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:176 +msgid "Shipping methods can be added to sales orders in the form of delivery products, which appear as individual line items. First, navigate to the desired sales order by going to :menuselection:`Sales app --> Orders --> Orders`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:180 +msgid "On the sales order, click the :guilabel:`Add shipping` button, which opens the :guilabel:`Add a shipping method` pop-up window. Then, choose a :guilabel:`Shipping Method` from the list." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:183 +msgid "The :guilabel:`Total Order Weight` is pre-filled based on product weights (that are defined in the :guilabel:`Inventory` tab for each product form). Edit the field to specify the exact weight, and then click :guilabel:`Add` to add the shipping method." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:188 +msgid "The amount defined in :guilabel:`Total Order Weight` overwrites the total product weights defined on the product form." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:191 +msgid "The shipping cost is added to the *sales order line* as the :guilabel:`Delivery Product` detailed on the shipping method form." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:195 +msgid "`Furniture Delivery`, a delivery product with a fixed rate of `$200`, is added to sales order `S00088`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:0 +msgid "Show delivery order on the sales order line." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:203 +msgid "Delivery order" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:205 +msgid "The shipping method added to the sales order is linked to the shipping carrier details on the delivery order. To add or change the delivery method on the delivery itself, go to the :guilabel:`Additional Info` tab and modify the :guilabel:`Carrier` field." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/delivery_method.rst:-1 +msgid "Shipping carrier information on the delivery form." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/dhl_credentials.rst:3 @@ -7729,87 +8690,103 @@ msgstr "" msgid "How to integrate a third party shipper?" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:8 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:10 msgid "Odoo can handle various delivery methods, including third party shippers. Odoo can be linked with the transportation company tracking system. It will allow you to manage the transport company, the real prices and the destination." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:19 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:21 msgid "In the inventory module, click on :menuselection:`Configuration --> Settings`. Under **Shipping Connectors**, flag the transportation companies you want to integrate :" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:38 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:31 +msgid "If you want to integrate delivery methods in your e-commerce, you'll have to install the **eCommerce Delivery** module." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:40 msgid "The delivery methods for the chosen shippers have been automatically created. Most of the time, there will be **2** delivery methods for the same provider: one for **international** shipping and the other for **domestic** shipping." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:43 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:45 msgid "You can create other methods with the same provider with other configuration, for example the **Packaging Type**." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:46 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:48 msgid "You can change the **Name** of the delivery method. This is the name that will appear on your ecommerce." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:49 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:51 msgid "Flag **Shipping enabled** when you are ready to use it." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:54 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:56 msgid "In the pricing tab, the name of the provider chosen under the **Price computation** means that the pricing will be computed by the shipper system." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:57 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:59 msgid "The configuration of the shipper is split into two columns:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:59 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:61 msgid "The first one is linked to **your account** (developer key, password,...). For more information, please refer to the provider website." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:67 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:69 msgid "Finally you can limit the delivery method to a few destinations. You can limit it to some countries, states or even zip codes. This feature limits the list of countries on your e-commerce. It is useful for the domestic providers. For example, USPS US only delivers from the United States to the United States." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:95 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:97 msgid "Go the menu :menuselection:`Sales --> Sales --> Products`. Open the products you want to ship and set a weight on it." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:102 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:104 msgid "The weight on the product form is expressed in kilograms. Don't forget to make the conversion if you are used to the imperial measurement system." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:107 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:109 msgid "Sale process" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:115 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:112 +msgid "Sale order" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:117 msgid "You can now choose the carrier on your sale order. Click on **Delivery method** to choose the right one." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:118 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:120 msgid "The price is computed when you save the sale order or when you click on **Set price**." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:121 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:123 msgid "If you want to invoice the price of the delivery charge on the sale order, click on **Set price**, it will add a line with the name of the delivery method as a product. It may vary from the real price." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:125 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:127 msgid "Otherwise, the real price (computed when the delivery is validated) will automatically be added to the invoice. For more information, please read the document :doc:`../operation/invoicing`" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:132 +msgid "Delivery" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:134 msgid "The delivery created from the sale order will take the shipping information from it. You can change the carrier if you want to." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:141 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:143 msgid "The weight is computed based on the products weights. The shipping cost will be computed once the transfer is validated." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:144 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:146 msgid "Click on **Validate** to receive the tracking number. The **Carrier Tracking ref** field will automatically be filled. Click on the **Tracking** button to check your delivery on the provider website." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:159 +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:160 +msgid ":doc:`../operation/invoicing`" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/shipping/setup/third_party_shipper.rst:161 msgid ":doc:`../operation/labels`" msgstr "" @@ -8181,19 +9158,19 @@ msgstr "" msgid "Manufacturing product configuration" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:7 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:8 msgid "In order to manufacture a product in Odoo *Manufacturing*, the product must be properly configured. Doing so consists of enabling the *Manufacturing* route and configuring a bill of materials (BoM) for the product. Once these steps are completed, the product is selectable when creating a new manufacturing order." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:13 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:14 msgid "Activate the Manufacture route" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:15 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:16 msgid "The Manufacture route is activated for each product on its own product page. To do so, begin by navigating to :menuselection:`Manufacturing --> Products --> Products`. Then, select an existing product, or create a new one by clicking :guilabel:`New`." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:19 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:20 msgid "On the product page, select the :guilabel:`Inventory` tab, then enable the :guilabel:`Manufacture` checkbox in the :guilabel:`Routes` section. This tells Odoo the product can be manufactured." msgstr "" @@ -8201,15 +9178,15 @@ msgstr "" msgid "The Manufacturing route on the Inventory tab of a product page." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:27 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:28 msgid "Configure a bill of materials (BoM)" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:29 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:30 msgid "Next, a |BOM| must be configured for the product so Odoo knows how it is manufactured. A |BOM| is a list of the components and operations required to manufacture a product." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:32 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:33 msgid "To create a |BOM| for a specific product, navigate to :menuselection:`Manufacturing --> Products --> Products`, then select the product. On the product page, click the :guilabel:`Bill of Materials` smart button at the top of the page, then select :guilabel:`New` to configure a new |BOM|." msgstr "" @@ -8217,11 +9194,11 @@ msgstr "" msgid "The Bill of Materials smart button on a product page." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:40 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:41 msgid "On the |BOM|, the :guilabel:`Product` field auto-populates with the product. In the :guilabel:`Quantity` field, specify the number of units that the BoM produces." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:43 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:44 msgid "Add a component to the |BOM| by selecting the :guilabel:`Components` tab and clicking :guilabel:`Add a line`. Select a component from the :guilabel:`Component` drop-down menu, then enter the quantity in the :guilabel:`Quantity` field. Continue adding components on new lines until all components have been added." msgstr "" @@ -8229,11 +9206,11 @@ msgstr "" msgid "The Components tab on a bill of materials." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:52 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:53 msgid "Next, select the :guilabel:`Operations` tab. Click :guilabel:`Add a line` and a :guilabel:`Create Operations` pop-up window appears. In the :guilabel:`Operation` field, specify the name of the operation being added (e.g. Assemble, Cut, etc.). Select the work center where the operation will be carried out from the :guilabel:`Work Center` drop-down menu. Finally, click :guilabel:`Save & Close` to finish adding operations, or :guilabel:`Save & New` to add more." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:59 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:60 msgid "The :guilabel:`Operations` tab only appears if the :guilabel:`Work Orders` setting is enabled. To do so, navigate to :menuselection:`Manufacturing --> Configuration --> Settings`, then enable the :guilabel:`Work Orders` checkbox." msgstr "" @@ -8241,11 +9218,7 @@ msgstr "" msgid "The Operations tab on a bill of materials." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:67 -msgid "Learn more" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:69 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/configure_manufacturing_product.rst:70 msgid "The section above provides instructions for creating a basic |BOM| that allows a product to be manufactured in Odoo. However, it is by no means an exhaustive summary of all the options available when configuring a |BOM|. For more information about bills of materials, see the documentation on how to :ref:`create a bill of materials `." msgstr "" @@ -8459,6 +9432,9 @@ msgid "After confirming the manufacturing order, select the :guilabel:`Work Orde msgstr "" #: ../../content/applications/inventory_and_mrp/manufacturing/management/manufacturing_backorders.rst:-1 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:-1 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:-1 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:-1 msgid "The tablet view button for a work order on a manufacturing order." msgstr "" @@ -8554,6 +9530,150 @@ msgstr "" msgid "Once more screws are available, the manufacturing employee assembles the remaining chairs and clicks :guilabel:`Mark As Done And Close MO` to complete the *Assemble* work order and close the backorder manufacturing order." msgstr "" +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:3 +msgid "One-step manufacturing" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:9 +msgid "Odoo *Manufacturing* allows users to manufacture products using one, two, or three steps. When using one-step manufacturing, Odoo creates a manufacturing order (MO), but does not generate transfers for the movement of components out of inventory or finished products into stock. Inventory counts still update based on the number of components used and products manufactured, but the act of transferring them to and from inventory is not tracked." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:16 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:15 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:16 +msgid "The number of steps used in manufacturing is set at the warehouse level, allowing for each warehouse to use a different number of steps. To change the number of steps used for a specific warehouse, begin by navigating to :menuselection:`Inventory --> Configuration --> Warehouses`, and then select a warehouse from the :guilabel:`Warehouses` screen." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:21 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:20 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:21 +msgid "On the :guilabel:`Warehouse Configuration` tab, find the :guilabel:`Manufacture` radio input field, and select one of the three options: :guilabel:`Manufacture (1 step)`, :guilabel:`Pick components and then manufacture (2 steps)`, or :guilabel:`Pick components, manufacture and then store products (3 steps)`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:0 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:0 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:0 +msgid "The Manufacture radio input field on a warehouse configuration page." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:31 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:30 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:31 +msgid "Products must be properly configured before they can be manufactured in Odoo. For details on how to do so, see the documentation on how to :ref:`configure a product for manufacturing `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:36 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:35 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:36 +msgid "Create manufacturing order" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:38 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:37 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:38 +msgid "To manufacture a product in Odoo *Manufacturing*, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and then click :guilabel:`New` to create a new |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:42 +msgid "On the new |MO|, select the product to be produced from the :guilabel:`Product` drop-down menu. The :guilabel:`Bill of Material` field auto-populates with the associated bill of materials (BoM)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:45 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:44 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:45 +msgid "If a product has more than one |BOM| configured for it, the specific |BOM| can be selected in the :guilabel:`Bill of Material` field, and the :guilabel:`Product` field auto-populates with the associated product." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:49 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:48 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:49 +msgid "After a |BOM| has been selected, the :guilabel:`Components` and :guilabel:`Work Orders` tabs auto-populate with the components and operations specified on the |BOM|. If additional components or operations are required for the |MO| being configured, add them to the :guilabel:`Components` and :guilabel:`Work Orders` tabs by clicking :guilabel:`Add a line`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:55 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:80 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:77 +msgid "Process manufacturing order" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:57 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:82 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:79 +msgid "An |MO| is processed by completing all of the work orders listed under its :guilabel:`Work Orders` tab. This can be done on the |MO| itself, or from the work order tablet view." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:61 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:86 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:83 +msgid "Basic workflow" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:63 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:85 +msgid "To complete work orders from the |MO| itself, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and then select an |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:66 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:91 +msgid "On the |MO| page, select the :guilabel:`Work Orders` tab. Once work begins on the first work order that needs to be completed, click the :guilabel:`Start` button for that work order. Odoo *Manufacturing* then starts a timer that keeps track of how long the work order takes to complete." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:-1 +msgid "The Start button for an operation on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:74 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:99 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:96 +msgid "When the work order is completed, click the :guilabel:`Done` button for that work order. Repeat the same process for each work order listed on the :guilabel:`Work Orders` tab." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:-1 +msgid "The Done button for an operation on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:81 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:106 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:103 +msgid "After completing all of the work orders, click :guilabel:`Produce All` at the top of the screen to mark the |MO| as :guilabel:`Done`, and register the manufactured product(s) into inventory." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:85 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:110 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:107 +msgid "Tablet view workflow" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:87 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:112 +msgid "To complete the work orders for an |MO| using the tablet view, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and then select a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:91 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:116 +msgid "Next, click on the :guilabel:`Work Orders` tab, and then select the :guilabel:`📱 (tablet)` button on the line of the first work order to be processed. This opens the tablet view." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:98 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:123 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:119 +msgid "After opening the tablet view, Odoo *Manufacturing* automatically starts a timer that keeps track of how long the work order takes to complete. After completing the work order, click the :guilabel:`Mark as Done` button in the top-right corner of the tablet view." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:102 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:127 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:123 +msgid "Clicking :guilabel:`Mark as Done` while there is at least one more work order left to complete opens a page that lists the next work order. Click on that work order to open it in the tablet view." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:105 +msgid "Once the final work order for the |MO| has been reached, a :guilabel:`Mark as Done and Close MO` button appears on the tablet view in addition to the :guilabel:`Mark as Done` button. Click :guilabel:`Mark as Done and Close MO` to mark the |MO| as :guilabel:`Done` and register the manufactured product(s) into inventory." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/one_step_manufacturing.rst:110 +msgid "It is also possible to complete the final operation while keeping the |MO| open, by clicking :guilabel:`Mark as Done`. In this case, the |MO| can be closed later by clicking the :guilabel:`Produce All` button on the order." +msgstr "" + #: ../../content/applications/inventory_and_mrp/manufacturing/management/product_variants.rst:3 msgid "Managing BoMs for product variants" msgstr "" @@ -8614,10 +9734,6 @@ msgstr "" msgid "Odoo *Manufacturing* allows for both components and finished products to be scrapped within a manufacturing order. The specific type of item that can be scrapped during a manufacturing order depends on the stage of the manufacturing process." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/scrap_manufacturing.rst:19 -msgid "Scrap orders can be viewed by navigating to :menuselection:`Inventory --> Operations --> Scrap`. Each scrap order shows the date and time the order was created, along with the product and quantity that was scrapped." -msgstr "" - #: ../../content/applications/inventory_and_mrp/manufacturing/management/scrap_manufacturing.rst:23 msgid "To view the total quantity of each item scrapped, navigate to :menuselection:`Inventory --> Configuration --> Locations`, then remove the :guilabel:`Internal` filter from the :guilabel:`Search...` bar to display all virtual locations. From the list, select the :guilabel:`Virtual Locations/Scrap` location." msgstr "" @@ -8702,6 +9818,86 @@ msgstr "" msgid "If five units of a chair were manufactured, but two units were scrapped after manufacturing was completed, then the on-hand inventory of the chair will increase by three: five units manufactured minus two units scrapped." msgstr "" +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:3 +msgid "Split and merge manufacturing orders" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:5 +msgid "In Odoo *Manufacturing*, it is possible to create manufacturing orders for a single unit of an item, or multiple units of the same item. In some cases, it may be necessary to split a manufacturing order that contains multiple units into two or more orders, or to merge two or more orders into a single order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:11 +msgid "A manufacturing order can only contain one unit of a product, or multiple units of a single product that all use the same Bill of Materials (BoM). As a result, it is only possible to merge manufacturing orders when every order contains the same product being manufactured with the same BoM." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:17 +msgid "Split manufacturing orders" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:19 +msgid "To split a manufacturing order into multiple orders, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, then select a manufacturing order. At the top of the page, next to the :guilabel:`New` button, the manufacturing order's reference number appears with a :guilabel:`⚙️ (settings)` button next to it." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:24 +msgid "Click the :guilabel:`⚙️ (settings)` button to open the general settings for the manufacturing order, then select :guilabel:`Split`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:-1 +msgid "The Settings and Split buttons on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:31 +msgid "After selecting :guilabel:`Split`, a :guilabel:`Split production` pop-up window appears. In the :guilabel:`Split #` field, enter the number of manufacturing orders that the original order should be split into, then click outside of the field. A table appears below, with a line for each new manufacturing order that will be created by the split. In the :guilabel:`Quantity To Produce` column, enter the number of units that will be assigned to each new manufacturing order. Finally, click :guilabel:`Split` to split the manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:-1 +msgid "The Split production pop-up window for a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:42 +msgid "After clicking :guilabel:`Split`, the original manufacturing order is split into the number of orders that was specified in the :guilabel:`Split #` field. The reference numbers for the new manufacturing orders are the reference number for the original order with *-###* tags added to the end." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:48 +msgid "Manufacturing order *WH/MO/00012* is split into three separate orders. The reference numbers for the new orders are *WH/MO/00012-001*, *WH/MO/00012-002*, and *WH/MO/00012-003*." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:52 +msgid "Merge manufacturing orders" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:54 +msgid "To merge two or more manufacturing orders into a single order, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`. Select the manufacturing orders that will be merged by activating the checkbox to the left of the name of each order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:-1 +msgid "Select manufacturing orders that will be merged by clicking the checkbox for each." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:62 +msgid "Once all manufacturing orders have been selected, click the :guilabel:`Actions` button at the top of the page, then select :guilabel:`Merge` from the drop-down menu." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:-1 +msgid "The Actions and Merge buttons on the Manufacturing Orders page." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:69 +msgid "The selected manufacturing orders are merged into a single order. The reference number for the new manufacturing order is the next sequential number that has *not* already been assigned to an order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:73 +msgid "The last reference number used for a manufacturing order was *WH/MO/00012*. Two manufacturing orders, *WH/MO/00008* and *WH/MO/00009*, are merged into a single order. The reference number for the manufacturing order created by the merger is *WH/MO/00013*." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:77 +msgid "In the :guilabel:`Source` field for the manufacturing order created by the merger, the reference numbers of the manufacturing orders that were merged are listed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/split_merge.rst:81 +msgid "Manufacturing orders *WH/MO/00009* and *WH/MO/00010* are merged to create *WH/MO/00011*. The source field for *WH/MO/00011* lists both *WH/MO/00009* and *WH/MO/00010*." +msgstr "" + #: ../../content/applications/inventory_and_mrp/manufacturing/management/sub_assemblies.rst:3 msgid "Manage semi-finished products" msgstr "" @@ -8974,99 +10170,214 @@ msgstr "" msgid "Alternatively, you can also manually ask your vendor to resupply your subcontractor by creating a dropship type PO, with your subcontractor set as the delivery address." msgstr "" +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:3 +msgid "Three-step manufacturing" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:9 +msgid "Odoo *Manufacturing* allows users to manufacture products using one, two, or three steps. When using three-step manufacturing, Odoo creates a pick components transfer, a manufacturing order (MO), and a store finished products transfer, and updates inventory counts based on the number of components removed, and finished products created." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:41 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:42 +msgid "On the new |MO|, select the product to be produced from the :guilabel:`Product` drop-down menu. The :guilabel:`Bill of Material` field auto-populates with the associated Bill of Materials (BoM)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:53 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:54 +msgid "Finally, click :guilabel:`Confirm` to confirm the |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:56 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:57 +msgid "Process pick components transfer" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:58 +msgid "After confirming a three-step |MO|, a :guilabel:`Transfers` smart button appears at the top of the page. Click it to be taken to the :guilabel:`Transfers` page for the |MO|. The page lists two transfers: *WH/PC/XXXXX* (the pick components transfer), and *WH/SFP/XXXXX* (the store finished products transfer)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:63 +msgid "Select :guilabel:`WH/PC/XXXXX` to open the pick components transfer for the |MO|. This transfer is used to track the movement of components from the locations where they are stored to the location where they are used to manufacture the product." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:67 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:64 +msgid "After transferring the components out of their storage location, click :guilabel:`Validate` at the top of the transfer, followed by :guilabel:`Apply` on the :guilabel:`Immediate Transfer?` pop-up window that appears. Doing so marks the transfer as :guilabel:`Done`, and updates inventory counts to reflect the quantity of components transferred." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:72 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:69 +msgid "Finally, return to the |MO| by clicking the :guilabel:`WH/MO/XXXXX` breadcrumb at the top of the page." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:-1 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:-1 +msgid "The manufacturing order bread crumb on a pick components transfer." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:88 +msgid "To complete work orders from the |MO| itself, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and then select a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:-1 +msgid "The Start button for a work order on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:-1 +msgid "The Done button for an work order on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:130 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:126 +msgid "Once the final work order for the |MO| has been reached, a :guilabel:`Mark as Done and Close MO` button appears on the tablet view in addition to the :guilabel:`Mark as Done` button. Click :guilabel:`Mark as Done and Close MO` to mark the |MO| as :guilabel:`Done`, and register the manufactured product(s) into inventory." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:135 +msgid "It is also possible to complete the final work order while keeping the |MO| open, by clicking :guilabel:`Mark as Done`. In this case, the |MO| can be closed at a later time by clicking the :guilabel:`Produce All` button on the |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:140 +msgid "Process finished product transfer" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:142 +msgid "After completing the |MO|, return to the order's :guilabel:`Transfers` page by clicking the :guilabel:`Transfers` button at the top of the order. This time, select :guilabel:`WH/SFP/XXXXX` to open the store finished products transfer. This transfer is used to track the movement of finished products from the location where they were manufactured to the location where they are stored." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/three_step_manufacturing.rst:147 +msgid "After transferring the finished products to their storage location, click :guilabel:`Validate` at the top of the transfer, followed by :guilabel:`Apply` on the :guilabel:`Immediate Transfer?` pop-up window that appears. Doing so marks the transfer as :guilabel:`Done`, and updates inventory counts to reflect the quantity of finished products transferred." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:3 +msgid "Two-step manufacturing" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:9 +msgid "Odoo *Manufacturing* allows users to manufacture products using one, two, or three steps. When using two-step manufacturing, Odoo creates a manufacturing order (MO) and a pick components transfer, but does not generate a transfer for the movement of finished products into stock. Inventory counts still update based on the number of products manufactured, but the act of transferring them to and from inventory is not tracked." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:59 +msgid "After confirming a two-step |MO|, a :guilabel:`Transfers` smart button appears at the top of the page. Click it to open the pick components transfer for the |MO|. This transfer is used to track the movement of components from the locations where they are stored to the location where they are used to manufacture the product." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:88 +msgid "On the |MO| page, select the :guilabel:`Work Orders` tab. Once work begins on the first work order that needs to be completed, click the :guilabel:`Start` button for that operation. Odoo *Manufacturing* then starts a timer that keeps track of how long the work order takes to complete." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:-1 +msgid "The Start button for an work order on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:-1 +msgid "The Done button for a work order on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:109 +msgid "To complete the work orders for an |MO| using the tablet view, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and then select an |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:112 +msgid "Next, click on the :guilabel:`Work Orders` tab, then select the :guilabel:`📱 (tablet)` button on the line of the first work order to be processed. This opens the tablet view." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/two_step_manufacturing.rst:131 +msgid "It is also possible to complete the final operation while keeping the |MO| open, by clicking :guilabel:`Mark as Done`. In this case, the |MO| can be closed at a later time by clicking the :guilabel:`Produce All` button on the order." +msgstr "" + #: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:3 msgid "Use the Master Production Schedule" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:5 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:7 msgid "The Master Production Schedule (MPS) is a valuable tool to plan your production based on your demand forecast." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:11 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:13 msgid "Go to the :menuselection:`Manufacturing app --> Configuration --> Settings` and activate the Master Production Schedule feature before hitting save." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:15 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:17 msgid "In the MPS settings, you can define the time range of your MPS (month/week/day) and the number of periods you want to display at all times." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:18 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:20 msgid "Now, go to :menuselection:`Planning --> Master Production Schedule` and click on *add a product*. You can now define your safety stock target (= the stock you want to have on hand at the end of the period) and the minimum and maximum quantities that must or can be replenished in each period." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:26 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:28 msgid "In the MPS view, you can decide which information you would like to display by clicking on *rows*. For instance, the *Actual demand* will show you which quantity of products has already been ordered for the period, or *Available to Promise*, what can still be sold during that same period (what you plan to replenish - what is already sold during the period). You can also decide to hide rows if you like." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:36 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:38 msgid "Estimate your demand and launch replenishment" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:38 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:40 msgid "The next step is to estimate the demand for the chosen period. This is done in the *Forecasted Demand* Row. You can easily, at any time, compare the demand forecast with the actual demand (= confirmed sales). The demand forecast for a finished product will impact the indirect demand for its components." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:46 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:48 msgid "Once the forecasted demand has been set, the quantity to replenish for the different periods will automatically be computed. The replenishments you are supposed to launch based on your lead times (vendor lead time or manufacturing lead time) are then displayed in green. You can now launch the replenishment by clicking on the replenish button." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:52 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:54 msgid "Depending on the configuration of the product (buy vs. manufacture), requests for quotations or manufacturing orders will be created. You can easily access those by clicking on the *Actual Replenishment* cell." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:59 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:61 msgid "In case you manually edit the *Suggested Replenishment* quantity, a small cross will appear on the left hand side of the cell. In case you want to go back to the automatically computed value given by Odoo, simply click the cross." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:65 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:67 msgid "Cells color signification" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:67 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:69 msgid "The cells, which are part of the *Suggested Replenishment* line, can take different colors depending on the situation:" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:70 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:72 msgid "**Green**: quantity of products which should be replenished to reach the expected safety stock considering the demand forecast and the indirect demand forecast." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:72 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:74 msgid "**Grey**: replenishment order has already been generated, and its quantity still matches current data." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:74 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:76 msgid "**Red**: replenishment order has already been generated, and its quantity was too high considering current data." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:76 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:78 msgid "**Orange**: replenishment order has already been generated, and its quantity was too low considering current data." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:78 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:80 msgid "The *Forecasted stock* line can also contain red cells, which means the stock will be negative during the period in question." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:82 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:84 msgid "What if I have underestimated the demand?" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:84 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:86 msgid "You can still increase the demand forecast. It will impact the quantity to replenish. The cell will become orange, and you’ll be able to launch a new replenishment." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:89 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:91 msgid "What if I have overestimated the demand?" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:91 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:93 msgid "You can decrease the demand forecast. The cell will become red to inform you that you’ve ordered more than planned. If you’re still able to do it, you can cancel some RFQ or MO manually." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:96 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:98 msgid "What if I wrongly added a product to the MPS?" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:98 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/use_mps.rst:100 msgid "You can easily remove a product from the MPS by clicking the small bin on the right of its name." msgstr "" @@ -9114,39 +10425,39 @@ msgstr "" msgid "An example of a fully configured work center form." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:35 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:37 msgid "Set standards for work center productivity" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:37 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:39 msgid "The :guilabel:`General Information` tab on the work center form allows for productivity goals to be assigned to a work center:" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:40 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:42 msgid ":guilabel:`Time Efficiency`: used to calculate the expected duration of a work order at the work center; for example, if a work order normally takes one hour and the efficiency is set to 200%, the work order will take 30 minutes" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:43 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:45 msgid ":guilabel:`Capacity`: the number of operations that can be performed at the work center simultaneously" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:45 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:47 msgid ":guilabel:`OEE Target`: the target for efficiency at the work center" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:46 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:48 msgid ":guilabel:`Time before prod.`: setup time required before work can commence" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:47 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:49 msgid ":guilabel:`Time after prod.`: breakdown or cleanup time required after work is finished" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:48 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:50 msgid ":guilabel:`Cost per hour`: the cost of operating the work center for one hour" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:49 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:51 msgid ":guilabel:`Analytic Account`: the account where the cost of the work center should be recorded" msgstr "" @@ -9154,35 +10465,35 @@ msgstr "" msgid "The general information tab of the work center form." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:56 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:58 msgid "Assign equipment to a work center" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:58 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:60 msgid "Using the :guilabel:`Equipment` tab, it is possible for specific pieces of equipment to be assigned to a work center. The following information will be displayed for each piece of equipment added:" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:61 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:63 msgid ":guilabel:`Equipment Name`: the name of the piece of equipment" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:62 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:64 msgid ":guilabel:`Technician`: the technician responsible for servicing the equipment" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:63 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:65 msgid ":guilabel:`Equipment Category`: the category the equipment belongs to" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:64 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:66 msgid ":guilabel:`MTBF`: mean time between failures; the average time that the piece of equipment will operate before failing" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:66 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:68 msgid ":guilabel:`MTTR`: mean time to recovery; the average time it takes for the equipment to become fully operational again" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:68 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:70 msgid ":guilabel:`Est. Next Failure`: an estimate of when the next equipment failure will occur" msgstr "" @@ -9190,27 +10501,27 @@ msgstr "" msgid "The equipment tab of the work center form." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:75 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:77 msgid ":guilabel:`MTBF`, :guilabel:`MTTR`, and :guilabel:`Est. Next Failure` are all calculated automatically based on past failure data, if any exists." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:81 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:83 msgid "Integrate IoT devices" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:83 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:85 msgid "The :guilabel:`IoT Triggers` tab enables the integration of :abbr:`IoT (Internet of Things)` devices with a work center:" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:86 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:88 msgid ":guilabel:`Device`: specifies the IoT device to be triggered" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:87 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:89 msgid ":guilabel:`Key`: the security key for the device" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:88 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:90 msgid ":guilabel:`Action`: the IoT device action triggered" msgstr "" @@ -9218,19 +10529,19 @@ msgstr "" msgid "The IoT Triggers tab of the work center form." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:95 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:97 msgid "Use case: configure an alternative work center" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:97 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:99 msgid "When a work center is at capacity, it cannot accept any new work orders. Instead of waiting for the work center to become available, it is possible to specify an alternative work center where surplus work orders should be carried out." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:101 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:103 msgid "Begin by creating a new work center. Configure the :guilabel:`Equipment` tab so that it has all of the same equipment as the main work center. This will ensure that the same tasks can be carried out at both work centers. Navigate to the main work center and include the new work center in the :guilabel:`Alternative Workcenters` selection field." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:106 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:108 msgid "Now, create a new manufacturing order that uses the main work center for one of its operations. The main work center will automatically be selected for the operation in the :guilabel:`Work Orders` tab. After confirming the manufacturing order, click the :guilabel:`Plan` button that appears at the top left of the form." msgstr "" @@ -9238,7 +10549,7 @@ msgstr "" msgid "Click the plan button to automatically select an available work center." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:115 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:117 msgid "If the main work center is at capacity, the work center selected for the operation will be automatically changed to the alternative work center." msgstr "" @@ -9246,27 +10557,27 @@ msgstr "" msgid "The alternative work center is automatically selected." msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:123 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:125 msgid "Monitor work center performance" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:125 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:127 msgid "Performance for an individual work center can be viewed by selecting :menuselection:`Configuration --> Work Centers`, and clicking on a work center. A variety of metrics showing work center performance can be viewed at the top right of the form:" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:129 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:131 msgid ":guilabel:`OEE`: overall effective efficiency, the percentage of time that the work center has been fully productive" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:131 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:133 msgid ":guilabel:`Lost`: the amount of time lost due to work stoppages" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:132 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:134 msgid ":guilabel:`Load`: the amount of time it will take to complete the current workload" msgstr "" -#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:133 +#: ../../content/applications/inventory_and_mrp/manufacturing/management/using_work_centers.rst:135 msgid ":guilabel:`Performance`: the real duration of work time, shown as a percentage of the expected duration" msgstr "" @@ -9386,6 +10697,340 @@ msgstr "" msgid "Once the time-off period for the unavailable work center ends, Odoo recognizes that the work center is available again. At this point, clicking the :guilabel:`Plan` button does not route work orders to an alternative work center unless the first one is at capacity." msgstr "" +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:3 +msgid "Work order dependencies" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:7 +msgid "When manufacturing certain products, specific operations may need to be completed before others can begin. In order to ensure operations are carried out in the correct order, Odoo *Manufacturing* features a *work order dependencies* setting. Enabling this setting allows for operations on a Bill of Materials (BoM) to be *blocked* by other operations that should occur first." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:15 +msgid "The *work order dependencies* setting is not enabled by default. To enable it, begin by navigating to :menuselection:`Manufacturing --> Configuration --> Settings`. Then, enable the :guilabel:`Work Orders` setting, if it is not already active." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:19 +msgid "After enabling the :guilabel:`Work Orders` setting, the :guilabel:`Work Order Dependencies` setting appears below it. Enable :guilabel:`Work Order Dependencies`, then click :guilabel:`Save` to confirm the changes." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:24 +msgid "Add dependencies to BoM" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:26 +msgid "Work order dependencies are configured on a product's |BOM|. To do so, navigate to :menuselection:`Manufacturing --> Products --> Bills of Materials`, then select a |BOM|, or create a new one by clicking :guilabel:`New`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:32 +msgid "For a complete guide on how to properly configure a new |BOM|, see the documentation on :ref:`creating a bill of materials `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:35 +msgid "On the |BOM|, click on the :guilabel:`Miscellaneous` tab, then enable the :guilabel:`Operation Dependencies` checkbox. This makes a new :guilabel:`Blocked By` option available in the settings of the :guilabel:`Operations` tab." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:-1 +msgid "The Operation Dependencies checkbox on the Miscellaneous tab of a BoM." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:43 +msgid "Next, click on the :guilabel:`Operations` tab. On the top-right of the tab, click on the tab's :guilabel:`settings` button, then enable the :guilabel:`Blocked By` checkbox. This makes a :guilabel:`Blocked By` field appear for each operation on the :guilabel:`Operations` tab." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:-1 +msgid "The settings for the Operations tab on a BoM." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:51 +msgid "In the line of the operation that should be blocked by another operation, click the :guilabel:`Blocked By` field, and an :guilabel:`Open: Operations` pop-up window appears. In the :guilabel:`Blocked By` drop-down field on the pop-up window, select the blocking operation that must be completed *before* the operation that is blocked." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:-1 +msgid "The Blocked By drop-down field for an operation on a BoM." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:60 +msgid "Finally, save the |BOM| by clicking :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:63 +msgid "Plan work orders using dependencies" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:65 +msgid "Once work order dependencies have been configured on a |BOM|, Odoo *Manufacturing* is able to plan when work orders are scheduled, based on their dependencies. To plan the work orders for a manufacturing order, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:70 +msgid "Next, select a manufacturing order for a product with work order dependencies set on its |BOM|, or create a new manufacturing order by clicking :guilabel:`New`. If a new manufacturing order is created, select a |BOM| configured with work order dependencies from the :guilabel:`Bill of Material` drop-down field, then click :guilabel:`Confirm`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:75 +msgid "After confirming the manufacturing order, select the :guilabel:`Work Orders` tab to view the work orders required to complete it. Any work orders that are *not* blocked by a different work order display a `Ready` tag in the :guilabel:`Status` section." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:79 +msgid "Work orders that are blocked by one or more work orders display a `Waiting for another WO` tag instead. Once the blocking work order(s) are completed, the tag updates to `Ready`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:-1 +msgid "The status tags for work orders on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:86 +msgid "To schedule the manufacturing order's work orders, click the :guilabel:`Plan` button at the top of the page. After doing so, the :guilabel:`Scheduled Start Date` field for each work order on the :guilabel:`Work Orders` tab auto-fills with the scheduled start date and time. A blocked work order is scheduled at the end of the time period specified in the :guilabel:`Expected Duration` field of the work order that precedes it." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:-1 +msgid "The Scheduled Start Date field for work orders on a manufacturing order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:97 +msgid "A manufacturing order is created for Product A. The manufacturing order has two operations: Cut and Assemble. Each operation has an expected duration of 60 minutes, and the Assemble operation is blocked by the Cut operation." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:101 +msgid "The :guilabel:`Plan` button for the manufacturing order is clicked at 1:30 pm, and the Cut operation is scheduled to begin immediately. Since the Cut operation has an expected duration of 60 minutes, the Assemble operation is scheduled to begin at 2:30 pm." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:106 +msgid "Planning by workcenter" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:108 +msgid "To see a visual representation of how work orders are planned, navigate to the :guilabel:`Work Orders Planning` page by going to :menuselection:`Manufacturing --> Planning --> Planning by Workcenter`. This page shows a timeline of all the work orders scheduled for each operation." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:112 +msgid "If one work order is blocked by the completion of another, the work order that is blocked is shown as scheduled to start after the work order blocking it. In addition, an arrow connects the two work orders, leading from the blocking operation to the blocked operation." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/management/work_order_dependencies.rst:-1 +msgid "The arrow connecting a blocked work order to the work order blocking it." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor.rst:5 +msgid "Shop Floor" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:3 +msgid "Shop Floor overview" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:9 +msgid "The *Shop Floor* module is a companion module to the *Manufacturing* app. *Shop Floor* provides a visual interface for processing manufacturing orders (MOs) and work orders. It also allows manufacturing employees to track the amount of time spent working on manufacturing and work orders." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:13 +msgid "The *Shop Floor* module is installed alongside the *Manufacturing* app. It cannot be installed by itself. To install the *Manufacturing* app, navigate to :menuselection:`Apps`, search for `manufacturing` in the :guilabel:`Search...` bar, and then click :guilabel:`Install` on the :guilabel:`Manufacturing` app card." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:19 +msgid "The *Shop Floor* module replaces the tablet view functionality of the *Manufacturing* app, and is only available in Odoo versions 16.4 and later." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:22 +msgid "To check the version number of an Odoo database, navigate to :menuselection:`Settings` and scroll down to the :guilabel:`About` section at the bottom of the page. The version number is displayed there." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:26 +msgid "To switch to a newer version of Odoo, see the documentation on :ref:`upgrading a database `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:30 +msgid "Navigation" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:32 +msgid "*Shop Floor* is broken down into three main views, which can be selected from the navigation bar at the top of the module:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:35 +msgid "The :guilabel:`All` page serves as the main dashboard for the module, and displays information cards for |MOs|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:37 +msgid "Each work center also has a dedicated page, which shows information cards for work orders assigned to that work center. Work center pages can be toggled on or off by clicking the :guilabel:`+ (plus)` button in the navigation bar, selecting or deselecting them on the pop-up window that appears, and then clicking :guilabel:`Confirm`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:41 +msgid "The :guilabel:`My` page shows information cards for all work orders assigned to the employee whose profile is currently active in the operator panel on the left side of the module. Other than only showing work orders assigned to the active employee, this page functions the same as the pages for each work center." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:47 +msgid "To isolate an |MO| or work order, so that no other orders appear, simply search the reference number of the |MO| in the :guilabel:`Search...` bar at the top of the module. This search filter remains active while switching between the different module views." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:51 +msgid "On the left side of the module is the operator panel, which shows all of the employees currently signed in to *Shop Floor*, and allows new employees to sign in. The operator panel is always available in the module, regardless of which view is selected. It can be toggled on or off by clicking the :guilabel:`sidebar` button at the extreme left of the navigation bar." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:-1 +msgid "The \"sidebar\" button, which is used to toggle the operator panel on or off." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:61 +msgid "All page" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:63 +msgid "By default, the :guilabel:`All` page shows an information card for every |MO| that is *ready to start*. An |MO| is considered ready to start once it has been confirmed, and all required components are available." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:67 +msgid "To view every confirmed |MO| regardless of readiness, click the :guilabel:`x` button on the :guilabel:`Ready to Start` filter to remove it from the :guilabel:`Search...` bar." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:71 +msgid "MO information card" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:73 +msgid "An |MO| information card on the :guilabel:`All` page shows all of the relevant details of the associated |MO|, and also provides employees with options for processing the |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:76 +msgid "The header for an |MO| card shows the |MO| number, the product and number of units being produced, and the status of the |MO|. If work has not yet begun on the |MO|, the status appears as :guilabel:`Confirmed`. Once work has begun, the status updates to :guilabel:`In Progress`. If all work orders for an |MO| have been completed and the |MO| is ready to close, the status updates to :guilabel:`To Close`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:82 +msgid "The main body of an |MO| card shows a line for each completed work order, if any, followed by the current work order that needs to be completed. Completed work orders are indicated by a green check mark to the right of title of the work order. The current work order is indicated by a button that opens the page for the work center to which the order is assigned." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:87 +msgid "Below the current work order is a line titled :guilabel:`Register Production`, which is used to record the number of product units produced. To manually enter the number of units produced, click on the :guilabel:`Register Production` line, enter a value in the :guilabel:`Units` field of the resulting pop-up window, then click :guilabel:`Validate`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:92 +msgid "Alternatively, click the :guilabel:`# Units` button on the right side of the line, which automatically records the number of units the |MO| was created for as the number of units produced. For example, if an |MO| is created for 10 units of a dining table, clicking the :guilabel:`10 units` button records that 10 units were produced." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:97 +msgid "The footer of the |MO| card displays a :guilabel:`Close Production` button. This is used to close the |MO| once production is completed. However, if there are any quality checks required for the |MO| as a whole (not the work orders within it), a :guilabel:`Quality Checks` button appears instead. Clicking :guilabel:`Quality Checks` opens a pop-up window, from which any required quality checks can be completed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:103 +msgid "After clicking :guilabel:`Close Production`, the |MO| card begins to fade away, and an :guilabel:`Undo` button appears on the footer. Clicking :guilabel:`Undo` causes the |MO| to remain open. Once the |MO| card disappears completely, the work order is closed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:107 +msgid "On the right side of the footer is an :guilabel:`⋮ (options)` button, which opens a pop-up window with additional options for the |MO|:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:110 +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:171 +msgid ":guilabel:`Scrap` is used to send components to a scrap location when they are found to be defective." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:112 +msgid ":guilabel:`Add Work Order` is used to add an additional work order to the |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:113 +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:173 +msgid ":guilabel:`Add Component` is used to add an additional component to the |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:114 +msgid ":guilabel:`Open Backend MO` opens the |MO| in the Manufacturing app." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:-1 +msgid "An information card for an MO on the \"All\" page of the Shop Floor module." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:121 +msgid "Work center pages" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:123 +msgid "By default, the page for each work center shows an information card for every work order assigned to it that is *ready to start*. A work order is considered ready to start once the |MO| it is a part of is ready to start, and any preceding work orders have been completed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:127 +msgid "To view every confirmed work order assigned to a work center regardless of readiness, click the :guilabel:`x` button on the :guilabel:`Ready to Start` filter to remove it from the :guilabel:`Search...` bar." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:132 +msgid "Work order information card" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:134 +msgid "A work order information card on a work center's page shows all of the relevant details of the associated work order, and also provides employees with options for processing the work order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:137 +msgid "The header for a work order card shows the reference number of the |MO| that the work order is a part of, the product and number of units being produced, and the status of the work order. If work has not yet begun on the work order, the status appears as :guilabel:`To Do`. Once work has begun, the status updates to display a timer showing the total time the work order has been worked on." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:142 +msgid "The main body of a work order card shows a line for each step required to complete the work order. Work order steps can be completed by clicking on the line, then following the instructions on the pop-up window that appears. Alternatively, clicking the checkbox on the right side of each line automatically marks the step as completed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:147 +msgid "Below the final step of the work order is a line titled :guilabel:`Register Production`, which functions the same as the :guilabel:`Register Production` line on an |MO| card. Registering the number of units produced using the :guilabel:`Register Production` line on a work order card also completes the step for the associated |MO| card." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:152 +msgid "If the work order being processed is the final work order for the |MO|, a :guilabel:`Close Production` button appears on the footer of the work order card. Clicking :guilabel:`Close Production` closes both the work order and the |MO|, unless a quality check is required for the |MO|. In this case, the quality check must be completed from the |MO| card before the |MO| can be closed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:158 +msgid "Alternatively, if the |MO| requires the completion of additional work orders, a :guilabel:`Mark as Done` button appears instead. Clicking :guilabel:`Mark as Done` marks the current work order as completed, and causes the next work order to appear on the page for the work center it is assigned to." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:163 +msgid "After clicking :guilabel:`Close Production` or :guilabel:`Mark as Done`, the work order card begins to fade away, and an :guilabel:`Undo` button appears on the footer. Clicking :guilabel:`Undo` causes the work order to remain open. Once the work order card disappears completely, the work order is marked as :guilabel:`Finished` on the |MO|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:168 +msgid "On the right side of the footer is an :guilabel:`⋮ (options)` button, which opens a pop-up window with additional options for the work order:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:174 +msgid ":guilabel:`Move to work center` is used to transfer the work order to a different work center." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:175 +msgid ":guilabel:`Suggest a Worksheet improvement` allows the user to propose a change to the work order's instructions or steps." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:177 +msgid ":guilabel:`Create a Quality Alert` opens a quality alert form that can be filled out to alert a quality team about a potential issue." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:-1 +msgid "An information card for a work order in the Shop Floor module." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:185 +msgid "Operator panel" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:187 +msgid "The operator panel is used to manage the employees that are signed in to the *Shop Floor* module. The panel shows the name and profile picture of every employee that is currently signed in across all instances of the database." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:191 +msgid "To interact with *Shop Floor* as a specific employee, click the employee's name to activate their profile. Profiles that are not active appear with their names and profile pictures greyed-out." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:194 +msgid "When an employee is selected in the operator panel, they can begin working on a work order by clicking the work order's heading. If an employee is working on one or more work orders, the work order title(s) appear under their name, along with a timer showing how long they've been working on each order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:199 +msgid "To add a new employee to the operator panel, click the :guilabel:`+ Add Operator` button at the bottom of the panel. Then, select an employee from the :guilabel:`Select Employee` pop-up window." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:202 +msgid "To remove an employee from the operator panel, simply click the :guilabel:`x` button next to their name in the panel." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/shop_floor/shop_floor_overview.rst:-1 +msgid "The operator panel of the Shop Floor module, showing three employees signed in." +msgstr "" + #: ../../content/applications/inventory_and_mrp/plm.rst:8 msgid "Product lifecycle management" msgstr "" @@ -9965,7 +11610,7 @@ msgid "\"Show Instructions\" icon in the *Operations* tab of a BoM." msgstr "" #: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:353 -msgid "On the :ref:`quality control point ` form, ensure the following form fields are accurately filled out to give detailed instructions for operators:" +msgid "On the :ref:`quality control point ` form, ensure the following form fields are accurately filled out to give detailed instructions for operators:" msgstr "" #: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:356 @@ -9977,18 +11622,18 @@ msgid ":guilabel:`Control per`: using the drop-down menu, determine whether this msgstr "" #: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:360 -msgid ":guilabel:`Type`: categorizes the control point type. From the drop-down menu, select :guilabel:`Instructions` to detail an instruction for the worker. To receive input from the workers, select the :guilabel:`Take a Picture`, :guilabel:`Register Consumed Materials`, :guilabel:`Print Label`, or other :ref:`quality check options `." +msgid ":guilabel:`Type`: categorizes the control point type. From the drop-down menu, select :guilabel:`Instructions` to detail an instruction for the worker. To receive input from the workers, select the :guilabel:`Take a Picture`, :guilabel:`Register Consumed Materials`, :guilabel:`Print Label`, or other :ref:`quality check options `." msgstr "" -#: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:366 -msgid ":ref:`Configure quality control points `" +#: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:367 +msgid ":ref:`Configure quality control points `" msgstr "" -#: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:368 +#: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:369 msgid "Once the quality control point is configured, return to the :guilabel:`Steps` list using the breadcrumbs. Finally, drag the last quality control line item to its intended order of instructions." msgstr "" -#: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:372 +#: ../../content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst:373 msgid "Drag and reorder the `Check for broken switches` instruction, by clicking and dragging its \"6 dots\" icon to move it from the bottom to the second position." msgstr "" @@ -11580,6 +13225,396 @@ msgstr "" msgid "`Odoo Tutorials: Managing Quality Checks `_" msgstr "" +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types.rst:5 +msgid "Quality check types" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:3 +msgid "Instructions quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:7 +msgid "In Odoo *Quality*, an *Instructions* check is one of the quality check types that can be selected when creating a new quality check or quality control point (QCP). *Instructions* checks consist of a text entry field that allows the creator to provide instructions for how to complete the check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:11 +msgid "For a full overview of how to configure a quality check or a |QCP|, see the documentation on :ref:`quality checks ` and :ref:`quality control points `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:16 +msgid "Process an Instructions quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:18 +msgid "There are multiple ways that *Instructions* quality checks can be processed. If a quality check is assigned to a specific manufacturing, inventory, or work order, the check can be processed on the order itself. Alternatively, a check can be processed from the check's page." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:23 +msgid "Process from the quality check's page" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:25 +msgid "To process an *Instructions* quality check from the check's page, begin by navigating to :menuselection:`Quality --> Quality Control --> Quality Checks`, and select a quality check. Follow the :guilabel:`Instructions` for how to complete the check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:29 +msgid "If the product passes the check, click the :guilabel:`Pass` button above the quality check form. If the product does not pass the check, click the :guilabel:`Fail` button, instead." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:33 +msgid "Process quality check on an order" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:35 +msgid "To process an *Instructions* quality check on an order, select a manufacturing order or inventory order (receipt, delivery, return, etc.) for which a check is required. Manufacturing orders can be selected by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and clicking on an order. Inventory orders can be selected by navigating to :menuselection:`Inventory`, clicking the :guilabel:`# To Process` button on an operation card, and selecting an order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:42 +msgid "On the selected manufacturing or inventory order, a purple :guilabel:`Quality Checks` button appears above the order. Click the button to open the :guilabel:`Quality Check` pop-up window, from which any quality checks created for the order can be processed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:-1 +msgid "The Quality Check pop-up window on a manufacturing or inventory order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:50 +msgid "To complete an *Instructions* quality check, follow the instructions detailed in the :guilabel:`Quality Check` pop-up window. Finally, click :guilabel:`Validate` to confirm that the check has been completed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:54 +msgid "If an issue or defect is found during the quality check, a quality alert may need to be created to notify a quality team. To do so, click the :guilabel:`Quality Alert` button that appears at the top of the manufacturing or inventory order after the check is validated." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:58 +msgid "Clicking :guilabel:`Quality Alert` opens a quality alert form on a new page. For a complete guide on how to fill out quality alert forms, view the documentation on :ref:`quality alerts `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:63 +msgid "Process work order quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:65 +msgid "When configuring a |QCP| that is triggered by a manufacturing order, a specific work order can also be specified in the :guilabel:`Work Order Operation` field on the |QCP| form. If a work order is specified, an *Instructions* quality check is created for that specific work order, rather than the manufacturing order as a whole." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:70 +msgid "Quality checks configured for work orders must be completed from the tablet view. To do so, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`. Select a manufacturing order that includes a work order for which a quality check is required. Open the tablet view for that work order by clicking the :guilabel:`📱 (tablet)` button on the order's line." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:75 +msgid "With tablet view open, complete the steps listed on the left side of the screen until the *Instructions* quality check step is reached. Upon reaching the check, the instructions for how to complete it will appear at the top of the screen. Follow the instructions, then click :guilabel:`Next` to move on to the next step." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:-1 +msgid "An Instructions check for a work order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:84 +msgid "If an issue or defect is found during the quality check, a quality alert may need to be created to notify a quality team. To do so, click the :guilabel:`☰ (menu)` button in the tablet view, and then select :guilabel:`Quality Alert` from the :guilabel:`Menu` pop-up window." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:88 +msgid "Clicking :guilabel:`Quality Alert` opens a :guilabel:`Quality Alerts` pop-up window, from which a quality alert can be created. For a complete guide to quality alert creation, view the documentation on :ref:`quality alerts `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:3 +msgid "Measure quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:8 +msgid "In Odoo *Quality*, a *Measure* check is one of the quality check types that can be selected when creating a new quality check or quality control point (QCP). *Measure* checks prompt users to measure a certain aspect of a product and record the measurement in Odoo. For the quality check to pass, the recorded measurement must be within a certain *tolerance* of a *norm* value." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:14 +msgid "Create a Measure quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:16 +msgid "There are two distinct ways that *Measure* quality checks can be created. A single check can be manually created. Alternatively, a |QCP| can be configured that automatically creates checks at a predetermined interval." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:20 +msgid "This documentation only details the configuration options that are unique to *Measure* quality checks and |QCPs|. For a full overview of all the configuration options available when creating a single check or a |QCP|, see the documentation on :ref:`quality checks ` and :ref:`quality control points `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:27 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:27 +msgid "Quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:29 +msgid "To create a single *Measure* quality check, navigate to :menuselection:`Quality --> Quality Control --> Quality Checks`, and click :guilabel:`New`. Fill out the new quality check form as follows:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:32 +msgid "In the :guilabel:`Type` drop-down field, select the :guilabel:`Measure` quality check type." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:33 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:34 +msgid "In the :guilabel:`Team` drop-down field, select the quality team responsible for managing the check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:35 +msgid "In the :guilabel:`Instructions` text field of the :guilabel:`Notes` tab, enter instructions for how the picture should be taken." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:-1 +msgid "A quality check form configured for a Measure quality check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:43 +msgid "Quality control point (QCP)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:45 +msgid "To create a |QCP| that generates *Measure* quality checks automatically, navigate to :menuselection:`Quality --> Quality Control --> Control Points`, and click :guilabel:`New`. Fill out the new |QCP| form as follows:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:49 +msgid "In the :guilabel:`Type` drop-down field, select the :guilabel:`Measure` quality check type. Doing so causes two new fields to appear: :guilabel:`Norm` and :guilabel:`Tolerance`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:52 +msgid "Use the first text-entry field of the :guilabel:`Norm` field to record the ideal measurement that the product should conform to. Use the second text-entry field to specify the unit of measurement that should be used." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:55 +msgid "The :guilabel:`Tolerance` field features two sub-fields: :guilabel:`from` and :guilabel:`to`. Use the :guilabel:`from` field to specify the minimum acceptable measurement, and the :guilabel:`to` field to specify the maximum acceptable measurement." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:59 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:51 +msgid "In the :guilabel:`Team` drop-down field, select the quality team responsible for managing the checks created by the |QCP|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:61 +msgid "In the :guilabel:`Instructions` text field, enter instructions for how the measurement should be taken." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:-1 +msgid "A QCP form configured to create Measure quality checks." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:69 +msgid "Process a Measure quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:71 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:63 +msgid "Once created, there are multiple ways that *Measure* quality checks can be processed. If a quality check is assigned to a specific inventory, manufacturing, or work order, the check can be processed on the order itself. Alternatively, a check can be processed from the check's page." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:76 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:68 +msgid "From the check's page" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:78 +msgid "To process a *Measure* quality check from the check's page, begin by navigating to :menuselection:`Quality --> Quality Control --> Quality Checks`, and select a quality check. Follow the :guilabel:`Instructions` for how to take the measurement." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:82 +msgid "After taking the measurement, record the value in the :guilabel:`Measure` field on the quality check form. To manually pass or fail the check, click :guilabel:`Pass` or :guilabel:`Fail` at the top-left corner of the check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:86 +msgid "Alternatively, if the quality check is assigned to a |QCP| for which *norm* and *tolerance* values have been specified, click :guilabel:`Measure` at the top-left corner of the check instead. Doing so automatically marks the check as *Passed* if the recorded value is within the specified *tolerance*, or *Failed* if the value is outside of it." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:92 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:78 +msgid "On an order" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:94 +msgid "To process a *Measure* quality check on an order, select a manufacturing order or inventory order (receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be selected by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and clicking on an order. Inventory orders can be selected by navigating to :menuselection:`Inventory`, clicking the :guilabel:`# To Process` button on an operation card, and selecting an order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:101 +msgid "On the selected manufacturing or inventory order, a purple :guilabel:`Quality Checks` button appears at the top of the page. Click the button to open the :guilabel:`Quality Check` pop-up window, which shows all of the quality checks required for that order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:105 +msgid "To process a *Measure* quality check, measure the product as instructed, then enter the value in the :guilabel:`Measure` field on the pop-up window. Finally, click :guilabel:`Validate` to register the recorded value." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:-1 +msgid "A Measure quality check pop-up window on a manufacturing or inventory order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:113 +msgid "If the value entered is within the range specified in the :guilabel:`Tolerance` section of the |QCP|, the quality check passes and the pop-up window closes. The rest of the manufacturing or inventory order can then be processed as usual." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:117 +msgid "However, if the value entered is outside of the specified range, a new pop-up window appears, titled :guilabel:`Quality Check Failed`. The body of the pop-up shows a warning message that states, :guilabel:`You measured # units and it should be between # units and # units.`, as well as the instructions entered in the :guilabel:`Message If Failure` tab of the |QCP|. At the bottom of the pop-up, two buttons appear: :guilabel:`Correct Measure` and :guilabel:`Confirm Measure`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:-1 +msgid "The \"Quality Check Failed\" pop-up window." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:127 +msgid "If the measurement was not entered correctly and should be changed, select :guilabel:`Correct Measure`. Doing so re-opens the :guilabel:`Quality Check` pop-up window. Enter the corrected measurement in the :guilabel:`Measure` field, and then click :guilabel:`Validate` to complete the check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:132 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:185 +msgid "If the measurement was entered correctly, click :guilabel:`Confirm Measure` instead, and the quality check fails. Follow any instructions that were listed on the :guilabel:`Quality Check Failed` pop-up window." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:136 +msgid "If a quality alert must be created, click the :guilabel:`Quality Alert` button that appears at the top of the manufacturing or inventory order after the check fails. Clicking :guilabel:`Quality Alert` opens a quality alert form on a new page." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:140 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:193 +msgid "For a complete guide on how to fill out the quality alert form, view the documentation on :ref:`quality alerts `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:144 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:106 +msgid "On a work order" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:146 +msgid "When configuring a |QCP| that is triggered during manufacturing, a specific work order can also be specified in the :guilabel:`Work Order Operation` field on the |QCP| form. If a work order is specified, a *Measure* quality check is created for that specific work order, rather than the manufacturing order as a whole." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:151 +msgid "*Measure* quality checks created for work orders must be processed from the tablet view. To do so, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`. Select a manufacturing order that includes a work order for which a quality check is required. Open the tablet view for that work order by selecting the :guilabel:`Work Orders` tab, and then clicking the :guilabel:`📱 (tablet)` button on the order's line." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:157 +msgid "With tablet view open, complete the steps listed on the left side of the screen until the *Measure* quality check step is reached. Upon reaching the check, the instructions for how to take the measurement appear at the top of the screen. Enter the measured value in the :guilabel:`Measure` field above the instructions, and then click :guilabel:`Validate`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:-1 +msgid "A Measure quality check in the Manufacturing tablet view." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:166 +msgid "If the measurement entered is within the range specified in the :guilabel:`Tolerance` section of the |QCP|, the quality check passes and the tablet view moves on to the next step of the work order. However, if the measurement entered is outside of the specified range, a pop-up window appears, titled :guilabel:`Quality Check Failed`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:171 +msgid "The body of the :guilabel:`Quality Check Failed` pop-up window shows a warning message that states, :guilabel:`You measured # units and it should be between # units and # units.`, as well as the instructions entered in the :guilabel:`Message If Failure` tab of the |QCP|. At the bottom of the pop-up, two buttons appear: :guilabel:`Correct Measure` and :guilabel:`Confirm Measure`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:180 +msgid "If the measurement was not entered correctly, and should be changed, select :guilabel:`Correct Measure`. Doing so opens a new pop-up window, titled :guilabel:`Quality Check`. Enter the corrected measurement in the :guilabel:`Measure` field, then click :guilabel:`Validate` to complete the check, and move on to the next step of the work order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/measure_check.rst:189 +msgid "If a quality alert must be created, do so by clicking the :guilabel:`☰ (three horizontal lines)` button, and selecting :guilabel:`Quality Alert` from the :guilabel:`Menu` pop-up window. A :guilabel:`Quality Alerts` pop-up window appears, from which a quality alert can be created." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:3 +msgid "Pass - Fail quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:8 +msgid "In Odoo *Quality*, a *Pass - Fail* check is one of the quality check types that can be selected when creating a new quality check or quality control point (QCP). *Pass - Fail* checks consist of a text field that allows the creator to specify a certain criteria that a product must meet to pass the check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:14 +msgid "Create a Pass - Fail quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:16 +msgid "There are two distinct ways that *Pass - Fail* quality checks can be created. A single check can be manually created. Alternatively, a |QCP| can be configured that automatically creates checks at a predetermined interval." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:20 +msgid "This documentation only details the configuration options that are unique to *Pass - Fail* quality checks and |QCPs|. For a full overview of all the configuration options available when creating a single check or a |QCP|, see the documentation on :ref:`quality checks ` and :ref:`quality control points `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:29 +msgid "To create a single *Pass - Fail* quality check, navigate to :menuselection:`Quality --> Quality Control --> Quality Checks`, and click :guilabel:`New`. Fill out the new quality check form as follows:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:33 +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:50 +msgid "In the :guilabel:`Type` drop-down field, select the :guilabel:`Pass - Fail` quality check type." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:36 +msgid "In the :guilabel:`Instructions` text field of the :guilabel:`Notes` tab, enter instructions for how to complete the quality check and the criteria that must be met for the check to pass." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:-1 +msgid "A quality check form configured for a Pass - Fail quality check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:44 +msgid "Quality Control Point (QCP)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:46 +msgid "To create a |QCP| that generates *Pass - Fail* quality checks automatically, begin by navigating to :menuselection:`Quality --> Quality Control --> Control Points`, and click :guilabel:`New`. Fill out the new |QCP| form as follows:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:53 +msgid "In the :guilabel:`Instructions` text field, enter instructions for how to complete the quality check and the criteria that must be met for the check to pass." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:-1 +msgid "A Quality Control Point (QCP) form configured to create a Pass - Fail quality check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:61 +msgid "Process a Pass - Fail quality check" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:70 +msgid "To process a *Measure* quality check from the check's page, begin by navigating to :menuselection:`Quality --> Quality Control --> Quality Checks`, and select a quality check. Follow the :guilabel:`Instructions` for how to complete the check." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:74 +msgid "If the criteria for the check is met, click the :guilabel:`Pass` button at the top-left corner of the page. If the criteria is not met, click the :guilabel:`Fail` button." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:80 +msgid "To process a *Pass - Fail* quality check on an order, select a manufacturing order or inventory order (receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be selected by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and clicking on an order. Inventory orders can be selected by navigating to :menuselection:`Inventory`, clicking the :guilabel:`# To Process` button on an operation card, and selecting an order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:87 +msgid "On the selected manufacturing or inventory order, a purple :guilabel:`Quality Checks` button appears at the top of the order. Click the button to open the :guilabel:`Quality Check` pop-up window, which shows all of the quality checks required for that order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:91 +msgid "To process a *Pass - Fail* quality check, follow the instructions shown on the :guilabel:`Quality Check` pop-up window. If the criteria for the check is met, click the :guilabel:`Pass` button at the bottom of the window. If the criteria is not met, click the :guilabel:`Fail` button." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:-1 +msgid "A Pass - Fail quality check pop-up window on a manufacturing or inventory order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:99 +msgid "If a quality alert must be created, click the :guilabel:`Quality Alert` button that appears at the top of the manufacturing or inventory order after the check fails. Clicking :guilabel:`Quality Alert` opens a quality alert form on a new page. For a complete guide on how to fill out quality alert forms, view the documentation on :ref:`quality alerts `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:108 +msgid "When configuring a |QCP| that is triggered during manufacturing, a specific work order can also be specified in the :guilabel:`Work Order Operation` field on the |QCP| form. If a work order is specified, a *Pass - Fail* quality check is created for that specific work order, rather than the manufacturing order as a whole." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:113 +msgid "*Pass - Fail* quality checks configured for work orders must be processed from the tablet view. To do so, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`. Select a manufacturing order that includes a work order for which a quality check is required. Open the tablet view for that work order by selecting the :guilabel:`Work Orders` tab, and then clicking the :guilabel:`📱 (tablet)` button on the order's line." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:119 +msgid "With tablet view open, complete the steps listed on the left side of the screen until the *Pass - Fail* quality check step is reached. Upon reaching the check, follow the instructions that appear at the top of the screen. If the criteria for the check is met, click the :guilabel:`Pass` button at the top-right of the screen. If the criteria is not met, click the :guilabel:`Fail` button." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:-1 +msgid "A Pass - Fail check for a manufacturing work order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:128 +msgid "If a quality alert must be created, do so by clicking the :guilabel:`☰ (menu)` button in the tablet view, and selecting :guilabel:`Quality Alert` from the :guilabel:`Menu` pop-up window. A :guilabel:`Quality Alerts` pop-up window appears, from which a quality alert can be created. For a complete guide on how to fill out quality alert forms, view the documentation on :ref:`quality alerts `." +msgstr "" + #: ../../content/applications/inventory_and_mrp/quality/quality_management.rst:5 msgid "Quality control basics" msgstr "" @@ -11588,92 +13623,92 @@ msgstr "" msgid "Create quality alerts" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:5 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:7 msgid "Configuring quality control points is a great way to ensure that quality checks are performed at routine stages during specific operations. However, quality issues can often appear outside of these scheduled checks. Using Odoo *Quality*, users can create quality alerts for issues that are not detected by automated processes." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:11 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:13 msgid ":doc:`Add quality control points `" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:14 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:16 msgid "Find and fill out the quality alerts form" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:16 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:18 msgid "In some situations, it is necessary to manually create quality alerts within the *Quality* module." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:19 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:21 msgid "A helpdesk user who is notified of a product defect by a customer ticket can create an alert that brings the issue to the attention of the relevant quality team." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:22 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:24 msgid "To create a new quality alert, start from the :menuselection:`Quality` module and select :menuselection:`Quality Control --> Quality Alerts --> Create`. The quality alert form can then be filled out as follows:" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:26 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:28 msgid ":guilabel:`Title`: choose a concise, yet descriptive title for the quality alert" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:27 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:29 msgid ":guilabel:`Product`: the product about which the quality alert is being created" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:28 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:30 msgid ":guilabel:`Product Variant`: the specific variant of the product that has the quality issue, if applicable" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:30 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:32 msgid ":guilabel:`Lot`: the lot number assigned to the product" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:31 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:33 msgid ":guilabel:`Work Center`: the work center where the quality issue originated" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:32 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:34 msgid ":guilabel:`Picking`: the picking operation during which the quality issue originated" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:33 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:35 msgid ":guilabel:`Team`: the quality team that will be notified by the quality alert" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:34 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:36 msgid ":guilabel:`Responsible`: the individual responsible for managing the quality alert" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:35 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:37 msgid ":guilabel:`Tags`: classify the quality alert based on user-created tags" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:36 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:38 msgid ":guilabel:`Root Cause`: the cause of the quality issue, if known" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:37 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:39 msgid ":guilabel:`Priority`: assign a priority between one and three stars to ensure more urgent issues are prioritized" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:40 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:42 #: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_control_points.rst:42 msgid "The tabs at the bottom of the form can be used to provide additional information to quality teams:" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:42 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:44 msgid ":guilabel:`Description`: provide additional details about the quality issue" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:43 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:45 msgid ":guilabel:`Corrective Actions`: the method for fixing affected products" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:44 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:46 msgid ":guilabel:`Preventive Actions`: procedures for preventing the issue from occurring in the future" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:46 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:48 msgid ":guilabel:`Miscellaneous`: the product vendor (if applicable), the company that produces the product, and the date assigned" msgstr "" @@ -11681,11 +13716,11 @@ msgstr "" msgid "An example of a completed quality alert form." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:54 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:56 msgid "Add quality alerts during the manufacturing process" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:56 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:58 msgid "Odoo enables manufacturing employees to create quality alerts within a work order without accessing the *Quality* module. From the work order tablet view, click the :guilabel:` ☰ ` hamburger menu icon in the top left corner and select :guilabel:`Quality Alert`." msgstr "" @@ -11693,19 +13728,19 @@ msgstr "" msgid "Access the work order menu." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:64 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:66 msgid "The quality alert form can then be filled out as detailed in the previous section. After saving the form, a new alert will appear on the :guilabel:`Quality Alerts` dashboard that can be found through the :menuselection:`Quality --> Quality Control` menu." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:69 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:71 msgid "Manage existing quality alerts" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:71 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:73 msgid "By default, quality alerts are organized in a kanban board view. The stages of the kanban board are fully configurable and alerts can be moved from one stage to the next by dragging and dropping or from within each alert. Additional options are available for viewing alerts, including graph, calendar, and pivot table views." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:77 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_alerts.rst:79 msgid "Filter alerts based on diverse criteria like date assigned or date closed. Alerts can also be grouped by quality team, root cause, or other parameters found under the :guilabel:`Filters` button menu." msgstr "" @@ -11713,79 +13748,79 @@ msgstr "" msgid "Quality checks" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:7 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:8 msgid "Quality checks are manual inspections conducted by employees, and are used to ensure the quality of products. In Odoo, a quality check can be conducted for a single product, or multiple products within the same inventory operation or manufacturing order." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:11 -msgid "Using a Quality Control Point (QCP), it is possible to create quality checks automatically at regular intervals. When quality checks are created by a |QCP|, they appear on a manufacturing or inventory order, where the employee processing the order will be prompted to complete them. For a full explanation of how to create and configure a |QCP|, see the documentation on :ref:`quality control points `." +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:12 +msgid "Using a Quality Control Point (QCP), it is possible to create quality checks automatically at regular intervals. When quality checks are created by a |QCP|, they appear on a manufacturing or inventory order, where the employee processing the order will be prompted to complete them. For a full explanation of how to create and configure a |QCP|, see the documentation on :ref:`quality control points `." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:17 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:18 msgid "While quality checks are most commonly created automatically by a |QCP|, it is also possible to manually create a single quality check. Creating a check manually is useful when an employee wants to schedule a quality check that will only occur once, or register a quality check that they conduct unprompted." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:23 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:24 msgid "Manual quality check" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:25 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:26 msgid "To manually create a single quality check, navigate to :menuselection:`Quality --> Quality Control --> Quality Checks`, and click :guilabel:`New`. On the quality check form, begin by selecting an option from the :guilabel:`Control per` drop-down menu:" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:29 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:30 msgid ":guilabel:`Operation` requests a check for an entire operation (ex. delivery order) and all products within it." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:31 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:32 msgid ":guilabel:`Product` requests a check for every unit of a product that is part of an operation (ex. every unit of a product within a delivery order)." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:33 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:34 msgid ":guilabel:`Quantity` requests a check for every quantity of a product that is part of an operation (ex. one check for five units of a product within a delivery order). Selecting :guilabel:`Quantity` also causes a :guilabel:`Lot/Serial` drop-down field to appear, from which can be selected a specific lot or serial number that the quality check should be conducted for." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:38 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:39 msgid "Next, select an inventory operation from the :guilabel:`Picking` drop-down menu or a manufacturing order from the :guilabel:`Production Order` drop-down menu. This is necessary because Odoo needs to know for which operation the quality check is being conducted." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:42 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:43 msgid "If the quality check should be assigned to a specific |QCP|, select it from the :guilabel:`Control Point` drop-down menu. This is useful if the quality check is being created manually, but should still be recognized as belonging to a specific |QCP|." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:46 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:47 msgid "Select a quality check type from the :guilabel:`Type` drop-down field:" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:48 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:49 msgid ":guilabel:`Instructions` provides specific instructions for how to conduct the quality check." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:49 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:50 msgid ":guilabel:`Take a Picture` requires a picture to be attached to the check before the check can be completed." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:51 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:52 msgid ":guilabel:`Pass - Fail` is used when the product being checked must meet a certain criteria to pass the check." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:53 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:54 msgid "Selecting :guilabel:`Measure` causes a :guilabel:`Measure` input field to appear, in which a measurement must be entered before the check can be completed." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:55 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:56 msgid "Selecting :guilabel:`Worksheet` causes a :guilabel:`Quality Template` drop-down field to appear. Use it to select a quality worksheet that must be filled out to complete the check." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:58 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:59 msgid "In the :guilabel:`Team` field, select the quality team that is responsible for the quality check. In the :guilabel:`Company` field, select the company that owns the product being inspected." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:61 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:62 msgid "On the :guilabel:`Notes` tab at the bottom of the form, enter any relevant instructions in the :guilabel:`Instructions` text entry box (ex. 'Attach a picture of the product'). In the :guilabel:`Notes` text entry box, enter any relevant information about the quality check (who created it, why it was created, etc.)." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:66 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:67 msgid "Finally, if the check is being processed immediately, click the :guilabel:`Pass` button at the top left of the screen if the check passes, or the :guilabel:`Fail` button if the check fails." msgstr "" @@ -11793,43 +13828,43 @@ msgstr "" msgid "A quality check form filled out for a Pass - Fail check." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:74 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:75 msgid "Process quality check" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:76 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:77 msgid "Quality checks can be processed directly on the quality check's page, or from a manufacturing or inventory order for which a check is required. Alternatively, if a quality check is created for a specific work order operation, the check is processed in the tablet view for the work order." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:81 -msgid "It is not possible to manually create a single quality check that is assigned to a specific work order operation. Quality checks for work order operations can only be created by a |QCP|. See the documentation on :ref:`Quality Control Points ` for information about how to configure a |QCP| that will create quality checks for a specific work order operation." +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:82 +msgid "It is not possible to manually create a single quality check that is assigned to a specific work order operation. Quality checks for work order operations can only be created by a |QCP|. See the documentation on :ref:`Quality Control Points ` for information about how to configure a |QCP| that will create quality checks for a specific work order operation." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:88 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:89 msgid "Quality check page" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:90 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:91 msgid "To process a quality check from the check's page, begin by navigating to :menuselection:`Quality --> Quality Control --> Quality Checks`, then select the check to process. Follow the instructions for how to complete the check, listed in the :guilabel:`Instructions` field of the :guilabel:`Notes` tab at the bottom of the page." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:95 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:96 msgid "If the quality check passes, click the :guilabel:`Pass` button at the top of the page. If the check fails, click the :guilabel:`Fail` button, instead." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:99 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:100 msgid "Quality check on order" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:101 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:102 msgid "To process a quality check on an order, select a manufacturing or inventory order (receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be selected by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and clicking on an order. Inventory orders can be selected by navigating to :menuselection:`Inventory`, clicking the :guilabel:`# To Process` button on an operation card, and selecting an order." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:107 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:108 msgid "On the selected inventory or manufacturing order, a purple :guilabel:`Quality Checks` button appears at the top of the order. Click the button to open the :guilabel:`Quality Check` pop-up window, which shows all of the quality checks required for that order." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:111 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:112 msgid "Follow the instructions that appear on the :guilabel:`Quality Check` pop-up window. If a Pass - Fail check is being processed, complete the check by clicking :guilabel:`Pass` or :guilabel:`Fail` at the bottom of the pop-up window. For all other quality check types, a :guilabel:`Validate` button appears instead. Click it to complete the check." msgstr "" @@ -11837,15 +13872,15 @@ msgstr "" msgid "The \"Quality Check\" pop-up window on a manufacturing order." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:121 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:122 msgid "Quality check on work order" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:123 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:124 msgid "To process a quality check for a work order, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, then select a manufacturing order. Select the :guilabel:`Work Orders` tab, then click the :guilabel:`📱 (tablet)` tablet view button for the work order that requires the quality check." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:128 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:129 msgid "With tablet view open, complete the steps listed on the left side of the screen until the quality check step is reached, then follow the instructions at the top of the screen. If a Pass - Fail check is being processed, complete the check by clicking :guilabel:`Pass` or :guilabel:`Fail` at the top of the screen. For all other quality check types, a :guilabel:`Next` button appears instead. Click it to complete the check and move on to the next step of the work order." msgstr "" @@ -11858,7 +13893,7 @@ msgid "Add quality controls" msgstr "" #: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_control_points.rst:7 -msgid "Use *Odoo Quality* to control the quality of products before they are registered into stock, during picking operations, and when leaving the warehouse for a delivery order. By creating *quality control points*, manufacturers can set up quality checks that automatically trigger at specific points during production." +msgid "Use Odoo *Quality* to control the quality of products before they are registered into stock, during picking operations, and when leaving the warehouse for a delivery order. By creating *quality control points*, manufacturers can set up quality checks that automatically trigger at specific points during production." msgstr "" #: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_control_points.rst:13 diff --git a/locale/sources/productivity.pot b/locale/sources/productivity.pot index b5b868b40..edf17a4d5 100644 --- a/locale/sources/productivity.pot +++ b/locale/sources/productivity.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -334,42 +334,38 @@ msgid "Even after synchronizing the Odoo Calendar with the Outlook calendar, Out msgstr "" #: ../../content/applications/productivity/calendar/outlook.rst:106 -msgid "After one user syncs their Outlook calendar to the Odoo database, unwanted email notifications are unavoidable because the first synchronized user's events will be in the Odoo Calendar. If the Odoo database is shared amongst multiple users, and another user wants to sync their Outlook calendar with Odoo Calendar, Outlook will again pull the existing Odoo Calendar events during the sync and treat them as new events, causing Outlook to send email invitations to all event attendees." -msgstr "" - -#: ../../content/applications/productivity/calendar/outlook.rst:113 msgid "In summary, once a user synchronizes their Outlook calendar with the Odoo calendar:" msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:115 +#: ../../content/applications/productivity/calendar/outlook.rst:108 msgid "Creating an event in Odoo causes Outlook to send an invitation to all event attendees." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:116 +#: ../../content/applications/productivity/calendar/outlook.rst:109 msgid "Deleting an event in Odoo causes Outlook to send a cancellation to all event attendees." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:117 +#: ../../content/applications/productivity/calendar/outlook.rst:110 msgid "Unarchiving an event in Odoo causes Outlook to send an invitation to all event attendees." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:118 +#: ../../content/applications/productivity/calendar/outlook.rst:111 msgid "Archiving an event in Odoo causes Outlook to send a cancellation to all event attendees." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:119 +#: ../../content/applications/productivity/calendar/outlook.rst:112 msgid "Adding a contact to an event causes Outlook to send an invitation to all event attendees." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:120 +#: ../../content/applications/productivity/calendar/outlook.rst:113 msgid "Removing a contact from an event causes Outlook to send a cancellation to all event attendees." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:123 +#: ../../content/applications/productivity/calendar/outlook.rst:116 msgid "Sync Odoo Calendar and Outlook" msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:125 +#: ../../content/applications/productivity/calendar/outlook.rst:118 msgid "In the Odoo database, go to the :guilabel:`Calendar` module and click the :guilabel:`Outlook` sync button. The page will redirect to a Microsoft login page, and the user is asked to log in to their account, if they are not already, and grant the required permissions." msgstr "" @@ -377,19 +373,19 @@ msgstr "" msgid "The \"Outlook\" sync button in Odoo Calendar." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:133 +#: ../../content/applications/productivity/calendar/outlook.rst:126 msgid "The synchronization is a two-way process, meaning that events are reconciled in both accounts (Outlook and Odoo)." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:137 +#: ../../content/applications/productivity/calendar/outlook.rst:130 msgid "All users that want to use the synchronization simply need to :ref:`sync their calendar with Outlook `. The configuration of Microsoft's Azure account is only done once, as Microsoft Entra ID tenants' Client IDs and Client Secrets are unique, and represent an organization that helps the user to manage a specific instance of Microsoft cloud services for their internal and external users." msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:144 +#: ../../content/applications/productivity/calendar/outlook.rst:137 msgid ":doc:`../mail_plugins/outlook`" msgstr "" -#: ../../content/applications/productivity/calendar/outlook.rst:145 +#: ../../content/applications/productivity/calendar/outlook.rst:138 msgid ":doc:`google`" msgstr "" @@ -822,8 +818,12 @@ msgstr "" msgid "Internet of Things (IoT)" msgstr "" +#: ../../content/applications/productivity/iot.rst:17 +msgid "The Open Platform Communications (OPC) Unified Architecture (UA) protocol is now supported by the :abbr:`IoT (Internet of Things)` box. :abbr:`OPC (Open Platform Communications)` :abbr:`UA (United Architecture)` is an open standard that specifies information exchange for industrial communication on devices, between machines and between systems. This includes communication between information technology and operational technology. :abbr:`OPC (Open Platform Communications)` :abbr:`UA (United Architecture)` can be used with any software platform, on a wide variety of devices, and deployed securely. The :abbr:`IoT (Internet of Things)` box has entered the world of the Industry 4.0 standard and can be utilized in a wide variety of industries, and for things like building automation, packaging, utilities, etc." +msgstr "" + #: ../../content/applications/productivity/iot/config.rst:5 -#: ../../content/applications/productivity/mail_plugins/outlook.rst:6 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:10 msgid "Configuration" msgstr "" @@ -2325,7 +2325,7 @@ msgstr "" #: ../../content/applications/productivity/iot/devices/camera.rst:82 #: ../../content/applications/productivity/iot/devices/footswitch.rst:52 -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:90 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:92 #: ../../content/applications/productivity/iot/devices/printer.rst:95 msgid ":ref:`workcenter_iot`" msgstr "" @@ -2378,19 +2378,19 @@ msgstr "" msgid "Connect a measurement tool" msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:5 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:7 msgid "With Odoo's :abbr:`IoT (Internet of Things)` box, it is possible to connect measurement tools to the Odoo database for use in the *Quality app* on a quality control point/quality check, or for use in a work center during the manufacturing process." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:9 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:11 msgid "Find the list of supported devices here: `Supported devices `_." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:13 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:15 msgid "Connect with universal serial bus (USB)" msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:15 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:17 msgid "To add a device connected by :abbr:`USB (Universal Serial Bus)`, plug the :abbr:`USB (Universal Serial Bus)` cable into the :abbr:`IoT (Internet of Things)` box, and the device appears in the Odoo database." msgstr "" @@ -2398,11 +2398,11 @@ msgstr "" msgid "Measurement tool recognized on the IoT box." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:24 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:26 msgid "Connect with bluetooth" msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:26 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:28 msgid "Activate the Bluetooth functionality on the device (see the device manual for further explanation), and the :abbr:`IoT (Internet of Things)` box automatically connects to the device." msgstr "" @@ -2410,23 +2410,23 @@ msgstr "" msgid "Bluetooth indicator on measurement tool." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:35 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:37 msgid "Link a measurement tool to a quality control point in the manufacturing process" msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:37 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:39 msgid "In the *Quality app*, a device can be set up on a quality control point. To do that, navigate to :menuselection:`Quality app --> Quality Control --> Control Points`, and open the desired control point to which the measurement tool should be linked." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:41 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:43 msgid "From here, edit the control point, by selecting the :guilabel:`Type` field, and clicking :guilabel:`Measure` from the drop-down menu. Doing so reveals a field called :guilabel:`Device`, where the attached device can be selected." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:45 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:47 msgid "Additionally, :guilabel:`Norm` and :guilabel:`Tolerance` can be configured. :guilabel:`Save` the changes, if required." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:48 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:50 msgid "At this point, the measurement tool is linked to the chosen quality control point. The value, which usually needs to be changed manually, is automatically updated while the tool is being used." msgstr "" @@ -2434,40 +2434,40 @@ msgstr "" msgid "Measurement tool input in the Odoo database." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:56 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:58 #: ../../content/applications/productivity/iot/devices/printer.rst:60 msgid "Quality control points can also be accessed by navigating to :menuselection:`IoT App --> Devices`, then select the device. There is a :guilabel:`Quality Control Points` tab, where they can be added with the device." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:61 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:63 msgid "On a quality check detail form, the :guilabel:`Type` of check can also be specified to :guilabel:`Measure`. Access a new quality check detail page, by navigating to :menuselection:`Quality app --> Quality Control --> Quality Checks --> New`." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:66 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:68 msgid ":doc:`../../../inventory_and_mrp/quality/quality_management/quality_control_points`" msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:67 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:69 msgid ":doc:`../../../inventory_and_mrp/quality/quality_management/quality_alerts`" msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:70 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:72 msgid "Link a measurement tool to a work center in the Manufacturing app" msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:72 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:74 msgid "To link a measurement tool to an action, it first needs to be configured on a work center. To do that, navigate to :menuselection:`Manufacturing app --> Configuration --> Work Centers`. Then, select the desired work center in which the measurement tool will be used." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:76 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:78 msgid "On the work center page, add the device in the :guilabel:`IoT Triggers` tab, under the :guilabel:`Device` column, by selecting :guilabel:`Add a Line`. Then, the measurement tool can be linked to the :guilabel:`Action` drop-down menu option labeled :guilabel:`Take Measure`. A key can be added to trigger the action." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:82 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:84 msgid "It should be noted that the first listed trigger is chosen first. The order matters, and these triggers can be dragged into any order." msgstr "" -#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:86 +#: ../../content/applications/productivity/iot/devices/measurement_tool.rst:88 msgid "On the :guilabel:`Work Order` screen, a status graphic indicates whether the database is correctly connected to the measurement tool." msgstr "" @@ -3747,160 +3747,160 @@ msgstr "" msgid "Outlook Plugin" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:8 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:5 +msgid "Outlook allows for third-party applications to connect in order to execute database actions from emails. Odoo has a plugin for Outlook that allows for the creation of an opportunity from the email panel." +msgstr "" + +#: ../../content/applications/productivity/mail_plugins/outlook.rst:12 msgid "The Outlook :doc:`Mail Plugin <../mail_plugins>` needs to be configured both on Odoo and Outlook." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:13 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:17 msgid "Enable Mail Plugin" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:15 -msgid "First, you need to enable the *Mail Plugin* feature in your database. Go to :menuselection:`Settings --> General Settings --> Integrations`, enable *Mail Plugin*, and *Save* the configuration." -msgstr "" - -#: ../../content/applications/productivity/mail_plugins/outlook.rst:21 -msgid "Install the Outlook Plugin" -msgstr "" - -#: ../../content/applications/productivity/mail_plugins/outlook.rst:23 -msgid "Open your Outlook mailbox and select any email." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:19 +msgid "First, enable the *Mail Plugin* feature in the database. Go to :menuselection:`Settings --> General Settings --> Integrations`, enable :guilabel:`Mail Plugin`, and :guilabel:`Save` the configuration." msgstr "" #: ../../content/applications/productivity/mail_plugins/outlook.rst:25 -msgid "Click on the *More actions* button and select *Get Add-ins*." +msgid "Install the Outlook Plugin" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 -msgid "More actions button in Outlook" +#: ../../content/applications/productivity/mail_plugins/outlook.rst:27 +msgid "Download (:menuselection:`Save Page As --> Web Page XML only`) the following XML file to upload later: `https://download.odoocdn.com/plugins/outlook/manifest.xml `_." msgstr "" #: ../../content/applications/productivity/mail_plugins/outlook.rst:31 -msgid "Select the *My add-ins* tab." +msgid "Next, open the Outlook mailbox, and select any email. After completing this, click on the :guilabel:`More actions` button in the upper right-side and select :guilabel:`Get Add-ins`." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 +msgid "More actions button in Outlook" +msgstr "" + +#: ../../content/applications/productivity/mail_plugins/outlook.rst:38 +msgid "Following this step, select the :guilabel:`My add-ins` tab on the left-side." +msgstr "" + +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 msgid "My add-ins in Outlook" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:37 -msgid "Under *Custom add-ins*, click on *+ Add a custom add-in*, and then on *Add from URL...*" +#: ../../content/applications/productivity/mail_plugins/outlook.rst:44 +msgid "Under :guilabel:`Custom add-ins` towards the bottom, click on :guilabel:`+ Add a custom add-in`, and then on :guilabel:`Add from file...`" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 msgid "Custom add-ins in Outlook" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:43 -msgid "Enter the following URL `https://download.odoocdn.com/plugins/v15/outlook/manifest.xml` and press *OK*." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:51 +msgid "For the next step, attach the `manifest.xml` file downloaded above, and press :guilabel:`OK`. Next, read the warning and click on :guilabel:`Install`." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 -msgid "Entering the add-in URL in Outlook" -msgstr "" - -#: ../../content/applications/productivity/mail_plugins/outlook.rst:50 -msgid "Read the warning and click on *Install*." -msgstr "" - -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 msgid "Custom add-in installation warning in Outlook" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:59 -msgid "Connect your database" -msgstr "" - #: ../../content/applications/productivity/mail_plugins/outlook.rst:61 -msgid "Open any email in your Outlook mailbox, click on the *More actions* button, and select *Odoo for Outlook*." +msgid "Connect the database" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:63 +msgid "Now, Outlook will be connected to the Odoo database. First, open any email in the Outlook mailbox, click on the :guilabel:`More actions` button in the upper right-side, and select :guilabel:`Odoo for Outlook`." +msgstr "" + +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 msgid "Odoo for Outlook add-in button" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:68 -msgid "The right-side panel can now display **Company Insights**. At the bottom, click on *Login*." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:71 +msgid "The right-side panel can now display **Company Insights**. At the bottom, click on :guilabel:`Login`." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 -msgid "Logging in your Odoo database" -msgstr "" - -#: ../../content/applications/productivity/mail_plugins/outlook.rst:75 -msgid "Only a limited amount of *Company Insights* (*Lead Enrichment*) requests are available as a trial. This feature requires :ref:`prepaid credits `." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 +msgid "Logging in the Odoo database" msgstr "" #: ../../content/applications/productivity/mail_plugins/outlook.rst:79 -msgid "If, after a short while, the panel is still empty, it is possible that your browser cookie settings prevented it from loading. Note that these settings also change if you are in \"Incognito\" mode on your browser." +msgid "Only a limited amount of **Company Insights** (*Lead Enrichment*) requests are available as a trial database. This feature requires :ref:`prepaid credits `." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:84 -msgid "To fix this issue, configure your browser to always allow cookies on Odoo's plugin page." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:83 +msgid "If, after a short while, the panel is still empty, it is possible that the browser cookie settings prevented it from loading. Note that these settings also change if the browser is in \"Incognito\" mode." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:86 -msgid "For Google Chrome, you can do so by following the guide at: `https://support.google.com/chrome/answer/95647 `_ and adding `download.odoo.com` to the list of `Sites that can always use cookies`." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:87 +msgid "To fix this issue, configure the browser to always allow cookies on Odoo's plugin page." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:90 -msgid "Once done, the Outlook panel needs to be opened again." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:89 +msgid "For Google Chrome, change the browser cookie settings by following the guide at: `https://support.google.com/chrome/answer/95647 `_ and adding `download.odoo.com` to the list of :guilabel:`Sites that can always use cookies`." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:93 -msgid "Enter your Odoo database URL and click on *Login*." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:94 +msgid "Once this is complete, the Outlook panel needs to be opened again." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 -msgid "Entering your Odoo database URL" +#: ../../content/applications/productivity/mail_plugins/outlook.rst:96 +msgid "Now, enter the Odoo database URL and click on :guilabel:`Login`." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:99 -msgid "Click on *Allow* to open the pop-up window." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 +msgid "Entering the Odoo database URL" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:102 +msgid "Next, click on :guilabel:`Allow` to open the pop-up window." +msgstr "" + +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 msgid "New window pop-up warning" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:105 -msgid "If you aren't logged into your database, enter your credentials." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:108 +msgid "If the user isn't logged into the database, enter the credentials. Click on :guilabel:`Allow` to let the Outlook Plugin connect to the database." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:107 -msgid "Click on *Allow* to let the Outlook Plugin connect to your database." -msgstr "" - -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 msgid "Allowing the Outlook Plugin to connect to a database" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:116 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:118 msgid "Add a shortcut to the plugin" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:118 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:120 msgid "By default, the Outlook Plugin can be opened from the *More actions* menu. However, to save time, it's possible to add it next to the other default actions." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:121 -msgid "In your Outlook mailbox, click on *Settings*, then on *View all Outlook settings*." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:123 +msgid "In the Outlook mailbox, click on :guilabel:`Settings`, then on :guilabel:`View all Outlook settings`." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 msgid "Viewing all Outlook settings" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:127 -msgid "Select *Customize actions* under *Mail*, click on *Odoo for Outlook*, and then *Save*." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:130 +msgid "Now, select :guilabel:`Customize actions` under :guilabel:`Mail`, click on :guilabel:`Odoo for Outlook`, and then :guilabel:`Save`." msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:0 +#: ../../content/applications/productivity/mail_plugins/outlook.rst:-1 msgid "Odoo for Outlook customized action" msgstr "" -#: ../../content/applications/productivity/mail_plugins/outlook.rst:133 -msgid "Open any email; the shortcut should be displayed." +#: ../../content/applications/productivity/mail_plugins/outlook.rst:137 +msgid "Following this step, open any email; the shortcut should be displayed." +msgstr "" + +#: ../../content/applications/productivity/mail_plugins/outlook.rst:144 +msgid "Using the plugin" +msgstr "" + +#: ../../content/applications/productivity/mail_plugins/outlook.rst:146 +msgid "Now that the plug-in is installed and operational, all that needs to be done to create a lead is to click on the `O` [Odoo icon] or navigate to :guilabel:`More actions` and click on :guilabel:`Odoo for Outlook`. The side panel will appear on the right-side, and under :guilabel:`Opportunities` click on :guilabel:`New`. A new window with the created opportunity in the Odoo database will populate." msgstr "" #: ../../content/applications/productivity/studio.rst:6 diff --git a/locale/sources/sales.pot b/locale/sources/sales.pot index e85bd9b1a..1b72b57b6 100644 --- a/locale/sources/sales.pot +++ b/locale/sources/sales.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,7 +53,6 @@ msgstr "" #: ../../content/applications/sales/crm/acquire_leads/lead_mining.rst:10 #: ../../content/applications/sales/crm/optimize/gamification.rst:11 #: ../../content/applications/sales/crm/optimize/partner_autocomplete.rst:9 -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:10 #: ../../content/applications/sales/crm/track_leads/lead_scoring.rst:44 #: ../../content/applications/sales/crm/track_leads/prospect_visits.rst:12 #: ../../content/applications/sales/point_of_sale/configuration.rst:6 @@ -61,9 +60,9 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:11 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:13 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst:12 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:16 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:14 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/stripe.rst:12 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:13 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:17 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:12 #: ../../content/applications/sales/point_of_sale/pricing/cash_rounding.rst:17 #: ../../content/applications/sales/point_of_sale/pricing/fiscal_position.rst:16 @@ -78,7 +77,7 @@ msgstr "" #: ../../content/applications/sales/sales/products_prices/products/product_images.rst:13 #: ../../content/applications/sales/sales/products_prices/products/variants.rst:23 #: ../../content/applications/sales/sales/send_quotations/orders_and_variants.rst:9 -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:17 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:20 #: ../../content/applications/sales/sales/send_quotations/quote_template.rst:13 #: ../../content/applications/sales/subscriptions/closing.rst:31 #: ../../content/applications/sales/subscriptions/upselling.rst:25 @@ -578,134 +577,6 @@ msgstr "" msgid "Analyze performance" msgstr "" -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:3 -msgid "How to use Google Spreadsheet in Addition to my Data?" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:5 -msgid "Create custom dashboards in Google Spreadsheet that retrieves data directly from Odoo using spreadsheet formula. You can use it to create sales commission plans, budgets, project forecasts, etc. Formulas are written in Python but programming skills are not required." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:12 -msgid "From the *General Settings*, activate *Google Drive* and *Google Spreadsheet*. The options *Authorization Code* and *Get Authorization Code* are now available." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:-1 -msgid "Enable the Google Drive and Google Spreadsheet features in Odoo" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:19 -msgid "Now, link your Google account with Odoo by following these steps:" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:21 -msgid "Get Authorization Code" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:22 -msgid "Select your Google account" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:23 -msgid "Enter your password" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:24 -msgid "Copy the code" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:25 -msgid "Paste it into the Authorization Code field" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:28 -msgid "Create a new Spreadsheet" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:30 -msgid "From the *CRM* app, for example, go to *Favorites* and click on *Add to Google Spreadsheet*." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:-1 -msgid "From the CRM application, for example, click on add to Google Spreadsheet in Odoo" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:36 -msgid "A new spreadsheet will be automatically created in your Google Drive." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:39 -msgid "When you opening this new file, a second sheet is created automatically by Odoo with a tutorial/documentation on *How to use Google Spreadsheet*." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:43 -msgid "Link a Spreadsheet with Odoo" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:45 -msgid "From this new file, configure your database." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:46 -msgid "Go to :menuselection:`Odoo --> Server Settings --> Database Name --> Username --> Password`." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:-1 -msgid "Menu called Odoo is shown on the settings bar in the Spreadsheet" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:53 -msgid "Applications" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:55 -msgid "You have two different formulas available when using Google Spreadsheet in Odoo: *retrieve data* and *retrieve grouped sums*." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:59 -msgid "Google Drive limits the execution time of scripts; if the data you requested takes too long to be delivered, you might get an error. There is no specific size limit, since the time for Odoo to respond depends on several factors - although reading data regarding several thousand records is usually fine." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:66 -msgid "Retrieve Data" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:70 -msgid "The theoretical formula is :command:`= oe_browse (table;columns;filters;orderby:limit)`. Used it if you want to display the information without grouping it (e.g.: each sales order in the database)." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:71 -msgid "Find some the arguments in the table below." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:-1 -msgid "Table with examples of arguments to use in Odoo" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:78 -msgid "Retrieve Grouped Sums" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:81 -msgid "The theoretical formula is :command:`= oe_read_group (table;columns;group_by;filters;orderby:limit)`. Use it when you want to display a sum of data (e.g.: total invoiced)." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:82 -msgid "Find some arguments in the table below." -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:-1 -msgid "Table with examples of grouped sum arguments to use in Odoo" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:89 -msgid "Other uses" -msgstr "" - -#: ../../content/applications/sales/crm/performance/google_spreadsheets.rst:91 -msgid "Mix Odoo data with spreadsheet data, add traditional formulas, and create Dynamic Tabled and Graphs." -msgstr "" - #: ../../content/applications/sales/crm/performance/win_loss.rst:3 msgid "Check your Win/Loss Ratio" msgstr "" @@ -739,7 +610,7 @@ msgid "Manage lost opportunities" msgstr "" #: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:5 -msgid "While working with your opportunities, you might lose some of them. You will want to keep track of the reasons you lost them and also which ways Odoo can help you recover them in the future." +msgid "Not all opportunities result in successful sales. In order to keep the pipeline up to date, lost opportunities need to be identified. Specifying the reason why an opportunity was lost provides additional insight that can prove useful for future opportunities." msgstr "" #: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:10 @@ -747,66 +618,126 @@ msgid "Mark a lead as lost" msgstr "" #: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:12 -msgid "While in your pipeline, select any opportunity you want and you will see a *Mark Lost* button." +msgid "To mark a lead as lost, open the :menuselection:`CRM` application, and select a lead from the pipeline, by clicking on its corresponding kanban card. Doing so reveals that lead's detail form." msgstr "" #: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:15 -msgid "You can then select an existing *Lost Reason* or create a new one right there." +msgid "Then, click :guilabel:`Lost`, located at the top of the lead's detail form." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:22 -msgid "Manage & create lost reasons" +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:-1 +msgid "Buttons from the top of an opportunity record with the lost button emphasized." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:24 -msgid "You will find your *Lost Reasons* under :menuselection:`Configuration --> Lost Reasons`." +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:21 +msgid "This opens the :guilabel:`Lost Reason` popup. From the drop-down, choose an existing lost reason. If no applicable reason is available, create a new one by entering it into the :guilabel:`Lost Reason` field, and clicking :guilabel:`Create`." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:26 -msgid "You can select & rename any of them as well as create a new one from there." +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:25 +msgid "Additional notes and comments can be added below the lost reason designated in the :guilabel:`Lost Reason` field." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:30 -msgid "Retrieve lost opportunities" +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:28 +msgid "When all the desired information has been entered in the :guilabel:`Lost Reason` pop-up window, click :guilabel:`Submit`." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:32 -msgid "To retrieve lost opportunities and do actions on them (send an email, make a feedback call, etc.), select the *Lost* filter in the search bar." +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:-1 +msgid "Lost reasons popup with sample reasons." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:35 +msgid "Upon clicking :guilabel:`Submit`, the pop-up window disappears, and Odoo returns to the lead detail form, where a new red :guilabel:`Lost` banner is now present in the upper-right corner of the lead." msgstr "" #: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:39 -msgid "You will then see all your lost opportunities." +msgid "Create/edit lost reasons" msgstr "" #: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:41 -msgid "If you want to refine them further, you can add a filter on the *Lost Reason*." +msgid "To create a new lost reason, or edit an existing one, navigate to :menuselection:`CRM app --> Configuration --> Lost Reasons`." msgstr "" #: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:44 -msgid "For Example, *Too Expensive*." +msgid "To edit an existing reason, click on the reason that should be modified. When clicked, that reason becomes highlighted. Once highlighted, change the description of the selected lost reason by editing the :guilabel:`Description` field. When done, click :guilabel:`Save` in the upper-left corner." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:50 -msgid "Restore lost opportunities" +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:48 +msgid "To create a new lost reason, click :guilabel:`Create` in the upper-left corner of the :guilabel:`Lost Reasons` page. Doing so reveals a new blank line in the :guilabel:`Description` field. Then, proceed to type in the new lost reason in that new line. Once ready, click :guilabel:`Save`." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:52 -msgid "From the Kanban view with the filter(s) in place, you can select any opportunity you wish and work on it as usual. You can also restore it by clicking on *Archived*." +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:54 +msgid "Retrieve lost opportunities" msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:59 -msgid "You can also restore items in batch from the Kanban view when they belong to the same stage. Select *Restore Records* in the column options. You can also archive the same way." +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:56 +msgid "To retrieve lost opportunities in Odoo *CRM*, open the :menuselection:`CRM app` to the main :guilabel:`Pipeline` dashboard. Then, click the :guilabel:`Filters` drop-down menu, located beneath the search bar." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:66 -msgid "To select specific opportunities, you should switch to the list view." +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:-1 +msgid "Search bar with lost filter emphasized." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:64 +msgid "From the :guilabel:`Filters` drop-down menu, select the :guilabel:`Lost` option. Upon selecting :guilabel:`Lost`, only the leads that have been marked as `Lost` appear on the :guilabel:`Pipeline` page." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:68 +msgid "To filter leads by a specific lost reason, select :menuselection:`Filters --> Add Custom Filter`. Doing so reveals another drop-down menu with three fields." msgstr "" #: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:71 -msgid "Then you can select as many or all opportunities and select the actions you want to take." +msgid "In the top field drop-down menu, select :guilabel:`Lost Reason`. In the second field drop-down menu, select :guilabel:`Contains`. Then, in the third field of the :guilabel:`Add Custom Field` sub menu, type in the specific keyword(s). Lastly, click :guilabel:`Apply`. Upon clicking :guilabel:`Apply`, Odoo reveals all the lost leads with a reason that contains that specified keyword(s)." msgstr "" -#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:78 +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:-1 +msgid "Search bar with custom filter added for lost reason." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:81 +msgid "Restore lost opportunities" +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:83 +msgid "To restore a lost opportunity, navigate to the main :guilabel:`Pipeline` dashboard on the *CRM* app, open the :guilabel:`Filters` drop-down menu, and select the :guilabel:`Lost` option. Doing so reveals all the lost opportunities on the :guilabel:`Pipeline` page." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:87 +msgid "Then, click on the kanban card of the desired lost opportunity to restore, which opens that lead's detail form." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:90 +msgid "From the lost lead's detail form, click :guilabel:`Restore` in the upper-left corner. Doing so removes the red :guilabel:`Lost` banner from the lead form, signifying the lead has been restored." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:-1 +msgid "Lost opportunity with emphasis on the Restore button." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:98 +msgid "Restore multiple opportunities at once" +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:100 +msgid "To restore multiple opportunities at once, navigate to the main :guilabel:`Pipeline` dashboard in the *CRM* app, open the :guilabel:`Filters` drop-down menu, and select the :guilabel:`Lost` option." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:103 +msgid "Next, select the list view option, which is represented by the three-line :guilabel:`☰ (list)` icon in the upper-right corner. Doing so places all the leads from the :guilabel:`Pipeline` page in a list form. With the list form chosen, select the checkbox to the left of each desired opportunity/lead to be restored." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:108 +msgid "Once the desired opportunities/leads have been selected, click the :guilabel:`⚙️ Action (gear)` drop-down menu at the top of the :guilabel:`Pipeline` page. From the :guilabel:`⚙️ Action (gear)` drop-down menu, select :guilabel:`Unarchive`." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:112 +msgid "Doing so removes those selected lost opportunities from the :guilabel:`Pipeline` page because they no longer fit into the `Lost` filter criteria. To reveal these newly-restored leads, delete the `Lost` filter from the search bar." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:-1 +msgid "Action button from list view with the Unarchive option emphasized." +msgstr "" + +#: ../../content/applications/sales/crm/pipeline/lost_opportunities.rst:121 msgid ":doc:`../performance/win_loss`" msgstr "" @@ -2037,6 +1968,7 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:23 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst:36 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:53 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/stripe.rst:15 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:63 msgid "Configure the payment method" @@ -2128,6 +2060,7 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:84 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst:53 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:65 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/stripe.rst:86 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:86 msgid "Pay with a payment terminal" @@ -2219,61 +2152,84 @@ msgid "SIX" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:5 -msgid "Connecting a SIX payment terminal allows you to offer a fluid payment flow to your customers and ease the work of your cashiers." +msgid "Connecting a **SIX payment terminal** allows you to offer a fluid payment flow to your customers and ease the work of your cashiers." msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:9 -msgid "Starting in July 2022, it will **not** be possible anymore to connect and use a Six payment terminal in PoS." +msgid "Even though Worldline has acquired SIX Payment Services and both companies use Yomani payment terminals, the firmware they run is different. Terminals received from Worldline are, therefore, not compatible with this integration." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:11 -msgid "Even though Worldline has recently acquired SIX Payment Services and both companies use Yomani payment terminals, the firmware they run is different. Terminals received from Worldline are therefore not compatible with this integration." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:17 +msgid "Install the POS IoT Six module" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:19 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:16 -msgid "Configure the Payment Method" +msgid "To activate the POS IoT Six module, go to :guilabel:`Apps`, remove the :guilabel:`Apps` filter, and search for **POS IoT Six**. This module adds the necessary driver and interface to your database to detect Six terminals." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:21 -msgid "First, make sure that the :guilabel:`POS Six` module is installed. For this, go to :guilabel:`Apps`, remove the :guilabel:`Apps` filter, and search for *POS Six*." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:24 +msgid "This module replaces the **POS Six** module." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:27 +msgid "Connect an IoT box" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:29 +msgid "Connecting a Six payment terminal to Odoo is requires :doc:`using a Raspberry Pi or virtual (for Windows OS only) IoT box `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:33 +msgid "Configure the terminal ID" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:35 +msgid "Navigate to your IoT Box homepage, where you can find the :guilabel:`Six payment terminal` field once your database server is connected to the IoT box. Click :guilabel:`Configure`, fill in the :guilabel:`Terminal ID` field with the ID received from Six, and click :guilabel:`Connect`. Your Six terminal ID should appear in the :guilabel:`Current Terminal Id` section." msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:-1 -msgid "The POS Six module." +msgid "Setting the Six terminal ID" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:28 -msgid "Back in :menuselection:`Point of Sale --> Configuration --> Payment Methods`, click :guilabel:`Create` to create a new payment method for SIX, select the payment terminal option :guilabel:`SIX`, and enter the payment terminal IP address." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:43 +msgid "Odoo automatically restarts the IoT box when the Six terminal ID is configured. If your Six terminal is online, it will be automatically detected and connected to the database. Check the IoT box homepage under the :guilabel:`Payments` section to confirm the connection." msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:-1 -msgid "Create a new payment method for the SIX payment terminal." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:37 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:40 -msgid "Pay with a Payment Terminal" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:39 -msgid "In the :abbr:`PoS (Point of Sale)` interface, at the moment of the payment, select a payment method using a payment terminal. Verify that the amount in the tendered column is the one that has to be sent to the payment terminal and click on :guilabel:`Send`. To cancel the payment request, click on :guilabel:`Cancel`." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:-1 -msgid "The PoS interface." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:48 -msgid "When the payment is done, the status will change to :guilabel:`Payment Successful`. If needed, reverse the last transaction by clicking on :guilabel:`Reverse`." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:-1 -msgid "The Reverse button on the PoS interface." +msgid "Confirming the connection to the Six payment terminal" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:55 -msgid "If there is any issue with the payment terminal, you can still force the payment using the :guilabel:`Force Done` button. This will allow you to validate the order in Odoo even if there are connection issues between the payment terminal and Odoo." +msgid "From your database, go to :menuselection:`Point of Sale --> Configuration --> Payment Methods` to create a new payment method specifically for Six. Click :guilabel:`New`, enter a :guilabel:`Name`, set the :guilabel:`Journal` field as :guilabel:`Bank`, the :guilabel:`Use a Payment Terminal` field as :guilabel:`SIX IOT`, and select the corresponding device in the :guilabel:`Payment Terminal Device` field." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:-1 +msgid "Creating a new payment method for the SIX payment terminal" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:67 +msgid "When processing a payment, select :ref:`your Six payment method ` in the :guilabel:`Payment Method` section and click :guilabel:`Send`. To cancel the payment request, click :guilabel:`Cancel`. Once the payment is successful, the status switches to :guilabel:`Payment Successful`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:-1 +msgid "Paying with Six" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:76 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:91 +msgid "Once your payment is processed, the type of card used and the transaction ID appear on the payment record." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:78 +msgid "The language used for error messages is the same as the Six terminal. Configure the terminal to change the language or contact Six." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:80 +msgid "By default, the port used by the Six terminal is `7784`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:83 +msgid "If there are connection issues between the payment terminal and Odoo, you can still force the payment validation in Odoo using the :guilabel:`Force Done` button." msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/stripe.rst:3 @@ -2428,19 +2384,31 @@ msgstr "" msgid "Please note MercuryPay only operates with US and Canadian banks, making this procedure only suitable for North American businesses." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:18 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:13 +msgid "Vantiv card readers should be purchased exclusively from Vantiv, as certain Vantiv terminals bought on Amazon do not include the correct encryption needed to be used with an Odoo database." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:20 +msgid "Configure the Payment Method" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:22 msgid "First, go in the general settings of the POS app, and activate the Vantiv setting." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:24 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:28 msgid "Back in :menuselection:`Point of Sale --> Configuration --> Point of Sale`, go in the payments section and access your payment methods. Create a new payment method for Vantiv, select the payment terminal option Vantiv, and create new Vantiv credentials." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:32 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:36 msgid "To create new Vantiv credentials, fill in your merchant ID and password, then save. Make sure the credentials you just created are selected, then save the payment method." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:42 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:44 +msgid "Pay with a Payment Terminal" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/vantiv.rst:46 msgid "In your PoS interface, at the moment of the payment, select your Vantiv payment method and… that’s all." msgstr "" @@ -2540,10 +2508,6 @@ msgstr "" msgid "When processing a payment, select *Worldline* as payment method. Check the amount and click on *Send*. Once the payment is successful, the status changes to *Payment Successful*." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:91 -msgid "Once your payment is processed, the type of card used and the transaction ID appear on the payment record." -msgstr "" - #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:98 msgid "In case of connexion issues between Odoo and the payment terminal, force the payment by clicking on *Force Done*, which allows you to validate the order. This option is only available after receiving an error message informing you that the connection failed." msgstr "" @@ -2850,6 +2814,7 @@ msgid "If you select a customer with a default pricelist, it will be applied. Yo msgstr "" #: ../../content/applications/sales/point_of_sale/pricing/pricelists.rst:3 +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:38 #: ../../content/applications/sales/subscriptions/products.rst:80 msgid "Pricelists" msgstr "" @@ -2883,6 +2848,7 @@ msgid "Go to :menuselection:`Point of Sale --> Products --> Pricelists` and clic msgstr "" #: ../../content/applications/sales/point_of_sale/pricing/pricelists.rst:42 +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:234 msgid "Multiple prices per product" msgstr "" @@ -2915,6 +2881,7 @@ msgid "Setup form of a multiple prices pricelist" msgstr "" #: ../../content/applications/sales/point_of_sale/pricing/pricelists.rst:63 +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:312 msgid "Advanced price rules" msgstr "" @@ -5531,154 +5498,488 @@ msgid ":doc:`pricing`" msgstr "" #: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:3 -msgid "How to adapt your prices to your customers and apply discounts" +msgid "Pricelists, discounts, and formulas" msgstr "" #: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:5 -msgid "Odoo has a powerful pricelist feature to support a pricing strategy tailored to your business. A pricelist is a list of prices or price rules that Odoo searches to determine the suggested price. You can set several criteria to use a specific price: periods, min. sold quantity (meet a minimum order quantity and get a price break), etc." +msgid "Odoo *Sales* has a useful pricelist feature that can be tailored to fit any unique pricing strategy." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:10 -msgid "As pricelists only suggest prices, they can be overridden by vendors completing sales orders. Choose your pricing strategy from :menuselection:`Sales --> Settings`." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:7 +msgid "A *pricelist* is a list of prices (or price rules) that Odoo uses to determine the appropriate price for a customer. These pricelists can be set with specific criteria (such as time periods, minimum quantity sold, and more) in order to apply certain prices or discounts." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:18 -msgid "*A single sale price per product:* doesn't let you adapt prices, it use default product price ;" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:11 +msgid "Pricelists suggest certain prices, but they can always be overridden on the sales order." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:14 +msgid "Pricing strategy options" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:16 +msgid "To choose a pricing strategy, first navigate to :menuselection:`Sales app --> Configuration --> Settings`. In the :guilabel:`Pricing` section, click the checkbox next to the :guilabel:`Pricelists` feature." msgstr "" #: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:20 -msgid "*Different prices per customer segment:* you will set several prices per products ;" +msgid "Doing so reveals two additional options beneath it: :guilabel:`Multiple prices per product` and :guilabel:`Advanced price rules (discounts, formulas)`. A link labeled :guilabel:`Pricelists` also appears, which leads to a separate pricelists page, wherein pricelists can be created and/or modified." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:21 -msgid "*Advanced pricing based on formula:* will let you apply discounts, margins and roundings." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:25 +msgid ":guilabel:`Multiple prices per product`: provides the option to set several different prices per product." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:24 -msgid "Several prices per product" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:27 +msgid ":guilabel:`Advanced price rules (discounts, formulas)`: provides the option to create detailed price rules and apply discounts, margins, and roundings." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:26 -msgid "To apply several prices per product, select *Different prices per customer segment* in :menuselection:`Sales --> Settings`. Then open the *Sales* tab in the product detail form. You can settle following strategies." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "How the pricelist feature setting looks in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:31 -msgid "Prices per customer segment" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:34 +msgid "After clicking the checkbox beside the :guilabel:`Pricelists` feature, select one of those two options, then click :guilabel:`Save` to save all changes." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:33 -msgid "Create pricelists for your customer segments: e.g. registered, premium, etc." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:40 +msgid "After activating and saving the :guilabel:`Pricelists` feature, the :guilabel:`Settings` page reloads and, from here, either select the :guilabel:`Pricelists` link (beneath the :guilabel:`Pricelists` feature on the :guilabel:`Settings` page), or navigate to :menuselection:`Sales app --> Products --> Pricelists`." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:38 -msgid "The default pricelist applied to any new customer is *Public Pricelist*. To segment your customers, open the customer detail form and change the *Sale Pricelist* in the *Sales & Purchases* tab." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:45 +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:328 +msgid "Either option reveals the :guilabel:`Pricelists` page, in which pricelists can be created and/or modified at any time." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:46 -msgid "Temporary prices" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "How the pricelists page looks in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:48 -msgid "Apply deals for bank holidays, etc. Enter start and end dates dates." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:53 +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:267 +msgid "The :guilabel:`Public Pricelist` is the default pricelist used with Odoo *Sales* and *eCommerce*." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:54 -msgid "Make sure you have default prices set in the pricelist outside of the deals period. Otherwise you might have issues once the period over." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:55 +msgid "From the :guilabel:`Pricelists` page, either select the desired pricelist to edit, or click :guilabel:`New` to create a new pricelist, which reveals a blank pricelist form that can be configured in a number of different ways." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:58 -msgid "Prices per minimum quantity" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "How the pricelist detail form looks in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:64 -msgid "The prices order does not matter. The system is smart and applies first prices that match the order date and/or the minimal quantities." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:63 +msgid "When creating a new pricelist, start by adding a name for the pricelist at the top of the form, in the blank field. Next, select which :guilabel:`Currency` should be used." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:68 -msgid "Discounts, margins, roundings" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:66 +msgid "Then, if working in a multi-company environment, select which company this pricelist should apply to in the :guilabel:`Company` field. If this field is left blank, the pricelist is automatically applied to all companies in the database." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:70 -msgid "*Advanced pricing based on formula* allows to set price change rules. Changes can be relative to the product list/catalog price, the product cost price, or to another pricelist. Changes are calculated via discounts or surcharges and can be forced to fit within floor (minimum margin) and ceilings (maximum margins). Prices can be rounded to the nearest cent/dollar or multiple of either (nearest 5 cents, nearest 10 dollars)." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:71 +msgid "Price rules tab" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:73 +msgid "The :guilabel:`Price Rules` tab functionality on a pricelist form varies depending on the :guilabel:`Pricelists` setting chosen: either :guilabel:`Multiple prices per product` or :guilabel:`Advanced price rules (discounts, formulas)`." msgstr "" #: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:77 -msgid "Once installed go to :menuselection:`Sales --> Configuration --> Pricelists` (or :menuselection:`Website Admin --> Catalog --> Pricelists` if you use e-Commerce)." +msgid "However, the :guilabel:`Time-based rules` tab and :guilabel:`Configuration` tab are always the same, regardless of the chosen :guilabel:`Pricelists` setting." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:85 -msgid "Each pricelist item can be associated to either all products, to a product internal category (set of products) or to a specific product. Like in second option, you can set dates and minimum quantities." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:81 +msgid "Price rules tab (multiple prices per product)" msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:92 -msgid "Once again the system is smart. If a rule is set for a particular item and another one for its category, Odoo will take the rule of the item." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:83 +msgid "With the :guilabel:`Multiple prices per product` setting activated, the :guilabel:`Price Rules` tab on pricelist forms provides the option to add specific products, with a specific price, to a pricelist." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:94 -msgid "Make sure at least one pricelist item covers all your products." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:87 +msgid "To add a specific product and price to a pricelist form, click the :guilabel:`Price Rules` tab, then click :guilabel:`Add a line` in the :guilabel:`Products` column. Then, select the desired product for which a specific price should be applied." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:96 -msgid "There are 3 modes of computation: fix price, discount & formula." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:91 +msgid "Next, if necessary, select a product variant under the :guilabel:`Variants` column (e.g. a specific product size, color, etc.). If no variants are selected, then this price will apply to all variants of the product." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:101 -msgid "Here are different price settings made possible thanks to formulas." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:95 +msgid "If a minimum amount of the product must be purchased in order to apply the specific price, enter the amount under the :guilabel:`Min. Quantity` column." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:104 -msgid "Discounts with roundings" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:98 +msgid "To configure the price of the product for this specific pricelist, enter the desired amount under the :guilabel:`Price` column. Then, there is the option to add a :guilabel:`Start Date` and :guilabel:`End Date` to the configured product price, if desired." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:106 -msgid "e.g. 20% discounts with prices rounded up to 9.99." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:102 +msgid "To add another product line, click :guilabel:`Add a line` again, and repeat the process. There is no limit to how many products can be added in the :guilabel:`Price Rules` tab of a pricelist form." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:112 -msgid "Costs with markups (retail)" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:105 +msgid "For more information, check out the following section: :ref:`Multiple prices per product `." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:114 -msgid "e.g. sale price = 2*cost (100% markup) with $5 of minimal margin." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:109 +msgid "Price rules tab (advanced price rules)" msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:120 -msgid "Prices per country" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:111 +msgid "With the :guilabel:`Advanced price rules (discounts, formulas)` setting activated, the :guilabel:`Price Rules` tab on pricelist forms provides the option to configure detailed price rules based on formulas." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:122 -msgid "Pricelists can be set by countries group. Any new customer recorded in Odoo gets a default pricelist, i.e. the first one in the list matching the country. In case no country is set for the customer, Odoo takes the first pricelist without any country group." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:115 +msgid "Check out the :ref:`Advanced price rules (discounts, formulas) ` section for detailed steps on how to add advanced price rules to a pricelist." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:126 -msgid "The default pricelist can be replaced when creating a sales order." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:119 +msgid "Time-based rules tab" msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:128 -msgid "You can change the pricelists sequence by drag & drop in list view." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:121 +msgid "Time-based rules are used specifically with :doc:`subscription products `. Be sure to check out the Odoo *Subscriptions* :doc:`documentation `." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:131 -msgid "Compute and show discount % to customers" +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:125 +msgid "Under the :guilabel:`Time-based rules` tab, the same functionality of the :guilabel:`Price Rules` tab is present, with the only difference being that a repeating time period can be applied in the :guilabel:`Period` column." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:129 +msgid "After a :guilabel:`Product` and potential :guilabel:`Variant` are selected in the :guilabel:`Time-based rules` tab, select the blank field in the :guilabel:`Period` column to reveal a drop-down menu of pre-designated recurrence periods (e.g. `Monthly`, `Quarterly`, `Weekly`, etc.)." msgstr "" #: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:133 -msgid "In case of discount, you can show the public price and the computed discount % on printed sales orders and in your eCommerce catalog. To do so:" +msgid "New recurrence periods can also be directly created from this column, by typing in the new name for the :guilabel:`Period` and then selecting :guilabel:`Create` to create the time period, which can be edited later. Or, select :guilabel:`Create and edit...` to reveal a pop-up form, in which the new recurrence period can be directly configured." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:136 -msgid "Check *Allow discounts on sales order lines* in :menuselection:`Sales --> Configuration --> Settings --> Quotations & Sales --> Discounts`." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "Custom time period pop-up form in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:138 -msgid "Apply the option in the pricelist setup form." +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:142 +msgid "From this :guilabel:`Create Period` pop-up form, add a :guilabel:`Name`, :guilabel:`Duration`, then a :guilabel:`Unit` (e.g. `Days`, `Weeks`, etc.). When finished, click :guilabel:`Save and Close`." msgstr "" #: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:145 -msgid ":doc:`currencies`" +msgid "Lastly, add the desired price for this time-based rule in the :guilabel:`Price` column." msgstr "" -#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:146 +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:148 +msgid ":doc:`/applications/sales/subscriptions`" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:151 +msgid "Configuration tab" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:153 +msgid "Under the :guilabel:`Configuration` tab, there are a few options that can further customize the pricelist." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "Configuration tab on pricelist detail form in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:160 +msgid "From here, under the :guilabel:`Availability` section, in the :guilabel:`Country Groups` field, certain country groups can be added to the pricelist. There is no limit to how many country groups can be added in this field." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:165 +msgid "If no country is set for a customer, Odoo takes the first pricelist without any country group." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:167 +msgid "Under the :guilabel:`Website` section, there are a few options that can be configured. In the :guilabel:`Website` field, this pricelist can be applied to a specific website, if working in a multi-website environment. If left blank, the pricelist will be applied to all websites in the database." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:172 +msgid "Click the :guilabel:`Selectable` checkbox to have this pricelist as a selectable option for customers to choose as they shop. If the :guilabel:`Selectable` box is left unchecked, customers **cannot** select this pricelist for themselves as they shop." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:176 +msgid "Lastly, there is the option to add an :guilabel:`E-commerce Promotional Code`. To add a code, type in the desired promo code that, when entered during the checkout process, applies the pricelist to the customer, even if the customer does not fall into the previously-specified criteria." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:181 +msgid "Show discount percentage to customers" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:183 +msgid "With Odoo *Sales*, the option to show the public price *and* the computed discount percentage on the product catalog is available." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:186 +msgid "To do that, navigate to :menuselection:`Sales app --> Configuration --> Settings`, and in the :guilabel:`Pricing` section, click the checkbox next to the :guilabel:`Discounts` feature, and then click :guilabel:`Save` to save all changes." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:190 +msgid "After activating the :guilabel:`Discounts` feature, navigate to the pricelists page, either by clicking the :guilabel:`Pricelists` link from the :guilabel:`Settings` page, or by going to :menuselection:`Sales app --> Products --> Pricelists`." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:194 +msgid "On the :guilabel:`Pricelists` page, select the desired pricelist to edit. On the pricelist form, click into the :guilabel:`Configuration` tab. In the :guilabel:`Configuration` tab, at the bottom, a :guilabel:`Discounts` section is now available." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "What the discount options are on the configuration tab of a pricelist in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:202 +msgid "The options available in this section are:" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:204 +msgid ":guilabel:`Discount included in the price`: shows the customer only the final price with the discount already included." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:206 +msgid ":guilabel:`Show public price & discount to the customer`: shows the customer the public price *and* the discount they're earning." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:210 +msgid "Customer pricelist application" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:212 +msgid "While the default pricelist applied to any customer is the :guilabel:`Public Pricelist`, Odoo provides the opportunity to directly apply a different pricelist to customers on their contact form." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:215 +msgid "To do that, open the desired customer's contact form, either by navigating to :menuselection:`Sales app --> Orders --> Customers` and selecting the customer from the main :guilabel:`Customers` page, or by clicking on the customer's name on a sales order." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "Sample customer detail form in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:223 +msgid "On the desired customer's contact form, under the :guilabel:`Sales & Purchase` tab, in the :guilabel:`Sales` section, designate what pricelist should be applied to this specific customer from the drop-down menu in the :guilabel:`Pricelist` field." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "The pricelist field in a customer detail form in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:236 +msgid "To apply several prices per individual product, select the :guilabel:`Multiple prices per product` option, after enabling the :guilabel:`Pricelists` feature on the *Sales* app setting page (:menuselection:`Sales app --> Configuration --> Settings`), and click :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:240 +msgid "Next, apply pricelists to specific products using the product form. Navigate to the :menuselection:`Sales app --> Products --> Products` and select the product for which multiple prices should be applied. Selecting a product from the :guilabel:`Products` page reveals that specific product's product form on a separate page." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:245 +msgid "On the product form, click the :guilabel:`Extra Prices` smart button, located at the top of the form." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "How the extra prices smart button appears in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:252 +msgid "Doing so reveals a separate page displaying the :guilabel:`Price Rules` that are specific to that particular product. Here, price rules can be edited or created at any time." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "How the extra price rules per product page appears in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:259 +msgid "To create a new price rule for a product from this specific :guilabel:`Price Rules` page, click :guilabel:`New` to add a new, customizable row that has the desired product already populated in the :guilabel:`Applied On` column." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:263 +msgid "Next, select which :guilabel:`Pricelist` this specific product price rule should apply to, via the drop-down menu in the :guilabel:`Pricelist` column." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:270 +msgid "To create a new pricelist from this page, type in the desired name of the new pricelist in the :guilabel:`Pricelist` column, then select :guilabel:`Create` from the drop-down menu. All pricelists can be modified at any time, by navigating to :menuselection:`Sales app --> Products --> Pricelists`. Pricelists can also be created on that specific :guilabel:`Pricelists` page, as well." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:276 +msgid "After the desired pricelist is added to the row, designate a :guilabel:`Min. Quantity` for the price rule." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:280 +msgid "If the :guilabel:`Min. Quantity` column is set to `2`, the new price in the :guilabel:`Price` column will be applied to orders of 2 or more products. So, in theory, if a single product costs $100, customers can be encouraged to buy more, if the :guilabel:`Price` is set at $85 per product for a :guilabel:`Min. Quantity` of `2` products." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:285 +msgid "Next, enter the desired amount in the :guilabel:`Price` column. Then, if needed, enter a :guilabel:`Start Date` and :guilabel:`End Date` for the product's price rule." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:288 +msgid "And lastly, if working in a multi-company environment, select which company this price rule should be applied to in the :guilabel:`Company` field. Leaving this field blank means the price rule applies for all companies in the database." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:292 +msgid "Click away from the row to activate Odoo's auto-save capability, meaning that newly-created price rule is now ready to be used." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:295 +msgid "Proceed to add as many unique price rules per product as desired. There is no limit to how many price rules can be added per product." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:298 +msgid "With the price rule(s) in place for a specific product, customers who fall into those corresponding pricelists automatically see those new prices applied. The number of price rules applied to a particular product are also displayed in the :guilabel:`Extra Prices` smart button, located on every product form." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:304 +msgid "When a price rule/pricelist is added to a product via the :guilabel:`Extra Prices` smart button, it is also reflected on the pricelist itself. Similarly, when a price rule for a specific product is added to a pricelist, it is also reflected on the product form via the :guilabel:`Extra Prices` smart button." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:314 +msgid "The :guilabel:`Advanced price rules (discounts, formulas)` pricelist feature provides the option to set price change rules based on discounts and formulas. These changes can be relative to the product list/catalog price, the product's cost, or another pricelist." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:318 +msgid "To use advanced pricing rules, with discounts and formulas, select the :guilabel:`Advanced price rules (discounts, formulas)` option, after enabling the :guilabel:`Pricelists` feature on the *Sales* app setting page (:menuselection:`Sales app --> Configuration --> Settings`), and click :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:323 +msgid "After activating and saving that :guilabel:`Pricelists` feature, the :guilabel:`Settings` page reloads and, from here, either select the :guilabel:`Pricelists` link (beneath the :guilabel:`Pricelists` feature on the :guilabel:`Settings` page), or navigate to :menuselection:`Sales app --> Products --> Pricelists`." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:331 +msgid "From the :guilabel:`Pricelists` page, select a desired pricelist to modify, or create a new pricelist by clicking the :guilabel:`New` button." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:334 +msgid "On the pricelist form, under the :guilabel:`Price Rules` tab, click :guilabel:`Add a line` to add an advanced price rule. Doing so reveals a :guilabel:`Create Pricelist Rules` pop-up form, in which the advanced rule is configured." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "How the Create Pricelist Rules pop-up form looks in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:343 +msgid "Price computation" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:345 +msgid "On this form, first choose one of the three :guilabel:`Computation` options:" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:347 +msgid ":guilabel:`Fixed Price`: the price computation is based on a fixed price." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:348 +msgid ":guilabel:`Discount`: the price computation is based on a discount." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:349 +msgid ":guilabel:`Formula`: the price computation is based on a formula." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:352 +msgid "Each :guilabel:`Computation` option reveals its own computation-specific fields on the form." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:354 +msgid "If :guilabel:`Fixed Price` is selected, enter the desired price in the :guilabel:`Fixed Price` field below. If :guilabel:`Discount` is selected, enter the desired discount percentage in the :guilabel:`Discount` field that appears." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:358 +msgid "If :guilabel:`Formula` is selected, a number of configurable options appear." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:-1 +msgid "The various formula computation options present in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:364 +msgid "To configure the :guilabel:`Formula` computation option, start by selecting an option from the :guilabel:`Based on` field: :guilabel:`Sales Price`, :guilabel:`Cost`, or :guilabel:`Other Pricelist`. This determines what the advanced price rule formula will be based on." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:368 +msgid "Next, in the :guilabel:`Discount` field, determine how much of a discount should be applied. It should be noted that a mark-up can be applied by setting a negative discount in this field." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:372 +msgid "To formulate a 100% markup (or 2 times the cost of the product), with a $5 minimum margin, set the :guilabel:`Based on` field to :guilabel:`Cost`, the :guilabel:`Discount` to `-100`, and the :guilabel:`Margins` to `5`. This is often seen in retail situations." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:0 +msgid "How it looks to formulate a markup cost with 5 dollar minimum margin in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:380 +msgid "Then, in the :guilabel:`Extra Fee` field, specify a fixed amount to add (or subtract) to the amount calculated with the discount. After that, enter a desired figure in the :guilabel:`Rounding Method` field. The rounding method sets the price so that it is a multiple of the value in the field." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:385 +msgid "Rounding is applied *after* the discount and *before* the surcharge." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:388 +msgid "To have prices that end in 9.99, set the :guilabel:`Rounding Method` to `10` and the :guilabel:`Extra Fee` to `-0.01`." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:391 +msgid "Lastly, specify the minimum amount of margin over the base price in the :guilabel:`Margins` field." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:393 +msgid "Once all formula-related configurations are complete, Odoo provides an example of the formula in a blue block to the right of the configurations." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:397 +msgid "To apply 20% discounts, with prices rounded up to 9.99, set the :guilabel:`Based on` field to :guilabel:`Sales Price`, the :guilabel:`Discount` field to `20`, the :guilabel:`Extra Fee` field to `-0.01`, and the :guilabel:`Rounding Method` field to `10`." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:0 +msgid "Example of a 20% discount with prices rounded to 9.99 in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:406 +msgid "Conditions" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:408 +msgid "At the bottom of the :guilabel:`Create Pricelist Rules` pop-up form is the :guilabel:`Conditions` section." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:411 +msgid "Here, start by selecting one of the options in the :guilabel:`Apply On` field:" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:413 +msgid ":guilabel:`All Products`: the advanced pricelist rule will be applied to all products." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:414 +msgid ":guilabel:`Product Category`: the advanced pricelist rule will be applied to a specific category of products." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:416 +msgid ":guilabel:`Product`: the advanced pricelist rule will be applied to a specific product." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:417 +msgid ":guilabel:`Product Variant`: the advanced pricelist rule will be applied to a specific product variant." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:420 +msgid "If any of those options, apart from :guilabel:`All Products`, are selected, a new option-specific field appears, in which the specific :guilabel:`Product Category`, :guilabel:`Product`, or :guilabel:`Product Variant` must be chosen." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:424 +msgid "Then, select a minimum quantity to be applied to the advanced pricelist rule in the :guilabel:`Min. Quantity` field. Lastly, select a range of dates for the pricelist item validation in the :guilabel:`Validity` field." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:428 +msgid "Once all configurations are complete, either click :guilabel:`Save & Close` to save the advanced pricelist rule, or click :guilabel:`Save & New` to immediately create another advanced pricelist rule on a fresh form." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:433 +msgid "If a price rule is set for a particular product, and another one for its product category, Odoo takes the rule of the product itself." +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:437 +msgid ":doc:`/applications/sales/sales/products_prices/prices/currencies`" +msgstr "" + +#: ../../content/applications/sales/sales/products_prices/prices/pricing.rst:438 msgid ":doc:`/applications/websites/ecommerce/managing_products/price_management`" msgstr "" @@ -6225,65 +6526,61 @@ msgid "In the Odoo *Sales* application, it is possible to set deadlines on sales msgstr "" #: ../../content/applications/sales/sales/send_quotations/deadline.rst:11 -msgid "Expiration date deadlines" +msgid "Quotation expiration" msgstr "" #: ../../content/applications/sales/sales/send_quotations/deadline.rst:13 -msgid "On an Odoo *Sales* quotation, add an expiration date in the :guilabel:`Expiration` field located at the top of the quotation or sales order form." +msgid "In Odoo *Sales*, there's the option to add an expiration date to a quotation." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:16 -msgid "To add an expiration date to a quotation, navigate to :menuselection:`Sales app`, and select a desired quotation, or create a new one by clicking :guilabel:`Create`." +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:15 +msgid "To add an expiration date to a quotation, navigate to :menuselection:`Sales app`, and select a desired quotation, or create a new one by clicking :guilabel:`New`." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:19 -msgid "On the quotation form, click :guilabel:`Edit` (if modifying a pre-existing quotation), and click the :guilabel:`Expiration` field. Doing so reveals a drop-down calendar, in which the month and date can be designated as the expiration date of the quotation." +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:18 +msgid "On the quotation form, click the :guilabel:`Expiration` field to reveal a pop-up calendar. From this pop-up calendar, select the desired month and date as the expiration date for the quotation." msgstr "" #: ../../content/applications/sales/sales/send_quotations/deadline.rst:-1 -msgid "How to configure deadlines on Odoo Sales." +msgid "The expiration field on a standard quotation form in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:27 -msgid "Once the expiration date is selected, click :guilabel:`Save` to save all changes." -msgstr "" - -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:30 -msgid "Deadlines in quotation templates" -msgstr "" - -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:32 -msgid "The Odoo *Sales* application also makes it possible to add a deadline to every quotation template. Whenever a specific quotation template is used in a quote, its associated deadline is automatically applied." -msgstr "" - -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:36 -msgid "To add a deadline to a quotation template, navigate to :menuselection:`Sales app --> Configuration --> Quotation Templates`, and either select the desired quotation template to which a deadline should be added, or click :guilabel:`Create` to build a new quotation template from scratch." -msgstr "" - -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:40 -msgid "On the quotation template detail page, click the :guilabel:`Edit` button to edit the quotation." -msgstr "" - -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:42 -msgid "Then, add a specific number of days to the :guilabel:`Quotation expires after` field, located beneath the quotation template name. The number of days represents how long the quotation will be valid for, before it expires. When done, click :guilabel:`Save`." -msgstr "" - -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:-1 -msgid "How to use deadline in a quotation template on Odoo Sales." -msgstr "" - -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:51 -msgid "By clicking the :guilabel:`Customer Preview` button on a quotation, Odoo clearly displays when that specific offer expires. As a reminder, the number of days is the same as those mentioned in the quotation template (if a quotation template was used for the initial quotation)." +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:26 +msgid "By clicking the :guilabel:`Preview` button on a quotation, Odoo clearly displays when that specific offer expires." msgstr "" #: ../../content/applications/sales/sales/send_quotations/deadline.rst:0 msgid "How customers will see deadlines on Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/deadline.rst:60 +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:34 +msgid "Quotation template expiration" +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:36 +msgid "The Odoo *Sales* application also makes it possible to add a deadline expiration date to quotation templates." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:39 +msgid "To add a deadline expiration date to a quotation template, navigate to :menuselection:`Sales app --> Configuration --> Quotation Templates`, and either select the desired quotation template to which a deadline should be added, or click :guilabel:`New` to build a new quotation template from scratch." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:43 +msgid "On the quotation template form, add a specific number of days to the :guilabel:`Quotation expires after` field, located beneath the quotation template name. The number of days represents how long the quotation will be valid for, before it expires." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:-1 +msgid "The quotation expires after field on a quotation template form in Odoo Sales." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:51 +msgid "Then, whenever that specific quotation template is used in a quote, an expiration date is automatically calculated, based on the number of days designated above. However, this date can be overwritten before sending the quotation to the customer." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/deadline.rst:56 #: ../../content/applications/sales/sales/send_quotations/get_signature_to_validate.rst:52 #: ../../content/applications/sales/sales/send_quotations/optional_products.rst:90 -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:220 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:223 msgid ":doc:`/applications/sales/sales/send_quotations/quote_template`" msgstr "" @@ -6683,11 +6980,15 @@ msgstr "" msgid "Having a customized PDF in quotes provides a heightened conclusion to the shopping experience for customers, and adds an elegant level of professionalism to a company." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:19 -msgid "In order to add custom PDF files for quotes, the :guilabel:`PDF Quote builder` feature *must* be configured." +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:17 +msgid "`Odoo Quick Tips - Create a PDF quote [video] `_" msgstr "" #: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:22 +msgid "In order to add custom PDF files for quotes, the :guilabel:`PDF Quote builder` feature *must* be configured." +msgstr "" + +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:25 msgid "To do that, navigate to :menuselection:`Sales app --> Configuration --> Settings`. Then, on the :guilabel:`Settings` page, scroll to the :guilabel:`Quotations & Orders` section, and locate the :guilabel:`PDF Quote builder` feature." msgstr "" @@ -6695,131 +6996,131 @@ msgstr "" msgid "The PDF Quote Builder feature located on the Settings page of the Sales application." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:30 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:33 msgid "Here, custom :guilabel:`Header pages` and :guilabel:`Footer pages` can be uploaded. To upload either, click the :guilabel:`Upload your file` button, or the :guilabel:`✏️ (pencil)` icon to the right of the desired field, and proceed to locate, select, and upload the desired PDF file." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:35 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:38 msgid "Headers and footers can also be added directly in a quotation template, so it's possible to have different variations per template." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:38 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:41 msgid "Clicking the :guilabel:`🗑️ (trash)` icon deletes the current PDF file and replaces the blank field with an :guilabel:`Upload your file` button." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:41 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:44 msgid "Once the desired PDF file(s) are uploaded in the appropriate fields in the :guilabel:`PDF Quote builder` section of the *Sales* :guilabel:`Settings` page, be sure to click :guilabel:`Save`." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:44 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:47 msgid "The files uploaded here will be the default PDF used for all quotes." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:47 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:50 msgid "Values set in the PDF Quote Builder settings are company-specific." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:50 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:53 msgid "Dynamic text in PDFs" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:52 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:55 msgid "While creating custom PDFs for quotes, use *dynamic text* for Odoo to auto-fill the PDF content with information related to the quote from the Odoo database, like names, prices, etc." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:55 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:58 msgid "Dynamic text values are form components (text inputs) that can be added in a PDF file, and Odoo automatically fills those values in with information related to the quote." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:59 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:62 msgid "Dynamic text values" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:61 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:64 msgid "Below are common dynamic text values used in custom PDFs, and what they represent:" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:63 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:66 msgid ":guilabel:`name`: Sales Order Reference" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:64 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:67 msgid ":guilabel:`partner_id__name`: Customer Name" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:65 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:68 msgid ":guilabel:`user_id__name`: Salesperson Name" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:66 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:69 msgid ":guilabel:`amount_untaxed`: Untaxed Amount" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:67 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:70 msgid ":guilabel:`amount_total`: Total Amount" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:68 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:71 msgid ":guilabel:`delivery_date`: Delivery Date" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:69 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:72 msgid ":guilabel:`validity_date`: Expiration Date" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:70 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:73 msgid ":guilabel:`client_order_ref`: Customer Reference" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:73 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:76 msgid "Double underscore notation for :guilabel:`partner_id__name` and :guilabel:`user_id__name` values are used in place of the typically used `.` symbol because the library currently does not support the `.` symbol." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:77 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:80 msgid "Product-specific dynamic text values are as follows:" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:79 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:82 msgid ":guilabel:`description`: Product Description" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:80 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:83 msgid ":guilabel:`quantity`: Quantity" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:81 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:84 msgid ":guilabel:`uom`: Unit of Measure (UoM)" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:82 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:85 msgid ":guilabel:`price_unit`: Price Unit" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:83 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:86 msgid ":guilabel:`discount`: Discount" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:84 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:87 msgid ":guilabel:`product_sale_price`: Product List Price" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:85 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:88 msgid ":guilabel:`taxes`: Taxes name joined by a comma (`,`)" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:86 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:89 msgid ":guilabel:`tax_excl_price`: Tax Excluded Price" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:87 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:90 msgid ":guilabel:`tax_incl_price`: Tax Included Price" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:90 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:93 msgid "When a PDF is built, it's best practice to use common dynamic text values (:guilabel:`name` and :guilabel:`partner_id_name`). When uploaded into the database, Odoo auto-populates those fields with the information from their respective fields." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:94 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:97 msgid "In this case, Odoo would auto-populate the Sales Order Reference in the :guilabel:`name` dynamic text field, and the Customer Name in the :guilabel:`partner_id_name` field." msgstr "" @@ -6827,39 +7128,39 @@ msgstr "" msgid "PDF quote being built using common dynamic placeholders." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:101 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:104 msgid "Once the PDF file(s) are complete, save them to the computer's hard drive, and proceed to upload them to Odoo via :menuselection:`Sales app --> Configuration --> Settings --> PDF Quote builder`." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:104 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:107 msgid "Upload the created PDF in the :guilabel:`Header pages` or :guilabel:`Footer pages` field." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:106 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:109 msgid "Once the upload(s) are complete, click :guilabel:`Save`." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:109 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:112 msgid "Add PDF to product" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:111 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:114 msgid "In Odoo *Sales*, it's also possible to add a custom PDF to a product form. When a PDF is added to a product, and that product is used in a quotation, that PDF is also inserted in the final PDF." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:114 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:117 msgid "To add a custom PDF to a product, start by navigating to :menuselection:`Sales app --> Products --> Products`, and select the desired product to which a custom PDF should be added." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:118 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:121 msgid "A document could also be added to a product variant, instead of a product. If there are documents on a product *and* on its variant, **only** the documents in the variant are shown." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:121 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:124 msgid "To add a custom document to a product variant, navigate to :menuselection:`Sales app --> Products --> Product Variants`. Select the desired variant, click the :guilabel:`Documents` smart button, and proceed to upload the custom document(s) to the specific product variant." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:125 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:128 msgid "On the product page, click the :guilabel:`Documents` smart button at the top of the page." msgstr "" @@ -6867,15 +7168,15 @@ msgstr "" msgid "The Documents smart button on a product form in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:131 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:134 msgid "Doing so reveals a separate :guilabel:`Documents` page for that product, wherein files related to that product can be uploaded. From this page, either click :guilabel:`New` or :guilabel:`Upload`." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:134 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:137 msgid "Clicking :guilabel:`Upload` instantly provides the opportunity to upload the desired document. Then, the document can be further configured on the document card, or by clicking the three dots icon in the top right corner of the document card, and then clicking :guilabel:`Edit`." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:138 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:141 msgid "Clicking :guilabel:`New` reveals a blank documents form, in which the desired PDF can be uploaded via the :guilabel:`Upload your file` button on the form, located in the :guilabel:`File Content` field." msgstr "" @@ -6883,15 +7184,15 @@ msgstr "" msgid "A standard document form with various fields for a specific product in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:146 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:149 msgid "Various information and configurations related to the uploaded document can be modified here." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:148 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:151 msgid "The first field on the documents form is for the :guilabel:`Name` of the document, and it is grayed-out (not clickable) until a document is uploaded. Once a PDF has been uploaded, the :guilabel:`Name` field is auto-populated with the name of the PDF, and it can then be edited." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:152 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:155 msgid "Prior to uploading a document, there's the option to designate whether the document is a :guilabel:`File` or :guilabel:`URL` from the :guilabel:`Type` drop-down field menu." msgstr "" @@ -6899,27 +7200,27 @@ msgstr "" msgid "A standard document form with an uploaded pdf in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:160 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:163 msgid "If a PDF is uploaded, the :guilabel:`Type` field is auto-populated to :guilabel:`File`, and it cannot be modified." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:163 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:166 msgid "Then, in the :guilabel:`Sales` section, in the :guilabel:`Visible at` field, click the drop-down menu, and select either: :guilabel:`Quotation`, :guilabel:`Confirmed order`, or :guilabel:`Inside quote`." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:167 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:170 msgid ":guilabel:`Quotation`: the document is sent to (and accessible by) customers at any time." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:169 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:172 msgid ":guilabel:`Confirmed order`: the document is sent to customers upon the confirmation of an order. This is best for user manuals and other supplemental documents." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:172 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:175 msgid ":guilabel:`Inside quote`: the document is included in the PDF of the quotation, between the header pages and the :guilabel:`Pricing` section of the quote." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:176 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:179 msgid "When the :guilabel:`Inside quote` option for the :guilabel:`Visible at` field is chosen, and the custom PDF file, `Sample Builder.pdf` is uploaded, the PDF is visible on the quotation the in the *customer portal* under the :guilabel:`Documents` field." msgstr "" @@ -6927,15 +7228,15 @@ msgstr "" msgid "Sample of an uploaded pdf with the inside quote option chosen in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:184 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:187 msgid "Lastly, in the :guilabel:`E-Commerce` section, decide whether or not to :guilabel:`Show on product page` on the front-end (in the online store)." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:188 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:191 msgid "When the :guilabel:`Show on product page` option is enabled, a link to the uploaded document, `Sample Builder.pdf`, appears on the product's page, located on the frontend in the online store." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:191 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:194 msgid "It appears beneath a :guilabel:`Documents` heading, with a link showcasing the name of the uploaded document." msgstr "" @@ -6943,15 +7244,15 @@ msgstr "" msgid "Showing a link to an uploaded document on a product page using Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:199 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:202 msgid "PDF quote" msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:201 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:204 msgid "Once a quote with a pre-configured PDF has been confirmed, Odoo provides the option to print the confirmed quote to check for errors, or to keep for records." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:204 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:207 msgid "To print the PDF quote, navigate to the confirmed quote, and click the :guilabel:`⚙️ (gear)` icon to reveal a drop-down menu. From this drop-down menu, select :guilabel:`Print`, then select :guilabel:`PDF Quote`." msgstr "" @@ -6959,11 +7260,11 @@ msgstr "" msgid "Print pdf quote option on drop-down menu located on confirmed sales order in Odoo Sales." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:212 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:215 msgid "Doing so instantly downloads the PDF quote. When opened, the PDF quote, along with the configured product PDF that was set to be visible inside the quote, can be viewed and printed." msgstr "" -#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:216 +#: ../../content/applications/sales/sales/send_quotations/pdf_quote_builder.rst:219 msgid "Download these :download:`PDF quote builder examples ` for added reference." msgstr "" diff --git a/locale/sources/services.pot b/locale/sources/services.pot index 3c069b4e7..189eb2a1c 100644 --- a/locale/sources/services.pot +++ b/locale/sources/services.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1690,7 +1690,7 @@ msgid ":guilabel:`Type`: which matches an Odoo model value to the field (e.g. `C msgstr "" #: ../../content/applications/services/helpdesk/overview/receiving_tickets.rst:94 -msgid ":guilabel:`Input Type`: to determine what time of input the field should be, like `Text`, `Email`, `Telephone` or `URL`." +msgid ":guilabel:`Input Type`: to determine what type of input the field should be, like `Text`, `Email`, `Telephone` or `URL`." msgstr "" #: ../../content/applications/services/helpdesk/overview/receiving_tickets.rst:96 @@ -2332,14 +2332,14 @@ msgid "If a ticket fits the criteria for more than one :abbr:`SLA (Service Level msgstr "" #: ../../content/applications/services/helpdesk/overview/sla.rst:95 -msgid "Once a ticket satisfies an :abbr:`SLA (Service Level Agreement)` policy, the :abbr:`SLA (Service Level Agreement)` tag turns green, and the :guilabel:`Deadline` field disappears from view on the." +msgid "Once a ticket satisfies an :abbr:`SLA (Service Level Agreement)` policy, the :abbr:`SLA (Service Level Agreement)` tag turns green, and the :guilabel:`Deadline` field disappears from view on the ticket." msgstr "" #: ../../content/applications/services/helpdesk/overview/sla.rst:-1 msgid "View of a ticket's form emphasizing a satisfied SLA in Odoo Helpdesk" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:102 +#: ../../content/applications/services/helpdesk/overview/sla.rst:103 msgid "If the :abbr:`SLA (Service Level Agreement)` deadline passes and the ticket has not moved to the :guilabel:`Reach Stage`, the :abbr:`SLA (Service Level Agreement)` tag will turn red. Once the :abbr:`SLA (Service Level Agreement)` has failed, the red tag will stay on the ticket, even after the ticket is moved to the :guilabel:`Reach Stage`." msgstr "" @@ -2347,19 +2347,19 @@ msgstr "" msgid "View of a ticket's form with a failing and passing SLA in Odoo Helpdesk" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:112 +#: ../../content/applications/services/helpdesk/overview/sla.rst:113 msgid "Analyzing SLA performance" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:114 +#: ../../content/applications/services/helpdesk/overview/sla.rst:115 msgid "The :guilabel:`SLA Status Analysis` report tracks how quickly an :abbr:`SLA (Service Level Agreement)` is fulfilled, as well as the success rate of individual policies. Navigate to the report and corresponding pivot table by going to :menuselection:`Helpdesk --> Reporting --> SLA Status Analysis`." msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:120 +#: ../../content/applications/services/helpdesk/overview/sla.rst:121 msgid "Using the Pivot view" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:122 +#: ../../content/applications/services/helpdesk/overview/sla.rst:123 msgid "By default, the report is displayed in a :guilabel:`Pivot` view, and is filtered to show the number of SLAs failed and the failure rate over the last 30 days, grouped by team." msgstr "" @@ -2367,23 +2367,23 @@ msgstr "" msgid "View of the SLA status analysis report in Odoo Helpdesk" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:129 +#: ../../content/applications/services/helpdesk/overview/sla.rst:130 msgid "To add the number of SLAs passed or in progress, click the :guilabel:`Measures` button to reveal a drop-down menu of reporting criteria, and choose from the options available based on the measurements preferred. Whenever a measurement is picked, a check mark will appear in the drop-down menu to indicate that that measurement is included, and a corresponding new column will emerge in the pivot table to show the relevant calculations." msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:135 +#: ../../content/applications/services/helpdesk/overview/sla.rst:136 msgid "To add a group to a row or column, click the plus :guilabel:` + ` button next to :guilabel:`Total`, and then select one of the groups. To remove one, click the minus :guilabel:` - ` button and deselect." msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:140 +#: ../../content/applications/services/helpdesk/overview/sla.rst:141 msgid "Using the Graph view" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:142 +#: ../../content/applications/services/helpdesk/overview/sla.rst:143 msgid "The :guilabel:`Status Analysis` report can also be viewed as a :guilabel:`Bar`, :guilabel:`Line`, or :guilabel:`Pie` Chart. Toggle between these views by selecting the appropriate icon at the top of the chart." msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:148 +#: ../../content/applications/services/helpdesk/overview/sla.rst:149 msgid "Bar Chart" msgstr "" @@ -2391,7 +2391,7 @@ msgstr "" msgid "View of the SLA status analysis report in bar view" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:154 +#: ../../content/applications/services/helpdesk/overview/sla.rst:155 msgid "Line Chart" msgstr "" @@ -2399,7 +2399,7 @@ msgstr "" msgid "View of the SLA status analysis report in line view" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:160 +#: ../../content/applications/services/helpdesk/overview/sla.rst:161 msgid "Pie Chart" msgstr "" @@ -2407,15 +2407,15 @@ msgstr "" msgid "View of the SLA status analysis report in pie chart view" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:167 +#: ../../content/applications/services/helpdesk/overview/sla.rst:168 msgid "Both the :guilabel:`Bar Chart` and :guilabel:`Line Chart` can be viewed :guilabel:`Stacked`. This presents two or more groups to appear on top of each other instead of next to each other, making it easier to compare data." msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:172 +#: ../../content/applications/services/helpdesk/overview/sla.rst:173 msgid "Using the Cohort view" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:174 +#: ../../content/applications/services/helpdesk/overview/sla.rst:175 msgid "The :guilabel:`Cohort` view is used to track the changes in data over a period of time. To display the :guilabel:`Status Analysis` report in a :guilabel:`Cohort` view, click the icon in the top right corner above the chart." msgstr "" @@ -2423,11 +2423,11 @@ msgstr "" msgid "View of the SLA status analysis report in cohort view" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:183 +#: ../../content/applications/services/helpdesk/overview/sla.rst:184 msgid ":ref:`Reporting views `" msgstr "" -#: ../../content/applications/services/helpdesk/overview/sla.rst:184 +#: ../../content/applications/services/helpdesk/overview/sla.rst:185 msgid ":doc:`Allow customers to close their tickets `" msgstr "" diff --git a/locale/sources/websites.pot b/locale/sources/websites.pot index 81929e3d6..33102e601 100644 --- a/locale/sources/websites.pot +++ b/locale/sources/websites.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo 17.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-11-08 08:46+0000\n" +"POT-Creation-Date: 2023-11-30 14:44+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4589,6 +4589,162 @@ msgstr "" msgid "**As a non-Odoo Online user**, you won't be able to register for a production Unsplash key and will be limited to your test key that has a 50 Unsplash requests per hour restriction." msgstr "" +#: ../../content/applications/websites/website/mail_groups.rst:3 +msgid "Mail groups" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:5 +msgid "The **mail groups** feature allows website visitors to have a public discussion by email. They can join a group to receive emails from other group members (i.e., website users who have subscribed to the group) and send new ones to all group members." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:9 +msgid "To activate the feature, :ref:`install ` the :guilabel:`Website Mail Group` (`website_mail_group`) module." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:13 +msgid "The **mail groups** feature is not to be confused with the :doc:`../../marketing/email_marketing/mailing_lists` in the Email Marketing app." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:19 +msgid "Configuring mail groups" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:21 +msgid "To configure mail groups, proceed as follows:" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:23 +msgid "Configure a custom email alias domain by accessing the **General settings**, scrolling down to the :guilabel:`Discuss` section, enabling the :guilabel:`Custom Email Server` feature, and entering the :guilabel:`Alias domain` (e.g., `@mycompany.com`)." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:26 +msgid "Go to :menuselection:`Website --> Configuration --> Mailing Lists`, then click :guilabel:`New`." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:27 +msgid "Specify a :guilabel:`Group Name`, the :guilabel:`Email Alias`, and a :guilabel:`Description`." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:28 +msgid "Enable :guilabel:`Moderate this group` and specify the :guilabel:`Moderators` if you wish to :ref:`moderate messages ` from this group. Alternatively, if the group is not moderated, you can define :guilabel:`Responsible Users` who can manage the messages in the group." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:32 +msgid "In the :guilabel:`Privacy` tab, define who can subscribe to the mail group:" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:34 +msgid ":guilabel:`Everyone`: to make the mail group public so anyone can subscribe to it;" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:35 +msgid ":guilabel:`Members only`: to only allow users defined as members to subscribe to the mail group;" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:36 +msgid ":guilabel:`Selected group of users`: to only allow users from the :guilabel:`Authorized group` to subscribe to the mail group." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:39 +msgid "If the mail group is moderated, you can automatically notify authors when their message is pending moderation by enabling :guilabel:`Automatic notification` in the :guilabel:`Notify Members` tab and writing the :guilabel:`Notification message`." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:42 +msgid "If you wish to send out guidelines to new subscribers, enable :guilabel:`Send guidelines to new subscribers` and write them in the :guilabel:`Guidelines` tab. This is particularly useful when the mail group is moderated." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:47 +msgid "Using mail groups" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:50 +msgid "Subscribing/unsubscribing" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:52 +msgid "Based on the :ref:`configuration of the mail group `, users can subscribe to and unsubscribe from mail groups from the website page (`/groups` by default)." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:-1 +msgid "Mail group web page." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:58 +msgid "Internal users can also do this from :menuselection:`Website --> Configuration --> Mailing Lists`, using the :guilabel:`Join` and :guilabel:`Leave` buttons." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:62 +msgid "Sending messages" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:64 +msgid "To send messages to a mail group, website users can email the :ref:`mail group's email address `. Internal users can also create messages directly from Odoo. To do so, go to :menuselection:`Website --> Configuration --> Mailing Lists`, select the mail group, click the :guilabel:`Emails` smart button, and click :guilabel:`New`. Then, fill in the fields and click :guilabel:`Send`." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:71 +msgid "The list of messages can also be accessed by selecting the group from the `/groups` website page." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:73 +msgid "Group members can also unsubscribe from the group, access the mail group page, and send emails to the group using the URLs in the footer of any group email they have received." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:0 +msgid "URLs in the footer of a group email." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:82 +msgid "Moderating mail group messages" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:84 +msgid "If the :guilabel:`Moderate this group` feature has been enabled for the :ref:`mail group `, one of the :guilabel:`Moderators` must approve the group's messages before they are dispatched to the other members." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:88 +msgid "To moderate messages, go to :menuselection:`Website --> Configuration --> Mailing Lists`, select the mail group, and click the :guilabel:`To review` smart button. You can moderate messages using the buttons at the end of the message line or select a message to view its content and moderate it accordingly." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:0 +msgid "Moderation buttons in the message line." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:96 +msgid "The following actions are available:" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:98 +msgid ":guilabel:`Accept`: to accept the email and send it to the mail group members." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:99 +msgid ":guilabel:`Reject`: to reject the email. In the pop-up window that opens, click :guilabel:`Reject Silently` to reject the email without notifying the author, or specify an explanation for rejecting the message, then click :guilabel:`Send & Reject` to reject the message and send the explanation to the author." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:103 +msgid ":guilabel:`Whitelist`: to whitelist the author, i.e. automatically accept all of their emails. As a result, a :ref:`moderation rule ` is created for the author's email address with the status :guilabel:`Always allow`." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:106 +msgid ":guilabel:`Ban`: to blacklist the author, i.e. automatically discard all their emails. In the pop-up window that opens, click :guilabel:`Ban` to ban the author without notifying them, or specify an explanation, then click :guilabel:`Send & Ban` to ban the author and send them the explanation. As a result, a :ref:`moderation rule ` is created for the author's email address with the status :guilabel:`Permanent ban`." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:113 +msgid "Messages can also be moderated from the group's list of messages. Go to :menuselection:`Website --> Groups --> Mailing List Groups`, select the mail group and click the :guilabel:`Emails` smart button." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:120 +msgid "Whitelisting/Blacklisting authors" +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:122 +msgid "You can whitelist or blacklist an author either directly :ref:`from a mail group message `, or by creating a moderation rule. To do so, go to :menuselection:`Website --> Configuration --> Moderation Rules` and click :guilabel:`New`. Then, select the :guilabel:`Group`, specify the author's :guilabel:`Email` and set the :guilabel:`Status` field." +msgstr "" + +#: ../../content/applications/websites/website/mail_groups.rst:129 +msgid "You can also access the mail group's moderation rules by going to :menuselection:`Website --> Configuration --> Mailing Lists`, selecting the group, then clicking the :guilabel:`Moderations` smart button." +msgstr "" + #: ../../content/applications/websites/website/pages.rst:1 msgid "git:show-content:" msgstr "" @@ -5702,30 +5858,66 @@ msgid "Website analytics helps website owners understand how people use their si msgstr "" #: ../../content/applications/websites/website/reporting/analytics.rst:8 -msgid "You can track your Odoo website's traffic using :ref:`website/analytics/plausible` or :ref:`website/analytics/GA`. We recommend using Plausible.io as it is privacy-friendly, lightweight, and easy to use. The Plausible analytics dashboard is also integrated into Odoo and can be accessed via :menuselection:`Website --> Reporting --> Analytics`." +msgid "You can track your Odoo website's traffic using :ref:`website/analytics/plausible` or :ref:`website/analytics/GA`. We recommend using Plausible.io as it is privacy-friendly, lightweight, and easy to use." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:16 -msgid "Plausible.io" +#: ../../content/applications/websites/website/reporting/analytics.rst:12 +msgid "The Plausible analytics dashboard is also integrated into Odoo and can be accessed via :menuselection:`Website --> Reporting --> Analytics`." msgstr "" #: ../../content/applications/websites/website/reporting/analytics.rst:18 -msgid "If your database is hosted on Odoo Online, the Plausible.io integration is available in Odoo for free. To enable the feature, go to :menuselection:`Website --> Configuration --> Settings`, then, in the :guilabel:`SEO` section, enable :guilabel:`Plausible Analytics` and click :guilabel:`Save`. You can then access your Plausible analytics dashboard by going to :menuselection:`Website --> Reporting --> Analytics`." +msgid "Plausible.io" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:24 -msgid "If your database is hosted on Odoo.sh or on-premise, or if you wish to use your own Plausible.io account, proceed as follows:" +#: ../../content/applications/websites/website/reporting/analytics.rst:20 +msgid "Odoo hosts its own Plausible.io server and provides a free and ready-to-work Plausible.io solution for **Odoo Online** databases. Go to :menuselection:`Website --> Configuration --> Settings`, and enable the feature in the :guilabel:`SEO` section. Odoo automatically creates and sets up your account. You can start using it by going to :menuselection:`Website --> Reporting --> Analytics`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:27 +#: ../../content/applications/websites/website/reporting/analytics.rst:26 +msgid "**If you already have a Plausible.io account** and you want to connect it to your Odoo Online database, you must create two `ir.config.parameters` to use Plausible.io's servers. To do so, enable the :ref:`developer mode ` and go to :menuselection:`General Settings --> Technical -- System Parameters`. Click :guilabel:`New` and fill in the following :guilabel:`Key` and :guilabel:`Value` fields:" +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:35 +msgid "Key" +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:36 +msgid "Value" +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:37 +msgid "`website.plausible_script`" +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:38 +msgid "`https://plausible.io/js/plausible.js`" +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:39 +msgid "`website.plausible_server`" +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:40 +msgid "`https://plausible.io`" +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:42 +msgid "Then, follow the steps below to connect your existing account with Plausible.io servers." +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:44 +msgid "If your database is hosted on **Odoo.sh** or **On-premise**, or if you wish to use your own Plausible.io account, proceed as follows:" +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:47 msgid "Create or sign in to a Plausible account using the following link: ``_." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:28 +#: ../../content/applications/websites/website/reporting/analytics.rst:48 msgid "If you are creating a new account, go through the registration and activation steps. When asked to provide your website details, add its :guilabel:`Domain` without including `www` (e.g., `example.odoo.com`) and change the :guilabel:`Reporting Timezone` if necessary. Click :guilabel:`Add snippet` to proceed to the next step. Ignore the :guilabel:`Add JavaScript snippet` instructions and click :guilabel:`Start collecting data`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:33 +#: ../../content/applications/websites/website/reporting/analytics.rst:53 msgid "Once done, click the Plausible logo in the upper-left part of the page to access your `list of websites `_, then click the gear icon next to the website." msgstr "" @@ -5733,11 +5925,11 @@ msgstr "" msgid "Click the gear icon in the list of websites." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:39 +#: ../../content/applications/websites/website/reporting/analytics.rst:59 msgid "In the sidebar, select :guilabel:`Visibility`, then click :guilabel:`+ New link`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:40 +#: ../../content/applications/websites/website/reporting/analytics.rst:60 msgid "Enter a :guilabel:`Name`, leave the :guilabel:`Password` field empty, as the Plausible analytics dashboard integration in Odoo doesn't support it, then click :guilabel:`Create shared link`." msgstr "" @@ -5745,7 +5937,7 @@ msgstr "" msgid "Credentials creation for the new shared link" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:46 +#: ../../content/applications/websites/website/reporting/analytics.rst:66 msgid "Copy the shared link." msgstr "" @@ -5753,44 +5945,44 @@ msgstr "" msgid "Copy the shared link URL from Plausible.io" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:51 -#: ../../content/applications/websites/website/reporting/analytics.rst:98 +#: ../../content/applications/websites/website/reporting/analytics.rst:71 +#: ../../content/applications/websites/website/reporting/analytics.rst:118 msgid "In Odoo, go to :menuselection:`Website --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:52 +#: ../../content/applications/websites/website/reporting/analytics.rst:72 msgid "In the :guilabel:`SEO` section, enable :guilabel:`Plausible Analytics`, then paste the :guilabel:`Shared Link` and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:56 +#: ../../content/applications/websites/website/reporting/analytics.rst:76 msgid "If you have :doc:`multiple websites <../configuration/multi_website>`, add your websites to your Plausible.io account by going to ``_ and clicking :guilabel:`+ Add website`. In Odoo, in the **Website settings**, make sure to select the website in the :guilabel:`Settings of Website` field before pasting the :guilabel:`Shared link`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:62 +#: ../../content/applications/websites/website/reporting/analytics.rst:82 msgid "Odoo automatically pushes two custom goals: `Lead Generation` and `Shop`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:65 +#: ../../content/applications/websites/website/reporting/analytics.rst:85 msgid "`Plausible Analytics documentation `_" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:70 +#: ../../content/applications/websites/website/reporting/analytics.rst:90 msgid "Google Analytics" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:72 +#: ../../content/applications/websites/website/reporting/analytics.rst:92 msgid "To follow your Odoo website's traffic with Google Analytics:" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:74 +#: ../../content/applications/websites/website/reporting/analytics.rst:94 msgid "Create or sign in to a Google account using the following link: ``_." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:75 +#: ../../content/applications/websites/website/reporting/analytics.rst:95 msgid "If you are setting up Google Analytics for the first time, click :guilabel:`Start measuring` and go through the account creation step." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:77 +#: ../../content/applications/websites/website/reporting/analytics.rst:97 msgid "If you already have a Google Analytics account, sign in and click the gear icon in the bottom-left corner of the page to access the **Admin** page. Then, click :guilabel:`+ Create Property`." msgstr "" @@ -5798,11 +5990,11 @@ msgstr "" msgid "Measurement ID in Google Analytics." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:84 +#: ../../content/applications/websites/website/reporting/analytics.rst:104 msgid "Complete the next steps: `property creation `_, business details, and business objectives." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:86 +#: ../../content/applications/websites/website/reporting/analytics.rst:106 msgid "When you reach the **Data collection** step, choose the :guilabel:`Web` platform." msgstr "" @@ -5810,23 +6002,23 @@ msgstr "" msgid "Choose a platform for your Google Analytics property." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:91 +#: ../../content/applications/websites/website/reporting/analytics.rst:111 msgid "Set up your data stream: Specify your :guilabel:`Website URL` and a :guilabel:`Stream name`, then click :guilabel:`Create stream`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:93 +#: ../../content/applications/websites/website/reporting/analytics.rst:113 msgid "Copy the :guilabel:`Measurement ID`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:99 +#: ../../content/applications/websites/website/reporting/analytics.rst:119 msgid "In the :guilabel:`SEO` section, enable :guilabel:`Google Analytics`, then paste the :guilabel:`Measurement ID` and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:103 +#: ../../content/applications/websites/website/reporting/analytics.rst:123 msgid "If you have :doc:`multiple websites <../configuration/multi_website>` with separate domains, it is recommended to create `one property `_ per domain. In Odoo, in the **Website settings**, make sure to select the website in the :guilabel:`Settings of Website` field before pasting the :guilabel:`Measurement ID`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:109 +#: ../../content/applications/websites/website/reporting/analytics.rst:129 msgid "`Google documentation on setting up Analytics for a website `_" msgstr ""