commit e18530712c8b7f9e7c13724d92bd29ec39fbd8a7 Author: Flectra Community Bot Date: Fri May 3 10:57:01 2024 +0200 Automatic Update form OCA2FC Migrator diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..67e128f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,146 @@ +image: ubuntu:jammy + +stages: + - testall + - testsingle + +variables: + POSTGRES_DB: postgres + POSTGRES_USER: flectra + POSTGRES_PASSWORD: flectra + POSTGRES_HOST: postgres + POSTGRES_PORT: "5432" + +services: + - name: postgres:14-bullseye + alias: psql + + +test_all_modules: + stage: testall + image: + name: registry.gitlab.com/jamotion/flectra/ubuntudev:2-latest + entrypoint: ["/bin/sh", "-c"] + script: + - apt-get install -y p7zip-full + - su - flectra -c "mkdir ~/others" + - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 + - mkdir ${CI_PROJECT_DIR}/ci_data + - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip + - 7z x -o ${CI_PROJECT_DIR}/ci_data/ ${CI_PROJECT_DIR}/ci_data/test_base.zip + - export PGPASSWORD="flectra" + - createdb -h psql -U flectra -O flectra -T template1 test_all + - psql -h psql -U flectra -d test_all -f ${CI_PROJECT_DIR}/ci_data/dump.sql + - su - flectra -c "mkdir -p ~/.local/share/filestore" + - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_all + - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_all + - su - flectra -c "/opt/flectra/flectra-bin + --addons-path ${CI_PROJECT_DIR} + --db_host psql + --db_port 5432 + --db_user flectra + --db_password flectra + --database test_all + --test-enable + --init mis_builder_budget,mis_builder_demo,mis_builder + --stop-after-init + --log-level error + --log-handler flectra.addons.mis_builder_budget:TEST + --log-handler flectra.addons.mis_builder_demo:TEST + --log-handler flectra.addons.mis_builder:TEST + " + + +test_module_mis_builder_budget: + stage: testsingle + when: on_failure + image: + name: registry.gitlab.com/jamotion/flectra/ubuntudev:2-latest + entrypoint: ["/bin/sh", "-c"] + script: + - apt-get install -y p7zip-full + - su - flectra -c "mkdir ~/others" + - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 + - mkdir ${CI_PROJECT_DIR}/ci_data + - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip + - 7z x -o ${CI_PROJECT_DIR}/ci_data/ ${CI_PROJECT_DIR}/ci_data/test_base.zip + - export PGPASSWORD="flectra" + - createdb -h psql -U flectra -O flectra -T template1 test_mis_builder_budget + - psql -h psql -U flectra -d test_mis_builder_budget -f ${CI_PROJECT_DIR}/ci_data/dump.sql + - su - flectra -c "mkdir -p ~/.local/share/filestore" + - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder_budget + - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder_budget + - su - flectra -c "/opt/flectra/flectra-bin + --addons-path ${CI_PROJECT_DIR} + --db_host psql + --db_port 5432 + --db_user flectra + --db_password flectra + --database test_mis_builder_budget + --test-enable -i mis_builder_budget + --stop-after-init + --log-level error + --log-handler flectra.addons.mis_builder_budget:TEST" + +test_module_mis_builder_demo: + stage: testsingle + when: on_failure + image: + name: registry.gitlab.com/jamotion/flectra/ubuntudev:2-latest + entrypoint: ["/bin/sh", "-c"] + script: + - apt-get install -y p7zip-full + - su - flectra -c "mkdir ~/others" + - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 + - mkdir ${CI_PROJECT_DIR}/ci_data + - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip + - 7z x -o ${CI_PROJECT_DIR}/ci_data/ ${CI_PROJECT_DIR}/ci_data/test_base.zip + - export PGPASSWORD="flectra" + - createdb -h psql -U flectra -O flectra -T template1 test_mis_builder_demo + - psql -h psql -U flectra -d test_mis_builder_demo -f ${CI_PROJECT_DIR}/ci_data/dump.sql + - su - flectra -c "mkdir -p ~/.local/share/filestore" + - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder_demo + - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder_demo + - su - flectra -c "/opt/flectra/flectra-bin + --addons-path ${CI_PROJECT_DIR} + --db_host psql + --db_port 5432 + --db_user flectra + --db_password flectra + --database test_mis_builder_demo + --test-enable -i mis_builder_demo + --stop-after-init + --log-level error + --log-handler flectra.addons.mis_builder_demo:TEST" + +test_module_mis_builder: + stage: testsingle + when: on_failure + image: + name: registry.gitlab.com/jamotion/flectra/ubuntudev:2-latest + entrypoint: ["/bin/sh", "-c"] + script: + - apt-get install -y p7zip-full + - su - flectra -c "mkdir ~/others" + - sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && dpkg-reconfigure --frontend=noninteractive locales && update-locale LANG=en_US.UTF-8 + - mkdir ${CI_PROJECT_DIR}/ci_data + - wget -O ${CI_PROJECT_DIR}/ci_data/test_base.zip https://gitlab.com/flectra-community/devops/oca2fc/raw/master/ci_data/test_base.zip + - 7z x -o ${CI_PROJECT_DIR}/ci_data/ ${CI_PROJECT_DIR}/ci_data/test_base.zip + - export PGPASSWORD="flectra" + - createdb -h psql -U flectra -O flectra -T template1 test_mis_builder + - psql -h psql -U flectra -d test_mis_builder -f ${CI_PROJECT_DIR}/ci_data/dump.sql + - su - flectra -c "mkdir -p ~/.local/share/filestore" + - mv ${CI_PROJECT_DIR}/ci_data/filestore /opt/flectra/.local/share/filestore/test_mis_builder + - chown -R flectra.flectra /opt/flectra/.local/share/filestore/test_mis_builder + - su - flectra -c "/opt/flectra/flectra-bin + --addons-path ${CI_PROJECT_DIR} + --db_host psql + --db_port 5432 + --db_user flectra + --db_password flectra + --database test_mis_builder + --test-enable -i mis_builder + --stop-after-init + --log-level error + --log-handler flectra.addons.mis_builder:TEST" + diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md new file mode 100644 index 0000000..efa3093 --- /dev/null +++ b/.gitlab/issue_templates/Bug.md @@ -0,0 +1,32 @@ +**Summary** + +(Summarize the bug encountered concisely) + + +**Steps to reproduce** + +(How one can reproduce the issue - this is very important) + + +**What is the current bug behavior?** + +(What actually happens) + + +**What is the expected correct behavior?** + +(What you should see instead) + + +**Relevant logs and/or screenshots** + +(Paste any relevant logs - please use code blocks (```) to format console output, +logs, and code as it's very hard to read otherwise.) + + +**Possible fixes** + +(If you can, link to the line of code that might be responsible for the problem) + +/label ~bug + diff --git a/README.md b/README.md new file mode 100644 index 0000000..5a6a0cb --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# Flectra Community / mis-builder + +None + + + +Available addons +---------------- + +addon | version | summary +--- | --- | --- +[mis_builder_budget](mis_builder_budget/) | 3.0.5.0.2| Create budgets for MIS reports +[mis_builder_demo](mis_builder_demo/) | 3.0.1.0.2| Demo addon for MIS Builder +[mis_builder](mis_builder/) | 3.0.5.1.5| Build 'Management Information System' Reports and Dashboards + + diff --git a/mis_builder/COPYRIGHT b/mis_builder/COPYRIGHT new file mode 100644 index 0000000..3351437 --- /dev/null +++ b/mis_builder/COPYRIGHT @@ -0,0 +1,26 @@ +Most of the files are + + :Copyright: This stylesheet has been placed in the public domain. + Copyright 2014 ACSONE SA/NV () + Copyright 2014-2018 ACSONE SA/NV () + Copyright 2016 ACSONE SA/NV () + Copyright 2016 Akretion () + Copyright 2016 Therp BV () + Copyright 2016 Thomas Binsfeld + Copyright 2017 ACSONE SA/NV + Copyright 2017 ACSONE SA/NV () + Copyright 2020 ACSONE SA/NV + Copyright 2020 ACSONE SA/NV () + Copyright 2020 CorporateHub (https://corporatehub.eu) + Copyright 2023 ACSONE SA/NV () + Copyright 2018 Flectra Community + +Many files also contain contributions from third +parties. In this case the original copyright of +the contributions can be traced through the +history of the source version control system. + +When that is not the case, the files contain a prominent +notice stating the original copyright and applicable +license, or come with their own dedicated COPYRIGHT +and/or LICENSE file. \ No newline at end of file diff --git a/mis_builder/LICENSE b/mis_builder/LICENSE new file mode 100644 index 0000000..3939cd9 --- /dev/null +++ b/mis_builder/LICENSE @@ -0,0 +1,663 @@ +For copyright information, please see the COPYRIGHT file. + +GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. \ No newline at end of file diff --git a/mis_builder/README.rst b/mis_builder/README.rst new file mode 100644 index 0000000..e21c7e3 --- /dev/null +++ b/mis_builder/README.rst @@ -0,0 +1,699 @@ +=========== +MIS Builder +=========== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:23fd54db34b43eef679da3049da56901c6bb54d081341c0d107e79b84721af47 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png + :target: https://odoo-community.org/page/development-status + :alt: Production/Stable +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmis--builder-lightgray.png?logo=github + :target: https://github.com/OCA/mis-builder/tree/16.0/mis_builder + :alt: OCA/mis-builder +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/mis-builder-16-0/mis-builder-16-0-mis_builder + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/mis-builder&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to build Management Information Systems dashboards. +Such style of reports presents KPI in rows and time periods in columns. +Reports mainly fetch data from account moves, but can also combine data coming +from arbitrary Odoo models. Reports can be exported to PDF, Excel and they +can be added to Odoo dashboards. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +Your preferred way to install addons will work with MIS Builder. + +An easy way to install it with all its dependencies is using pip: + +* ``pip install --pre odoo12-addon-mis_builder`` +* then restart Odoo, update the addons list in your database, and install + the MIS Builder application. + +Usage +===== + +To configure this module, you need to: + +* Go to Accounting > Configuration > MIS Reporting > MIS Report Templates where + you can create report templates by defining KPI's. KPI's constitute the rows of your + reports. Such report templates are time independent. + +.. figure:: https://raw.githubusercontent.com/OCA/mis-builder/10.0/mis_builder/static/description/ex_report_template.png + :alt: Sample report template + :width: 80 % + :align: center + +* Then in Accounting > Reports > MIS Reporting > MIS Reports you can create report instance by + binding the templates to time periods, hence defining the columns of your reports. + +.. figure:: https://raw.githubusercontent.com/OCA/mis-builder/10.0/mis_builder/static/description/ex_report_settings.png + :alt: Sample report configuration + :width: 80 % + :align: center + +* From the MIS Reports view, you can preview the report, add it to and Odoo dashboard, + and export it to PDF or Excel. + +.. figure:: https://raw.githubusercontent.com/OCA/mis-builder/10.0/mis_builder/static/description/ex_report_preview.png + :alt: Sample preview + :width: 80 % + :align: center + +Development +=========== + +A typical extension is to provide a mechanism to filter reports on analytic dimensions +or operational units. To implement this, you can override _get_additional_move_line_filter +and _get_additional_filter to further filter move lines or queries based on a user +selection. A typical use case could be to add an analytic account field on mis.report.instance, +or even on mis.report.instance.period if you want different columns to show different +analytic accounts. + +Known issues / Roadmap +====================== + +The mis_builder `roadmap `_ +and `known issues `_ can +be found on GitHub. + +Changelog +========= + +16.0.5.1.0 (2023-04-04) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Features** + +- Improve UX by adding the option to edit the pivot date directly on the view. + +16.0.5.0.0 (2023-04-01) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Features** + +- Migration to 16.0 + + - Addition of a generic filter domain on reports and columns. + - Addition of a search bar to the widget. The corresponding search view is configurable + per report. + - Huge improvement of the widget style. This was long overdue. + - Make the MIS Report menu accessible to the Billing Administrator group + (instead of the hidden Show Full Accounting Features), to align with the access rules + and avoid giving a false sense of security. This also makes the menu discoverable to + new users. + - Removal of analytic fetures because the upstream ``analytic_distribution`` mechanism + is not compatible; support may be introduced in separate module, depending on use + cases. + - Abandon the ``mis_report_filters`` context key which had security implication. + It is replaced by a ``mis_analytic_domain`` context key which is ANDed with other + report-defined filters. (`#472 `_) + - Rename the ``get_filter_descriptions_from_context`` method to + ``get_filter_descriptions``. This method may be overridden to provide additional + subtitles on the PDF or XLS report, representing user-selected filters. + - The ``hide_analytic_filters`` has been replaced by ``widget_show_filters``. + - The visibility of the settings button on the widget is now controlled by a + ``show_settings_button``. Before it was visible only for the ``account_user`` group + but this was not flexible enough. + - The widget configuration settings are now grouped in a dedicated ``Widget`` tab in + the report configuration form. + +**Bugfixes** + +- Fix access error when previewing or printing report. (`#415 `_) + + +15.0.4.0.5 (2022-07-19) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- Support users without timezone. (`#388 `_) + + +15.0.4.0.4 (2022-07-19) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- Allow deleting a report that has subreports. (`#431 `_) + + +15.0.4.0.2 (2022-02-16) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- Fix access right issue when clicking the "Save" button on a MIS Report Instance form. (`#410 `_) + + +14.0.4.0.0 (2022-01-08) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Features** + +- Remove various field size limits. (`#332 `_) + + +**Bugfixes** + +- Support for the Odoo 13+ multi-company model. In multi-company mode, several allowed + companies can be declared on MIS Report instances, and the report operates on the + intersection of report companies and companies selected in the user context. (`#327 `_) +- The ``get_additional_query_filter`` argument of ``evaluate()`` is now propagated + correctly. (`#375 `_) +- Use the ``parent_state`` field of ``account.move.line`` to filter entries in ``posted`` + and ``draft`` state only. Before, when reporting in draft mode, all entries were used + (i.e. there was no filter), and that started including the cancelled entries/invoices in + Odoo 13.+. + + This change also contains a **breaking change** in the internal API. For quite a while + the ``target_move argument`` of AEP and other methods was not used by MIS Builder itself + and was kept for backward compatibility. To avoid rippling effects of the necessary + change to use ``parent_state``, we now remove this argument. (`#377 `_) + + +14.0.3.6.7 (2021-06-02) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- When on a MIS Report Instance, if you wanted to generate a new line of type comparison, you couldn't currently select any existing period to compare. + This happened because the field domain was searching in a NewId context, thus not finding a correct period. + Changing the domain and making it use a computed field with a search for the _origin record solves the problem. (`#361 `_) + + +14.0.3.6.6 (2021-04-23) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- Fix drilldown action name when the account model has been customized. (`#350 `_) + + +14.0.3.6.5 (2021-04-23) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- While duplicating a MIS report instance, comparison columns are ignored because + they would raise an error otherwise, as they keep the old source_cmpcol_from_id + and source_cmpcol_to_id from the original record. (`#343 `_) + + +14.0.3.6.4 (2021-04-06) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Features** + +- The drilldown action name displayed on the breadcrumb has been revised. + The kpi description and the account ``display_name`` are shown instead + of the kpi's technical definition. (`#304 `_) +- Add analytic group filters on report instance, periods and in the interactive + view. (`#320 `_) + + +13.0.3.6.3 (2020-08-28) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- Having a "Compare columns" added on a KPI with an associated style using a + Factor/Divider did lead to the said factor being applied on the percentages + when exporting to XLSX. (`#300 `_) + + +**Misc** + +- `#280 `_, `#296 `_ + + +13.0.3.6.2 (2020-04-22) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- The "Settings" button is now displayed for users with the "Show full accounting features" right when previewing a report. (`#281 `_) + + +13.0.3.6.1 (2020-04-22) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Bugfixes** + +- Fix ``TypeError: 'module' object is not iterable`` when using + budgets by account. (`#276 `_) + + +13.0.3.6.0 (2020-03-28) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Features** + +- Add column-level filters on analytic account and analytic tags. + These filters are combined with a AND with the report-level filters + and cannot be modified in the preview. (`#138 `_) +- Access to KPI from other reports in KPI expressions, aka subreports. In a + report template, one can list named "subreports" (other report templates). When + evaluating expressions, you can access KPI's of subreports with a dot-prefix + notation. Example: you can define a MIS Report for a "Balance Sheet", and then + have another MIS Report "Balance Sheet Ratios" that fetches KPI's from "Balance + Sheet" to create new KPI's for the ratios (e.g. balance_sheet.current_assets / + balance_sheet.total_assets). (`#155 `_) + + +13.0.3.5.0 (2020-01-??) +~~~~~~~~~~~~~~~~~~~~~~~ + +Migration to odoo 13.0. + +12.0.3.5.0 (2019-10-26) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Features** + +- The ``account_id`` field of the model selected in 'Move lines source' + in the Period form can now be a Many2one + relationship with any model that has a ``code`` field (not only with + ``account.account`` model). To this end, the model to be used for Actuals + move lines can be configured on the report template. It can be something else + than move lines and the only constraint is that its ``account_id`` field + has a ``code`` field. (`#149 `_) +- Add ``source_aml_model_name`` field so extension modules providing + alternative data sources can more easily customize their data source. (`#214 `_) +- Support analytic tag filters in the backend view and preview widget. + Selecting several tags in the filter means filtering on move lines which + have *all* these tags set. This is to support the most common use case of + using tags for different dimensions. The filter also makes a AND with the + analytic account filter. (`#228 `_) +- Display company in account details rows in multi-company mode. (`#242 `_) + + +**Bugfixes** + +- Propagate context to xlsx report, so the analytic account filter + works when exporting to xslx too. This also requires a fix to + ``report_xlsx`` (see https://github.com/OCA/reporting-engine/pull/259). (`#178 `_) +- In columns of type Sum, preserve styles for KPIs that are not summable + (eg percentage values). Before this fix, such cells were displayed without + style. (`#219 `_) +- In Excel export, keep the percentage point suffix (pp) instead of replacing it with %. (`#220 `_) + + +12.0.3.4.0 (2019-07-09) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Features** + +- New year-to-date mode for defining periods. (`#165 `_) +- Add support for move lines with negative debit or credit. + Used by some for storno accounting. Not officially supported. (`#175 `_) +- In Excel export, use a number format with thousands separator. The + specific separator used depends on the Excel configuration (eg regional + settings). (`#190 `_) +- Add generation date/time at the end of the XLS export. (`#191 `_) +- In presence of Sub KPIs, report more informative user errors when + non-multi expressions yield tuples of incorrect lenght. (`#196 `_) + + +**Bugfixes** + +- Fix rendering of percentage types in Excel export. (`#192 `_) + + +12.0.3.3.0 (2019-01-26) +~~~~~~~~~~~~~~~~~~~~~~~ + +**Features** + +*Dynamic analytic filters in report preview are not yet available in 11, +this requires an update to the JS widget that proved difficult to implement +so far. Help welcome.* + +- Analytic account filters. On a report, an analytic + account can be selected for filtering. The filter will + be applied to move lines queries. A filter box is also + available in the widget to let the user select the analytic + account during report preview. (`#15 `_) +- Control visibility of analytic filter combo box in widget. + This is useful to hide the analytic filters on reports where + they do not make sense, such as balance sheet reports. (`#42 `_) +- Display analytic filters in the header of exported pdf and xls. (`#44 `_) +- Replace the last old gtk icons with fontawesome icons. (`#104 `_) +- Use active_test=False in AEP queries. + This is important for reports involving inactive taxes. + This should not negatively effect existing reports, because + an accounting report must take into account all existing move lines + even if they reference objects such as taxes, journals, accounts types + that have been deactivated since their creation. (`#107 `_) +- int(), float() and round() support for AccountingNone. (`#108 `_) +- Allow referencing subkpis by name by writing `kpi_x.subkpi_y` in expressions. (`#114 `_) +- Add an option to control the display of the start/end dates in the + column headers. It is disabled by default (this is a change compared + to previous behaviour). (`#118 `_) +- Add evaluate method to mis.report. This is a simplified + method to evaluate kpis of a report over a time period, + without creating a mis.report.instance. (`#123 `_) + +**Bugs** + +- In the style form, hide the "Hide always" checkbox when "Hide always inherit" + is checked, as for all other syle elements. (`#121 _`) + +**Upgrading from 3.2 (breaking changes)** + +If you use ``Actuals (alternative)`` data source in combination with analytic +filters, the underlying model must now have an ``analytic_account_id`` field. + + +11.0.3.2.2 (2018-06-30) +~~~~~~~~~~~~~~~~~~~~~~~ + +* [FIX] Fix bug in company_default_get call returning + id instead of recordset + (`#103 `_) +* [IMP] add "hide always" style property to make hidden KPI's + (for KPI that serve as basis for other formulas, but do not + need to be displayed). + (`#46 `_) + +11.0.3.2.1 (2018-05-29) +~~~~~~~~~~~~~~~~~~~~~~~ + +* [FIX] Missing comparison operator for AccountingNone + leading to errors in pbal computations + (`#93 `_) + +10.0.3.2.0 (2018-05-02) +~~~~~~~~~~~~~~~~~~~~~~~ + +* [FIX] make subkpi ordering deterministic + (`#71 `_) +* [ADD] report instance level option to disable account expansion, + enabling the creation of detailed templates while deferring the decision + of rendering the details or not to the report instance + (`#74 `_) +* [ADD] pbal and nbal accounting expressions, to sum positive + and negative balances respectively (ie ignoring accounts with negative, + resp positive balances) + (`#86 `_) + +11.0.3.1.2 (2018-02-04) +~~~~~~~~~~~~~~~~~~~~~~~ + +Migration to Odoo 11. No new feature. +(`#67 `_) + +10.0.3.1.1 (2017-11-14) +~~~~~~~~~~~~~~~~~~~~~~~ + +New features: + +* [ADD] month and year relative periods, easier to use than + date ranges for the most common case. + (`#2 `_) +* [ADD] multi-company consolidation support, with currency conversion + (the conversion rate date is the end of the reporting period) + (`#7 `_, + `#3 `_) +* [ADD] provide ref, datetime, dateutil, time, user in the evaluation + context of move line domains; among other things, this allows using + references to xml ids (such as account types or tax tags) when + querying move lines + (`#26 `_). +* [ADD] extended account selectors: you can now select accounts using + any domain on account.account, not only account codes + ``balp[('account_type', '=', 'asset_receivable')]`` + (`#4 `_). +* [IMP] in the report instance configuration form, the filters are + now grouped in a notebook page, this improves readability and + extensibility + (`#39 `_). + +Bug fixes: + +* [FIX] fix error when saving periods in comparison mode on newly + created (not yet saved) report instances. + `#50 `_ +* [FIX] improve display of Base Date report instance view. + `#51 `_ + +Upgrading from 3.0 (breaking changes): + +* Alternative move line data sources must have a company_id field. + +10.0.3.0.4 (2017-10-14) +~~~~~~~~~~~~~~~~~~~~~~~ + +Bug fix: + +* [FIX] issue with initial balance rounding. + `#30 `_ + +10.0.3.0.3 (2017-10-03) +~~~~~~~~~~~~~~~~~~~~~~~ + +Bug fix: + +* [FIX] fix error saving KPI on newly created reports. + `#18 `_ + +10.0.3.0.2 (2017-10-01) +~~~~~~~~~~~~~~~~~~~~~~~ + +New features: + +* [ADD] Alternative move line source per report column. + This makes mis buidler accounting expressions work on any model + that has debit, credit, account_id and date fields. Provided you can + expose, say, committed purchases, or your budget as a view with + debit, credit and account_id, this opens up a lot of possibilities +* [ADD] Comparison column source (more flexible than the previous, + now deprecated, comparison mechanism). + CAVEAT: there is no automated migration to the new mechanism. +* [ADD] Sum column source, to create columns that add/subtract + other columns. +* [ADD] mis.kpi.data abstract model as a basis for manual KPI values + supporting automatic ajustment to the reporting time period (the basis + for budget item, but could also server other purposes, such as manually + entering some KPI values, such as number of employee) +* [ADD] mis_builder_budget module providing a new budget data source +* [ADD] new "hide empty" style property +* [IMP] new AEP method to get accounts involved in an expression + (this is useful to find which KPI relate to a given P&L + acount, to implement budget control) +* [IMP] many UI improvements +* [IMP] many code style improvements and some refactoring +* [IMP] add the column date_from, date_to in expression evaluation context, + as well as time, datetime and dateutil modules + +Main bug fixes: + +* [FIX] deletion of templates and reports (cascade and retricts) + (https://github.com/OCA/account-financial-reporting/issues/281) +* [FIX] copy of reports + (https://github.com/OCA/account-financial-reporting/issues/282) +* [FIX] better error message when periods have wrong/missing dates + (https://github.com/OCA/account-financial-reporting/issues/283) +* [FIX] xlsx export of string types KPI + (https://github.com/OCA/account-financial-reporting/issues/285) +* [FIX] sorting of detail by account +* [FIX] computation bug in detail by account when multiple accounting + expressions were used in a KPI +* [FIX] permission issue when adding report to dashboard with non admin user + +10.0.2.0.3 (unreleased) +~~~~~~~~~~~~~~~~~~~~~~~ + +* [IMP] more robust behaviour in presence of missing expressions +* [FIX] indent style +* [FIX] local variable 'ctx' referenced before assignment when generating + reports with no objects +* [IMP] use fontawesome icons +* [MIG] migrate to 10.0 +* [FIX] unicode error when exporting to Excel +* [IMP] provide full access to mis builder style for group Adviser. + +9.0.2.0.2 (2016-09-27) +~~~~~~~~~~~~~~~~~~~~~~ + +* [IMP] Add refresh button in mis report preview. +* [IMP] Widget code changes to allow to add fields in the widget more easily. + +9.0.2.0.1 (2016-05-26) +~~~~~~~~~~~~~~~~~~~~~~ + +* [IMP] remove unused argument in declare_and_compute_period() + for a cleaner API. This is a breaking API changing merged in + urgency before it is used by other modules. + +9.0.2.0.0 (2016-05-24) +~~~~~~~~~~~~~~~~~~~~~~ + +Part of the work for this release has been done at the Sorrento sprint +April 26-29, 2016. The rest (ie a major refactoring) has been done in +the weeks after. + +* [IMP] hide button box in edit mode on the report instance settings form +* [FIX] Fix sum aggregation of non-stored fields + (https://github.com/OCA/account-financial-reporting/issues/178) +* [IMP] There is now a default style at the report level +* [CHG] Number display properties (rounding, prefix, suffix, factor) are + now defined in styles +* [CHG] Percentage difference are rounded to 1 digit instead of the kpi's + rounding, as the KPI rounding does not make sense in this case +* [CHG] The divider suffix (k, M, etc) is not inserted automatically anymore + because it is inconsistent when working with prefixes; you need to add it + manually in the suffix +* [IMP] AccountingExpressionProcessor now supports 'balu' expressions + to obtain the unallocated profit/loss of previous fiscal years; + get_unallocated_pl is the corresponding convenience method +* [IMP] AccountingExpressionProcessor now has easy methods to obtain + balances by account: get_balances_initial, get_balances_end, + get_balances_variation +* [IMP] there is now an auto-expand feature to automatically display + a detail by account for selected kpis +* [IMP] the kpi and period lists are now manipulated through forms instead + of directly in the tree views +* [IMP] it is now possible to create a report through a wizard, such + reports are deemed temporary and available through a "Last Reports Generated" + menu, they are garbaged collected automatically, unless saved permanently, + which can be done using a Save button +* [IMP] there is now a beginner mode to configure simple reports with + only one period +* [IMP] it is now easier to configure periods with fixed start/end dates +* [IMP] the new sub-kpi mechanism allows the creation of columns + with multiple values, or columns with different values +* [IMP] thanks to the new style model, the Excel export is now styled +* [IMP] a new style model is now used to centralize style configuration +* [FIX] use =like instead of like to search for accounts, because + the % are added by the user in the expressions +* [FIX] Correctly compute the initial balance of income and expense account + based on the start of the fiscal year +* [IMP] Support date ranges (from OCA/server-tools/date_range) as a more + flexible alternative to fiscal periods +* v9 migration: fiscal periods are removed, account charts are removed, + consolidation accounts have been removed + +8.0.1.0.0 (2016-04-27) +~~~~~~~~~~~~~~~~~~~~~~ + +* The copy of a MIS Report Instance now copies period. + https://github.com/OCA/account-financial-reporting/pull/181 +* The copy of a MIS Report Template now copies KPIs and queries. + https://github.com/OCA/account-financial-reporting/pull/177 +* Usability: the default view for MIS Report instances is now the rendered preview, + and the settings are accessible through a gear icon in the list view and + a button in the preview. + https://github.com/OCA/account-financial-reporting/pull/170 +* Display blank cells instead of 0.0 when there is no data. + https://github.com/OCA/account-financial-reporting/pull/169 +* Usability: better layout of the MIS Report periods settings on small screens. + https://github.com/OCA/account-financial-reporting/pull/167 +* Include the download buttons inside the MIS Builder widget, and refactor + the widget to open the door to analytic filtering in the previews. + https://github.com/OCA/account-financial-reporting/pull/151 +* Add KPI rendering prefixes (so you can print $ in front of the value). + https://github.com/OCA/account-financial-reporting/pull/158 +* Add hooks for analytic filtering. + https://github.com/OCA/account-financial-reporting/pull/128 + https://github.com/OCA/account-financial-reporting/pull/131 + +8.0.0.2.0 +~~~~~~~~~ + +Pre-history. Or rather, you need to look at the git log. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* ACSONE SA/NV + +Contributors +~~~~~~~~~~~~ + +* Stéphane Bidoul +* Laetitia Gangloff +* Adrien Peiffer +* Alexis de Lattre +* Alexandre Fayolle +* Jordi Ballester +* Thomas Binsfeld +* Giovanni Capalbo +* Marco Calcagni +* Sébastien Beau +* Laurent Mignon +* Luc De Meyer +* Benjamin Willig +* Martronic SA +* nicomacr +* Juan Jose Scarafia +* Richard deMeester +* Eric Caudal +* Andrea Stirpe +* Maxence Groine +* Arnaud Pineux +* Ernesto Tejeda +* Pedro M. Baeza +* Alexey Pelykh +* Jairo Llopis (https://www.moduon.team/) +* Dzung Tran +* Hoang Diep + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-sbidoul| image:: https://github.com/sbidoul.png?size=40px + :target: https://github.com/sbidoul + :alt: sbidoul + +Current `maintainer `__: + +|maintainer-sbidoul| + +This module is part of the `OCA/mis-builder `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. \ No newline at end of file diff --git a/mis_builder/__init__.py b/mis_builder/__init__.py new file mode 100644 index 0000000..d827ec9 --- /dev/null +++ b/mis_builder/__init__.py @@ -0,0 +1,6 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import models +from . import wizard +from . import report diff --git a/mis_builder/__manifest__.py b/mis_builder/__manifest__.py new file mode 100644 index 0000000..1968fcb --- /dev/null +++ b/mis_builder/__manifest__.py @@ -0,0 +1,46 @@ +# Copyright 2014-2018 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "MIS Builder", + "version": "3.0.5.1.5", + "category": "Reporting", + "summary": """ + Build 'Management Information System' Reports and Dashboards + """, + "author": "ACSONE SA/NV, " "Odoo Community Association (OCA)", + "website": "https://gitlab.com/flectra-community/mis-builder", + "depends": [ + "account", + "board", + "report_xlsx", # OCA/reporting-engine + "date_range", # OCA/server-ux + ], + "data": [ + "wizard/mis_builder_dashboard.xml", + "views/mis_report.xml", + "views/mis_report_instance.xml", + "views/mis_report_style.xml", + "datas/ir_cron.xml", + "security/ir.model.access.csv", + "security/mis_builder_security.xml", + "report/mis_report_instance_qweb.xml", + "report/mis_report_instance_xlsx.xml", + ], + "assets": { + "web.assets_backend": [ + "mis_builder/static/src/components/mis_report_widget.esm.js", + "mis_builder/static/src/components/mis_report_widget.xml", + "mis_builder/static/src/components/mis_report_widget.css", + ], + "web.report_assets_common": [ + "/mis_builder/static/src/css/report.css", + ], + }, + "qweb": ["static/src/xml/mis_report_widget.xml"], + "installable": False, + "application": True, + "license": "AGPL-3", + "development_status": "Production/Stable", + "maintainers": ["sbidoul"], +} diff --git a/mis_builder/datas/ir_cron.xml b/mis_builder/datas/ir_cron.xml new file mode 100644 index 0000000..0df8e8d --- /dev/null +++ b/mis_builder/datas/ir_cron.xml @@ -0,0 +1,13 @@ + + + + Vacuum temporary reports + 4 + hours + -1 + + + model._vacuum_report() + + + diff --git a/mis_builder/i18n/ca.po b/mis_builder/i18n/ca.po new file mode 100644 index 0000000..2ad4e64 --- /dev/null +++ b/mis_builder/i18n/ca.po @@ -0,0 +1,2413 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-06-23 10:10+0000\n" +"Last-Translator: eccit-quim \n" +"Language-Team: none\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (còpia)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" +"Model que sigui 'de tipus apunt' , és a dir, que tingui almenys els camps " +"debit, credit, date, account_id y company_id." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" +"Un model \"com a línia de moviment\", és a dir, que tingui almenys camps de " +"dèbit, crèdit, data, account_id i company_id. Aquest model és l’origen de " +"dades de la columna Actuals." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "Un filtre de data és obligatori per aquest origen a la columna %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Mètode d'agregació" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" +"Els models actuals (alternatius) utilitzats a les columnes han de tenir el " +"mateix model de compte al camp Compte i han de ser els mateixos definits a " +"la plantilla de l’informe: %s" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Dades reals" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Dades reals (alternativa)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" +"Dades reals: dades actuals provinents de la comptabilitat i altres " +"consultes.\n" +"Dades reals (alternativa): dades actuals provinents d'un origen alternatiu " +"(per exemple, vista de la base de dades proveint registres de \"tipus apunt" +"\").\n" +"Suma de columnes: sumarització (+/-) d'altres columnes.\n" +"Comparar columnes: comparació amb una altra columna.\n" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" +"Adapta el model amb data_from / date_to per al grup de lectura de temporis " +"pro-rata" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Afegir al taulell" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Agregació" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Tots els assentaments" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "Tot Kpi" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Tots els assentaments assentats" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "Cmpcol permès" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "Empreses permeses" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "Empresa permesa" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Import" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" +"Una expressió que retorna un estil depenent del valor del KPI. Aquest estil " +"s'aplica a la part superior de l'estil de la fila." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "Auto expandir" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Mitjana" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Color del fons" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Color del fons heretat" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Color de fons en RGB (de #000000 a #FFFFFF)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Data base" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Negreta" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Cancel·lar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "Comproveu si voleu especificar diverses empreses per buscar dades." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Color" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Color heretat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Columna" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "La columna %s no es pot comparar amb itrec." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" +"La columna %s amb l'origen de les línies de moviment ha de tenir dates des/" +"fins." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Columnes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "Les columnes a comparar han de pertànyer al mateix informe en %s" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "Columnes a sumar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "Companyies per a les que es buscaran dades." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Comparar" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Comparar columnes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Mètode de comparació" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Mode de comparació" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Creat per" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Creat el" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Moneda" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Taulell" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "Data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Camp data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "Data Des de" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Rang de dates" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Tipus de rang de dates" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "Data a" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Dates" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Dia" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Descripció" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" +"Determina com els valors d'aquest kpi transcorrent sobre el període de temps " +"són transformats per casar amb el període de l'informe. Sum: s'afegeixen els " +"valors del període més curt, i els valors del més llarg o de períodes que " +"solapen parcialment s'ajusten prorratejant-se en el temps.\n" +"Mitjana: els valors del període inclòs fan mitjana amb el pes del prorrateig " +"temporal." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "Diferència" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "Desactiva l'expansió dels detalls del compte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "Mostrar Columnes Descripció" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Nom a mostrar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "Mostrar detalls per compte" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "Mostra els detalls de l'interval de dates a les capçaleres de columna." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "Divisor heretat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "Domini" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "Dp heretat" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" +"Camp dummy que adapta les cerques en data a les cerques en data_from / " +"date_to." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "Durada" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "Empreses efectives" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" +"Introdueixi l'expressió aquí, per exemple [balp70%]. Vegi també la pestanya " +"d'ajuda." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "Exemples:" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Exportar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "Expressió" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "Expressions" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "Les expressions poden ser qualsevol expressió vàlida de Python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "Factor" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "Factor heretat" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" +"El factor s'utilitza per a normalitzar el període (utilitzat en la comparació" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "Nom dels camps obtinguts" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "Camps a obtenir" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "Filtres" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "Dates fixes" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "Font" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "Tamany del tipus de lletra" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "Tamany del tipus de lletra heretat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "Estil del tipus de lletra" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "Estil del tipus de lletra heretat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "Tamany del tipus de lletra" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "Tamany del tipus de lletra heretat" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "Obliga la data d'inici a l'1 de gener de l'any corresponent" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "Des de" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "Des de (computat)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "Ajuda (per a les expressions del KPI)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "Amagar sempre" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "Amagar sempre heretat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "Amagar buits" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "Amagar buits heretat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" +"Si no es proveeix el camp currency_id, totes les companyies han de tenir la " +"mateixa moneda." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "Sagnat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "Nivell de sagnat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "Nivell de sagnat heretat" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "EL nivell de sagnat ha de ser igual o major que 0" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "Cursiva" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "Seqüència KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "El nom del KPI ({}) ha de ser un identificador Python vàlid" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "KPI's" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "KPIs d’aquest informe i subinformes." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "Etiqueta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "PDF apaïsat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "Última modificació el" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Últims informes generats" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "Última actualització per" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "Última actualització el" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "Disseny" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "Informe MIS Builder XLSX" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "Classe abstracta de dades KPI MIS" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "Informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "Informe MIS - Relació Subinformes" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "Assistent per afegir un informe MIS al tauler de control" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "Instància d'informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "Període de la instància de l'informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "Suma del període de la instància de l'informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "KPI d'informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "Expressió de KPI del informe MIS" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "Consultar informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "Estil de format MIS" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "Estils d'informes MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "Consulta d'informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "Plantilla d'informe MIS" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "Plantilles d'informe MIS" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "MIS" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "Informes MIS" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "Informe QWeb PDF d'instància d'informe MIS" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "Informe XLS d'instància d'informe MIS" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "Màx" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "Mín" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "Mode" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "Model" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "Mes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "Origen dels apunts" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "Moveu el nom del model font de línies" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "Multi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Múltiples companyies" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Nom" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Sense filtre de dates" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "No es permet un filtre de data per aquesta font a la columna %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "Res" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "Normal" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "Número" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "Número de períodes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "Numèric" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "Desplaçament" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "Desplaçament del període actual" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "Columna pare" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "Percentatge" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "El nom del període ha de ser únic a cada informe" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "Tipus de període" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Períodes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "Si us plau, introdueixi ambdues columnes a comparar en %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Prefix" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "Prefix heretat" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "Previsualitzar" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Imprimeix" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "Consultes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "El nom de la consulta ({}) ha de ser un identificador de Python vàlid" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "Actualitzar" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "Relatiu a la data base de l'informe" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "Informe" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "Informar de l'acció" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "Instància de l'informe" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "Data base de l'informe (deixar buida per a utilitzar la data actual)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "Arrodoniment" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "Arrodoniment heretat" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "Guardar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "Seleccioni les companyies per a les que es buscaran les dades." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" +"Seleccioni la moneda objectiu per a l'informe. Es requereix si les " +"companyies tenen monedes diferents." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "Seqüència" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "Configuració" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" +"No s'ha d'incloure el mateix informe més d'una vegada com a subinforme d'un " +"informe determinat" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "Símbol" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Origen" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "Cadena" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "Estil" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "Estil per a les files de detall de compte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "Nom de l'estil" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "Sub KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "Filtre del sub KPI" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "El sub KPI ha d'utilitzar-se només una vegada per a cada KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "Sub KPI's" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "Subinformes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "Subinformes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "Seqüència Sub-KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "El nom Sub-KPI ({}) ha de ser un identificador Python vàlid" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "SubKPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "Subinforme" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "S'ha detectat un bucle de subinforme" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "El nom del subinforme ({}) ha de ser un identificador Python vàlid" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "El nom del subinforme ha de ser únic per a l'informe" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Sufix" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "Sufix heretat" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "Suma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "Detalls de compte de la suma" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" +"La suma no pot ser calculada a la columa {} perquè les columnes a sumar no " +"tenen subkpis comuns" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "Suma de columnes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Apunts objectiu" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Plantilla" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "Temporal" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "Color de text" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Color de text en un codi RGB vàlid (de #000000 fins a #FFFFFF)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "Fins a" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "Per (calculat)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "Valor inesperat %s per a target_move." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "Operador %s no compatible per cercar la data" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "Buit d'informes temporals" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "Vàlid" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "Tipus del valor" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "Visibilitat" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Setmana" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "Duració incorrecta, ha de ser positiva!" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "Factor de normalització incorrecte. Ha de ser positiu!" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "Any" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "Any en curs" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "No pot sumar el període %s amb ell mateix." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "gran" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "mitjana" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "o" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "pp" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "petita" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "contra" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "extra-gran" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "extra-petita" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "extra-súper-gran" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "extra-súper-petita" + +#, python-format +#~ msgid "Columns {} and {} are not comparable" +#~ msgstr "Les columnes {} i {} no són comparables" + +#, python-format +#~ msgid "Generated on {} at {}" +#~ msgstr "Generat el dia {} a {}" + +#, python-format +#~ msgid "" +#~ "KPI \"{}\" has type {} while a tuple was expected.\n" +#~ "\n" +#~ "This can be fixed by either:\n" +#~ "\t- Changing the KPI value to a tuple of length {}\n" +#~ "or\n" +#~ "\t- Changing the KPI to `multi` mode and giving an explicit value for " +#~ "each sub-KPI." +#~ msgstr "" +#~ "El KPI \"{}\" té el tipus {} mentre s'esperava una tupla.\n" +#~ "\n" +#~ "Això es pot solucionar amb:\n" +#~ "- Canviant el valor del KPI per una tupla de longitud {}\n" +#~ "o\n" +#~ "- Canviar el KPI al mode `multi` i donar un valor explícit a cada sub-KPI." + +#, python-format +#~ msgid "" +#~ "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} " +#~ "is expected." +#~ msgstr "" +#~ "El KPI \"{}\" es valora com a tupla de longitud {} mentre que s'espera " +#~ "una tupla de longitud {}." + +#, python-format +#~ msgid "Can not update a multi kpi from the kpi line" +#~ msgstr "No es pot actualitzar un kpi múltiple des d'una línia de kpi" + +#~ msgid "" +#~ "\n" +#~ " balp[('user_type_id', " +#~ "'=',\n" +#~ " ref('account.\n" +#~ " data_account_type_receivable')." +#~ "id)][]\n" +#~ " \n" +#~ " : variation of the balance of " +#~ "all receivable\n" +#~ " accounts over the period." +#~ msgstr "" +#~ "\n" +#~ " balp[('user_type_id', " +#~ "'=',\n" +#~ " ref('account.\n" +#~ " data_account_type_receivable')." +#~ "id)][]\n" +#~ " \n" +#~ " : variació del saldo de tots " +#~ "els crèdits\n" +#~ " comptes al llarg del període." + +#~ msgid "" +#~ "\n" +#~ " balp[][('tax_line_id." +#~ "tag_ids', '=',\n" +#~ " ref('l10n_be.tax_tag_56')." +#~ "id)]\n" +#~ " \n" +#~ " : balance of move lines " +#~ "related to tax grid\n" +#~ " 56." +#~ msgstr "" +#~ "\n" +#~ " balp[][('tax_line_id." +#~ "tag_ids', '=',\n" +#~ " ref('l10n_be.tax_tag_56')." +#~ "id)]\n" +#~ " \n" +#~ " : saldo de línies de moviment " +#~ "relacionades amb la xarxa fiscal\n" +#~ " 56." + +#~ msgid "" +#~ "\n" +#~ " debp[55%][('journal_id." +#~ "code', '=',\n" +#~ " 'BNK1')]\n" +#~ " \n" +#~ " : sum of all debits on " +#~ "accounts 55 and\n" +#~ " journal BNK1 during the " +#~ "period." +#~ msgstr "" +#~ "\n" +#~ " debp[55%][('journal_id." +#~ "code', '=',\n" +#~ " 'BNK1')]\n" +#~ " \n" +#~ " : suma de tots els dèbits " +#~ "dels comptes 55 i\n" +#~ " revista BNK1 durant el " +#~ "període." + +#~ msgid "" +#~ "AccountingNone\n" +#~ " : a null value that behaves " +#~ "as 0 in\n" +#~ " arithmetic operations." +#~ msgstr "" +#~ "AccountingNone\n" +#~ " : un valor nul que es " +#~ "comporta com a 0 polzades\n" +#~ " operacions aritmètiques." + +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal\n" +#~ " : balance, debit, credit, " +#~ "positive balance,\n" +#~ " negative balance." +#~ msgstr "" +#~ "bal, crd, deb, pbal, nbal\n" +#~ " : saldo, dèbit, crèdit, saldo " +#~ "positiu,\n" +#~ " saldo negatiu." + +#~ msgid "" +#~ "bal[70]\n" +#~ " : variation of the balance of " +#~ "account 70\n" +#~ " over the period (it is the " +#~ "same as balp[70]." +#~ msgstr "" +#~ "bal[70]\n" +#~ " : variació del saldo del " +#~ "compte 70\n" +#~ " durant el període (és el " +#~ "mateix que balp[70]." + +#~ msgid "" +#~ "bale[1%]\n" +#~ " : balance of accounts " +#~ "starting with 1 at end\n" +#~ " of period." +#~ msgstr "" +#~ "bale[1%]\n" +#~ " : saldo dels comptes " +#~ "començant per 1 al final\n" +#~ " de període." + +#~ msgid "" +#~ "bali[70,60]\n" +#~ " : initial balance of accounts " +#~ "70 and 60." +#~ msgstr "" +#~ "bali[70,60]\n" +#~ " : saldo inicial dels comptes " +#~ "70 i 60." + +#~ msgid "" +#~ "balu[]\n" +#~ " : (u for unallocated) is a " +#~ "special\n" +#~ " expression that shows the " +#~ "unallocated\n" +#~ " profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]\n" +#~ " : (u per no assignat) és un " +#~ "especial\n" +#~ " expressió que mostra el no " +#~ "assignat\n" +#~ " guanys/pèrdues anteriors\n" +#~ " exercicis fiscals." + +#~ msgid "" +#~ "crdp[40%]\n" +#~ " : sum of all credits on " +#~ "accounts starting\n" +#~ " with 40 during the period." +#~ msgstr "" +#~ "crdp[40%]\n" +#~ " : suma de tots els crèdits " +#~ "dels comptes que s'inicien\n" +#~ " amb 40 durant el període." + +#~ msgid "" +#~ "date_from, date_to\n" +#~ " : beginning and end date of " +#~ "the period." +#~ msgstr "" +#~ "date_from, date_to\n" +#~ " : data d'inici i finalització " +#~ "del període." + +#~ msgid "" +#~ "datetime, datetime, dateutil\n" +#~ " : the python modules." +#~ msgstr "" +#~ "datetime, datetime, dateutil\n" +#~ " : els mòduls Python." + +#~ msgid "" +#~ "p, i, e\n" +#~ " : respectively variation over " +#~ "the period,\n" +#~ " initial balance, ending " +#~ "balance" +#~ msgstr "" +#~ "p, i, e\n" +#~ " : variació respectivament al " +#~ "llarg del període,\n" +#~ " saldo inicial, saldo final" + +#~ msgid "" +#~ "pbale[55%]\n" +#~ " : sum of all ending balances " +#~ "of accounts\n" +#~ " starting with 55 whose\n" +#~ " ending balance is positive." +#~ msgstr "" +#~ "pbale[55%]\n" +#~ " : suma de tots els saldos " +#~ "finals dels comptes\n" +#~ " començant per 55 els quals\n" +#~ " el saldo final és positiu." + +#~ msgid "" +#~ "sum, min, max, len, avg\n" +#~ " : behave as expected, very " +#~ "similar to the\n" +#~ " python builtins." +#~ msgstr "" +#~ "sum, min, max, len, avg\n" +#~ " : comportar-se com " +#~ "s'esperava, molt semblant al\n" +#~ " python integrats." + +#~ msgid "Account model" +#~ msgstr "Model de compte" + +#~ msgid "" +#~ "Additionally following variables are available\n" +#~ " in the evaluation context:" +#~ msgstr "" +#~ "A més, hi ha disponibles les variables següents\n" +#~ " en el context d'avaluació:" + +#~ msgid "Analytic Account" +#~ msgstr "Compte Analític" + +#, python-format +#~ msgid "Analytic Account Filter" +#~ msgstr "Filtre Analític de Comptes" + +#, python-format +#~ msgid "Analytic Account Group" +#~ msgstr "Grup de comptes analítics" + +#, python-format +#~ msgid "Analytic Account Group: %s" +#~ msgstr "Grup de comptes analítics: %s" + +#, python-format +#~ msgid "Analytic Account: %s" +#~ msgstr "Compte Analític: %s" + +#~ msgid "Analytic Tags" +#~ msgstr "Etiquetes Analítiques" + +#, python-format +#~ msgid "Analytic Tags Filter" +#~ msgstr "Filtre d'Etiquetes Analítiques" + +#, python-format +#~ msgid "Analytic Tags: %s" +#~ msgstr "Etiquetes Analítiques: %s" + +#~ msgid "" +#~ "Expressions can involve other KPI, sub KPI and\n" +#~ " query results by name (eg kpi1 + " +#~ "kpi2,\n" +#~ " kpi2.subkpi1, query1.field1)." +#~ msgstr "" +#~ "Les expressions poden incloure altres KPI, sub KPI i\n" +#~ " consulteu els resultats pel nom " +#~ "(p. ex. kpi1 + kpi2,\n" +#~ " kpi2.subkpi1, consulta1.camp1)." + +#~ msgid "" +#~ "Filter column on journal entries that have all these analytic tags.This " +#~ "filter is combined with a AND with the report-level filters and cannot be " +#~ "modified in the preview." +#~ msgstr "" +#~ "Filtra la columna de les entrades de diari que tenen totes aquestes " +#~ "etiquetes analítiques. Aquest filtre es combina amb un AND amb els " +#~ "filtres a nivell d’informe i no es pot modificar en la previsualització." + +#~ msgid "" +#~ "Filter column on journal entries that match this analytic account group. " +#~ "This filter is combined with a AND with the report-level filters and " +#~ "cannot be modified in the preview." +#~ msgstr "" +#~ "Filtreu la columna a les entrades de diari que coincideixin amb aquest " +#~ "grup de comptes analítics. Aquest filtre es combina amb un AND amb els " +#~ "filtres a nivell d'informe i no es pot modificar a la vista prèvia." + +#~ msgid "" +#~ "Filter column on journal entries that match this analytic account.This " +#~ "filter is combined with a AND with the report-level filters and cannot be " +#~ "modified in the preview." +#~ msgstr "" +#~ "Filtra la columna de les entrades de diari que coincideixen amb aquest " +#~ "compte analític. Aquest filtre es combina amb un AND amb els filtres a " +#~ "nivell d’informe i no es pot modificar en la previsualització." + +#~ msgid "Hide Analytic Filters" +#~ msgstr "Amagar filtres analítics" + +#~ msgid "MIS Report Instances" +#~ msgstr "Instàncies d'informes MIS" + +#~ msgid "MIS Report Result" +#~ msgstr "Resultat d'informe MIS" + +#~ msgid "Pivot date" +#~ msgstr "Data pivot" + +#~ msgid "Style expression" +#~ msgstr "Expressió d'estil" + +#~ msgid "" +#~ "The\n" +#~ " account selector\n" +#~ " is a like expression on the " +#~ "account code (eg\n" +#~ " 70%, etc)." +#~ msgstr "" +#~ "El\n" +#~ " selector de comptes\n" +#~ " és una expressió semblant al " +#~ "codi del compte (p. ex\n" +#~ " 70%, etc)." + +#~ msgid "" +#~ "The\n" +#~ " journal items domain\n" +#~ " is an Odoo domain filter on " +#~ "journal items." +#~ msgstr "" +#~ "El\n" +#~ " domini d'articles de " +#~ "diari\n" +#~ " és un filtre de domini d'Odoo " +#~ "sobre articles de diari." + +#~ msgid "" +#~ "The following special elements are recognized in\n" +#~ " the expressions to compute " +#~ "accounting data:\n" +#~ " \n" +#~ " {bal|crd|deb|pbal|nbal}{pieu}" +#~ "[account\n" +#~ " selector][journal items " +#~ "domain]\n" +#~ " \n" +#~ " ." +#~ msgstr "" +#~ "Els següents elements especials es reconeixen a\n" +#~ " les expressions per calcular " +#~ "dades comptables:\n" +#~ " \n" +#~ " {bal|crd|deb|pbal|nbal}{pieu}" +#~ "[compte\n" +#~ " selector][domini d'articles " +#~ "de diari]\n" +#~ " \n" +#~ " ." + +#, python-format +#~ msgid "Unexpected accumulation method %s for %s." +#~ msgstr "Mètode d'acumulació %s no esperat per a %s." + +#, python-format +#~ msgid "from %s to %s" +#~ msgstr "Des de %s fins a %s" + +#~ msgid "" +#~ "Check if you wish to specify children companies to be searched for data." +#~ msgstr "" +#~ "Comprovi si desitja especificar companyies filles per a buscar-hi dades." + +#~ msgid "Companies" +#~ msgstr "Companyies" + +#~ msgid "Company" +#~ msgstr "Companyia" + +#~ msgid "Query Company" +#~ msgstr "Companyia de la consulta" + +#~ msgid "" +#~ "AccountingNone: a null value that behaves as 0 in arithmetic " +#~ "operations." +#~ msgstr "" +#~ "AccountingNone: un valor nul que es comporta com a 0 en operacions " +#~ "aritmètiques." + +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal: balance, debit, credit, positive " +#~ "balance, negative balance." +#~ msgstr "" +#~ "bal, crd, deb, pbal, nbal: saldo, deure, haver, saldo positiu, " +#~ "saldo negatiu." + +#~ msgid "" +#~ "bal[70]: variation of the balance of account 70 over the period " +#~ "(it is the same as balp[70]." +#~ msgstr "" +#~ "bal[70]: variació del saldo del compte 70 en el període (és el " +#~ "mateix que balp[70]." + +#~ msgid "" +#~ "bale[1%]: balance of accounts starting with 1 at end of period." +#~ msgstr "" +#~ "bale[1%]: saldo al final del període dels comptes que comencen amb " +#~ "1." + +#~ msgid "bali[70,60]: initial balance of accounts 70 and 60." +#~ msgstr "bali[70,60]: Saldo inicial dels comptes 70 i 60." + +#~ msgid "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation of the balance of all receivable accounts over the " +#~ "period." +#~ msgstr "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variació del saldo de tots els comptes a cobrar en el període." + +#~ msgid "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance of move lines related to tax grid 56." +#~ msgstr "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: saldo dels apunts relacionats amb l'etiqueta d'impost 56." + +#~ msgid "" +#~ "balu[]: (u for unallocated) is a special expression that shows the " +#~ "unallocated profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]: (u for unallocated) es una expressió especial que mostra " +#~ "les pèrdues y guanys sense assignar dels exercicis fiscals\n" +#~ "anteriors." + +#~ msgid "" +#~ "crdp[40%]: sum of all credits on accounts starting with 40 during " +#~ "the period." +#~ msgstr "" +#~ "crdp[40%]: suma de tots els haver dels comptes que comencen per 40 " +#~ "durant el període." + +#~ msgid "date_from, date_to: beginning and end date of the period." +#~ msgstr "date_from, date_to: data d'inici i data de fi del període." + +#~ msgid "datetime, datetime, dateutil: the python modules." +#~ msgstr "datetime, datetime, dateutil: els mòduls python." + +#~ msgid "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: sum of all debits on " +#~ "accounts 55 and journal BNK1 during the period." +#~ msgstr "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: suma de tots els " +#~ "deure dels comptes que comencen per 55 i en el diari BNK1 durant el " +#~ "període." + +#, fuzzy +#~ msgid "" +#~ "p, i, e: respectively variation over the period, initial balance, " +#~ "ending balance" +#~ msgstr "" +#~ "p, i, e: variació sobre el període, sobre el saldo inicial o sobre " +#~ "el saldo final respectivament" + +#~ msgid "" +#~ "pbale[55%]: sum of all ending balances of accounts starting with " +#~ "55 whose\n" +#~ " ending balance is positive." +#~ msgstr "" +#~ "pbale[55%]: suma de tots els saldos finals dels comptes que " +#~ "comencen per 55\n" +#~ " el saldo final dels quals és positiu." + +#~ msgid "" +#~ "sum, min, max, len, avg: behave as expected, very similar to the " +#~ "python builtins." +#~ msgstr "" +#~ "sum, min, max, len, avg: es comporten com s'espera, molt similars " +#~ "als nadius de Python." + +#~ msgid "" +#~ "Additionally following variables are available in the evaluation context:" +#~ msgstr "" +#~ "Les següents variables addicionals estan disponibles en el context " +#~ "d'avaluació:" + +#~ msgid "" +#~ "Expressions can involve other KPI, sub KPI and query results by name (eg " +#~ "kpi1 + kpi2, kpi2.subkpi1, query1.field1)." +#~ msgstr "" +#~ "L'expressió també pot incloure altres KPI ,sub KPI i resultats de " +#~ "consulta per nom (per exemple, kpi1 + kpi2)." + +#~ msgid "" +#~ "The account selector is a like expression on the account code (eg " +#~ "70%, etc)." +#~ msgstr "" +#~ "El selector de compte és com una expressió en el codi de compte " +#~ "(per exemple, 70%, etc)." + +#~ msgid "" +#~ "The journal items domain is an Odoo domain filter on journal items." +#~ msgstr "" +#~ "El domini dels apunts és un filtre de domini Odoo sobe els apunts." + +#, fuzzy +#~ msgid "" +#~ "The following special elements are recognized in the expressions to " +#~ "compute accounting data:\n" +#~ " {bal|crd|deb|pbal|nbal}" +#~ "{pieu}[account selector][journal items domain]." +#~ msgstr "" +#~ "Els següents elements són reconeguts a les expressions per a calcular " +#~ "dades comptables:\n" +#~ " {bal|crd|deb|pbal|nbal}" +#~ "{pieu}[account selector][journal items domain]." + +#~ msgid "MIS Budget" +#~ msgstr "Pressupost MIS" + +#~ msgid "report.mis_builder.mis_report_instance_xlsx" +#~ msgstr "report.mis_builder.mis_report_instance_xlsx" + +#~ msgid "" +#~ "Probably not your fault... but I'm really curious to know how you managed " +#~ "to raise this error so I can handle one more corner case!" +#~ msgstr "" +#~ "Probablement no és culpa seva... però realment tinc curiositat per saber " +#~ "com ha aconseguit aquest error per a poder gestionar un cas extrem més!" + +#~ msgid "µ" +#~ msgstr "µ" + +#~ msgid "add.mis.report.instance.dashboard.wizard" +#~ msgstr "add.mis.report.instance.dashboard.wizard" + +#~ msgid "ir.actions.report" +#~ msgstr "ir.actions.report" + +#~ msgid "mis.report" +#~ msgstr "mis.report" + +#~ msgid "mis.report.instance" +#~ msgstr "mis.report.instance" + +#~ msgid "mis.report.instance.period" +#~ msgstr "mis.report.instance.period" + +#~ msgid "mis.report.instance.period.sum" +#~ msgstr "mis.report.instance.period.sum" + +#~ msgid "mis.report.kpi" +#~ msgstr "mis.report.kpi" + +#~ msgid "mis.report.kpi.expression" +#~ msgstr "mis.report.kpi.expression" + +#~ msgid "mis.report.query" +#~ msgstr "mis.report.query" + +#~ msgid "mis.report.style" +#~ msgstr "mis.report.style" + +#~ msgid "mis.report.subkpi" +#~ msgstr "mis.report.subkpi" diff --git a/mis_builder/i18n/de.po b/mis_builder/i18n/de.po new file mode 100644 index 0000000..cad0d07 --- /dev/null +++ b/mis_builder/i18n/de.po @@ -0,0 +1,1868 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +# Translators: +# Rudolf Schnapka , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-05 01:43+0000\n" +"PO-Revision-Date: 2018-02-05 01:43+0000\n" +"Last-Translator: Rudolf Schnapka , 2018\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (Kopie)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" + +#~ msgid "" +#~ "AccountingNone: a null value that behaves as 0 in arithmetic " +#~ "operations." +#~ msgstr "" +#~ "BuchhaltungsNull: Ein Null-Wert, der sich wie 0 in arithmetischen " +#~ "Berechnungen verhält." + +#, fuzzy +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal: balance, debit, credit, positive " +#~ "balance, negative balance." +#~ msgstr "bal, crd, deb: Saldo, Haben, Soll." + +#~ msgid "" +#~ "bal[70]: variation of the balance of account 70 over the period " +#~ "(it is the same as balp[70]." +#~ msgstr "" +#~ "bal[70]: Abwandlung des Saldo von Konto 70 über die Zeit (Dies " +#~ "entspricht balp[70])." + +#~ msgid "" +#~ "bale[1%]: balance of accounts starting with 1 at end of period." +#~ msgstr "" +#~ "bale[1%]: Saldo der Konten die mit 1 beginnen zum Ende der Periode." + +#~ msgid "bali[70,60]: initial balance of accounts 70 and 60." +#~ msgstr "bali[70,60]: Eröffnungssaldo der Konten 70 und 60." + +#~ msgid "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation of the balance of all receivable accounts over the " +#~ "period." +#~ msgstr "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: Abwandlung des Saldo aller Forderungskonten über die Zeit." + +#~ msgid "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance of move lines related to tax grid 56." +#~ msgstr "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: Saldo der Buchungen mit Steuerschlüssel 56 ." + +#~ msgid "" +#~ "balu[]: (u for unallocated) is a special expression that shows the " +#~ "unallocated profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]: (u für nicht zugewiesen) ist ein spezieller Ausdruck, der " +#~ "nicht zugewiesene Gewinne/Verluste der Vorjahre ausweist." + +#~ msgid "" +#~ "crdp[40%]: sum of all credits on accounts starting with 40 during " +#~ "the period." +#~ msgstr "" +#~ "crdp[40%]: Summe aller Haben auf Konten, die mit 40 beginnen, über " +#~ "die Zeit." + +#~ msgid "date_from, date_to: beginning and end date of the period." +#~ msgstr "date_from, date_to: Anfangs- und Enddatum der Periode." + +#~ msgid "datetime, datetime, dateutil: the python modules." +#~ msgstr "datetime, datetime, dateutil: die Python-Methoden." + +#~ msgid "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: sum of all debits on " +#~ "accounts 55 and journal BNK1 during the period." +#~ msgstr "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: Die Summe aller Soll " +#~ "der Konten 55 und Journal BNK1 über die Periode.." + +#, fuzzy +#~ msgid "" +#~ "p, i, e: respectively variation over the period, initial balance, " +#~ "ending balance" +#~ msgstr "" +#~ "p, i, e: jeweilige Abwandlung über Zeit, Eröffnungssaldo, Endsaldo" diff --git a/mis_builder/i18n/el.po b/mis_builder/i18n/el.po new file mode 100644 index 0000000..f3389b3 --- /dev/null +++ b/mis_builder/i18n/el.po @@ -0,0 +1,1786 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" diff --git a/mis_builder/i18n/el_GR.po b/mis_builder/i18n/el_GR.po new file mode 100644 index 0000000..1e9065b --- /dev/null +++ b/mis_builder/i18n/el_GR.po @@ -0,0 +1,1786 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: el_GR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" diff --git a/mis_builder/i18n/es.po b/mis_builder/i18n/es.po new file mode 100644 index 0000000..113efe5 --- /dev/null +++ b/mis_builder/i18n/es.po @@ -0,0 +1,2243 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-13 15:37+0000\n" +"PO-Revision-Date: 2023-11-03 21:38+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (copia)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" +"\n" +" balp[('user_type_id', " +"'=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : " +"variación del saldo de todas las cuentas a cobrar durante\n" +" el " +"periodo." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" +"\n" +" balp[]" +"[('tax_line_id.tag_ids', '=',ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : Balance " +"de las líneas de movimiento relacionadas con la cuadrícula fiscal 56." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" +"\n" +" debp[55%]" +"[('journal_id.code', '=',\n" +" 'BNK1')]\n" +" \n" +" : " +"suma de todos los cargos en las cuentas 55 y el diario BNK1 durante\n" +" el " +"periodo." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" +"AccountingNone : un valor nulo que se comporta como 0 en\n" +" operaciones aritméticas." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, débito, crédito,\n" +" balance positivo,balance negativo." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" +"bal[70] : variación del saldo de la cuenta 70 sobre\n" +" el " +"período (es lo mismo que balp[70]." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" +"bale[1%] : saldo de cuentas que comienzan con 1 en\n" +" fin " +"del periodo." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "bali[70,60] : saldo inicial de las cuentas 70 y 60." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" +"balu[] : (u para no asignado) es una expresión " +"especial\n" +" que " +"muestra la ganancia/pérdida no asignada de ejercicios fiscales en " +"anteriores.\n" +" años." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" +"crdp[40%] : suma de todos los créditos en cuentas que " +"comienzan\n" +" con " +"40 durante el período." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" +"date_from, date_to : fecha de inicio y " +"finalización del\n" +" período." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" +"datetime, datetime, dateutil : los " +"módulos de python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" +"p, i, e : respectivamente variación " +"durante el período,\n" +" saldo " +"inicial, saldo final" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" +"pbale[55%] : suma de todos los saldos finales de las cuentas\n" +" a " +"partir de 55 cuyo saldo final es positivo." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" +"sum,min,\n" +" max, len,\n" +" avg : se comporta como se esperaba, muy\n" +" similar " +"a los componentes integrados de Python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "-" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" +"Modelo que sea 'de tipo apunte', es decir, que tenga al menos los campos " +"debit, credit, date, account_id y company_id." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" +"Modelo que sea 'de tipo apunte', es decir, que tenga al menos los campos de " +"débito, crédito, fecha, ID de cuenta y ID de compañía. Este modelo es la " +"fuente de datos para la columna Informes estadísticos." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "Un filtro de fecha es obligatorio para este origen en la columna %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "Un dominio para filtrar los apuntes contables en la columna." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" +"Un dominio para filtrar los apuntes considerados en el informe. Precaución: " +"cuando se usan distintos orígenes de apuntes en varias columnas, tales como " +"presupuestos por cuenta, asegúrese de usar solamente campos disponibles en " +"todos los orígenes de apuntes." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "Modelo de cuenta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Método de agregación" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" +"Los modelos reales (alternativos) utilizados en columnas deben tener el " +"mismo modelo de cuenta en el campo Cuenta y deben ser los mismos definidos " +"en la plantilla de informe:%s" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Datos reales" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Datos reales (alternativa)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" +"Datos reales: datos actuales provenientes de la contabilidad y otras " +"consultas.\n" +"Datos reales (alternativa): datos actuales provenientes de un origen " +"alternativo (por ejemplo, vista de la base de datos proveyendo registros de " +"\"tipo apunte\").\n" +"Suma de columnas: sumarización (+/-) de otras columnas.\n" +"Comparar columnas: comparación con otra columna.\n" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" +"Adapte el modelo con date_from / date_to para pro-rata temporis read_group" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Añadir al tablero" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" +"Además, las siguientes variables están disponibles\n" +" en " +"el contexto de la evaluación:" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Agregación" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Todos los asientos" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "Todos los Kpi" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Todos los asientos asentados" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "Cmpcol permitido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "Compañías permitidas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "Compañía permitida" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Importe" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" +"Una expresión que devuelve un estilo dependiendo del valor del KPI. Dicho " +"estilo se aplica en la parte superior del estilo de la fila." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "Dominio analítico" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "Auto expandir" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Media" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Color de fondo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Color de fondo heredado" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Color de fondo utilizando un código RGB válido (de #000000 a #FFFFFF)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Fecha base" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Negrita" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" +"Compruebe si desea especificar varias compañías para la búsqueda de datos." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Color" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Color heredado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Columna" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "La columna %s no puede ser comparada consigo misma." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "La columna %s con fuente de datos reales debe tener fecha desde/hasta." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Columnas" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "Las columnas %(descr)s y %(base_descr)s no son comparables" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "Las columnas a comparar deben pertenecer al mismo informe en %s" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "Columnas a sumar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "Compañías para las que se buscarán datos." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Comparar" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Comparar columnas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Método de comparación" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Modo de comparación" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Creado en" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Moneda" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Tablero" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "Fecha" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Campo Fecha" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "Fecha De" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Rango de fechas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Tipo de rango de fechas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "Fecha hasta" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Fechas" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Día" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Descripción" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" +"Determina cómo los valores de este kpi transcurriendo sobre el periodo de " +"tiempo son transformados para casar con el periodo del informe. Sum: se " +"añaden los valores del periodo más corto, y los valores del más largo o de " +"periodos que solapan parcialmente se ajustan prorrateándose en el tiempo.\n" +"Media: los valores del periodo incluido se promedian con el peso del " +"prorrateo temporal." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "Diferencia" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "Deshabilitar expansión de detalles de cuenta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "Descripción de las columnas de visualización" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Nombre a mostrar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "Mostrar detalles por cuenta" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" +"Mostrar los detalles del rango de fechas en los encabezados de columna." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "Divisor heredado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "Dominio" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "Dp heredado" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" +"Campo ficticio que adapta las búsquedas en fecha a búsquedas en date_from / " +"date_to." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "Duración" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "Empresas eficaces" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" +"Introduzca la expresión aquí, por ejemplo balp[70%]. Vea también la pestaña " +"de ayuda." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" +"Error al consultar el origen de la línea de movimiento \"%(model_name)s\". " +"Esto probablemente se deba a un filtro o expresión que hace referencia a un " +"campo que no existe en el modelo.\n" +"\n" +"El mensaje de error técnico es: %(exception)s. " + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "Ejemplos:" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Exportar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "Expresión" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "Expresiones" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "Las expresiones pueden ser cualquier expresión válida de Python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" +"Las expresiones pueden incluir otros KPI, sub KPI y\n" +" consulta los resultados por nombre (p. " +"ej., kpi1 + kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "Factor" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "Factor heredado" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "El factor se usa para normalizar el periodo (usado en la comparación" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "Nombre de los campos obtenidos" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "Campos a obtener" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "Vista de búsqueda para los filtros" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "Filtros" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "Fechas fijas" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "Fuente" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "Tamaño del tipo de letra" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "Tamaño del tipo de letra heredado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "Estilo de tipo de letra" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "Estilo de tipo de letra heredado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "Tamaño del tipo de letra" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "Tamaño del tipo de letra heredado" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "Fuerza la fecha de inicio al 1 de enero del año relevante" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "Desde" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "De (calculado)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "Generado el %(gen_date)s a las %(gen_time)s" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "Ayuda (para las expresiones del KPI)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "Ocultar Siempre" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "Ocultar vacíos heredados" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "Ocultar vacíos" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "Ocultar vacíos heredado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" +"Si no se provee el campo currency_id, todas las compañías deben tener la " +"misma moneda." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "Sangría" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "Nivel de sangría" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "Nivel de sangría heredado" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "El nivel de sangría debe ser igual o mayor que 0" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "Cursiva" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" +"KPI \"%(kpi)s\" tiene tipo %(type)s mientras que se esperaba una tupla.\n" +"\n" +"Esto puede solucionarse\n" +"\t- Cambiando el valor del KPI a una tupla de longitud %(length)s\n" +"o\n" +"\t- Cambiando el KPI al modo `multi` y dando un valor explícito para cada " +"sub-KPI." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" +"El KPI \"%(kpi)s\" se valora como una tupla de longitud %(length)s mientras " +"que se espera una tupla de longitud%(expected_length)s." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "KPI de Secuencia" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "El nombre de KPI ({}) debe ser un identificador de Python válido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "KPI's" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "KPI's de este informe y subinformes." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "Etiqueta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "PDF apaisado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "Última modificación en" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Últimos informes generados" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "Última modificación por" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "Diseño" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "Informe MIS Builder XLSX" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "Clase abstracta de datos KPI MIS" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "Informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "Informe MIS - Relación de informes secundarios" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "Informe MIS Agregar al Asistente del Tablero" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "Instancia de informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "Período de instancia del informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "Suma del período de instancia del informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "KPI de informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "Informe MIS - KPI Expresión" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "Previsualizar Informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "Consulta del informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "Estilo del informe MIS" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "Estilos del informe MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "Informe MIS Sub-KPI" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "Plantilla de presupuesto MIS" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "Plantillas de informe MIS" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "MIS" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "Informes MIS" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "Informe QWeb PDF de instancia de informe MIS" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "Informe XLS de instancia de informe MIS" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "Máx" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "Mín" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "Modo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "Modelo" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "Mes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "Origen de los apuntes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "Origen de los apuntes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "Mover líneas nombre del modelo de origen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "Multi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Múltiples compañías" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Nombre" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Sin filtro de fechas" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "No se permite un filtro de fecha para esta fuente en la columna %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "Ninguno" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "Normal" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "Número" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "Número de periodos" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "Numérico" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "Desplazamiento" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "Desplazamiento del periodo actual" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "Columna padre" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "Porcentaje" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "El nombre del periodo debe ser único en cada informe" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "Tipo de periodo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Periodos" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "Fecha pivote" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "Por favor introduzca ambas columnas a comparar en %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" +"Por favor seleccione una plantilla de informe y/o guarde el informe antes de " +"añadir columnas." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Prefijo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "Prefijo heredado" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "Previsualizar" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Imprimir" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "Consultas" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" +"El nombre de la consulta ({}) debe ser un identificador de Python válido" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "Actualizar" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "Relativo a la fecha base del informe" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "Informe" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "Informar acción" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "Instancia del informe" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "Fecha base del informe (dejar vacía para usar la fecha actual)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "Redondeo" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "Redondeo heredado" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "Guardar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "Vista de búsqueda para personalizar los filtros en el informe." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "Seleccione las compañías para las que se buscarán los datos." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" +"Seleccione la moneda objetivo para el informe. Requerido si las compañías " +"tiene monedas diferentes." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "Secuencia" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "Configuración" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" +"No debe incluir el mismo informe más de una vez como subinforme de un " +"informe determinado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "Mostrar fecha pivote" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "Mostrar filtros" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "Mostrar botón de configuraciones" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "Mostrar la fecha pivote en la barra de filtros del informe." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "Mostrar la barra de filtros en el informe." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "Mostrar el botón de configuración en el informe." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "Signo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Origen" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "Cadena" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "Estilo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "Expresión de estilo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "Estilo para las filas de detalle de cuenta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "Nombre del estilo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "Sub KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "Filtro del sub KPI" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "El sub KPI debe usarse solamente una vez para cada KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "Sub KPI's" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "Subinformes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "Subinformes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "Sub-KPI Secuencia" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "El nombre del Sub-KPI ({}) debe ser un identificador válido de Python" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "SubKPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "Subinforme" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "Subinforme detectado" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" +"El nombre del subinforme ({}) debe ser un identificador de Python válido" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "El nombre del subinforme debe ser único por informe" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Sufijo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "Sufijo heredado" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "Suma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "Detalles de cuenta de la suma" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" +"La suma no puede ser calculada en la columna {} porque las columnas a sumar " +"no tiene subkpis comunes" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "Suma de columnas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Apuntes objetivo" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Plantilla" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "Temporal" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "Color del texto" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Color de texto en un código RGB válido (desde #000000 hasta #FFFFFF)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" +"El selector de cuentas es una expresión similar en el\n" +" código de cuenta (por ejemplo, " +"70%, etc.), o un dominio sobre cuentas\n" +" (por ejemplo, [('code', " +"'like', '60%')])." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" +"El dominio de artículos diarios es un filtro de dominio de Odoo en\n" +" artículos diarios." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" +"En las expresiones se reconocen los siguientes elementos especiales\n" +" para " +"calcular los datos contables: {bal|crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "Hasta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "Para (calculado)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "Método de acumulación %(method)s inesperado para %(name)s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "Valor inesperado: %s para el target_move." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "Operador no compatible %s para buscar en fecha" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "Vacío de informes temporales" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "Válido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "Tipo del valor" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "Visibilidad" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Semana" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "Dispositivo" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "¡Duración incorrecta, debe ser positiva!" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "Factor de normalización incorrecto. ¡Debe ser positivo!" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "Año" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "El año hasta la fecha" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "No puede sumar el periodo %s consigo mismo." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "Desde %(date_from)s hasta %(date_to)s" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "grande" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "mediana" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "o" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "pp" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "pequeña" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "contra" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "extra-grande" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "extra-pequeña" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "extra-súper-grande" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "extra-súper-pequeña" + +#, python-format +#~ msgid "Columns {} and {} are not comparable" +#~ msgstr "Las columnas {} and {} no son comparables" + +#, python-format +#~ msgid "Generated on {} at {}" +#~ msgstr "Generado el {} a las {}" + +#, python-format +#~ msgid "" +#~ "KPI \"{}\" has type {} while a tuple was expected.\n" +#~ "\n" +#~ "This can be fixed by either:\n" +#~ "\t- Changing the KPI value to a tuple of length {}\n" +#~ "or\n" +#~ "\t- Changing the KPI to `multi` mode and giving an explicit value for " +#~ "each sub-KPI." +#~ msgstr "" +#~ "El KPI \"{}\" tiene el tipo {} mientras se esperaba una tupla.\n" +#~ "\n" +#~ "Esto se puede solucionar mediante:\n" +#~ "- Cambiar el valor de KPI a una tupla de longitud {}\n" +#~ "o\n" +#~ "- Cambiar el KPI al modo `multi` y dar un valor explícito para cada sub-" +#~ "KPI." + +#, python-format +#~ msgid "" +#~ "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} " +#~ "is expected." +#~ msgstr "" +#~ "El KPI \"{}\" se valora como una tupla de longitud {} mientras que se " +#~ "espera una tupla de longitud {}." + +#, python-format +#~ msgid "Can not update a multi kpi from the kpi line" +#~ msgstr "No se puede actualizar un kpi múltiple desde una línea de kpi" + +#~ msgid "Account model" +#~ msgstr "Modelo de cuenta" + +#~ msgid "Analytic Account" +#~ msgstr "Cuenta analítica" + +#, python-format +#~ msgid "Analytic Account Filter" +#~ msgstr "Filtro de cuenta analítica" + +#, python-format +#~ msgid "Analytic Account: %s" +#~ msgstr "Cuenta analítica: %s" + +#~ msgid "Analytic Tags" +#~ msgstr "Etiquetas analíticas" + +#, python-format +#~ msgid "Analytic Tags Filter" +#~ msgstr "Filtro de etiquetas analíticas" + +#, python-format +#~ msgid "Analytic Tags: %s" +#~ msgstr "Etiquetas analíticas: %s" + +#~ msgid "" +#~ "Filter column on journal entries that have all these analytic tags.This " +#~ "filter is combined with a AND with the report-level filters and cannot be " +#~ "modified in the preview." +#~ msgstr "" +#~ "Filtre la columna en entradas de diario que tengan todas estas etiquetas " +#~ "analíticas. Este filtro se combina con un AND con los filtros de nivel de " +#~ "informe y no se puede modificar en la vista previa." + +#~ msgid "" +#~ "Filter column on journal entries that match this analytic account.This " +#~ "filter is combined with a AND with the report-level filters and cannot be " +#~ "modified in the preview." +#~ msgstr "" +#~ "Filtrar columna en entradas de diario que coincidan con esta cuenta " +#~ "analítica. Este filtro se combina con un AND con los filtros de nivel de " +#~ "informe y no se puede modificar en la vista previa." + +#~ msgid "Hide Analytic Filters" +#~ msgstr "Ocultar filtros analíticos" + +#~ msgid "MIS Report Instances" +#~ msgstr "Instancias de informes MIS" + +#~ msgid "MIS Report Result" +#~ msgstr "Resultado del informe MIS" + +#~ msgid "Pivot date" +#~ msgstr "Fecha pivote" + +#~ msgid "Style expression" +#~ msgstr "Expresión de estilo" + +#, python-format +#~ msgid "Unexpected accumulation method %s for %s." +#~ msgstr "Método de acumulación %s no esperado para %s." + +#, python-format +#~ msgid "from %s to %s" +#~ msgstr "desde %s hasta %s" + +#~ msgid "" +#~ "Check if you wish to specify children companies to be searched for data." +#~ msgstr "" +#~ "Compruebe si desea especificar compañías hijas para buscar datos en ellas." + +#~ msgid "Companies" +#~ msgstr "Compañías" + +#~ msgid "Company" +#~ msgstr "Compañía" + +#~ msgid "Query Company" +#~ msgstr "Compañía de la consulta" + +#~ msgid "" +#~ "AccountingNone: a null value that behaves as 0 in arithmetic " +#~ "operations." +#~ msgstr "" +#~ "AccountingNone: un valor nulo que se comporta como 0 en " +#~ "operaciones aritméticas." + +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal: balance, debit, credit, positive " +#~ "balance, negative balance." +#~ msgstr "" +#~ " bal, crd, deb, pbal, nbal : saldo, débito, crédito, saldo " +#~ "positivo, saldo negativo." + +#~ msgid "" +#~ "bal[70]: variation of the balance of account 70 over the period " +#~ "(it is the same as balp[70]." +#~ msgstr "" +#~ "bal[70]: variación del saldo de la cuenta 70 en el periodo (es lo " +#~ "mismo que balp[70]." + +#~ msgid "" +#~ "bale[1%]: balance of accounts starting with 1 at end of period." +#~ msgstr "" +#~ "bale[1%]: saldo al final del periodo de las cuentas que empiezan " +#~ "en 1." + +#~ msgid "bali[70,60]: initial balance of accounts 70 and 60." +#~ msgstr "bali[70,60]: Saldo inicial de las cuentas 70 y 60." + +#~ msgid "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation of the balance of all receivable accounts over the " +#~ "period." +#~ msgstr "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variación del saldo de todas las cuentas a cobrar en el " +#~ "periodo." + +#~ msgid "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance of move lines related to tax grid 56." +#~ msgstr "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: saldo de los apuntes relacionados con la etiqueta de impuesto 56." + +#~ msgid "" +#~ "balu[]: (u for unallocated) is a special expression that shows the " +#~ "unallocated profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]: (u for unallocated) es una expresión especial que muestra " +#~ "las pérdidas y ganancias sin asignar de los ejercicios fiscales " +#~ "anteriores." + +#~ msgid "" +#~ "crdp[40%]: sum of all credits on accounts starting with 40 during " +#~ "the period." +#~ msgstr "" +#~ "crdp[40%]: suma de todos los haber de las cuentas que empiezan por " +#~ "40 durante el periodo." + +#~ msgid "date_from, date_to: beginning and end date of the period." +#~ msgstr "" +#~ "date_from, date_to: fecha de inicio y fecha de fin del periodo." + +#~ msgid "datetime, datetime, dateutil: the python modules." +#~ msgstr "datetime, datetime, dateutil: los módulos python." + +#~ msgid "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: sum of all debits on " +#~ "accounts 55 and journal BNK1 during the period." +#~ msgstr "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: suma de todos los " +#~ "debe en las cuentas que empiezan por 55 y en el diario BNK1 durante el " +#~ "periodo." + +#~ msgid "" +#~ "p, i, e: respectively variation over the period, initial balance, " +#~ "ending balance" +#~ msgstr "" +#~ " p, i, e : variación respectivamente durante el período, saldo " +#~ "inicial, saldo final" + +#~ msgid "" +#~ "pbale[55%]: sum of all ending balances of accounts starting with " +#~ "55 whose\n" +#~ " ending balance is positive." +#~ msgstr "" +#~ " pbale [55%] : suma de todos los saldos finales de cuentas que " +#~ "comienzan con 55 cuyos\n" +#~ "............................................el saldo final es positivo." + +#~ msgid "" +#~ "sum, min, max, len, avg: behave as expected, very similar to the " +#~ "python builtins." +#~ msgstr "" +#~ "sum, min, max, len, avg: se comportan como se espera, muy " +#~ "similares a los nativos de Python." + +#~ msgid "" +#~ "Additionally following variables are available in the evaluation context:" +#~ msgstr "" +#~ "Las siguientes variables adicionales están disponibles en el contexto de " +#~ "evaluación:" + +#~ msgid "" +#~ "Expressions can involve other KPI, sub KPI and query results by name (eg " +#~ "kpi1 + kpi2, kpi2.subkpi1, query1.field1)." +#~ msgstr "" +#~ "La expresión también puede incluir otros KPI y resultados de consulta por " +#~ "nombre (por ejemplo, kpi1 + kpi2)." + +#~ msgid "" +#~ "The account selector is a like expression on the account code (eg " +#~ "70%, etc)." +#~ msgstr "" +#~ "El selector de cuenta es como una expresión en el código de cuenta " +#~ "(por ejemplo, 70%, etc)." + +#~ msgid "" +#~ "The journal items domain is an Odoo domain filter on journal items." +#~ msgstr "" +#~ "El dominio de apuntes es un filtro de dominio Odoo sobre los " +#~ "apuntes." + +#~ msgid "" +#~ "The following special elements are recognized in the expressions to " +#~ "compute accounting data:\n" +#~ " {bal|crd|deb|pbal|nbal}" +#~ "{pieu}[account selector][journal items domain]." +#~ msgstr "" +#~ "Los siguientes elementos especiales se reconocen en las expresiones para " +#~ "calcular los datos contables:\n" +#~ " {bal | crd | deb | pbal | nbal} {pieu} [selector de cuenta] " +#~ "[dominio de elementos de diario] ." + +#~ msgid "MIS Budget" +#~ msgstr "Presupuesto MIS" + +#~ msgid "report.mis_builder.mis_report_instance_xlsx" +#~ msgstr "report.mis_builder.mis_report_instance_xlsx" + +#~ msgid "" +#~ "Probably not your fault... but I'm really curious to know how you managed " +#~ "to raise this error so I can handle one more corner case!" +#~ msgstr "" +#~ "Probablemente no es su culpa... ¡pero realmente hay curiosidad por saber " +#~ "cómo ha conseguido este error para poder manejar un caso extremo más!" + +#~ msgid "µ" +#~ msgstr "µ" + +#~ msgid "add.mis.report.instance.dashboard.wizard" +#~ msgstr "add.mis.report.instance.dashboard.wizard" + +#~ msgid "ir.actions.report" +#~ msgstr "ir.actions.report" + +#~ msgid "mis.report" +#~ msgstr "mis.report" + +#~ msgid "mis.report.instance" +#~ msgstr "mis.report.instance" + +#~ msgid "mis.report.instance.period" +#~ msgstr "mis.report.instance.period" + +#~ msgid "mis.report.instance.period.sum" +#~ msgstr "mis.report.instance.period.sum" + +#~ msgid "mis.report.kpi" +#~ msgstr "mis.report.kpi" + +#~ msgid "mis.report.kpi.expression" +#~ msgstr "mis.report.kpi.expression" + +#~ msgid "mis.report.query" +#~ msgstr "mis.report.query" + +#~ msgid "mis.report.style" +#~ msgstr "mis.report.style" + +#~ msgid "mis.report.subkpi" +#~ msgstr "mis.report.subkpi" diff --git a/mis_builder/i18n/fr.po b/mis_builder/i18n/fr.po new file mode 100644 index 0000000..5dfc847 --- /dev/null +++ b/mis_builder/i18n/fr.po @@ -0,0 +1,2167 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +# Translators: +# OCA Transbot , 2018 +# Nicolas JEUDY , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-10 07:59+0000\n" +"PO-Revision-Date: 2023-05-25 15:10+0000\n" +"Last-Translator: \"Sandrine (ACSONE)\" \n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (copie)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation de la balance de tous " +"les comptes de créances sur\n" +" la période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance des écritures comptables " +"liées à la grille de taxe 56." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : somme de tous les débits des " +"comptes 55 et du journal BNK1 pour\n" +" la période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" +"AccountingNone : une valeur nulle qui se comporte comme un 0 " +"dans\n" +" les opérations arithmétiques." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, débit, crédit,\n" +" balance positive, balance négative." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" +"bal[70] : variation de la balance des comptes 70 sur\n" +" la période (c'est la même chose que " +"balp[70]." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" +"bale[1%] : balance des comptes commençant par 1 à\n" +" la fin de la période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "bali[70,60] : balance initiale des comptes 70 et 60." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" +"balu[] : (u pour non-alloué) est une expression " +"spéciale\n" +" qui montre la perte/le profit non-" +"alloué de la précédente année\n" +" fiscale." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" +"crdp[40%] : somme de tous les crédits des comptes commençant\n" +" par 40 durant la période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" +"date_from, date_to : date de début et de fin de " +"la\n" +" période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" +"datetime, datetime, dateutil : les " +"modules python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" +"p, i, e : respectivement variation de " +"la période,\n" +" balance initiale, balance finale" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" +"pbale[55%] : somme de toutes les balances finales des comptes\n" +" commençant par 55 qui ont une " +"balance finale positive." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" +"sum, min,\n" +" max, len,\n" +" avg : se comporte comme " +"attendu, très\n" +" similaire aux expressions python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "-" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" +"Un modèle 'move line like', ie ayant au moins les champs débit, crédit, " +"account_id et company_id." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" +"Un modèle 'move line like', ie ayant au moins les champs débit, crédit, " +"account_id et company_id. Ce modèle est la source pour la colonne \"Réels\"." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "Un filtre date est obligatoire pour cette source dans la colonne %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "Un domaine pour filtrer les lignes de données de cette colonne." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" +"Un domaine pour filtrer les lignes de données de cette colonne. Attention : " +"quand vous utilisez différentes sources de données dans des colonnes " +"différentes, tel que budgets par compte, veillez à utiliser uniquement des " +"champs qui sont disponibles dans toutes les sources de données." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "Modèle de compte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Méthode d'accumulation" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" +"Les modèles Réel (alternatif) utilisés dans les colonnes doivent avoir le " +"même modèle de compte dans le champ Compte et doit être le même défini dans " +"le modèle de rapport : %s" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Réels" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Réels (autre)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" +"Réels: données actuelles, de la comptabilité et autres requêtes.\n" +"Réels (autre): données actuelles d'une autre source (eg une vue d'une base " +"de données fournissant des lignes de mouvements de comptes similaires).\n" +"Somme colonnes: somme (+/-) d'autres colonnes.\n" +"Comparer colonnes: compare à  une autre colonne.\n" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" +"Adapte le modèle avec date_from/date_to pour le read_group pro-rata temporis" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Ajouter au tableau de bord" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" +"Les variables suivantes sont disponibles\n" +" dans le contexte d'évaluation :" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Agréger" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Écritures comptabilisées + non-comptabilisées" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "Tous les KPIs" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Écritures comptabilisées seulement" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "Cmpcol autorisés" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "Sociétés autorisées" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "Société autorisée" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Montant" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" +"Une expression qui retourne un style en fonction de la valeur du KPI. Un tel " +"style est appliqué au-dessus du style de la ligne." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "Domaine analytique" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "Expansion automatique" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Moyenne" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Couleur d'arrière-plan" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Couleur d'arrière plan par défaut" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Couleur d'arrière-plan en code RGB valide (de #000000 à  #FFFFFF)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Date de référence" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Gras" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Annuler" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" +"Cocher si vous souhaitez indiquer plusieurs sociétés dont les données sont à " +"intégrer." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Couleur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Couleur par défaut" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Colonne" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "Colonne %s ne peut pas être comparée à itrec." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "La colonne %s avec une source de données doit avoir des dates de/à." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Colonnes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "Les colonnes à  comparer doivent appartenir au même rapport %s" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "Colonnes à additionner" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "Sociétés pour lesquelles les données seront recherchées." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Comparer" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Compare colonnes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Méthode de comparaison" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Mode de comparaison" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Devise" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Tableau de bord" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "Date" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Champ date" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "Du" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Intervalle de dates" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Type d'intervalle de dates" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "Jusqu'au" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Dates" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Jour" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Description" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" +"Détermines comment les valeurs de ce KPI, s'étendant au délà  d'une période, " +"sont transformées pour correspondre à  la période de reporting. Somme : les " +"valeurs des périodes plus courtes sont additionnées, les valeurs des " +"périodes plus longues ou se chevauchant sont ajustées au pro-rata temporis.\n" +"Moyenne : moyenne au pro-rata temporis des valeurs incluses dans la période." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "Différence" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "Désactiver l'affichage du détail par compte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "Afficher la description des colonnes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Nom affiché" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "Affiche les détails par compte" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "Afficher la plage de dates dans l'intitulé des colonnes." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "Diviseur par défaut" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "Domaine" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "Dp par défaut" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" +"Champ factice qui adapte les recherches sur la date vers des recherches sur " +"les champs date_from/date_to." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "Durée" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "Sociétés" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" +"Entrez l'expression ici, par exemple balp[70%]. Voir aussi l'onglet aide." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" +"Erreur lors de la requête du modèle \"%(model_name)s\". C'est probablement " +"dû à un filtre ou expression référençant un champ qui n'existe pas dans le " +"modèle.\n" +"\n" +"Le message d'erreur technique est : %(exception)s. " + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "Exemples :" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Export" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "Expression" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "Expressions" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" +"Les expressions peuvent être n'importe quelle expression python valide." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" +"Les expressions peuvent intégrer d'autres KPI, sub KPI et\n" +" résultats de requêtes par nom (eg " +"kpi1 + kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "Facteur" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "Facteur par défaut" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "Facteur à  utiliser pour normaliser la période (utilisé en comparaison" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "Nom des champs cherchés" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "Champs à  chercher" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "Filtre de la vue de recherche" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "Filtres" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "Dates fixes" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "Police" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "Taille de police" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "Taille de police par défaut" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "Style de police" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "Style de police par défaut" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "Poids de police de caractères" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "Poids de police par défaut" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "Force la date de début au 1er janvier de l'année" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "De" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "Du (calculé)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "Aide (pour expressions des KPI)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "Toujours cacher" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "Toujours cacher par défaut" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "Cacher les vides" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "Cacher les vides par défaut" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" +"Si le currency_id n'est pas renseigné, toutes les sociétés doivent avoir la " +"même devise." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "Alinéa" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "Niveau de retrait" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "Niveau de retrait par défaut" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "Le niveau de retrait doit être plus grand ou égal à  0" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "Italique" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "Séquence" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "Le nom du KPI ({}) doit être un identifiant python valide" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "KPI's" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "Les KPIs de ce rapport et sous-rapports." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "Kpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "Description" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "PDF paysage" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Derniers rapports générés" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "Dernière mise à jour par" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "Disposition" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "MIS Builder rapport XLSX" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "Classe abstraite de données MIS KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "MIS Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "Rapport MIS - Relation des sous-rapports" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "Wizard d'ajout du rapport MIS au tableau de bord" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "Instance MIS report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "Période du rapport MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "Somme de la période" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "MIS Report KPI" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "Expression du KPI du rapport MIS" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "Prévisualiser" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "Requête du rapport MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "Style MIS Report" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "Styles MIS Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "Sous-KPI du rapport MIS" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "Modèle de rapport MIS" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "Modèles MIS Report" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "MIS Reporting" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "MIS Reports" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "Instance MIS report QWEB PDF report" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "Instance MIS report XLS report" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "Max" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "Min" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "Mode" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "Modèle" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "Mois" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "Source des lignes de données" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "Source des lignes d'écriture" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "Nom du modèle de la source des lignes de données" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "Multi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Sociétés multiples" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Nom" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Pas de filtre date" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "Aucun filtre date n'est autorisé pour cette source dans la colonne %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "Aucun" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "Normal" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "Nombre" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "Nombre de périodes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "Numérique" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "Compensation" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "Compensation depuis la période actuelle" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "Colonne parent" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "Pourcentage" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "Le nom de la période doit être unique par rapport" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "Type de période" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Périodes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "Date pivot" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "Merci de renseigner les 2 colonnes à  comparer en %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" +"Veuillez sélectionner un modèle de rapport et/ou sauver le rapport avant " +"d'ajouter des colonnes." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Préfixe" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "Préfixe par défaut" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "Prévisualisation" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Imprimer" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "Requêtes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "Le nom de la requête ({}) doit être un identifiant python valide" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "Rafraîchir" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "Relatif à  la date de référence du rapport" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "Rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "Action du rapport" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "Instance de rapport" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" +"Date de référence du rapport (laissez vide pour utiliser la date du jour)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "Arrondi" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "Arrondi par défaut" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "Sauvegarder" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" +"Vue de recherche pour personnaliser le filtre dans le widget du rapport." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" +"Selectionnez les sociétés pour lesquelles les données seront cherchées." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" +"Selectionnez la devise du rapport. Nécessaire si les sociétés ont des " +"devises différentes." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "Séquence" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "Paramètres" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" +"Ne devrait pas inclure le même rapport plus d'une fois comme sous-rapport " +"d'un rapport donné" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "Montrer la date pivot" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "Montrer les filtres" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "Montrer le bouton de configuration" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "Montrer la date pivot dans la barre de filtre du widget de rapport." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "Montrer la barre de filtre dans le widget du rapport." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "Montrer le bouton de configurations dans le widget du rapport." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "Signer" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Source" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "Chaîne de caractères" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "Style" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "Style de l'expression" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "Style pour les lignes de détails" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "Nom du style" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "Sous KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "Filtre du sous KPI" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" +"Un sous KPI ne doit être utilisé qu'une et une seule fois pour chaque KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "Sous KPI's" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "Sous-rapports" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "Sous-rapports" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "Séquence du sous-KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "Le nom du sous-KPI ({}) doit être un identifiant python valide" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "Subkpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "Sous-rapport" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "Boucle de sous-rapport détectée" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "Le nom du sous-rapport ({}) doit être un identifiant python valide" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "Le nom du sous-rapport doit être unique par rapport" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Suffixe" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "Suffixe par défaut" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "Somme" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "Additionne le détail des comptes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" +"La somme ne peut pas être calculée dans la colonne {} car les colonnes à  " +"additionner n'ont pas de sous KPI's communs" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "Colonnes à additionner" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Écritures ciblées" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Modèle" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "Temporaire" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "Couleur du texte" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Couleur du texte en code RGB valide (de #000000 à  #FFFFFF)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" +"Le sélecteur de comptes est une expression sur le\n" +" code du compte (eg 70%, " +"etc), ou un domaine sur les comptes\n" +" (eg [('code', 'like', '60%')])." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" +"Le domaine des écritures comptables est un filtre de domaine Odoo " +"sur\n" +" les écritures comptables." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" +"Les éléments spéciaux suivants sont reconnus dans les expressions\n" +" pour calculer les données comptables : " +"{bal|crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "à " + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "Au (calculé)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "Méthode d'accumulation inattendue %(method)s for %(name)s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "Valuer inattendue %s pour target_move." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "Opérateur non supporté %s pour les recherches sur la date" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "Vider les rapports temporaires" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "Valide" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "Type de valeur" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "Visibilité" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Semaine" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "Widget" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "Durée incorrecte, elle doit être positive !" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "Facteur de normalisation incorrect, il doit être positif !" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "Année" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "Year to date" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "Vous ne pouvez pas additionner la période %s avec elle-meme." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "Du %(date_from)s au %(date_to)s" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "grand" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "moyen" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "ou" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "pp" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "petit" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "versus" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "x-grand" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "x-petit" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "xx-grand" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "xx-petit" + +#, python-format +#~ msgid "Columns {} and {} are not comparable" +#~ msgstr "Les colonnes {} et {} ne sont pas comparables" + +#, python-format +#~ msgid "Generated on {} at {}" +#~ msgstr "Généré le {} à {}" + +#, python-format +#~ msgid "" +#~ "KPI \"{}\" has type {} while a tuple was expected.\n" +#~ "\n" +#~ "This can be fixed by either:\n" +#~ "\t- Changing the KPI value to a tuple of length {}\n" +#~ "or\n" +#~ "\t- Changing the KPI to `multi` mode and giving an explicit value for " +#~ "each sub-KPI." +#~ msgstr "" +#~ "Le KPI \"{}\" a le type {} alors qu'une liste de valeurs est attendue.\n" +#~ "\n" +#~ "Ceci peut être corrigé par soit :\n" +#~ "\t- Changer la valeur du KPI pour une liste de valeurs de longueur {}\n" +#~ "ou\n" +#~ "\t- Changer le KPI en mode 'multi' et donner une valeur pour chaque sous-" +#~ "KPI." + +#, python-format +#~ msgid "" +#~ "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} " +#~ "is expected." +#~ msgstr "" +#~ "Le KPI \"{}\" est une liste de valeurs de longueur {} alors qu'une liste " +#~ "de valeurs de longueur {} est attendue." + +#, python-format +#~ msgid "Can not update a multi kpi from the kpi line" +#~ msgstr "" +#~ "Vous ne pouvez pas mettre à  jour un kpi multi depuis la ligne de kpi" + +#~ msgid "Account model" +#~ msgstr "Additionne le détail des comptes" + +#~ msgid "Analytic Account" +#~ msgstr "Compte Analytique" + +#~ msgid "Analytic Tags" +#~ msgstr "Étiquettes analytiques" + +#~ msgid "MIS Report Instances" +#~ msgstr "Instances MIS report" + +#~ msgid "MIS Report Result" +#~ msgstr "Résultat MIS Report" + +#~ msgid "Pivot date" +#~ msgstr "Date pivot" + +#~ msgid "Style expression" +#~ msgstr "Expression du style" + +#, python-format +#~ msgid "Unexpected accumulation method %s for %s." +#~ msgstr "Méthode d'accumulation inattendue %s pour %s." + +#, python-format +#~ msgid "from %s to %s" +#~ msgstr "de %s à  %s" + +#~ msgid "" +#~ "Check if you wish to specify children companies to be searched for data." +#~ msgstr "" +#~ "Vérifiez si vous souhaitez spécifier des sociétés enfants dont les " +#~ "données seront recherchées." + +#~ msgid "Companies" +#~ msgstr "Sociétés" + +#~ msgid "Company" +#~ msgstr "Société" + +#~ msgid "Query Company" +#~ msgstr "Société de la requête" + +#~ msgid "" +#~ "AccountingNone: a null value that behaves as 0 in arithmetic " +#~ "operations." +#~ msgstr "" +#~ "AccountingNone: une valeur nulle qui se comporte comme un zero " +#~ "dans les opérations arithmétiques." + +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal: balance, debit, credit, positive " +#~ "balance, negative balance." +#~ msgstr "" +#~ "bal, crd, deb, pbal, nbal: balance, débit, crédit, balance " +#~ "positive, balance négative." + +#~ msgid "" +#~ "bal[70]: variation of the balance of account 70 over the period " +#~ "(it is the same as balp[70]." +#~ msgstr "" +#~ "1bal[70]2: variation de la balance des comptes 70 de la période " +#~ "(similaire à  balp[70]." + +#~ msgid "" +#~ "bale[1%]: balance of accounts starting with 1 at end of period." +#~ msgstr "" +#~ "1bale[1%]2: balance des comptes commençant par 1 à  la fin de la " +#~ "période." + +#~ msgid "bali[70,60]: initial balance of accounts 70 and 60." +#~ msgstr "1bali[70,60]2: balance initiale des comptes 70 et 60." + +#~ msgid "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation of the balance of all receivable accounts over the " +#~ "period." +#~ msgstr "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation de la balance des comptes clients durant la période." + +#~ msgid "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance of move lines related to tax grid 56." +#~ msgstr "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance des lignes d'écritures liées au code taxe 56." + +#~ msgid "" +#~ "balu[]: (u for unallocated) is a special expression that shows the " +#~ "unallocated profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]: (u pour non-allouée) c'est une expression spéciale qui " +#~ "montre le bénéfice/perte non-alloué des années fiscales précédentes." + +#~ msgid "" +#~ "crdp[40%]: sum of all credits on accounts starting with 40 during " +#~ "the period." +#~ msgstr "" +#~ "crdp[40%]: somme de tous les crédits des comptes commençant par 40 " +#~ "durant la période." + +#~ msgid "date_from, date_to: beginning and end date of the period." +#~ msgstr "date_from, date_to: date de début et de fin de la période." + +#~ msgid "datetime, datetime, dateutil: the python modules." +#~ msgstr "datetime, datetime, dateutil: les modules python." + +#~ msgid "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: sum of all debits on " +#~ "accounts 55 and journal BNK1 during the period." +#~ msgstr "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: somme de tous les " +#~ "débits des comptes 55 et journal BNK1 durant la période." + +#~ msgid "" +#~ "p, i, e: respectively variation over the period, initial balance, " +#~ "ending balance" +#~ msgstr "" +#~ "p, i, e: respectivement variation de la période, balance initiale, " +#~ "balance finale" + +#~ msgid "" +#~ "pbale[55%]: sum of all ending balances of accounts starting with " +#~ "55 whose\n" +#~ " ending balance is positive." +#~ msgstr "" +#~ "pbale[55%]: somme de toutes les balances finales des comptes " +#~ "débutant par 55\n" +#~ " et dont la balance finale est " +#~ "positive." + +#~ msgid "" +#~ "sum, min, max, len, avg: behave as expected, very similar to the " +#~ "python builtins." +#~ msgstr "" +#~ "sum, min, max, len, avg: se comporte comme attendu, très similaire " +#~ "aux expressions python." + +#~ msgid "" +#~ "Additionally following variables are available in the evaluation context:" +#~ msgstr "" +#~ "De plus les variables suivantes sont disponibles dans le contexte " +#~ "d'évaluation :" + +#~ msgid "" +#~ "The account selector is a like expression on the account code (eg " +#~ "70%, etc)." +#~ msgstr "" +#~ "Le sélecteur de compte est une expression Like sur le code du " +#~ "compte (eg 70%, etc)." + +#~ msgid "" +#~ "The journal items domain is an Odoo domain filter on journal items." +#~ msgstr "" +#~ "Le domaine des lignes d'écriture est un filtre de domaine Odoo sur " +#~ "les lignes d'écriture." + +#~ msgid "MIS Budget" +#~ msgstr "MIS Budget" + +#~ msgid "report.mis_builder.mis_report_instance_xlsx" +#~ msgstr "report.mis_builder.mis_report_instance_xlsx" + +#~ msgid "" +#~ "Probably not your fault... but I'm really curious to know how you managed " +#~ "to raise this error so I can handle one more corner case!" +#~ msgstr "" +#~ "Ce n'est probablement pas votre faute... mais je suis très curieux de " +#~ "savoir comment vous avez réussi à  générer cette erreur de manière à  " +#~ "traiter un nouveau problème !" + +#~ msgid "µ" +#~ msgstr "µ" + +#~ msgid "add.mis.report.instance.dashboard.wizard" +#~ msgstr "add.mis.report.instance.dashboard.wizard" + +#~ msgid "ir.actions.report" +#~ msgstr "ir.actions.report" + +#~ msgid "mis.report" +#~ msgstr "mis.report" + +#~ msgid "mis.report.instance" +#~ msgstr "mis.report.instance" + +#~ msgid "mis.report.instance.period" +#~ msgstr "mis.report.instance.period" + +#~ msgid "mis.report.instance.period.sum" +#~ msgstr "mis.report.instance.period.sum" + +#~ msgid "mis.report.kpi" +#~ msgstr "mis.report.kpi" + +#~ msgid "mis.report.kpi.expression" +#~ msgstr "mis.report.kpi.expression" + +#~ msgid "mis.report.query" +#~ msgstr "mis.report.query" + +#~ msgid "mis.report.style" +#~ msgstr "mis.report.style" + +#~ msgid "mis.report.subkpi" +#~ msgstr "mis.report.subkpi" diff --git a/mis_builder/i18n/fr_FR.po b/mis_builder/i18n/fr_FR.po new file mode 100644 index 0000000..1ae0568 --- /dev/null +++ b/mis_builder/i18n/fr_FR.po @@ -0,0 +1,1881 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-06-08 15:09+0000\n" +"Last-Translator: \"Sandrine (ACSONE)\" \n" +"Language-Team: none\n" +"Language: fr_FR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (copie)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation de la balance de tous " +"les comptes de créances sur\n" +" la période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance des lignes d'écritures " +"liées à la grille de taxe 56." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : somme de tous les débits sur les " +"comptes 55 ayant le journal BNK1 pour\n" +" la période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" +"AccountingNone : une valeur nulle qui se comporte comme un 0 " +"dans\n" +" les opérations arithmétiques." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, débit, crédit,\n" +" positive balance, négative balance." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" +"bal[70] : variation de la balance des comptes 70 pour\n" +" la période (c'est la même chose que " +"balp[70]." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" +"bale[1%] : balance des comptes commençant par 1 à\n" +" la fin de la période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "bali[70,60] : Balance initiale des comptes 70 et 60." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" +"balu[] : (u for non alloué) est une expression " +"spéciale\n" +" qui montre le profit/perte non " +"alloué de la précédente\n" +" année fiscale." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" +"crdp[40%] : somme de tous les crédits des comptes commençant\n" +" par 40 pendant la période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" +"date_from, date_to : date de début et de fin de " +"la\n" +" période." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" +"datetime, datetime, dateutil : les " +"modules python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" +"p, i, e : respectivement variation de " +"la période,\n" +" balance initiale, balance finale" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" +"pbale[55%] : somme de toutes les balances finales des comptes\n" +" commençant par 55 et pour lesquels " +"la balance finale est positive." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" +"sum, min,\n" +" max, len,\n" +" avg : se comporte comme " +"attendu, très\n" +" similaire aux builtins python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "-" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" +"Un modèle 'move line like', ie ayant au moins les champs débit, crédit, " +"date, account_id et company_id." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" +"Un modèle 'move line like', ie ayant au moins les champs débit, crédit, " +"date, account_id et company_id. Ce modèle est la source de données pour la " +"colonne Réel." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "" +"Un filtre sur les dates est obligatoire pour cette source dans la colonne %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "Un domaine pour filtrer les lignes d'écriture de cette colonne." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" +"Un domaine pour filtrer les lignes d'écriture de ce rapport. Attention : " +"lorsque vous utilisez différentes sources de données dans différentes " +"colonnes, tel que les budgets par compte, veuillez vérifier que vous " +"utilisez uniquement des champs qui sont disponibles dans toutes les sources " +"de données." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "Modèle de compte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Méthode d'accumulation" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" +"Les modèles Réel (alternatif) utilisés dans les colonnes doivent avoir le " +"même modèle de compte dans le champ Compte et doivent être les mêmes définis " +"dans le modèle de rapport : %s" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Réel" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Réel (alternatif)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" +"Réel : données réelles, de la comptabilité et autres requêtes.\n" +"Réel (alternatif) : données réelles d'une source alternative (eg une vue " +"fournissant des données ressemblant à des lignes d'écritures comptables.\n" +"Additionner les colonnes : Addition (+/-) d'autres colonnes.\n" +"Comparer les colonnes : Compare à une autre colonne.\n" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "Adapte le modèle date_from/date_to pour le pro-rata temporis" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Ajouter au tableau de bord" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" +"De plus, les variables suivantes sont disponibles\n" +" dans " +"le contexte d'évaluation :" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Agréger" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Toutes les pièces" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "Tous les KPI's" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Toutes les pièces comptabilisées" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "Cmpcol autorisé" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "Sociétés autorisées" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "Société autorisée" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Montant" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" +"Une expression qui renvoie un style selon la valeur du KPI. Un tel style est " +"appliqué au-dessus du style de la ligne." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "Domaine analytique" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "Expansion automatique" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Moyenne" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Couleur d'arrière-plan" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Couleur d'arrière-plan héritée" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Couleur d'arrière-plan ayant un code RGB valide (de #000000 à #FFFFFF)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Date de base" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Gras" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Annuler" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" +"Cocher si vous souhaitez spécifier plusieurs sociétés pour la recherche de " +"données." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Couleur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Couleur héritée" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Colonne" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "La colonne %s ne peut pas être comparée à itrec." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" +"La colonne %s ayant une source de données doit avoir des dates de début/fin." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Colonnes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "Les colonnes à comparer doivent appartenir au même rapport dans %s" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "Colonnes à additionner" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "Sociétés pour lesquelles une recherche de données sera effectuée." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Comparer" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Comparer les colonnes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Méthode de comparaison" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Mode de comparaison" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Créé par" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Créé le" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Devise" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Tableau de bord" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "Date" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Champ date" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "Depuis le" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Plage de dates" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Type de plage de dates" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "Au" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Dates" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Jour" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Description" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" + +#, python-format +#~ msgid "Columns {} and {} are not comparable" +#~ msgstr "Les colonnes {} and {} ne sont pas comparables" + +#, python-format +#~ msgid "Can not update a multi kpi from the kpi line" +#~ msgstr "Vous ne pouvez pas modifier un KPI multi depuis la ligne de KPI" diff --git a/mis_builder/i18n/hr.po b/mis_builder/i18n/hr.po new file mode 100644 index 0000000..e516e76 --- /dev/null +++ b/mis_builder/i18n/hr.po @@ -0,0 +1,1925 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-13 15:37+0000\n" +"PO-Revision-Date: 2020-01-28 18:13+0000\n" +"Last-Translator: Bole \n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/" +"hr_HR/)\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 3.10\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (kopija)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" +"Model sličan 'account move line' modelu, sadrži barem sljedeća polja: debit, " +"credit, account_id i company_id." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" +"Model sličan 'account move line' modelu, sadrži barem sljedeća polja: debit, " +"credit, account_id i company_id. Ovaj model je izvor podataka za kolonu " +"Trenutno ( Actuals)." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "Filter po datumu je obavezan za izvor podataka u koloni %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Kumulativna metoda" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Dodaj na nadzornu ploču" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Zbrajanje" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Sve stavke" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Sve proknjižene stavke" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Iznos" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" +"Izraz koji vraća stil zavisno od KPI vrijednosti. Takav stil se primjenjuje " +"nakon stila retka." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "Automatsko širenje" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Prosjek" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Boja pozadine" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Nasljeđivanje boje pozadine" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Otkaži" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Kreirao" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Kreirano" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Naziv " + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Naziv" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Ciljane stavke" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "ili" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" + +#~ msgid "Account model" +#~ msgstr "Model konta" + +#~ msgid "Analytic Account" +#~ msgstr "Analitički konto" + +#, python-format +#~ msgid "Analytic Account Filter" +#~ msgstr "Filter analitičkih konta" + +#, python-format +#~ msgid "Analytic Account: %s" +#~ msgstr "Analitički konto: %s" + +#~ msgid "Analytic Tags" +#~ msgstr "Oznake analitike" + +#, python-format +#~ msgid "Analytic Tags Filter" +#~ msgstr "Filter oznaka analitike" + +#, python-format +#~ msgid "Analytic Tags: %s" +#~ msgstr "Oznake analitike: %s" + +#~ msgid "Company" +#~ msgstr "Tvrtka" + +#~ msgid "" +#~ "AccountingNone: a null value that behaves as 0 in arithmetic " +#~ "operations." +#~ msgstr "" +#~ "RačunovodstvenaNula: null vrijednost koja se ponaša kao 0 u " +#~ "aritmetičkim operacijama." + +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal: balance, debit, credit, positive " +#~ "balance, negative balance." +#~ msgstr "" +#~ "bal, crd, deb, pbal, nbal: saldo, duguje, potražuje, pozitivan " +#~ "saldo, negativan saldo." + +#~ msgid "" +#~ "bal[70]: variation of the balance of account 70 over the period " +#~ "(it is the same as balp[70]." +#~ msgstr "" +#~ "bal[70]: varijanta salda konta 70 u periodu (isto kao balp[70]." + +#~ msgid "" +#~ "bale[1%]: balance of accounts starting with 1 at end of period." +#~ msgstr "bale[1%]: saldo konta koja počinju sa 1 na kraju perioda." + +#~ msgid "bali[70,60]: initial balance of accounts 70 and 60." +#~ msgstr "bali[70,60]: početni saldo konta 70 i 60." + +#~ msgid "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation of the balance of all receivable accounts over the " +#~ "period." +#~ msgstr "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: varijacija slada svih potražnih konta kroz period.." + +#~ msgid "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance of move lines related to tax grid 56." +#~ msgstr "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: saldo svih temeljnica povezanih sa poreznom skupinom 56." + +#~ msgid "" +#~ "balu[]: (u for unallocated) is a special expression that shows the " +#~ "unallocated profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]: (u za neraspoređene) je specijalni izraz koji prikazuje " +#~ "nerspoređeni prihod/rashod prehodne fiskalne godine." + +#~ msgid "" +#~ "crdp[40%]: sum of all credits on accounts starting with 40 during " +#~ "the period." +#~ msgstr "" +#~ "crdp[40%]: suma svih potražnih konta koja počinju sa 40 kroz " +#~ "zadani period.." + +#~ msgid "date_from, date_to: beginning and end date of the period." +#~ msgstr "date_from, date_to: početni i završni datumi perioda." + +#~ msgid "datetime, datetime, dateutil: the python modules." +#~ msgstr "datetime, datetime, dateutil: python moduli." + +#~ msgid "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: sum of all debits on " +#~ "accounts 55 and journal BNK1 during the period." +#~ msgstr "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: suma svih dugovnih " +#~ "iznosa konta 55 knjiženih u dnevniku BNK1 kroz period.." + +#~ msgid "" +#~ "p, i, e: respectively variation over the period, initial balance, " +#~ "ending balance" +#~ msgstr "" +#~ "p, i, e: varijacija kroz period, i - početno stanje, e - završno " +#~ "stanje" + +#~ msgid "" +#~ "pbale[55%]: sum of all ending balances of accounts starting with " +#~ "55 whose\n" +#~ " ending balance is positive." +#~ msgstr "" +#~ "pbale[55%]: suma svih završnih salda konta koja počinju sa 55 " +#~ "čiji\n" +#~ " završni saldo je pozitivan." + +#~ msgid "" +#~ "sum, min, max, len, avg: behave as expected, very similar to the " +#~ "python builtins." +#~ msgstr "" +#~ "sum, min, max, len, avg: očenikano ponašanje operatora, vrlo " +#~ "slično kao i u pythonu." + +#~ msgid "" +#~ "Additionally following variables are available in the evaluation context:" +#~ msgstr "Dodatno sljedeće varijable su dostupne u kontekstu:" diff --git a/mis_builder/i18n/it.po b/mis_builder/i18n/it.po new file mode 100644 index 0000000..b5021ab --- /dev/null +++ b/mis_builder/i18n/it.po @@ -0,0 +1,1880 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-05-24 19:09+0000\n" +"Last-Translator: Francesco Foresti \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (copia)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "" +"Un filtro data è obbligatorio per questa sorgente dati nella colonna %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Metodo di accumulo" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Effettivo" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Effettivo (alternativa)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Aggiungi alla bacheca" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Aggregati" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Tutte le registrazioni" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "Tutti i KPI" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Tutte le registrazioni confermate" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Importo" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "Espansione automatica" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Media" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Colore sfondo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Eredita colore di sfondo" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Colore di sfondo nel formato RGB (da #000000 a #FFFFFF)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Data di Base" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Grassetto" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Annulla" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Colore" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Eredita colore" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Colonna" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "La colonna %s non può essere comparata a itrec." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "La colonna %s con movimenti di riga deve avere data da: a:." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Colonne" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "Colonne da confrontare devono essere dello stesso report %s" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "Colonne da sommare" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "Società dalla quali i dati verranno ricercati." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Confronto" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Confronta colonne" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Metodo di confronto" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Modalità di confronto" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Creato da" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Creato il" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Valuta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Bacheca" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "Data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Campo data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "Dalla data" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Intervallo data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Tipo intervallo date" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "Alla data" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Date" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Giorno" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Descrizione" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" +"Determina com i valori di questo kpi che si estende in un periodo di tempo " +"vengono trasformati in modo che corrispondano al periodo di riferimento. " +"Somma: vengono aggiunti i valori di periodo più breve, i valori dei periodi " +"più lunghi o parzialmente sovrapposti sono adeguati pro-rata temporis.\n" +"Media: i valori del periodo incluso sono mediati con un peso pro-rata " +"temporis." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "Differenza" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "Disabilita espansione dettagli del conto" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "Mostra Descrizione Colonna" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "Mostra dettagli per conto" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "Mostra l'intervallo date in testa alla colonna." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "Eredita divisore" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "Dominio" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "Durata" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "Esempi:" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Esporta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "Espressione" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "Espressioni" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "L'espressione può essere qualsiasi espressione python valida." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "Fattore" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "Filtri" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "Date fisse" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "Carattere" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "Dimensione carattere" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "Eredita dimensione carattere" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "Stile carattere" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "Eredita stile carattere" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "Peso carattere" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "Eredita peso carattere" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "Forza la data inizio al 1 Gennaio del relativo anno" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "Da" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "Da (calcolato)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "Help (per le espressioni KPI)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "Nascondi sempre" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "Eredita nascondi sempre" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "Nascondi vuoti" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "Eredita Nascondi Vuoti" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" +"Se currency_id non è indicata, tutte le società devono avere la stessa " +"moneta di conto." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "Rientro" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "Livello rientro" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "Eredita livello rientro" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "Livello di rientro deve essere maggiore o uguale a 0" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "Corsivo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "Sequenza KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "Nome KPI ({}) deve essere un identificatore python valido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "KPI's" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "KPI di questo report e sotto report." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "Kpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "Etichetta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "PDF orizzontale" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Ultimi rendiconti generati" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "Struttura" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "MIS Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "MIS Report - in relazione al sotto Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "MIS Report aggiunto al Wizard bacheca" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "Istanza MIS Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "Periodo istanza MIS Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "Istanza somma nel periodo MIS Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "MIS Report KPI" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "Espressione MIS Report KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "MIS Report Query" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "Stile MIS Report" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "Stili MIS Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "MIS Report sotto-KPI" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "Modello MIS Report" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "Modelli MIS Report" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "MIS Reports" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "Massimo" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "Minimo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "Modalità" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "Modello" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "Mese" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Aziende multiple" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Nome" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Nessun filtro data" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "Nessuno" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "Normale" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "Numero" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "Numero di periodi" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "Numerico" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "Compensare" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "Percentuale" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "Tipo periodo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Periodi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "Si prega di fornire entrambe le colonne da confrontare %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Prefisso" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "Anteprima" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Stampa" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "Domande" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "Ricarica" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "Report" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "Azione resoconto" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "Report Instanza" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "Data base del report (lascia vuoto per utilizzare la data corrente)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "Arrotondamento" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "Salva" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "Seleziona le aziende per le quali verranno cercati i dati." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" +"Seleziona la valuta di destinazione per il report. Obbligatorio se le " +"aziende hanno valute diverse." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "Sequenza" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "Impostazioni" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" +"Non deve includere lo stesso report più di una volta come sub report di un " +"determinato report" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "Firma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Fonte" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "Stringa" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "Stile" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "Nome stile" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "Sotto KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "Filtro sotto SPI" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "Sotto KPI deve essere utilizzato una e una sola volta per ogni KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "Sotto KPI's" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "Sotto Reports" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "Sotto reports" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "Sequenza Sotto-KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "Sotto-KPI nome ({}) deve essere un identificatore Python valido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "Sottokpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "Sottoreport" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "Rilevato loop di sottoreport" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "Sottoreport name ({}) must be a valid python identifier" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "Sottoreport nome deve essere univoco per report" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Suffisso" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "Somma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "Somma dettagli conto" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" +"La somma non può essere calcolata in colonna {} perché le colonne da sommare " +"non hanno in comune sottokpis" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "Colonne somma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Sposta obbiettivo" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Modello" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "Temporaneo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "Colore testo" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Colore del testo in codice RGB valido (da #000000 a #FFFFFF)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "A" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "A (calcolato)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "Operatore non supportato %s per la ricerca in data" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "Reports temporaneamente vuoti" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "Valido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "Tipo valore" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "Visibilità" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Settimana" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "Durata sbagliata, deve essere positiva!" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "Fattore di normalizzazione sbagliato, deve essere positivo!" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "Anno" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "Da inizio anno" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "Non puoi sommare il periodo %s con se stesso." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "grande" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "medio" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "oppure" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "piccolo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "contro" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" + +#, python-format +#~ msgid "Columns {} and {} are not comparable" +#~ msgstr "Le colonne {} e {} non sono confrontabili" + +#, python-format +#~ msgid "Generated on {} at {}" +#~ msgstr "Generato il {} al {}" + +#, python-format +#~ msgid "Can not update a multi kpi from the kpi line" +#~ msgstr "Non è possibile aggiornare un multi KPI dalla riga KPI" + +#~ msgid "Account model" +#~ msgstr "Modello contabile" + +#~ msgid "Analytic Account" +#~ msgstr "Conto analitico" + +#, python-format +#~ msgid "Analytic Account Filter" +#~ msgstr "Filtro conto analitico" + +#, python-format +#~ msgid "Analytic Account Group" +#~ msgstr "Gruppo conto analitico" + +#, python-format +#~ msgid "Analytic Account Group: %s" +#~ msgstr "Gruppo conto analitico: %s" + +#, python-format +#~ msgid "Analytic Account: %s" +#~ msgstr "Conto analitico: %s" + +#~ msgid "Analytic Tags" +#~ msgstr "Etichette analitiche" + +#, python-format +#~ msgid "Analytic Tags Filter" +#~ msgstr "Filtro etichette analitiche" + +#, python-format +#~ msgid "Analytic Tags: %s" +#~ msgstr "Etichette analitiche: %s" + +#~ msgid "Hide Analytic Filters" +#~ msgstr "Nascondi filtri analitici" + +#~ msgid "MIS Report Instances" +#~ msgstr "Istanze MIS Report" + +#~ msgid "MIS Report Result" +#~ msgstr "Risultato MIS Report" + +#~ msgid "Pivot date" +#~ msgstr "Data Pivot" + +#, python-format +#~ msgid "Unexpected accumulation method %s for %s." +#~ msgstr "Metodo di accumulo imprevisto %s for %s." + +#, python-format +#~ msgid "from %s to %s" +#~ msgstr "da %s a %s" + +#~ msgid "" +#~ "Check if you wish to specify children companies to be searched for data." +#~ msgstr "" +#~ "Spuntare se si desidera specificare le aziende figlie da ricercare per " +#~ "dati." + +#~ msgid "Companies" +#~ msgstr "Aziende" + +#~ msgid "Company" +#~ msgstr "Azienda" diff --git a/mis_builder/i18n/mis_builder.pot b/mis_builder/i18n/mis_builder.pot new file mode 100644 index 0000000..80f0d46 --- /dev/null +++ b/mis_builder/i18n/mis_builder.pot @@ -0,0 +1,1765 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable').id)][]\n" +" \n" +" : variation of the balance of all receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', '=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special expression\n" +" that shows the unallocated profit/loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id" +" and company_id fields." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id" +" and company_id fields. This model is the data source for column Actuals." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model" +" in the Account field and must be the same defined in the report template: " +"%s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is" +" applied on top of the row style." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "" +"Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are transformed to match the reporting period. Sum: values of shorter period are added, values of longest or partially overlapping periods are adjusted pro-rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due to a filter or expression referencing a field that does not exist in the model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + kpi2,\n" +" kpi2.subkpi1, query1.field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding " +"columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" diff --git a/mis_builder/i18n/nl.po b/mis_builder/i18n/nl.po new file mode 100644 index 0000000..167817b --- /dev/null +++ b/mis_builder/i18n/nl.po @@ -0,0 +1,2063 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +# Translators: +# Frank Schellenberg , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-13 15:37+0000\n" +"PO-Revision-Date: 2018-01-13 15:37+0000\n" +"Last-Translator: Frank Schellenberg , 2018\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/nl/)\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (kopie)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" +"Een 'boekingsregel-achtig' model, d.w.z. heeft minimaal debet, credit, " +"datum, account_id en company_id velden" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +#, fuzzy +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" +"Een 'boekingsregel-achtig' model, d.w.z. heeft minimaal debet, credit, " +"datum, account_id en company_id velden" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "Een datum filter is verplicht voor deze bron in kolom %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Accumulatiemethode" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Actuele" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Actuele (alternatief)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" +"Actuele: Huidige data, van boekhouding en andere queries.\n" +"Actuele (alternatief): Huidige data van een alternatieve bron (eg een " +"database view welke ook boekingsregels kan laten zien).\n" +"Kolommen optellen: sommatie (+/-) van andere kolommen.\n" +"Vergelijk kolommen: vergelijk met andere kolom.\n" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Voeg toe aan dashboard" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Samenvoegen" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Alle boekingen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Alle Geboekte Regels" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Hoeveelheid" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" +"Een uitdrukking die een stijl retourneert afhankelijk van de KPI-waarde. Een " +"dergelijke stijl wordt toegepast bovenop de regelstijl." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "automatisch uitbreiden" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Gemiddelde" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Achtergrond Kleur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Achtergrond Kleur Overerven" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Achtergrondkleur als geldige HEX code (van #000000 tot #FFFFFF)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Uitgangsdatum" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Vet" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Annuleer" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Kleur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Kleur Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Kolom" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, fuzzy, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "Kolom %skan niet met zichzelf worden vergeleken." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, fuzzy, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "Kolom %s met Actuele waardes moet van/tot data hebben." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Kolommen" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "Te vergelijken kolommen moeten tot hetzelfde rapport in %s behoren" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "Op te sommen kolommen" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "Bedrijven waarvoor de data wordt doorzocht." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Vergelijk" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Vergelijk kolommen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Vergelijkingsmethode" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Vergelijkingsmodus" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Valuta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Dashboard" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +#, fuzzy +msgid "Date" +msgstr "Data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Datumveld" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +#, fuzzy +msgid "Date From" +msgstr "Datumveld" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Datumbereik" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Datumbereik Type" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +#, fuzzy +msgid "Date To" +msgstr "Data" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Data" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Dag" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Omschrijving" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" +"Bepaalt hoe waarden van deze kpi over een periode worden omgezet in " +"overeenstemming met de rapportageperiode. \n" +"Som: waarden van kortere periode worden toegevoegd, waarden van langste of " +"gedeeltelijk overlappende perioden worden pro-rata temporis aangepast.\n" +"Gemiddelde: waarden van de opgenomen periode worden gemiddeld met een pro-" +"rata temporis-gewicht." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "Verschil" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +#, fuzzy +msgid "Disable account details expansion" +msgstr "Rekening details optellen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Weergavenaam" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "Laat details per rekening zien" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "Verdeler Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "Domein" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "Dp Overerven" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "Duur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" +"Vul hier een uitdrukking in, bijvoorbeeld balp[70%]. Zie ook het help " +"tabblad." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "Voorbeelden:" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Exporteer" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "Uitdrukking" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "Uitdrukkingen" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "Uitdrukkingen kunnen alle geldige python uitdrukkingen zijn." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "Factor" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "Factor overerven" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" +"Te gebruiken factor om de periode te normaliseren (wordt gebruikt bij " +"vergelijking" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "Opgehaalde veld namen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "Op te halen velden" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "Filters" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "Vaste data" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "Lettertype" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "Lettertypegrootte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "Lettertypegrootte Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "Letterstijl" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "Letterstijl Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "Lettertype Dikte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "Lettertype Dikte Overerven" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "Van" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "Help (voor KPI uitdrukkingen)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +#, fuzzy +msgid "Hide Always Inherit" +msgstr "Verberg Leeg Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "Verberg Leeg" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "Verberg Leeg Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" +"Als currency_id niet bekend is, alle bedrijven moeten dezelfde valuta hebben." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "Inspringen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "Inspring Niveau" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "Inspring Niveau Overerven" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "Inspring niveau moet groter of gelijk zijn aan 0" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "Cursief" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +#, fuzzy +msgid "KPI Sequence" +msgstr "Reeks" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, fuzzy, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "De naam moet een geldige python identifier zijn" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "KPI's" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "Kpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "Label" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "Landschap PDF" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "Voor het laatst aangepast op" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Laatste Gegenereerde Rapport" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "Voor het laatst geüpdatet door" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "Voor het laatst geüpdatet op" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +#, fuzzy +msgid "MIS Builder XLSX report" +msgstr "MIS rapportage instantie XLS rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "MIS Kpi Data Abtract class" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "MIS Rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +#, fuzzy +msgid "MIS Report - Sub Reports Relation" +msgstr "MIS Rapport Resultaat" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +#, fuzzy +msgid "MIS Report Add to Dashboard Wizard" +msgstr "Voeg toe aan dashboard" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "MIS Rapport Instantie" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +#, fuzzy +msgid "MIS Report Instance Period" +msgstr "MIS Rapport Instantie" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +#, fuzzy +msgid "MIS Report Instance Period Sum" +msgstr "MIS Rapport Instantie" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "MIS Rapport KPI" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +#, fuzzy +msgid "MIS Report KPI Expression" +msgstr "MIS Rapport KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +#, fuzzy +msgid "MIS Report Query" +msgstr "MIS Rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "MIS Rapport Stijl" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "MIS Rapport Stijlen" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +#, fuzzy +msgid "MIS Report Sub-KPI" +msgstr "MIS Rapport KPI" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +#, fuzzy +msgid "MIS Report Template" +msgstr "MIS Rapport Templates" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "MIS Rapport Templates" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "MIS Rapportage" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "MIS Rapporten" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "MIS rapportage instantie QWEB PDF rapport" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "MIS rapportage instantie XLS rapport" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "Max" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "Min" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "Modus" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "Model" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "Maand" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "Bron boekingsregels" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +#, fuzzy +msgid "Move lines source model name" +msgstr "Bron boekingsregels" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "Meerdere" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Meerdere bedrijven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Naam" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Geen datum filter" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "Een datum filter is niet toegestaan voor deze bron in kolom %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "Geen" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "Normaal" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "Aantal" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "Aantal periodes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "Numeriek" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "Offset" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "Offset t.o.v. huidige periode" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "Bovenliggende kolom" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "Percentage" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "Periode naam dient per rapport uniek te zijn" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "Periode duur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Periodes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "Geef beide kolommen op om te vergelijken in %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Voorvoegsel" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "Voorvoegsel Overerven" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "Voorbeeld" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Print" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "Queries" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, fuzzy, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "De naam moet een geldige python identifier zijn" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "Ten opzichte van de rapport uitgangsdatum" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "Rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +#, fuzzy +msgid "Report Action" +msgstr "Rapport instantie" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "Rapport instantie" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "Uitgangsdatum Rapport (voor vandaag laat leeg)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "Afronding" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "Afronding overerven" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "Opslaan" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "Selecteer de bedrijven waarvoor de data moet worden doorzocht." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" +"Selecteer de hoofdvaluta voor het rapport. Vereist als bedrijven " +"verschillende valuta hebben." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "Reeks" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "Teken" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Bron" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "String" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "Stijl" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "Stijl voor detail rekening regels" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "Stijl naam" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "Sub KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "Sub KPI filter" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "Sub KPI moet één keer worden gebruikt voor iedere KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "Sub KPI's" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +#, fuzzy +msgid "Sub Reports" +msgstr "MIS Rapporten" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +#, fuzzy +msgid "Sub reports" +msgstr "MIS Rapporten" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +#, fuzzy +msgid "Sub-KPI Sequence" +msgstr "Reeks" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, fuzzy, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "De naam moet een geldige python identifier zijn" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "Subkpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +#, fuzzy +msgid "Subreport" +msgstr "Rapport" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, fuzzy, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "De naam moet een geldige python identifier zijn" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +#, fuzzy +msgid "Subreport name should be unique by report" +msgstr "Periode naam dient per rapport uniek te zijn" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Achtervoegsel" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "Achtervoegsel Overerven" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "Optellen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "Rekening details optellen" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" +"Som kan niet worden berekend in kolom {} omdat de kolommen die moeten worden " +"opgeteld geen gemeenschappelijke subkpis hebben" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "Kolommen optellen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Doel Boekingen" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Template" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "Tijdelijk" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "Tekst kleur" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Tekst kleur in geldige HEX code (van #000000 tot #FFFFFF)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "Tot" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "Ledig tijdelijke rapporten" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "Geldig" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "Waarde type" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "Zichtbaarheid" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Week" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "Ongeldige duur, moet positief zijn!" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "Ongeldige normalisatie factor, moet positief zijn!" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "Jaar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "Periode %s kan niet bij zichzelf worden opgeteld." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "L" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "M" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "of" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "pp" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "S" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "versus" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "XL" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "XS" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "XXL" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "XXS" + +#, python-format +#~ msgid "Columns {} and {} are not comparable" +#~ msgstr "Kolommen {} en {} zijn niet vergelijkbaar" + +#, python-format +#~ msgid "Can not update a multi kpi from the kpi line" +#~ msgstr "Kan een multi-kpi niet bijwerken vanaf de kpi-regel" + +#, fuzzy +#~ msgid "Account model" +#~ msgstr "Rekening details optellen" + +#~ msgid "MIS Report Instances" +#~ msgstr "MIS Rapport Instanties" + +#~ msgid "MIS Report Result" +#~ msgstr "MIS Rapport Resultaat" + +#~ msgid "Pivot date" +#~ msgstr "Uitgangsdatum" + +#~ msgid "Style expression" +#~ msgstr "Stijl uitdrukking" + +#, python-format +#~ msgid "Unexpected accumulation method %s for %s." +#~ msgstr "Onverwachte accumulatiemethode %s voor %s." + +#, python-format +#~ msgid "from %s to %s" +#~ msgstr "van %s tot %s" + +#~ msgid "" +#~ "Check if you wish to specify children companies to be searched for data." +#~ msgstr "" +#~ "Controleer of u dochterbedrijven wilt selecteren waarvan de data moet " +#~ "worden meegenomen." + +#~ msgid "Companies" +#~ msgstr "Bedrijven" + +#~ msgid "Company" +#~ msgstr "Bedrijf" + +#~ msgid "Query Company" +#~ msgstr "Query Bedrijf" + +#~ msgid "" +#~ "AccountingNone: a null value that behaves as 0 in arithmetic " +#~ "operations." +#~ msgstr "" +#~ "AccountingNone: een null waarde welke zich gedraagt als een 0 in " +#~ "rekenkundige bewerkingen." + +#, fuzzy +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal: balance, debit, credit, positive " +#~ "balance, negative balance." +#~ msgstr "bal, crd, deb: balans, debet, credit." + +#~ msgid "" +#~ "bal[70]: variation of the balance of account 70 over the period " +#~ "(it is the same as balp[70]." +#~ msgstr "" +#~ "bal[70]: variatie van de balans van rekening 70 over de periode " +#~ "(is hetzelfde als balp[70]." + +#~ msgid "" +#~ "bale[1%]: balance of accounts starting with 1 at end of period." +#~ msgstr "" +#~ "bale[1%]: balans van de rekeningen beginnend met een 1 aan het " +#~ "einde van de periode." + +#~ msgid "bali[70,60]: initial balance of accounts 70 and 60." +#~ msgstr "bali[70,60]: openingsbalans van de rekeningen 70 en 60." + +#~ msgid "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation of the balance of all receivable accounts over the " +#~ "period." +#~ msgstr "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variatie van de balans bam alle te ontvangen rekeningen over " +#~ "de periode." + +#~ msgid "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance of move lines related to tax grid 56." +#~ msgstr "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balans van de boekingsregels gerelateerd aan de belastingraster 56." + +#~ msgid "" +#~ "balu[]: (u for unallocated) is a special expression that shows the " +#~ "unallocated profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]: (u voor unallocated) is een speciale uitdrukking welke " +#~ "niet toegewezen winst/verlies van vorige\n" +#~ " fiscale jaren laat zien." + +#~ msgid "" +#~ "crdp[40%]: sum of all credits on accounts starting with 40 during " +#~ "the period." +#~ msgstr "" +#~ "crdp[40%]: som van alle kredieten op rekeningen beginnend met 40 " +#~ "over de periode." + +#~ msgid "date_from, date_to: beginning and end date of the period." +#~ msgstr "date_from, date_to: begin- en einddatum van de periode." + +#~ msgid "datetime, datetime, dateutil: the python modules." +#~ msgstr "datetime, datetime, dateutil: de python modules." + +#~ msgid "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: sum of all debits on " +#~ "accounts 55 and journal BNK1 during the period." +#~ msgstr "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: som van alle debet op " +#~ "rekening 55 en journaal BNK1 over de periode." + +#, fuzzy +#~ msgid "" +#~ "p, i, e: respectively variation over the period, initial balance, " +#~ "ending balance" +#~ msgstr "" +#~ "p, i, e: respectievelijk de variatie over; de periode, " +#~ "beginbalans, eindsaldo" + +#~ msgid "" +#~ "sum, min, max, len, avg: behave as expected, very similar to the " +#~ "python builtins." +#~ msgstr "" +#~ "sum, min, max, len, avg: Standaard werking, zeer vergelijkbaar met " +#~ "de python-builtins." + +#~ msgid "" +#~ "Additionally following variables are available in the evaluation context:" +#~ msgstr "" +#~ "Daarnaast zijn de volgende variabelen beschikbaar in de evaluatiecontext:" + +#, fuzzy +#~ msgid "" +#~ "Expressions can involve other KPI, sub KPI and query results by name (eg " +#~ "kpi1 + kpi2, kpi2.subkpi1, query1.field1)." +#~ msgstr "" +#~ "Uitdrukking kan ook andere KPI- en queryresultaten met naam omvatten " +#~ "(bijv. Kpi1 + kpi2)." + +#~ msgid "" +#~ "The account selector is a like expression on the account code (eg " +#~ "70%, etc)." +#~ msgstr "" +#~ "De account selector is een like uitdrukking op de rekening code " +#~ "(bv 70%, etc)." + +#~ msgid "" +#~ "The journal items domain is an Odoo domain filter on journal items." +#~ msgstr "" +#~ "De journal items domain is een Odoo domein filter op journaal " +#~ "items." + +#, fuzzy +#~ msgid "" +#~ "The following special elements are recognized in the expressions to " +#~ "compute accounting data:\n" +#~ " {bal|crd|deb|pbal|nbal}" +#~ "{pieu}[account selector][journal items domain]." +#~ msgstr "" +#~ "De volgende speciale elementen worden herkend in de uitdrukkingen om " +#~ "boekhoudgegevens te berekenen: \n" +#~ " {bal|crd|deb}{pieu}" +#~ "[account selecor][journal items domain]." + +#~ msgid "MIS Budget" +#~ msgstr "MIS Budgetten" + +#~ msgid "report.mis_builder.mis_report_instance_xlsx" +#~ msgstr "report.mis_builder.mis_report_instance_xlsx" + +#~ msgid "" +#~ "Probably not your fault... but I'm really curious to know how you managed " +#~ "to raise this error so I can handle one more corner case!" +#~ msgstr "" +#~ "Waarschijnlijk niet jouw schuld... maar we zijn erg benieuwd wat je hebt " +#~ "gedaan om deze fout te veroorzaken. Dan kunnen we dit probleem proberen " +#~ "te verhelpen!" + +#~ msgid "µ" +#~ msgstr "µ" + +#~ msgid "add.mis.report.instance.dashboard.wizard" +#~ msgstr "add.mis.report.instance.dashboard.wizard" + +#~ msgid "ir.actions.report" +#~ msgstr "ir.actions.report" + +#~ msgid "mis.report" +#~ msgstr "mis.report" + +#~ msgid "mis.report.instance" +#~ msgstr "mis.report.instance" + +#~ msgid "mis.report.instance.period" +#~ msgstr "mis.report.instance.period" + +#~ msgid "mis.report.instance.period.sum" +#~ msgstr "mis.report.instance.period.sum" + +#~ msgid "mis.report.kpi" +#~ msgstr "mis.report.kpi" + +#~ msgid "mis.report.kpi.expression" +#~ msgstr "mis.report.kpi.expression" + +#~ msgid "mis.report.query" +#~ msgstr "mis.report.query" + +#~ msgid "mis.report.style" +#~ msgstr "mis.report.style" + +#~ msgid "mis.report.subkpi" +#~ msgstr "mis.report.subkpi" diff --git a/mis_builder/i18n/nl_NL.po b/mis_builder/i18n/nl_NL.po new file mode 100644 index 0000000..88039ef --- /dev/null +++ b/mis_builder/i18n/nl_NL.po @@ -0,0 +1,2066 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +# Translators: +# OCA Transbot , 2018 +# Frank Schellenberg , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-13 15:37+0000\n" +"PO-Revision-Date: 2018-07-07 15:10+0000\n" +"Last-Translator: Thomas Pot \n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.0.1\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (kopie)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" +"Een 'boekingsregel-achtig' model, d.w.z. heeft minimaal debet, credit, " +"datum, account_id en company_id velden" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +#, fuzzy +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" +"Een 'boekingsregel-achtig' model, d.w.z. heeft minimaal debet, credit, " +"datum, account_id en company_id velden" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "Een datum filter is verplicht voor deze bron in kolom %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Accumulatiemethode" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Actuele" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Actuele (alternatief)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" +"Actuele: Huidige data, van boekhouding en andere queries.\n" +"Actuele (alternatief): Huidige data van een alternatieve bron (eg een " +"database view welke ook boekingsregels kan laten zien).\n" +"Kolommen optellen: sommatie (+/-) van andere kolommen.\n" +"Vergelijk kolommen: vergelijk met andere kolom.\n" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Voeg toe aan dashboard" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Samenvoegen" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Alle boekingen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Alle Geboekte Regels" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Hoeveelheid" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" +"Een uitdrukking die een stijl retourneert afhankelijk van de KPI-waarde. Een " +"dergelijke stijl wordt toegepast bovenop de regelstijl." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "automatisch uitbreiden" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Gemiddelde" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Achtergrond Kleur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Achtergrond Kleur Overerven" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Achtergrondkleur als geldige HEX code (van #000000 tot #FFFFFF)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Uitgangsdatum" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Vet" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Annuleer" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Kleur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Kleur Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Kolom" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, fuzzy, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "Kolom %skan niet met zichzelf worden vergeleken." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, fuzzy, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "Kolom %s met Actuele waardes moet van/tot data hebben." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Kolommen" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "Te vergelijken kolommen moeten tot hetzelfde rapport in %s behoren" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "Op te sommen kolommen" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "Bedrijven waarvoor de data wordt doorzocht." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Vergelijk" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Vergelijk kolommen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Vergelijkingsmethode" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Vergelijkingsmodus" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Valuta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Dashboard" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +#, fuzzy +msgid "Date" +msgstr "Data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Datumveld" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +#, fuzzy +msgid "Date From" +msgstr "Datumveld" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Datumbereik" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Datumbereik Type" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +#, fuzzy +msgid "Date To" +msgstr "Data" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Data" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Dag" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Omschrijving" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" +"Bepaalt hoe waarden van deze kpi over een periode worden omgezet in " +"overeenstemming met de rapportageperiode. \n" +"Som: waarden van kortere periode worden toegevoegd, waarden van langste of " +"gedeeltelijk overlappende perioden worden pro-rata temporis aangepast.\n" +"Gemiddelde: waarden van de opgenomen periode worden gemiddeld met een pro-" +"rata temporis-gewicht." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "Verschil" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +#, fuzzy +msgid "Disable account details expansion" +msgstr "Rekening details optellen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Weergavenaam" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "Laat details per rekening zien" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "Verdeler Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "Domein" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "Dp Overerven" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "Duur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" +"Vul hier een uitdrukking in, bijvoorbeeld balp[70%]. Zie ook het help " +"tabblad." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "Voorbeelden:" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Exporteer" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "Uitdrukking" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "Uitdrukkingen" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "Uitdrukkingen kunnen alle geldige python uitdrukkingen zijn." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "Factor" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "Factor overerven" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" +"Te gebruiken factor om de periode te normaliseren (wordt gebruikt bij " +"vergelijking" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "Opgehaalde veld namen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "Op te halen velden" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "Filters" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "Vaste data" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "Lettertype" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "Lettertypegrootte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "Lettertypegrootte Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "Letterstijl" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "Letterstijl Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "Lettertype Dikte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "Lettertype Dikte Overerven" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "Van" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "Help (voor KPI uitdrukkingen)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +#, fuzzy +msgid "Hide Always Inherit" +msgstr "Verberg Leeg Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "Verberg Leeg" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "Verberg Leeg Overerven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" +"Als currency_id niet bekend is, alle bedrijven moeten dezelfde valuta hebben." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "Inspringen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "Inspring Niveau" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "Inspring Niveau Overerven" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "Inspring niveau moet groter of gelijk zijn aan 0" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "Cursief" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +#, fuzzy +msgid "KPI Sequence" +msgstr "Reeks" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, fuzzy, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "De naam moet een geldige python identifier zijn" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "KPI's" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "Kpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "Label" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "Landschap PDF" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "Voor het laatst aangepast op" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Laatste Gegenereerde Rapport" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "Voor het laatst geüpdatet door" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "Voor het laatst geüpdatet op" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +#, fuzzy +msgid "MIS Builder XLSX report" +msgstr "MIS rapportage instantie XLS rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "MIS Kpi Data Abtract class" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "MIS Rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +#, fuzzy +msgid "MIS Report - Sub Reports Relation" +msgstr "MIS Rapport Resultaat" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +#, fuzzy +msgid "MIS Report Add to Dashboard Wizard" +msgstr "Voeg toe aan dashboard" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "MIS Rapport Instantie" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +#, fuzzy +msgid "MIS Report Instance Period" +msgstr "MIS Rapport Instantie" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +#, fuzzy +msgid "MIS Report Instance Period Sum" +msgstr "MIS Rapport Instantie" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "MIS Rapport KPI" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +#, fuzzy +msgid "MIS Report KPI Expression" +msgstr "MIS Rapport KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +#, fuzzy +msgid "MIS Report Query" +msgstr "MIS Rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "MIS Rapport Stijl" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "MIS Rapport Stijlen" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +#, fuzzy +msgid "MIS Report Sub-KPI" +msgstr "MIS Rapport KPI" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +#, fuzzy +msgid "MIS Report Template" +msgstr "MIS Rapport Templates" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "MIS Rapport Templates" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "MIS Rapportage" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "MIS Rapporten" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "MIS rapportage instantie QWEB PDF rapport" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "MIS rapportage instantie XLS rapport" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "Max" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "Min" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "Modus" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "Model" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "Maand" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "Bron boekingsregels" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +#, fuzzy +msgid "Move lines source model name" +msgstr "Bron boekingsregels" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "Meerdere" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Meerdere bedrijven" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Naam" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Geen datum filter" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "Een datum filter is niet toegestaan voor deze bron in kolom %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "Geen" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "Normaal" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "Aantal" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "Aantal periodes" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "Numeriek" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "Offset" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "Offset t.o.v. huidige periode" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "Bovenliggende kolom" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "Percentage" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "Periode naam dient per rapport uniek te zijn" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "Periode duur" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Periodes" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "Geef beide kolommen op om te vergelijken in %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Voorvoegsel" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "Voorvoegsel Overerven" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "Voorbeeld" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Afdrukken" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "Query's" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, fuzzy, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "De naam moet een geldige python identifier zijn" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "Ververs" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "Ten opzichte van de rapport uitgangsdatum" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "Rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +#, fuzzy +msgid "Report Action" +msgstr "Rapport instantie" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "Rapport instantie" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "Uitgangsdatum Rapport (voor vandaag laat leeg)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "Afronding" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "Afronding overerven" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "Opslaan" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "Selecteer de bedrijven waarvoor de data moet worden doorzocht." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" +"Selecteer de hoofdvaluta voor het rapport. Vereist als bedrijven " +"verschillende valuta hebben." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "Reeks" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "Teken" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Bron" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "String" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "Stijl" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "Stijl voor detail rekening regels" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "Stijl naam" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "Sub KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "Sub KPI filter" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "Sub KPI moet één keer worden gebruikt voor iedere KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "Sub KPI's" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +#, fuzzy +msgid "Sub Reports" +msgstr "MIS Rapporten" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +#, fuzzy +msgid "Sub reports" +msgstr "MIS Rapporten" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +#, fuzzy +msgid "Sub-KPI Sequence" +msgstr "Reeks" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, fuzzy, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "De naam moet een geldige python identifier zijn" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "Subkpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +#, fuzzy +msgid "Subreport" +msgstr "Rapport" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, fuzzy, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "De naam moet een geldige python identifier zijn" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +#, fuzzy +msgid "Subreport name should be unique by report" +msgstr "Periode naam dient per rapport uniek te zijn" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Achtervoegsel" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "Achtervoegsel Overerven" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "Optellen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "Rekening details optellen" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" +"Som kan niet worden berekend in kolom {} omdat de kolommen die moeten worden " +"opgeteld geen gemeenschappelijke subkpis hebben" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "Kolommen optellen" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Doel Boekingen" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Template" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "Tijdelijk" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "Tekst kleur" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Tekst kleur in geldige HEX code (van #000000 tot #FFFFFF)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "Tot" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "Ledig tijdelijke rapporten" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "Geldig" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "Waarde type" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "Zichtbaarheid" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Week" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "Ongeldige duur, moet positief zijn!" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "Ongeldige normalisatie factor, moet positief zijn!" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "Jaar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "Periode %s kan niet bij zichzelf worden opgeteld." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "L" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "M" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "of" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "pp" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "S" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "versus" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "XL" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "XS" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "XXL" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "XXS" + +#, python-format +#~ msgid "Columns {} and {} are not comparable" +#~ msgstr "Kolommen {} en {} zijn niet vergelijkbaar" + +#, python-format +#~ msgid "Can not update a multi kpi from the kpi line" +#~ msgstr "Kan een multi-kpi niet bijwerken vanaf de kpi-regel" + +#, fuzzy +#~ msgid "Account model" +#~ msgstr "Rekening details optellen" + +#~ msgid "MIS Report Instances" +#~ msgstr "MIS Rapport Instanties" + +#~ msgid "MIS Report Result" +#~ msgstr "MIS Rapport Resultaat" + +#~ msgid "Pivot date" +#~ msgstr "Uitgangsdatum" + +#~ msgid "Style expression" +#~ msgstr "Stijl uitdrukking" + +#, python-format +#~ msgid "Unexpected accumulation method %s for %s." +#~ msgstr "Onverwachte accumulatiemethode %s voor %s." + +#, python-format +#~ msgid "from %s to %s" +#~ msgstr "van %s tot %s" + +#~ msgid "" +#~ "Check if you wish to specify children companies to be searched for data." +#~ msgstr "" +#~ "Controleer of u dochterbedrijven wilt selecteren waarvan de data moet " +#~ "worden meegenomen." + +#~ msgid "Companies" +#~ msgstr "Bedrijven" + +#~ msgid "Company" +#~ msgstr "Bedrijf" + +#~ msgid "Query Company" +#~ msgstr "Query Bedrijf" + +#~ msgid "" +#~ "AccountingNone: a null value that behaves as 0 in arithmetic " +#~ "operations." +#~ msgstr "" +#~ "AccountingNone: een null waarde welke zich gedraagt als een 0 in " +#~ "rekenkundige bewerkingen." + +#, fuzzy +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal: balance, debit, credit, positive " +#~ "balance, negative balance." +#~ msgstr "bal, crd, deb: balans, debet, credit." + +#~ msgid "" +#~ "bal[70]: variation of the balance of account 70 over the period " +#~ "(it is the same as balp[70]." +#~ msgstr "" +#~ "bal[70]: variatie van de balans van rekening 70 over de periode " +#~ "(is hetzelfde als balp[70]." + +#~ msgid "" +#~ "bale[1%]: balance of accounts starting with 1 at end of period." +#~ msgstr "" +#~ "bale[1%]: balans van de rekeningen beginnend met een 1 aan het " +#~ "einde van de periode." + +#~ msgid "bali[70,60]: initial balance of accounts 70 and 60." +#~ msgstr "bali[70,60]: openingsbalans van de rekeningen 70 en 60." + +#~ msgid "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation of the balance of all receivable accounts over the " +#~ "period." +#~ msgstr "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variatie van de balans bam alle te ontvangen rekeningen over " +#~ "de periode." + +#~ msgid "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance of move lines related to tax grid 56." +#~ msgstr "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balans van de boekingsregels gerelateerd aan de belastingraster 56." + +#~ msgid "" +#~ "balu[]: (u for unallocated) is a special expression that shows the " +#~ "unallocated profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]: (u voor unallocated) is een speciale uitdrukking welke " +#~ "niet toegewezen winst/verlies van vorige\n" +#~ " fiscale jaren laat zien." + +#~ msgid "" +#~ "crdp[40%]: sum of all credits on accounts starting with 40 during " +#~ "the period." +#~ msgstr "" +#~ "crdp[40%]: som van alle kredieten op rekeningen beginnend met 40 " +#~ "over de periode." + +#~ msgid "date_from, date_to: beginning and end date of the period." +#~ msgstr "date_from, date_to: begin- en einddatum van de periode." + +#~ msgid "datetime, datetime, dateutil: the python modules." +#~ msgstr "datetime, datetime, dateutil: de python modules." + +#~ msgid "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: sum of all debits on " +#~ "accounts 55 and journal BNK1 during the period." +#~ msgstr "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: som van alle debet op " +#~ "rekening 55 en journaal BNK1 over de periode." + +#, fuzzy +#~ msgid "" +#~ "p, i, e: respectively variation over the period, initial balance, " +#~ "ending balance" +#~ msgstr "" +#~ "p, i, e: respectievelijk de variatie over; de periode, " +#~ "beginbalans, eindsaldo" + +#~ msgid "" +#~ "sum, min, max, len, avg: behave as expected, very similar to the " +#~ "python builtins." +#~ msgstr "" +#~ "sum, min, max, len, avg: Standaard werking, zeer vergelijkbaar met " +#~ "de python-builtins." + +#~ msgid "" +#~ "Additionally following variables are available in the evaluation context:" +#~ msgstr "" +#~ "Daarnaast zijn de volgende variabelen beschikbaar in de evaluatiecontext:" + +#, fuzzy +#~ msgid "" +#~ "Expressions can involve other KPI, sub KPI and query results by name (eg " +#~ "kpi1 + kpi2, kpi2.subkpi1, query1.field1)." +#~ msgstr "" +#~ "Uitdrukking kan ook andere KPI- en queryresultaten met naam omvatten " +#~ "(bijv. Kpi1 + kpi2)." + +#~ msgid "" +#~ "The account selector is a like expression on the account code (eg " +#~ "70%, etc)." +#~ msgstr "" +#~ "De account selector is een like uitdrukking op de rekening code " +#~ "(bv 70%, etc)." + +#~ msgid "" +#~ "The journal items domain is an Odoo domain filter on journal items." +#~ msgstr "" +#~ "De journal items domain is een Odoo domein filter op journaal " +#~ "items." + +#, fuzzy +#~ msgid "" +#~ "The following special elements are recognized in the expressions to " +#~ "compute accounting data:\n" +#~ " {bal|crd|deb|pbal|nbal}" +#~ "{pieu}[account selector][journal items domain]." +#~ msgstr "" +#~ "De volgende speciale elementen worden herkend in de uitdrukkingen om " +#~ "boekhoudgegevens te berekenen: \n" +#~ " {bal|crd|deb}{pieu}" +#~ "[account selecor][journal items domain]." + +#~ msgid "MIS Budget" +#~ msgstr "MIS Budgetten" + +#~ msgid "report.mis_builder.mis_report_instance_xlsx" +#~ msgstr "report.mis_builder.mis_report_instance_xlsx" + +#~ msgid "" +#~ "Probably not your fault... but I'm really curious to know how you managed " +#~ "to raise this error so I can handle one more corner case!" +#~ msgstr "" +#~ "Waarschijnlijk niet jouw schuld... maar we zijn erg benieuwd wat je hebt " +#~ "gedaan om deze fout te veroorzaken. Dan kunnen we dit probleem proberen " +#~ "te verhelpen!" + +#~ msgid "µ" +#~ msgstr "µ" + +#~ msgid "add.mis.report.instance.dashboard.wizard" +#~ msgstr "add.mis.report.instance.dashboard.wizard" + +#~ msgid "ir.actions.report" +#~ msgstr "ir.actions.report" + +#~ msgid "mis.report" +#~ msgstr "mis.report" + +#~ msgid "mis.report.instance" +#~ msgstr "mis.report.instance" + +#~ msgid "mis.report.instance.period" +#~ msgstr "mis.report.instance.period" + +#~ msgid "mis.report.instance.period.sum" +#~ msgstr "mis.report.instance.period.sum" + +#~ msgid "mis.report.kpi" +#~ msgstr "mis.report.kpi" + +#~ msgid "mis.report.kpi.expression" +#~ msgstr "mis.report.kpi.expression" + +#~ msgid "mis.report.query" +#~ msgstr "mis.report.query" + +#~ msgid "mis.report.style" +#~ msgstr "mis.report.style" + +#~ msgid "mis.report.subkpi" +#~ msgstr "mis.report.subkpi" diff --git a/mis_builder/i18n/pt.po b/mis_builder/i18n/pt.po new file mode 100644 index 0000000..b11a35c --- /dev/null +++ b/mis_builder/i18n/pt.po @@ -0,0 +1,1793 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +# Translators: +# OCA Transbot , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-13 15:37+0000\n" +"PO-Revision-Date: 2018-01-13 15:37+0000\n" +"Last-Translator: OCA Transbot , 2018\n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Todos os lançamentos" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Todos os lançamentos publicados" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Nome a exibir" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "Última Modificação em" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "Última atualização por" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "Última atualização em" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Nome" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Movimentos alvo" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "ou" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" + +#~ msgid "Company" +#~ msgstr "Empresa" diff --git a/mis_builder/i18n/pt_BR.po b/mis_builder/i18n/pt_BR.po new file mode 100644 index 0000000..3b860f1 --- /dev/null +++ b/mis_builder/i18n/pt_BR.po @@ -0,0 +1,2179 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-10-30 21:38+0000\n" +"Last-Translator: Adriano Prado \n" +"Language-Team: none\n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (cópia)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variação do saldo de todas as " +"contas a receber ao longo\n" +" do período." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : saldo das linhas de movimento " +"relacionadas à grade tributária 56." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : soma de todos os débitos nas " +"contas 55 e diário BNK1 durante\n" +" o período." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" +"AccountingNone : um valor nulo que se comporta como 0 em\n" +" operações aritméticas." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" +"bal, crd, deb, \n" +" pbal, nbal : " +"saldo, débito, crédito,\n" +" saldo positivo, saldo negativo." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" +"bal[70] : variação do saldo da conta 70 sobre\n" +" o período (é o mesmo que " +"balp[70]." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" +"bale[1%] : saldo de contas começando com 1 no\n" +" final de período." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "bali[70,60] : saldo inicial das contas 70 e 60." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" +"balu[] : (u para não alocado) é uma expressão " +"especial\n" +" que mostra o lucro/prejuízo não " +"alocado do exercício fiscal dos\n" +" anos anteriores." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" +"crdp[40%] : soma de todos os créditos no período das contas " +"começando\n" +" com 40." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" +"date_from, date_to : data inicial e final do\n" +" período." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" +"datetime, datetime, dateutil : os " +"módulos python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" +"p, i, e : respectivamente variação ao " +"longo do período,\n" +" saldo inicial, saldo final" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" +"pbale[55%] : soma de todos os saldos finais das contas\n" +" começando com 55 cujo saldo final é " +"positivo." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" +"sum, min,\n" +" max, len,\n" +" avg : comportar-se como " +"esperado, muito\n" +" semelhante aos builtins python." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "-" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" +"Um modelo 'como a linha do movimento', ou seja, com ao menos os campos " +"debito, credito, data, account_id e company_id." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" +"Um modelo 'como a linha do movimento', ou seja, com ao menos os campos " +"debito, credito, data, account_id e company_id. Este modelo é a fonte de " +"dados das coluna Reais." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "Um filtro de data é obrigatório para esta fonte na coluna %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" +"Um domínio para filtrar adicionalmente as linhas de movimento consideradas " +"nesta coluna." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" +"Um domínio para filtrar adicionalmente as linhas de movimentação " +"consideradas neste relatório. Cuidado: ao usar diferentes origens de linha " +"de movimentação em diferentes colunas, como orçamentos por conta, certifique-" +"se de usar apenas os campos disponíveis em todas as origens de linha de " +"movimentação." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "Modelo de conta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Método de Acumulação" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" +"Real (alternativo) modelos usados nas colunas devem possuir o mesmo modelo " +"de conta no campo Conta e devem ser o mesmo definido no modelo do relatório: " +"%s" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Atuais" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Atuais (alternativa)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" +"Dados reais: dados atuais, provenientes de contabilidade e outras " +"consultas.\n" +"Dados reais (alternativo): dados atuais de uma fonte alternativa (por " +"exemplo, uma visualização de banco de dados que fornece linhas de " +"movimentação de conta semelhantes).\n" +"Colunas de soma: soma (+/-) de outras colunas.\n" +"Compare com a coluna: compare com outra coluna.\n" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" +"Adapte o modelo com date_from/date_to para read_group pro-rata temporis" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Adicionar ao Painel" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" +"Adicionalmente, as seguintes variáveis estão disponíveis\n" +" no contexto da avaliação:" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Agregar" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Todas as Entradas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "Todos os KPI" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Todas as Entradas Postadas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "Cmpcol Permitida" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "Empresas permitidas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "Empresa permitida" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "Montante" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" +"Uma expressão que retorna um estilo dependendo do valor KPI. Esse estilo é " +"aplicado no topo do estilo da linha." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "Domínio Analítico" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "Expandir Automaticamente" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Média" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Cor de Fundo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Cor de Fundo Herdada" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Cor de fundo em código RGB válido (de #000000 a #FFFFFF)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Data base" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Negrito" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "Cancelar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" +"Marque se você desejar especificar várias empresas para serem buscadas por " +"dados." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Cor" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Cor Herdada" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Coluna" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "Coluna %s não pode ser comparada a itrec." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" +"Coluna %s com fonte nas linhas de lançamento devem ter datas inicial/final." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Colunas" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "Colunas para comparar devem pertencer ao mesmo relatório em %s" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "Colunas para somar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "Empresas para as quais os dados serão pesquisados." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Comparar" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Comparar colunas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Método de Comparação" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Modo de Comparação" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Criado por" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Criado em" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Moeda" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Painel" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "Data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Campo de Data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "Data Inicial" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Intervalo de Data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Tipo de Intervalo de Data" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "Data Final" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Datas" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Dia" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Descrição" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" +"Determina como os valores desse kpi abrangendo um período de tempo são " +"transformados para corresponder ao período do relatório. Soma: valores de " +"período mais curto são adicionados, valores de períodos mais longos ou " +"parcialmente sobrepostos são ajustados pro-rata temporis.\n" +"Média: os valores do período compreendido são ponderados com ponderação pro-" +"rata temporis." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "Diferença" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "Desabilitar expansão de detalhes de conta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "Exibir Descrição de Colunas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Exibir Nome" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "Exibir detalhes por conta" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "Exibir os detalhes de intervalo de data nas colunas de cabeçalhos." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "Divisor de Herança" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "Domínio" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "Herança Dp" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" +"Campo fictício que adapta as buscas por data às buscas por date_from/date_to." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "Duração" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "Empresas efetivas" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" +"Digite a expressão aqui, por exemplo balp[70%]. Veja também a guia ajuda." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" +"Erro ao consultar a origem da linha de movimento \"%(model_name)s\". Isso " +"provavelmente ocorre devido a um filtro ou expressão que faz referência a um " +"campo que não existe no modelo.\n" +"\n" +"A mensagem de erro técnico é: %(exception)s. " + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "Exemplos:" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Exportar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "Expressão" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "Expressões" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "Expressões podem ser qualquer expressão python válida." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" +"As expressões podem envolver outros KPI, sub KPI e\n" +" resultados da consulta por nome (por " +"exemplo, kpi1 + kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "Fator" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "Fator herdado" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "Fator para usar para normalizar o período (usado em comparação" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "Nome de campos buscados" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "Campos para buscar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "Visualização de pesquisa da caixa de filtro" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "Filtros" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "Datas fixas" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "Fonte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "Tamanho da Fonte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "Tamanho da Fonte Herdada" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "Estilo da Fonte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "Estilo da Fonte Herdada" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "Espessura da Fonte" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "Espessura da Fonte Herdada" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "Force a data inicial para 1 Jan do respectivo ano" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "De" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "De (computado)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "Gerado em %(gen_date)s às %(gen_time)s" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "Ajuda (para expressões KPI)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "Sempre Esconder" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "Sempre Esconder Herdado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "Esconder Vazio" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "Esconder Vazio Herdado" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "ID" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" +"Se id da moeda(currency_id) não é fornecido, todas as empresas devem possuir " +"a mesma moeda." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "Endentação" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "Nível de endentação" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "Herança do Nível de Recuo" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "Nível de recuo deve ser maior ou igual a 0" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "Itálico" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" +"O KPI \"%(kpi)s\" tem o tipo %(type)s enquanto uma tupla era esperada.\n" +"\n" +"Isso pode ser corrigido por:\n" +"- Alterando o valor do KPI para uma tupla de comprimento %(length)s\n" +"ou\n" +"- Alterar o KPI para o modo `multi` e fornecer um valor explícito para cada " +"sub-KPI." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" +"O KPI \"%(kpi)s\" é avaliado como uma tupla de comprimento %(length)s " +"enquanto uma tupla de comprimento%(expected_length)s é esperada." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "KPI sequencia" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "O nome do KPI ({}) deve ser um identificador python válido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "KPI's" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "KPIs deste relatório e sub-relatórios." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "Kpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "Rótulo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "PDF em modo paisagem" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "Última atualização em" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Últimos relatórios gerados" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "Última atualização por" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "Última atualização em" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "Layout" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "Construtor de Relatório SIG XLSX" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "Classe dados Abstratos SIG Kpi" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "Relatório SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "Relatório SIG - Relação de Sub-relatórios" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "Assistente para Adicionar Relatório SIG ao Painel" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "Instância de Relatório SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "Período da Instância do Relatório SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "Soma do Período da Instância do Relatório SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "Relatório KPI SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "Expressão do KPI do Relatório SIG" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "Visualização do Relatório SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "Consulta do Relatório SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "Estilo do Relatório SIG" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "Estilos do Relatório SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "Sub-KPI do Relatório SIG" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "Modelo do Relatório SIG" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "Modelos do Relatório SIG" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "Relatórios SIG" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "Relatórios SIG" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "Instância de Relatório SIG QWEB PDF" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "Instância de Relatório SIG XLS" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "Max" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "Min" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "Modo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "Modelo" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "Mês" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "Fonte das Linhas de Movimento" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "Fonte das Linhas de Movimento" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "Nome do modelo de origem das linhas de movimento" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "Multi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Múltiplas empresas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Nome" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Sem filtro de data" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "Nenhum filtro de data é permitido para esta fonte na coluna %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "Nada" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "Normal" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "Número" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "Número de períodos" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "Numérico" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "Deslocamento" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "Deslocamento a partir do período atual" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "Coluna Superior" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "Percentagem" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "Nome do período deve ser único por relatório" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "Tipo do período" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Períodos" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "Data Dinâmica" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "Por favor forneça ambas as colunas para comparar em %s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" +"Selecione um modelo de relatório e/ou salve o relatório antes de adicionar " +"colunas." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Prefixo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "Herança de Prefixo" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "Visualizar" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Imprimir" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "Consultas" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "O nome da consulta ({}) deve ser um identificador python válido" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "Atualizar" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "Relativo à data base do relatório" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "Relatório" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "Ação do Relatório" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "Instância do Relatório" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "Data Base do Relatório (deixar em branco para usar data atual)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "Arredondamento" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "Herança de Arredondamento" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "Salvar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" +"Exibição de pesquisa para personalizar a caixa de filtro no assistente de " +"relatório." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "Selecione empresas para as quais os dados serão pesquisados." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" +"Selecione a moeda de destino para o relatório. Necessário se as empresas " +"tiverem moedas diferentes." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "Sequência" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "Configurações" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" +"Não deve incluir o mesmo relatório mais de uma vez como sub-relatório de um " +"determinado relatório" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "Exibir Data Dinâmica" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "Exibir caixa de filtros" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "Exibir botão de configurações" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "Mostre a Data Dinâmica na barra de filtro do widget de relatório." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "Mostre a barra de filtro no widget de relatório." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "Mostre o botão de configurações no widget de relatório." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "Assinar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Fonte" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "Texto" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "Estilo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "Expressão de estilo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "Estilo para linhas de detalhes da conta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "Nome do estilo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "Sub KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "Filtro do Sub KPI" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "O sub KPI deve ser usado uma vez e apenas uma vez para cada KPI" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "Sub KPI's" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "Sub-Relatórios" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "Sub relatórios" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "Sequência do Sub-KPI" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "O nome do sub-KPI ({}) deve ser um identificador python válido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "Subkpi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "Sub-relatório" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "Loop de sub-relatório detectado" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "O nome do sub-relatório ({}) deve ser um identificador python válido" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "O nome do sub-relatório deve ser exclusivo por relatório" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Sufixo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "Herança do Sufixo" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "Soma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "Somar detalhes da conta" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" +"A soma não pode ser calculada na coluna {} porque as colunas a serem somadas " +"não têm possuem subkpis comuns" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "Somar colunas" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Movimentos Alvo" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Modelo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "Temporário" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "Cor do texto" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "Cor do texto em código RGB válido (de #000000 a #FFFFFF)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" +"O seletor de contas é uma expressão semelhante no\n" +" código da conta (por exemplo, " +"70%, etc) ou um domínio sobre contas\n" +" (ex. [('code', 'like', " +"'60%')])." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" +"O domínio de itens de diário é um filtro de domínio Odoo em\n" +" itens do diário." + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" +"Os seguintes elementos especiais são reconhecidos nas expressões\n" +" para computar dados contábeis: " +"{bal|crd|deb|pbal|nbal}{pieu}[account\n" +" selector][domínio de itens de diário]." + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "Para" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "Para (computado)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "Método de acúmulo inesperado %(method)s para %(name)s." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "Valor inesperado %s para target_move." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "Operador não suportado %s para pesquisar na data" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "Relatórios temporários de vácuo" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "Válido" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "Tipo de valor" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "Visibilidade" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Semana" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "Ferramenta" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "Duração incorreta, deve ser positiva!" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "Fator de normalização incorreto, deve ser positivo!" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "Ano" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "No acumulado do ano" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "Você não pode somar o período %s com ele mesmo." + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "de %(date_from)s a %(date_to)s" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "grande" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "médio" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "ou" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "pp" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "pequeno" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "versus" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "muito grande" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "muito pequeno" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "grandíssimo" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "extra-pequeno" + +#, python-format +#~ msgid "Columns %(descr)s and %(base_descr) are not comparable" +#~ msgstr "As colunas %(descr)s e %(base_descr) não são comparáveis" + +#, python-format +#~ msgid "Columns {} and {} are not comparable" +#~ msgstr "Colunas {} e {} não são comparáveis" + +#, python-format +#~ msgid "Generated on {} at {}" +#~ msgstr "Gerado em {} às {}" + +#, python-format +#~ msgid "" +#~ "KPI \"{}\" has type {} while a tuple was expected.\n" +#~ "\n" +#~ "This can be fixed by either:\n" +#~ "\t- Changing the KPI value to a tuple of length {}\n" +#~ "or\n" +#~ "\t- Changing the KPI to `multi` mode and giving an explicit value for " +#~ "each sub-KPI." +#~ msgstr "" +#~ "KPI \"{}\" possui o tipo {} enquanto uma tupla era o esperado.\n" +#~ "\n" +#~ "Isso pode ser corrigido assim:\n" +#~ "\t- Alterando o valor do KPI para uma tupla de comprimento {}\n" +#~ "ou\n" +#~ "\t- Alterando o KPI para modo `multi` e dando um valor explícito para " +#~ "cada sub-KPI." + +#, python-format +#~ msgid "" +#~ "KPI \"{}\" is valued as a tuple of length {} while a tuple of length {} " +#~ "is expected." +#~ msgstr "" +#~ "O KPI \"{}\" esta definido como uma tupla de comprimento {} enquanto uma " +#~ "tupla de comprimento {} era esperada." + +#, python-format +#~ msgid "Can not update a multi kpi from the kpi line" +#~ msgstr "Não é possível atualizar um multi kpi da linha kpi" + +#~ msgid "Account model" +#~ msgstr "Modelo de conta" + +#~ msgid "Analytic Account" +#~ msgstr "Conta Analítica" + +#, python-format +#~ msgid "Analytic Account Filter" +#~ msgstr "Filtro de Conta Analítica" + +#, python-format +#~ msgid "Analytic Account Group" +#~ msgstr "Grupo de Conta Analítica" + +#, python-format +#~ msgid "Analytic Account Group: %s" +#~ msgstr "Grupo de Conta Analítica: %s" + +#, python-format +#~ msgid "Analytic Account: %s" +#~ msgstr "Conta Analítica: %s" + +#~ msgid "Analytic Tags" +#~ msgstr "Marcador de Conta Analítica" + +#, python-format +#~ msgid "Analytic Tags Filter" +#~ msgstr "Filtro de Marcadores Analíticos" + +#, python-format +#~ msgid "Analytic Tags: %s" +#~ msgstr "Marcadores Analíticos: %s" + +#~ msgid "Hide Analytic Filters" +#~ msgstr "Esconder Filtros Analíticos" + +#~ msgid "MIS Report Instances" +#~ msgstr "Instâncias do Relatório SIG" + +#~ msgid "MIS Report Result" +#~ msgstr "Resultado do Relatório SIG" + +#~ msgid "Pivot date" +#~ msgstr "Data do Pivot" + +#~ msgid "Style expression" +#~ msgstr "Expressão de Estilo" + +#, python-format +#~ msgid "Unexpected accumulation method %s for %s." +#~ msgstr "Método de acumulação %s não esperado para %s." + +#, python-format +#~ msgid "from %s to %s" +#~ msgstr "de %s até %s" + +#~ msgid "" +#~ "Check if you wish to specify children companies to be searched for data." +#~ msgstr "" +#~ "Verifique se deseja especificar empresas filhas para serem pesquisadas " +#~ "por dados." + +#~ msgid "Companies" +#~ msgstr "Empresas" + +#~ msgid "Company" +#~ msgstr "Empresa" + +#~ msgid "Query Company" +#~ msgstr "Empresa de Consulta" + +#~ msgid "" +#~ "AccountingNone: a null value that behaves as 0 in arithmetic " +#~ "operations." +#~ msgstr "" +#~ "AccountingNone: um valor nulo que se comporta como 0 em operações " +#~ "aritméticas." + +#~ msgid "" +#~ "bal, crd, deb, pbal, nbal: balance, debit, credit, positive " +#~ "balance, negative balance." +#~ msgstr "" +#~ "bal, crd, deb, pbal, nbal: saldo, débito, crédito, balanço " +#~ "positivo, balanço negativo." + +#~ msgid "" +#~ "bal[70]: variation of the balance of account 70 over the period " +#~ "(it is the same as balp[70]." +#~ msgstr "" +#~ "bal[70]: variação do balanço da conta 70 ao longo do período (é o " +#~ "mesmo que balp [70]." + +#~ msgid "" +#~ "bale[1%]: balance of accounts starting with 1 at end of period." +#~ msgstr "" +#~ "bale[1%]: balanço de contas iniciando com 1 no final do período." + +#~ msgid "bali[70,60]: initial balance of accounts 70 and 60." +#~ msgstr "bali[70,60]: balanço inicial das contas 70 e 60." + +#~ msgid "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variation of the balance of all receivable accounts over the " +#~ "period." +#~ msgstr "" +#~ "balp[('user_type_id', '=', ref('account.data_account_type_receivable')." +#~ "id)][]: variação do balanço de todas as contas a receber durante o " +#~ "período." + +#~ msgid "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: balance of move lines related to tax grid 56." +#~ msgstr "" +#~ "balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)]: saldo das linhas de movimento relacionadas ao imposto 56." + +#~ msgid "" +#~ "balu[]: (u for unallocated) is a special expression that shows the " +#~ "unallocated profit/loss of previous\n" +#~ " fiscal years." +#~ msgstr "" +#~ "balu[]: (u para não alocado) é uma expressão especial que exibe o " +#~ "lucro / perda não alocado de\n" +#~ " anos fiscais." + +#~ msgid "" +#~ "crdp[40%]: sum of all credits on accounts starting with 40 during " +#~ "the period." +#~ msgstr "" +#~ "crdp[40%]: soma de todos os créditos em contas iniciando com 40 " +#~ "durante o periodo." + +#~ msgid "date_from, date_to: beginning and end date of the period." +#~ msgstr "date_from, date_to: data inicial e final do período." + +#~ msgid "datetime, datetime, dateutil: the python modules." +#~ msgstr "datetime, datetime, dateutil: os módulos python." + +#~ msgid "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: sum of all debits on " +#~ "accounts 55 and journal BNK1 during the period." +#~ msgstr "" +#~ "debp[55%][('journal_id.code', '=', 'BNK1')]: soma de todos os " +#~ "débitos na conta 55 e diário BNK1 durante o período." + +#~ msgid "" +#~ "p, i, e: respectively variation over the period, initial balance, " +#~ "ending balance" +#~ msgstr "" +#~ "p, i, e: variação respectiva ao longo do período, balanço inicial, " +#~ "balanço final" + +#~ msgid "" +#~ "pbale[55%]: sum of all ending balances of accounts starting with " +#~ "55 whose\n" +#~ " ending balance is positive." +#~ msgstr "" +#~ "pbale[55%]: soma de todos os balanços finais de contas iniciando " +#~ "com 55 as quais\n" +#~ " o balanço final é positivo." + +#~ msgid "" +#~ "sum, min, max, len, avg: behave as expected, very similar to the " +#~ "python builtins." +#~ msgstr "" +#~ "sum, min, max, len, avg: comporta-se como o experado, muito " +#~ "similar aos builtins do python." + +#~ msgid "" +#~ "Additionally following variables are available in the evaluation context:" +#~ msgstr "" +#~ "Adicionalmente as seguintes variáveis estão disponíveis no contexto de " +#~ "avaliação:" + +#~ msgid "" +#~ "Expressions can involve other KPI, sub KPI and query results by name (eg " +#~ "kpi1 + kpi2, kpi2.subkpi1, query1.field1)." +#~ msgstr "" +#~ "Expressões podem envolver outros KPI, sub KPI e resultados de consultas " +#~ "por nome (ex: kpi1 + kpi2, kpi2.subkpi1, query1.field1)." + +#~ msgid "" +#~ "The account selector is a like expression on the account code (eg " +#~ "70%, etc)." +#~ msgstr "" +#~ "O seletor de conta é uma expressão semelhante no código da conta " +#~ "(ex 70%, etc)." + +#~ msgid "" +#~ "The journal items domain is an Odoo domain filter on journal items." +#~ msgstr "" +#~ "O domínio de itens do diário é um filtro de domínio do Odoo em " +#~ "itens de diário." + +#~ msgid "" +#~ "The following special elements are recognized in the expressions to " +#~ "compute accounting data:\n" +#~ " {bal|crd|deb|pbal|nbal}" +#~ "{pieu}[account selector][journal items domain]." +#~ msgstr "" +#~ "Os seguintes elementos especiais são reconhecidos na expressão para " +#~ "cálculo de dados da conta:\n" +#~ " {bal|crd|deb|pbal|nbal}" +#~ "{pieu}[account selector][journal items domain]." + +#~ msgid "MIS Budget" +#~ msgstr "Orçamento SIG" + +#~ msgid "report.mis_builder.mis_report_instance_xlsx" +#~ msgstr "report.mis_builder.mis_report_instance_xlsx" diff --git a/mis_builder/i18n/sv.po b/mis_builder/i18n/sv.po new file mode 100644 index 0000000..5840e10 --- /dev/null +++ b/mis_builder/i18n/sv.po @@ -0,0 +1,1798 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-11-17 11:36+0000\n" +"Last-Translator: Simon S \n" +"Language-Team: none\n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (kopia)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "Ett datumfilter är obligatoriskt för denna källa i kolumn %s." + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Lägg till på anslagstavlan" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Alla poster" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Alla bokförda poster" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Jämför" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Jämförelseläge" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Skapad av" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "Skapad den" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Valuta" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "Datum" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Datumfält" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "Datum från" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Datumintervall" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "Datum till" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Datum" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "Dag" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Beskrivning" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "Visa kolumnbeskrivning" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Exportera" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "Från" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Senast genererade rapporter" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "Layout" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "MIS-rapport" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "Mall för MIS-rapport" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "Mallar för MIS-rapporter" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "MIS-rapportering" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "MIS-rapporter" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Flera företag" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Namn" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Inget datumfilter" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Perioder" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Prefix" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Skriv ut" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "Spara" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "Inställningar" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Källa" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Suffix" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Mall" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "Till" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Vecka" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "År" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" + +#~ msgid "Analytic Account" +#~ msgstr "Objektkonto" + +#, python-format +#~ msgid "Analytic Account Group" +#~ msgstr "Objektkontogrupp" + +#~ msgid "Company" +#~ msgstr "Bolag" diff --git a/mis_builder/i18n/tr.po b/mis_builder/i18n/tr.po new file mode 100644 index 0000000..9de5ccc --- /dev/null +++ b/mis_builder/i18n/tr.po @@ -0,0 +1,1788 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mis_builder +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-10-09 09:12+0000\n" +"Last-Translator: Metin GÜLSOY \n" +"Language-Team: none\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "%s (copy)" +msgstr "%s (Kopya)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[('user_type_id', '=',\n" +" ref('account.\n" +" data_account_type_receivable')." +"id)][]\n" +" \n" +" : variation of the balance of all " +"receivable accounts over\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" balp[][('tax_line_id.tag_ids', " +"'=', ref('l10n_be.tax_tag_56').id)]\n" +" \n" +" : balance of move lines related to " +"tax grid 56." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"\n" +" debp[55%][('journal_id.code', " +"'=',\n" +" 'BNK1')]\n" +" \n" +" : sum of all debits on accounts 55 " +"and journal BNK1 during\n" +" the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"AccountingNone : a null value that behaves as 0 in\n" +" arithmetic operations." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal, crd, deb, \n" +" pbal, nbal : " +"balance, debit, credit,\n" +" positive balance, negative balance." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bal[70] : variation of the balance of account 70 over\n" +" the period (it is the same as " +"balp[70]." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"bale[1%] : balance of accounts starting with 1 at\n" +" end of period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "bali[70,60] : initial balance of accounts 70 and 60." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"balu[] : (u for unallocated) is a special " +"expression\n" +" that shows the unallocated profit/" +"loss of previous fiscal\n" +" years." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"crdp[40%] : sum of all credits on accounts starting\n" +" with 40 during the period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"date_from, date_to : beginning and end date of " +"the\n" +" period." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"datetime, datetime, dateutil : the " +"python modules." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"p, i, e : respectively variation over " +"the period,\n" +" initial balance, ending balance" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"pbale[55%] : sum of all ending balances of accounts\n" +" starting with 55 whose ending " +"balance is positive." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"sum, min,\n" +" max, len,\n" +" avg : behave as " +"expected, very\n" +" similar to the python builtins." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.report_mis_report_instance +msgid "-" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "" +"A 'move line like' model, ie having at least debit, credit, date, account_id " +"and company_id fields. This model is the data source for column Actuals." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "A date filter is mandatory for this source in column %s." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "A domain to additionally filter move lines considered in this column." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__analytic_domain +msgid "" +"A domain to additionally filter move lines considered in this report. " +"Caution: when using different move line sources in different columns, such " +"as budgets by account, make sure to use only fields that are available in " +"all move line sources." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__account_model +msgid "Account Model" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__accumulation_method +msgid "Accumulation Method" +msgstr "Birikim Yöntemi" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Actual (alternative) models used in columns must have the same account model " +"in the Account field and must be the same defined in the report template: %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals +msgid "Actuals" +msgstr "Gerçek Değerler" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__actuals_alt +msgid "Actuals (alternative)" +msgstr "Gerçek değerler(alternatif)" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__source +msgid "" +"Actuals: current data, from accounting and other queries.\n" +"Actuals (alternative): current data from an alternative source (eg a " +"database view providing look-alike account move lines).\n" +"Sum columns: summation (+/-) of other columns.\n" +"Compare to column: compare to other column.\n" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_prorata_read_group_mixin +msgid "Adapt model with date_from/date_to for pro-rata temporis read_group" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_add_to_dashboard_action +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Add to dashboard" +msgstr "Kontrol Paneline Ekle" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Additionally following variables are available\n" +" in the evaluation context:" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__aggregate +msgid "Aggregate" +msgstr "Toplam" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__all +msgid "All Entries" +msgstr "Tüm Kayıtlar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__all_kpi_ids +msgid "All Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance__target_move__posted +msgid "All Posted Entries" +msgstr "Tüm Onaylı Kayıtlar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__allowed_cmpcol_ids +msgid "Allowed Cmpcol" +msgstr "İzin Verilmiş Şirketler" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_ids +msgid "Allowed companies" +msgstr "İzin Verilmiş Şirket" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__company_id +msgid "Allowed company" +msgstr "İzin Verilmiş Şirket" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__amount +msgid "Amount" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__style_expression +msgid "" +"An expression that returns a style depending on the KPI value. Such style is " +"applied on top of the row style." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__analytic_domain +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__analytic_domain +msgid "Analytic Domain" +msgstr "Analitik Etki Alanı(sorgu)" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Auto expand" +msgstr "Otomatik genişlet" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__avg +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__avg +#, python-format +msgid "Average" +msgstr "Ortalama" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color +msgid "Background Color" +msgstr "Arka Plan Rengi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__background_color_inherit +msgid "Background Color Inherit" +msgstr "Arka Plan Rengi Devralma" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__background_color +msgid "Background color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date +msgid "Base date" +msgstr "Temel tarih" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__bold +msgid "Bold" +msgstr "Kalın" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Cancel" +msgstr "iptal" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__multi_company +msgid "Check if you wish to specify several companies to be searched for data." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Color" +msgstr "Renk" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color_inherit +msgid "Color Inherit" +msgstr "Renk Devralma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_to_sum_id +msgid "Column" +msgstr "Sütün" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s cannot be compared to itrec." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Column %s with move lines source must have from/to dates." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Columns" +msgstr "Sütünlar" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "Columns %(descr)s and %(base_descr)s are not comparable" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Columns to compare must belong to the same report in %s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_ids +msgid "Columns to sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__query_company_ids +msgid "Companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_to_id +msgid "Compare" +msgstr "Karşılaştır" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__cmpcol +msgid "Compare columns" +msgstr "Sütunları Karşılaştır" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__compare_method +msgid "Comparison Method" +msgstr "Karşılaştırma Yöntemi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__comparison_mode +msgid "Comparison Mode" +msgstr "Karşılaştırma Modu" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_uid +msgid "Created by" +msgstr "Oluşturan" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__create_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__create_date +msgid "Created on" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__currency_id +msgid "Currency" +msgstr "Para Birimi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__dashboard_id +msgid "Dashboard" +msgstr "Pano" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date +msgid "Date" +msgstr "Tarih" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__date_field +msgid "Date Field" +msgstr "Tarih Alanı" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_from +msgid "Date From" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_range_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_id +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__date_range +#, python-format +msgid "Date Range" +msgstr "Dönem" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_range_type_id +msgid "Date Range Type" +msgstr "Dönem Türü" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_prorata_read_group_mixin__date_to +msgid "Date To" +msgstr "Başlangıç" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Dates" +msgstr "Tarihler" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__d +#, python-format +msgid "Day" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__description +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__description +msgid "Description" +msgstr "Açıklama" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_kpi__accumulation_method +msgid "" +"Determines how values of this kpi spanning over a time period are " +"transformed to match the reporting period. Sum: values of shorter period are " +"added, values of longest or partially overlapping periods are adjusted pro-" +"rata temporis.\n" +"Average: values of included period are averaged with a pro-rata temporis " +"weight." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__diff +#, python-format +msgid "Difference" +msgstr "Fark" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__no_auto_expand_accounts +msgid "Disable account details expansion" +msgstr "Hesap ayrıntılarını genişletmeyi devre dışı bırak" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display Columns Description" +msgstr "Sütun Açıklamalarını Görüntüle" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__display_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__display_name +msgid "Display Name" +msgstr "Görünen Ad" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts +msgid "Display details by account" +msgstr "Ayrıntıları hesaba göre göster" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__display_columns_description +msgid "Display the date range details in the column headers." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider_inherit +msgid "Divider Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__domain +msgid "Domain" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp_inherit +msgid "Dp Inherit" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_prorata_read_group_mixin__date +msgid "" +"Dummy field that adapts searches on date to searches on date_from/date_to." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__duration +msgid "Duration" +msgstr "Süre" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__query_company_ids +msgid "Effective companies" +msgstr "Etkili Şirketler" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Enter expression here, for example balp[70%]. See also help tab." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"Error while querying move line source \"%(model_name)s\". This is likely due " +"to a filter or expression referencing a field that does not exist in the " +"model.\n" +"\n" +"The technical error message is: %(exception)s. " +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Examples:" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Export" +msgstr "Dışarı Aktar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__expression_ids +msgid "Expression" +msgstr "İfade" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__expression_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions" +msgstr "İfadeler" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Expressions can be any valid python expressions." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"Expressions can involve other KPI, sub KPI and\n" +" query results by name (eg kpi1 + " +"kpi2,\n" +" kpi2.subkpi1, query1." +"field1)." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__normalize_factor +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__divider +msgid "Factor" +msgstr "Faktör" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Factor inherit" +msgstr "Faktör devralma" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__normalize_factor +msgid "Factor to use to normalize the period (used in comparison" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_names +msgid "Fetched fields name" +msgstr "Getirilen alanların adı" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__field_ids +msgid "Fields to fetch" +msgstr "Getirilen alanlar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Filter box search view" +msgstr "Filtre kutusu arama görünümü" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Filters" +msgstr "Filtreler" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__fix +msgid "Fixed dates" +msgstr "Sabit tarih" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Font" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size +msgid "Font Size" +msgstr "Font Boyutu" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_size_inherit +msgid "Font Size Inherit" +msgstr "Font Boyutu Devralma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style +msgid "Font Style" +msgstr "Font Stil" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_style_inherit +msgid "Font Style Inherit" +msgstr "Font Stil Devralma" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight +msgid "Font Weight" +msgstr "Font Kalınlığı" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__font_weight_inherit +msgid "Font Weight Inherit" +msgstr "Yazı Kalınlığı Devralma" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Forces the start date to Jan 1st of the relevant year" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_from +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_from +msgid "From" +msgstr "Başlangıç" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_from +msgid "From (computed)" +msgstr "Başlangıç(Hesaplanmış)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/report/mis_report_instance_xlsx.py:0 +#, python-format +msgid "Generated on %(gen_date)s at %(gen_time)s" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "Help (for KPI expressions)" +msgstr "Yardım(KPI ifadesi için)" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always +msgid "Hide Always" +msgstr "Her Zaman Gizle" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_always_inherit +msgid "Hide Always Inherit" +msgstr "Her Zaman Devralmayı Gizle" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty +msgid "Hide Empty" +msgstr "Boşları Gizle" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__hide_empty_inherit +msgid "Hide Empty Inherit" +msgstr "Boş Devralmayı Gizle" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__id +msgid "ID" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/aep.py:0 +#, python-format +msgid "" +"If currency_id is not provided, all companies must have the same currency." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Indent" +msgstr "Girinti" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level +msgid "Indent Level" +msgstr "Girinti Düzeyi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__indent_level_inherit +msgid "Indent Level Inherit" +msgstr "Girinti Düzeyi Devralma" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "Indent level must be greater than or equal to 0" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__italic +msgid "Italic" +msgstr "Eğik" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__kpi_expression_id +msgid "KPI" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" has type %(type)s while a tuple was expected.\n" +"\n" +"This can be fixed by either:\n" +"\t- Changing the KPI value to a tuple of length %(length)s\n" +"or\n" +"\t- Changing the KPI to `multi` mode and giving an explicit value for each " +"sub-KPI." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "" +"KPI \"%(kpi)s\" is valued as a tuple of length %(length)s while a tuple of " +"length%(expected_length)s is expected." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq1 +msgid "KPI Sequence" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__kpi_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "KPI's" +msgstr "KPI'lar" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report__all_kpi_ids +msgid "KPIs of this report and subreports." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__kpi_id +msgid "Kpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__name +msgid "Label" +msgstr "Etiket" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__landscape_pdf +msgid "Landscape PDF" +msgstr "Yatay PDF" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi____last_update +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.last_mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.last_wizard_mis_report_instance_view_menu +msgid "Last Reports Generated" +msgstr "Son Oluşturulan Raporlar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_uid +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__write_date +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__write_date +msgid "Last Updated on" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Layout" +msgstr "Düzen" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_report_mis_builder_mis_report_instance_xlsx +msgid "MIS Builder XLSX report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_kpi_data +msgid "MIS Kpi Data Abtract class" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "MIS Report" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subreport +msgid "MIS Report - Sub Reports Relation" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_add_mis_report_instance_dashboard_wizard +msgid "MIS Report Add to Dashboard Wizard" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "MIS Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period +msgid "MIS Report Instance Period" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_instance_period_sum +msgid "MIS Report Instance Period Sum" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "MIS Report KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_kpi_expression +msgid "MIS Report KPI Expression" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_result_view_form +msgid "MIS Report Preview" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_query +msgid "MIS Report Query" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_style +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "MIS Report Style" +msgstr "Mali Rapor Stili" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_style_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_style_view_menu +msgid "MIS Report Styles" +msgstr "Mali Rapor Stilleri" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report_subkpi +msgid "MIS Report Sub-KPI" +msgstr "" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_mis_report +msgid "MIS Report Template" +msgstr "Mali Rapor Şablonu" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_view_menu +msgid "MIS Report Templates" +msgstr "Mali Rapor Şablonları" + +#. module: mis_builder +#: model:ir.ui.menu,name:mis_builder.mis_report_conf_menu +#: model:ir.ui.menu,name:mis_builder.mis_report_finance_menu +msgid "MIS Reporting" +msgstr "Mali Raporlama" + +#. module: mis_builder +#: model:ir.actions.act_window,name:mis_builder.mis_report_instance_view_action +#: model:ir.ui.menu,name:mis_builder.mis_report_instance_view_menu +msgid "MIS Reports" +msgstr "Mali Raporlar" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.qweb_pdf_export +msgid "MIS report instance QWEB PDF report" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.report,name:mis_builder.xls_export +msgid "MIS report instance XLS report" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__max +#, python-format +msgid "Max" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__min +#, python-format +msgid "Min" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__mode +msgid "Mode" +msgstr "Şekil" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__model_id +msgid "Model" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__m +#, python-format +msgid "Month" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__move_lines_source +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__source_aml_model_id +msgid "Move Lines Source" +msgstr "Yevmiye Kalemleri Kaynağı" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_id +msgid "Move lines source" +msgstr "Yevmiye kalemleri kaynağı" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_aml_model_name +msgid "Move lines source model name" +msgstr "Yevmiye Kalemleri Kaynağı Model Adı" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__multi +msgid "Multi" +msgstr "Çoklu" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__multi_company +msgid "Multiple companies" +msgstr "Çoklu şirketler" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_add_mis_report_instance_dashboard_wizard__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__name +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__name +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Name" +msgstr "Adı" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__none +msgid "No date filter" +msgstr "Tarih filtresi yok" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "No date filter is allowed for this source in column %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__none +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__none +#, python-format +msgid "None" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_style__normal +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_weight__nornal +msgid "Normal" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Number" +msgstr "Numara" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__duration +msgid "Number of periods" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__num +#, python-format +msgid "Numeric" +msgstr "Sayısal" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__offset +msgid "Offset" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance_period__offset +msgid "Offset from current period" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__period_id +msgid "Parent column" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__compare_method__pct +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__pct +#, python-format +msgid "Percentage" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_name_unique +msgid "Period name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__type +msgid "Period type" +msgstr "Dönem Tipi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__period_ids +msgid "Periods" +msgstr "Dönemler" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__pivot_date +msgid "Pivot Date" +msgstr "Pivot Tarih" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "Please provide both columns to compare in %s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "" +"Please select a report template and/or save the report before adding columns." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix +msgid "Prefix" +msgstr "Önek" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__prefix_inherit +msgid "Prefix Inherit" +msgstr "Önek Devralma" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Preview" +msgstr "Önizleme" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +#, python-format +msgid "Print" +msgstr "Yazdır" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__query_ids +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Queries" +msgstr "Sorgular" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Query name ({}) must be valid python identifier" +msgstr "" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Refresh" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__mode__relative +msgid "Relative to report base date" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_query__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__report_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__report_id +msgid "Report" +msgstr "Rapor" + +#. module: mis_builder +#: model:ir.model,name:mis_builder.model_ir_actions_report +msgid "Report Action" +msgstr "Rapor İşlemi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__report_instance_id +msgid "Report Instance" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__date +msgid "Report base date (leave empty to use current date)" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__dp +msgid "Rounding" +msgstr "Yuvarlama" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Rounding inherit" +msgstr "Yuvarlama Devralma" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "Save" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_search_view_id +msgid "Search view to customize the filter box in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__company_ids +msgid "Select companies for which data will be searched." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__currency_id +msgid "" +"Select target currency for the report. Required if companies have different " +"currencies." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__sequence +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subkpi__sequence +msgid "Sequence" +msgstr "Sıra" + +#. module: mis_builder +#. odoo-javascript +#: code:addons/mis_builder/static/src/components/mis_report_widget.xml:0 +#, python-format +msgid "Settings" +msgstr "Ayarlar" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_subreport_unique +msgid "" +"Should not include the same report more than once as sub report of a given " +"report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show Pivot Date" +msgstr "Pivot Tarih Göster" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show filters box" +msgstr "Filtre kutusu göster" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show settings button" +msgstr "Ayarlar düğmesini göster" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_pivot_date +msgid "Show the Pivot Date in the report widget filter bar." +msgstr "Rapor widgetı filtre çubuğunda pivot tarihini göster" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_filters +msgid "Show the filter bar in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_instance__widget_show_settings_button +msgid "Show the settings button in the report widget." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period_sum__sign +msgid "Sign" +msgstr "İmza" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_period_view_form +msgid "Source" +msgstr "Kaynak" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__type__str +#, python-format +msgid "String" +msgstr "Dizi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__style_id +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_id +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Style" +msgstr "Stil" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__style_expression +msgid "Style Expression" +msgstr "Stil İfadesi" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__auto_expand_accounts_style_id +msgid "Style for account detail rows" +msgstr "Hesap ayrıntı satırları için stil" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__name +msgid "Style name" +msgstr "Stil adı" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subkpi_ids +msgid "Sub KPI" +msgstr "Alt KPI" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__subkpi_ids +msgid "Sub KPI Filter" +msgstr "Alt KPI'lar" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_kpi_expression_subkpi_kpi_unique +msgid "Sub KPI must be used once and only once for each KPI" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub KPI's" +msgstr "Alt KPI'lar" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_form +msgid "Sub Reports" +msgstr "Alt Raporlar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report__subreport_ids +msgid "Sub reports" +msgstr "Alt raporlar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__seq2 +msgid "Sub-KPI Sequence" +msgstr "Alt Raporlar Sırası" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Sub-KPI name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi_expression__subkpi_id +msgid "Subkpi" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_subreport__subreport_id +msgid "Subreport" +msgstr "Alt Rapor" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport loop detected" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_subreport.py:0 +#, python-format +msgid "Subreport name ({}) must be a valid python identifier" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_subreport_name_unique +msgid "Subreport name should be unique by report" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix +msgid "Suffix" +msgstr "Sonek" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__suffix_inherit +msgid "Suffix Inherit" +msgstr "Sonek Devralma" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_kpi__accumulation_method__sum +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_query__aggregate__sum +#, python-format +msgid "Sum" +msgstr "Toplam" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_sumcol_accdet +msgid "Sum account details" +msgstr "Hesap ayrıntılarını topla" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/kpimatrix.py:0 +#, python-format +msgid "" +"Sum cannot be computed in column {} because the columns to sum have no " +"common subkpis" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__source__sumcol +msgid "Sum columns" +msgstr "Sütunlar" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__target_move +msgid "Target Moves" +msgstr "Hedef Kayıtlar" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_tree +msgid "Template" +msgstr "Şablon" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__temporary +msgid "Temporary" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_style__color +msgid "Text color" +msgstr "Metin rengi" + +#. module: mis_builder +#: model:ir.model.fields,help:mis_builder.field_mis_report_style__color +msgid "Text color in valid RGB code (from #000000 to #FFFFFF)" +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The account selector is a like expression on the\n" +" account code (eg 70%, " +"etc), or a domain over accounts\n" +" (eg [('code', 'like', '60%')])." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The journal items domain is an Odoo domain filter on\n" +" journal items." +msgstr "" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_view_kpi_form +msgid "" +"The following special elements are recognized in the expressions\n" +" to compute accounting data: {bal|" +"crd|deb|pbal|nbal}{pieu}[account\n" +" selector][journal items domain]." +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_kpi_data__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance__date_to +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__manual_date_to +msgid "To" +msgstr "Bitiş" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__date_to +msgid "To (computed)" +msgstr "Bitiş(hesaplanmış)" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_kpi_data.py:0 +#, python-format +msgid "Unexpected accumulation method %(method)s for %(name)s." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report.py:0 +#, python-format +msgid "Unexpected value %s for target_move." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/prorata_read_group_mixin.py:0 +#, python-format +msgid "Unsupported operator %s for searching on date" +msgstr "" + +#. module: mis_builder +#: model:ir.actions.server,name:mis_builder.ir_cron_vacuum_temp_reports_ir_actions_server +#: model:ir.cron,cron_name:mis_builder.ir_cron_vacuum_temp_reports +msgid "Vacuum temporary reports" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__valid +msgid "Valid" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_kpi__type +msgid "Value type" +msgstr "Değer türü" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_style_view_form +msgid "Visibility" +msgstr "Görünürlük" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__w +#, python-format +msgid "Week" +msgstr "Hafta" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_view_form +msgid "Widget" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_duration +msgid "Wrong duration, it must be positive!" +msgstr "" + +#. module: mis_builder +#: model:ir.model.constraint,message:mis_builder.constraint_mis_report_instance_period_normalize_factor +msgid "Wrong normalize factor, it must be positive!" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_instance_period__type__y +#, python-format +msgid "Year" +msgstr "Yıl" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__is_ytd +msgid "Year to date" +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "You cannot sum period %s with itself." +msgstr "" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_instance.py:0 +#, python-format +msgid "from %(date_from)s to %(date_to)s" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__large +msgid "large" +msgstr "büyük" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__medium +msgid "medium" +msgstr "orta" + +#. module: mis_builder +#: model_terms:ir.ui.view,arch_db:mis_builder.mis_report_instance_add_to_dashboard_form_view +#: model_terms:ir.ui.view,arch_db:mis_builder.wizard_mis_report_instance_view_form +msgid "or" +msgstr "ve" + +#. module: mis_builder +#. odoo-python +#: code:addons/mis_builder/models/mis_report_style.py:0 +#, python-format +msgid "pp" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__small +msgid "small" +msgstr "küçük" + +#. module: mis_builder +#: model:ir.model.fields,field_description:mis_builder.field_mis_report_instance_period__source_cmpcol_from_id +msgid "versus" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-large +msgid "x-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__x-small +msgid "x-small" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-large +msgid "xx-large" +msgstr "" + +#. module: mis_builder +#: model:ir.model.fields.selection,name:mis_builder.selection__mis_report_style__font_size__xx-small +msgid "xx-small" +msgstr "" diff --git a/mis_builder/migrations/16.0.5.0.0/end-migrate.py b/mis_builder/migrations/16.0.5.0.0/end-migrate.py new file mode 100644 index 0000000..a6ee1a2 --- /dev/null +++ b/mis_builder/migrations/16.0.5.0.0/end-migrate.py @@ -0,0 +1,10 @@ +# Copyright 2023 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import flectra +from flectra import api + + +def migrate(cr, installed_version): + env = api.Environment(cr, flectra.SUPERUSER_ID, {}) + env["mis.report.instance.period"].search([])._compute_source_aml_model_id() diff --git a/mis_builder/migrations/8.0.2.0.0/post-migration.py b/mis_builder/migrations/8.0.2.0.0/post-migration.py new file mode 100644 index 0000000..421bb33 --- /dev/null +++ b/mis_builder/migrations/8.0.2.0.0/post-migration.py @@ -0,0 +1,29 @@ +# Copyright 2017 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + + +def migrate(cr, version): + cr.execute( + """ + INSERT INTO mis_report_kpi_expression + (create_uid, create_date, write_uid, write_date, + kpi_id, name, sequence) + SELECT create_uid, create_date, write_uid, write_date, + id, old_expression, sequence + FROM mis_report_kpi + """ + ) + cr.execute( + """ + ALTER TABLE mis_report_kpi + DROP COLUMN old_expression + """ + ) + # set default mode to relative for existing periods + # as it was the only mode in previous versions + cr.execute( + """ + UPDATE mis_report_instance_period + SET mode='relative' + """ + ) diff --git a/mis_builder/migrations/8.0.2.0.0/pre-migration.py b/mis_builder/migrations/8.0.2.0.0/pre-migration.py new file mode 100644 index 0000000..83fc4b5 --- /dev/null +++ b/mis_builder/migrations/8.0.2.0.0/pre-migration.py @@ -0,0 +1,20 @@ +# Copyright 2017 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + + +def migrate(cr, version): + cr.execute( + """ + ALTER TABLE mis_report_kpi + RENAME COLUMN expression TO old_expression + """ + ) + # this migration to date_range type is partial, + # actual date ranges needs to be created manually + cr.execute( + """ + UPDATE mis_report_instance_period + SET type='date_range' + WHERE type='fp' + """ + ) diff --git a/mis_builder/models/__init__.py b/mis_builder/models/__init__.py new file mode 100644 index 0000000..af7bfa7 --- /dev/null +++ b/mis_builder/models/__init__.py @@ -0,0 +1,10 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import mis_report +from . import mis_report_subreport +from . import mis_report_instance +from . import mis_report_style +from . import aep +from . import mis_kpi_data +from . import prorata_read_group_mixin diff --git a/mis_builder/models/accounting_none.py b/mis_builder/models/accounting_none.py new file mode 100644 index 0000000..9372306 --- /dev/null +++ b/mis_builder/models/accounting_none.py @@ -0,0 +1,215 @@ +# Copyright 2016 Thomas Binsfeld +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +""" +Provides the AccountingNone singleton. + +AccountingNone is a null value that dissolves in basic arithmetic operations, +as illustrated in the examples below. In comparisons, AccountingNone behaves +the same as zero. + +>>> 1 + 1 +2 +>>> 1 + AccountingNone +1 +>>> AccountingNone + 1 +1 +>>> AccountingNone + None +AccountingNone +>>> None + AccountingNone +AccountingNone +>>> +AccountingNone +AccountingNone +>>> -AccountingNone +AccountingNone +>>> -(AccountingNone) +AccountingNone +>>> AccountingNone - 1 +-1 +>>> 1 - AccountingNone +1 +>>> abs(AccountingNone) +AccountingNone +>>> AccountingNone - None +AccountingNone +>>> None - AccountingNone +AccountingNone +>>> AccountingNone / 2 +0.0 +>>> 2 / AccountingNone +Traceback (most recent call last): + ... +ZeroDivisionError +>>> AccountingNone / AccountingNone +AccountingNone +>>> AccountingNone // 2 +0.0 +>>> 2 // AccountingNone +Traceback (most recent call last): + ... +ZeroDivisionError +>>> AccountingNone // AccountingNone +AccountingNone +>>> AccountingNone * 2 +0.0 +>>> 2 * AccountingNone +0.0 +>>> AccountingNone * AccountingNone +AccountingNone +>>> AccountingNone * None +AccountingNone +>>> None * AccountingNone +AccountingNone +>>> str(AccountingNone) +'' +>>> bool(AccountingNone) +False +>>> AccountingNone > 0 +False +>>> AccountingNone < 0 +False +>>> AccountingNone < 1 +True +>>> AccountingNone > 1 +False +>>> 0 < AccountingNone +False +>>> 0 > AccountingNone +False +>>> 1 < AccountingNone +False +>>> 1 > AccountingNone +True +>>> AccountingNone == 0 +True +>>> AccountingNone == 0.0 +True +>>> AccountingNone == None +True +>>> AccountingNone >= AccountingNone +True +>>> AccountingNone <= AccountingNone +True +>>> round(AccountingNone, 2) +0.0 +>>> float(AccountingNone) +0.0 +>>> int(AccountingNone) +0 +""" + +__all__ = ["AccountingNone"] + + +class AccountingNoneType: + def __add__(self, other): + if other is None: + return AccountingNone + return other + + __radd__ = __add__ + + def __sub__(self, other): + if other is None: + return AccountingNone + return -other + + def __rsub__(self, other): + if other is None: + return AccountingNone + return other + + def __iadd__(self, other): + if other is None: + return AccountingNone + return other + + def __isub__(self, other): + if other is None: + return AccountingNone + return -other + + def __abs__(self): + return self + + def __pos__(self): + return self + + def __neg__(self): + return self + + def __div__(self, other): + if other is AccountingNone: + return AccountingNone + return 0.0 + + def __rdiv__(self, other): + raise ZeroDivisionError + + def __floordiv__(self, other): + if other is AccountingNone: + return AccountingNone + return 0.0 + + def __rfloordiv__(self, other): + raise ZeroDivisionError + + def __truediv__(self, other): + if other is AccountingNone: + return AccountingNone + return 0.0 + + def __rtruediv__(self, other): + raise ZeroDivisionError + + def __mul__(self, other): + if other is None or other is AccountingNone: + return AccountingNone + return 0.0 + + __rmul__ = __mul__ + + def __repr__(self): + return "AccountingNone" + + def __str__(self): + return "" + + def __nonzero__(self): + return False + + def __bool__(self): + return False + + def __eq__(self, other): + return other == 0 or other is None or other is AccountingNone + + def __lt__(self, other): + return other > 0 + + def __gt__(self, other): + return other < 0 + + def __le__(self, other): + return other >= 0 + + def __ge__(self, other): + return other <= 0 + + def __float__(self): + return 0.0 + + def __int__(self): + return 0 + + def __round__(self, ndigits): + return 0.0 + + +AccountingNone = AccountingNoneType() + + +if __name__ == "__main__": # pragma: no cover + import doctest + + doctest.testmod() diff --git a/mis_builder/models/aep.py b/mis_builder/models/aep.py new file mode 100644 index 0000000..ba8e97a --- /dev/null +++ b/mis_builder/models/aep.py @@ -0,0 +1,546 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import logging +import re +from collections import defaultdict + +from flectra import _, fields +from flectra.exceptions import UserError +from flectra.models import expression +from flectra.tools.float_utils import float_is_zero +from flectra.tools.safe_eval import datetime, dateutil, safe_eval, time + +from .accounting_none import AccountingNone + +_logger = logging.getLogger(__name__) + +_DOMAIN_START_RE = re.compile(r"\(|(['\"])[!&|]\1") + + +def _is_domain(s): + """Test if a string looks like an Flectra domain""" + return _DOMAIN_START_RE.match(s) + + +class AccountingExpressionProcessor: + """Processor for accounting expressions. + + Expressions of the form [accounts][optional move line domain] + are supported, where: + * field is bal, crd, deb, pbal (positive balances only), + nbal (negative balance only) + * mode is i (initial balance), e (ending balance), + p (moves over period) + * there is also a special u mode (unallocated P&L) which computes + the sum from the beginning until the beginning of the fiscal year + of the period; it is only meaningful for P&L accounts + * accounts is a list of accounts, possibly containing % wildcards, + or a domain expression on account.account + * an optional domain on move lines allowing filters on eg analytic + accounts or journal + + Examples: + * bal[70]: variation of the balance of moves on account 70 + over the period (it is the same as balp[70]); + * bali[70,60]: balance of accounts 70 and 60 at the start of period; + * bale[1%]: balance of accounts starting with 1 at end of period. + + How to use: + * repeatedly invoke parse_expr() for each expression containing + accounting variables as described above; this lets the processor + group domains and modes and accounts; + * when all expressions have been parsed, invoke done_parsing() + to notify the processor that it can prepare to query (mainly + search all accounts - children, consolidation - that will need to + be queried; + * for each period, call do_queries(), then call replace_expr() for each + expression to replace accounting variables with their resulting value + for the given period. + + How it works: + * by accumulating the expressions before hand, it ensures to do the + strict minimum number of queries to the database (for each period, + one query per domain and mode); + * it queries using the orm read_group which reduces to a query with + sum on debit and credit and group by on account_id and company_id, + (note: it seems the orm then does one query per account to fetch + the account name...); + * additionally, one query per view/consolidation account is done to + discover the children accounts. + """ + + MODE_VARIATION = "p" + MODE_INITIAL = "i" + MODE_END = "e" + MODE_UNALLOCATED = "u" + + _ACC_RE = re.compile( + r"(?P\bbal|\bpbal|\bnbal|\bcrd|\bdeb)" + r"(?P[piseu])?" + r"\s*" + r"(?P_[a-zA-Z0-9]+|\[.*?\])" + r"\s*" + r"(?P\[.*?\])?" + ) + + def __init__(self, companies, currency=None, account_model="account.account"): + self.env = companies.env + self.companies = companies + if not currency: + self.currency = companies.mapped("currency_id") + if len(self.currency) > 1: + raise UserError( + _( + "If currency_id is not provided, " + "all companies must have the same currency." + ) + ) + else: + self.currency = currency + self.dp = self.currency.decimal_places + # before done_parsing: {(ml_domain, mode): set(acc_domain)} + # after done_parsing: {(ml_domain, mode): list(account_ids)} + self._map_account_ids = defaultdict(set) + # {account_domain: set(account_ids)} + self._account_ids_by_acc_domain = defaultdict(set) + # smart ending balance (returns AccountingNone if there + # are no moves in period and 0 initial balance), implies + # a first query to get the initial balance and another + # to get the variation, so it's a bit slower + self.smart_end = True + # Account model + self._account_model = self.env[account_model].with_context(active_test=False) + + def _account_codes_to_domain(self, account_codes): + """Convert a comma separated list of account codes + (possibly with wildcards) to a domain on account.account. + """ + elems = [] + for account_code in account_codes.split(","): + account_code = account_code.strip() + if "%" in account_code: + elems.append([("code", "=like", account_code)]) + else: + elems.append([("code", "=", account_code)]) + return tuple(expression.OR(elems)) + + def _parse_match_object(self, mo): + """Split a match object corresponding to an accounting variable + + Returns field, mode, account domain, move line domain. + """ + domain_eval_context = { + "ref": self.env.ref, + "user": self.env.user, + "time": time, + "datetime": datetime, + "dateutil": dateutil, + } + field, mode, account_sel, ml_domain = mo.groups() + # handle some legacy modes + if not mode: + mode = self.MODE_VARIATION + elif mode == "s": + mode = self.MODE_END + # convert account selector to account domain + if account_sel.startswith("_"): + # legacy bal_NNN% + acc_domain = self._account_codes_to_domain(account_sel[1:]) + else: + assert account_sel[0] == "[" and account_sel[-1] == "]" + inner_account_sel = account_sel[1:-1].strip() + if not inner_account_sel: + # empty selector: select all accounts + acc_domain = tuple() + elif _is_domain(inner_account_sel): + # account selector is a domain + acc_domain = tuple(safe_eval(account_sel, domain_eval_context)) + else: + # account selector is a list of account codes + acc_domain = self._account_codes_to_domain(inner_account_sel) + # move line domain + if ml_domain: + assert ml_domain[0] == "[" and ml_domain[-1] == "]" + ml_domain = tuple(safe_eval(ml_domain, domain_eval_context)) + else: + ml_domain = tuple() + return field, mode, acc_domain, ml_domain + + def parse_expr(self, expr): + """Parse an expression, extracting accounting variables. + + Move line domains and account selectors are extracted and + stored in the map so when all expressions have been parsed, + we know which account domains to query for each move line domain + and mode. + """ + for mo in self._ACC_RE.finditer(expr): + _, mode, acc_domain, ml_domain = self._parse_match_object(mo) + if mode == self.MODE_END and self.smart_end: + modes = (self.MODE_INITIAL, self.MODE_VARIATION, self.MODE_END) + else: + modes = (mode,) + for mode in modes: + key = (ml_domain, mode) + self._map_account_ids[key].add(acc_domain) + + def done_parsing(self): + """Replace account domains by account ids in map""" + for key, acc_domains in self._map_account_ids.items(): + all_account_ids = set() + for acc_domain in acc_domains: + acc_domain_with_company = expression.AND( + [acc_domain, [("company_id", "in", self.companies.ids)]] + ) + account_ids = self._account_model.search(acc_domain_with_company).ids + self._account_ids_by_acc_domain[acc_domain].update(account_ids) + all_account_ids.update(account_ids) + self._map_account_ids[key] = list(all_account_ids) + + @classmethod + def has_account_var(cls, expr): + """Test if an string contains an accounting variable.""" + return bool(cls._ACC_RE.search(expr)) + + def get_account_ids_for_expr(self, expr): + """Get a set of account ids that are involved in an expression. + + Prerequisite: done_parsing() must have been invoked. + """ + account_ids = set() + for mo in self._ACC_RE.finditer(expr): + field, mode, acc_domain, ml_domain = self._parse_match_object(mo) + account_ids.update(self._account_ids_by_acc_domain[acc_domain]) + return account_ids + + def get_aml_domain_for_expr(self, expr, date_from, date_to, account_id=None): + """Get a domain on account.move.line for an expression. + + Prerequisite: done_parsing() must have been invoked. + + Returns a domain that can be used to search on account.move.line. + """ + aml_domains = [] + date_domain_by_mode = {} + for mo in self._ACC_RE.finditer(expr): + field, mode, acc_domain, ml_domain = self._parse_match_object(mo) + aml_domain = list(ml_domain) + account_ids = set() + account_ids.update(self._account_ids_by_acc_domain[acc_domain]) + if not account_id: + aml_domain.append(("account_id", "in", tuple(account_ids))) + else: + # filter on account_id + if account_id in account_ids: + aml_domain.append(("account_id", "=", account_id)) + else: + continue + if field == "crd": + aml_domain.append(("credit", "<>", 0.0)) + elif field == "deb": + aml_domain.append(("debit", "<>", 0.0)) + aml_domains.append(expression.normalize_domain(aml_domain)) + if mode not in date_domain_by_mode: + date_domain_by_mode[mode] = self.get_aml_domain_for_dates( + date_from, date_to, mode + ) + assert aml_domains + # TODO we could do this for more precision: + # AND(OR(aml_domains[mode]), date_domain[mode]) for each mode + return expression.OR(aml_domains) + expression.OR(date_domain_by_mode.values()) + + def get_aml_domain_for_dates(self, date_from, date_to, mode): + if mode == self.MODE_VARIATION: + domain = [("date", ">=", date_from), ("date", "<=", date_to)] + elif mode in (self.MODE_INITIAL, self.MODE_END): + # for income and expense account, sum from the beginning + # of the current fiscal year only, for balance sheet accounts + # sum from the beginning of time + date_from_date = fields.Date.from_string(date_from) + # TODO this takes the fy from the first company + # make that user controllable (nice to have)? + fy_date_from = self.companies[0].compute_fiscalyear_dates(date_from_date)[ + "date_from" + ] + domain = [ + "|", + ("date", ">=", fields.Date.to_string(fy_date_from)), + ("account_id.include_initial_balance", "=", True), + ] + if mode == self.MODE_INITIAL: + domain.append(("date", "<", date_from)) + elif mode == self.MODE_END: + domain.append(("date", "<=", date_to)) + elif mode == self.MODE_UNALLOCATED: + date_from_date = fields.Date.from_string(date_from) + # TODO this takes the fy from the first company + # make that user controllable (nice to have)? + fy_date_from = self.companies[0].compute_fiscalyear_dates(date_from_date)[ + "date_from" + ] + domain = [ + ("date", "<", fields.Date.to_string(fy_date_from)), + ("account_id.include_initial_balance", "=", False), + ] + return expression.normalize_domain(domain) + + def _get_company_rates(self, date): + # get exchange rates for each company with its rouding + company_rates = {} + target_rate = self.currency.with_context(date=date).rate + for company in self.companies: + if company.currency_id != self.currency: + rate = target_rate / company.currency_id.with_context(date=date).rate + else: + rate = 1.0 + company_rates[company.id] = (rate, company.currency_id.decimal_places) + return company_rates + + def do_queries( + self, + date_from, + date_to, + additional_move_line_filter=None, + aml_model=None, + ): + """Query sums of debit and credit for all accounts and domains + used in expressions. + + This method must be executed after done_parsing(). + """ + if not aml_model: + aml_model = self.env["account.move.line"] + else: + aml_model = self.env[aml_model] + aml_model = aml_model.with_context(active_test=False) + company_rates = self._get_company_rates(date_to) + # {(domain, mode): {account_id: (debit, credit)}} + self._data = defaultdict(dict) + domain_by_mode = {} + ends = [] + for key in self._map_account_ids: + domain, mode = key + if mode == self.MODE_END and self.smart_end: + # postpone computation of ending balance + ends.append((domain, mode)) + continue + if mode not in domain_by_mode: + domain_by_mode[mode] = self.get_aml_domain_for_dates( + date_from, date_to, mode + ) + domain = list(domain) + domain_by_mode[mode] + domain.append(("account_id", "in", self._map_account_ids[key])) + if additional_move_line_filter: + domain.extend(additional_move_line_filter) + # fetch sum of debit/credit, grouped by account_id + _logger.debug("read_group domain: %s", domain) + try: + accs = aml_model.read_group( + domain, + ["debit", "credit", "account_id", "company_id"], + ["account_id", "company_id"], + lazy=False, + ) + except ValueError as e: + raise UserError( + _( + 'Error while querying move line source "%(model_name)s". ' + "This is likely due to a filter or expression referencing " + "a field that does not exist in the model.\n\n" + "The technical error message is: %(exception)s. " + ) + % dict( + model_name=aml_model._description, + exception=e, + ) + ) from e + for acc in accs: + rate, dp = company_rates[acc["company_id"][0]] + debit = acc["debit"] or 0.0 + credit = acc["credit"] or 0.0 + if mode in (self.MODE_INITIAL, self.MODE_UNALLOCATED) and float_is_zero( + debit - credit, precision_digits=self.dp + ): + # in initial mode, ignore accounts with 0 balance + continue + self._data[key][acc["account_id"][0]] = (debit * rate, credit * rate) + # compute ending balances by summing initial and variation + for key in ends: + domain, mode = key + initial_data = self._data[(domain, self.MODE_INITIAL)] + variation_data = self._data[(domain, self.MODE_VARIATION)] + account_ids = set(initial_data.keys()) | set(variation_data.keys()) + for account_id in account_ids: + di, ci = initial_data.get(account_id, (AccountingNone, AccountingNone)) + dv, cv = variation_data.get( + account_id, (AccountingNone, AccountingNone) + ) + self._data[key][account_id] = (di + dv, ci + cv) + + def replace_expr(self, expr): + """Replace accounting variables in an expression by their amount. + + Returns a new expression string. + + This method must be executed after do_queries(). + """ + + def f(mo): + field, mode, acc_domain, ml_domain = self._parse_match_object(mo) + key = (ml_domain, mode) + account_ids_data = self._data[key] + v = AccountingNone + account_ids = self._account_ids_by_acc_domain[acc_domain] + for account_id in account_ids: + debit, credit = account_ids_data.get( + account_id, (AccountingNone, AccountingNone) + ) + if field == "bal": + v += debit - credit + elif field == "pbal" and debit >= credit: + v += debit - credit + elif field == "nbal" and debit < credit: + v += debit - credit + elif field == "deb": + v += debit + elif field == "crd": + v += credit + # in initial balance mode, assume 0 is None + # as it does not make sense to distinguish 0 from "no data" + if ( + v is not AccountingNone + and mode in (self.MODE_INITIAL, self.MODE_UNALLOCATED) + and float_is_zero(v, precision_digits=self.dp) + ): + v = AccountingNone + return "(" + repr(v) + ")" + + return self._ACC_RE.sub(f, expr) + + def replace_exprs_by_account_id(self, exprs): + """Replace accounting variables in a list of expression + by their amount, iterating by accounts involved in the expression. + + yields account_id, replaced_expr + + This method must be executed after do_queries(). + """ + + def f(mo): + field, mode, acc_domain, ml_domain = self._parse_match_object(mo) + key = (ml_domain, mode) + # first check if account_id is involved in + # the current expression part + if account_id not in self._account_ids_by_acc_domain[acc_domain]: + return "(AccountingNone)" + # here we know account_id is involved in acc_domain + account_ids_data = self._data[key] + debit, credit = account_ids_data.get( + account_id, (AccountingNone, AccountingNone) + ) + if field == "bal": + v = debit - credit + elif field == "pbal": + if debit >= credit: + v = debit - credit + else: + v = AccountingNone + elif field == "nbal": + if debit < credit: + v = debit - credit + else: + v = AccountingNone + elif field == "deb": + v = debit + elif field == "crd": + v = credit + # in initial balance mode, assume 0 is None + # as it does not make sense to distinguish 0 from "no data" + if ( + v is not AccountingNone + and mode in (self.MODE_INITIAL, self.MODE_UNALLOCATED) + and float_is_zero(v, precision_digits=self.dp) + ): + v = AccountingNone + return "(" + repr(v) + ")" + + account_ids = set() + for expr in exprs: + for mo in self._ACC_RE.finditer(expr): + field, mode, acc_domain, ml_domain = self._parse_match_object(mo) + key = (ml_domain, mode) + account_ids_data = self._data[key] + for account_id in self._account_ids_by_acc_domain[acc_domain]: + if account_id in account_ids_data: + account_ids.add(account_id) + + for account_id in account_ids: + yield account_id, [self._ACC_RE.sub(f, expr) for expr in exprs] + + @classmethod + def _get_balances(cls, mode, companies, date_from, date_to): + expr = f"deb{mode}[], crd{mode}[]" + aep = AccountingExpressionProcessor(companies) + # disable smart_end to have the data at once, instead + # of initial + variation + aep.smart_end = False + aep.parse_expr(expr) + aep.done_parsing() + aep.do_queries(date_from, date_to) + return aep._data[((), mode)] + + @classmethod + def get_balances_initial(cls, companies, date): + """A convenience method to obtain the initial balances of all accounts + at a given date. + + It is the same as get_balances_end(date-1). + + :param companies: + :param date: + + Returns a dictionary: {account_id, (debit, credit)} + """ + return cls._get_balances(cls.MODE_INITIAL, companies, date, date) + + @classmethod + def get_balances_end(cls, companies, date): + """A convenience method to obtain the ending balances of all accounts + at a given date. + + It is the same as get_balances_initial(date+1). + + :param companies: + :param date: + + Returns a dictionary: {account_id, (debit, credit)} + """ + return cls._get_balances(cls.MODE_END, companies, date, date) + + @classmethod + def get_balances_variation(cls, companies, date_from, date_to): + """A convenience method to obtain the variation of the + balances of all accounts over a period. + + :param companies: + :param date: + + Returns a dictionary: {account_id, (debit, credit)} + """ + return cls._get_balances(cls.MODE_VARIATION, companies, date_from, date_to) + + @classmethod + def get_unallocated_pl(cls, companies, date): + """A convenience method to obtain the unallocated profit/loss + of the previous fiscal years at a given date. + + :param companies: + :param date: + + Returns a tuple (debit, credit) + """ + # TODO shoud we include here the accounts of type "unaffected" + # or leave that to the caller? + bals = cls._get_balances(cls.MODE_UNALLOCATED, companies, date, date) + return tuple(map(sum, zip(*bals.values(), strict=True))) diff --git a/mis_builder/models/aggregate.py b/mis_builder/models/aggregate.py new file mode 100644 index 0000000..32e34bd --- /dev/null +++ b/mis_builder/models/aggregate.py @@ -0,0 +1,129 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + + +def _sum(lst): + """Same as stdlib sum but returns None instead of 0 + in case of empty sequence. + + >>> sum([1]) + 1 + >>> _sum([1]) + 1 + >>> sum([1, 2]) + 3 + >>> _sum([1, 2]) + 3 + >>> sum([]) + 0 + >>> _sum([]) + """ + if not lst: + return None + return sum(lst) + + +def _avg(lst): + """Arithmetic mean of a sequence. Returns None in case of empty sequence. + + >>> _avg([1]) + 1.0 + >>> _avg([1, 2]) + 1.5 + >>> _avg([]) + """ + if not lst: + return None + return sum(lst) / float(len(lst)) + + +def _min(*args): + """Same as stdlib min but returns None instead of exception + in case of empty sequence. + + >>> min(1, 2) + 1 + >>> _min(1, 2) + 1 + >>> min([1, 2]) + 1 + >>> _min([1, 2]) + 1 + >>> min(1) + Traceback (most recent call last): + File "", line 1, in ? + TypeError: 'int' object is not iterable + >>> _min(1) + Traceback (most recent call last): + File "", line 1, in ? + TypeError: 'int' object is not iterable + >>> min([1]) + 1 + >>> _min([1]) + 1 + >>> min() + Traceback (most recent call last): + File "", line 1, in ? + TypeError: min expected 1 arguments, got 0 + >>> _min() + Traceback (most recent call last): + File "", line 1, in ? + TypeError: min expected 1 arguments, got 0 + >>> min([]) + Traceback (most recent call last): + File "", line 1, in ? + ValueError: min() arg is an empty sequence + >>> _min([]) + """ + if len(args) == 1 and not args[0]: + return None + return min(*args) + + +def _max(*args): + """Same as stdlib max but returns None instead of exception + in case of empty sequence. + + >>> max(1, 2) + 2 + >>> _max(1, 2) + 2 + >>> max([1, 2]) + 2 + >>> _max([1, 2]) + 2 + >>> max(1) + Traceback (most recent call last): + File "", line 1, in ? + TypeError: 'int' object is not iterable + >>> _max(1) + Traceback (most recent call last): + File "", line 1, in ? + TypeError: 'int' object is not iterable + >>> max([1]) + 1 + >>> _max([1]) + 1 + >>> max() + Traceback (most recent call last): + File "", line 1, in ? + TypeError: max expected 1 arguments, got 0 + >>> _max() + Traceback (most recent call last): + File "", line 1, in ? + TypeError: max expected 1 arguments, got 0 + >>> max([]) + Traceback (most recent call last): + File "", line 1, in ? + ValueError: max() arg is an empty sequence + >>> _max([]) + """ + if len(args) == 1 and not args[0]: + return None + return max(*args) + + +if __name__ == "__main__": # pragma: no cover + import doctest + + doctest.testmod() diff --git a/mis_builder/models/data_error.py b/mis_builder/models/data_error.py new file mode 100644 index 0000000..400ad39 --- /dev/null +++ b/mis_builder/models/data_error.py @@ -0,0 +1,17 @@ +# Copyright 2016 ACSONE SA/NV () +# Copyright 2016 Akretion () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + + +class DataError(Exception): + def __init__(self, name, msg): + super().__init__() + self.name = name + self.msg = msg + + def __repr__(self): + return f"{self.__class__.__name__}({repr(self.name)})" + + +class NameDataError(DataError): + pass diff --git a/mis_builder/models/expression_evaluator.py b/mis_builder/models/expression_evaluator.py new file mode 100644 index 0000000..309bfc2 --- /dev/null +++ b/mis_builder/models/expression_evaluator.py @@ -0,0 +1,68 @@ +# Copyright 2020 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from .mis_safe_eval import NameDataError, mis_safe_eval + + +class ExpressionEvaluator: + def __init__( + self, + aep, + date_from, + date_to, + additional_move_line_filter=None, + aml_model=None, + ): + self.aep = aep + self.date_from = date_from + self.date_to = date_to + self.additional_move_line_filter = additional_move_line_filter + self.aml_model = aml_model + self._aep_queries_done = False + + def aep_do_queries(self): + if self.aep and not self._aep_queries_done: + self.aep.do_queries( + self.date_from, + self.date_to, + self.additional_move_line_filter, + self.aml_model, + ) + self._aep_queries_done = True + + def eval_expressions(self, expressions, locals_dict): + vals = [] + drilldown_args = [] + name_error = False + for expression in expressions: + expr = expression and expression.name or "AccountingNone" + if self.aep: + replaced_expr = self.aep.replace_expr(expr) + else: + replaced_expr = expr + val = mis_safe_eval(replaced_expr, locals_dict) + vals.append(val) + if isinstance(val, NameDataError): + name_error = True + if replaced_expr != expr: + drilldown_args.append({"expr": expr}) + else: + drilldown_args.append(None) + return vals, drilldown_args, name_error + + def eval_expressions_by_account(self, expressions, locals_dict): + if not self.aep: + return + exprs = [e and e.name or "AccountingNone" for e in expressions] + for account_id, replaced_exprs in self.aep.replace_exprs_by_account_id(exprs): + vals = [] + drilldown_args = [] + name_error = False + for expr, replaced_expr in zip(exprs, replaced_exprs, strict=True): + val = mis_safe_eval(replaced_expr, locals_dict) + vals.append(val) + if replaced_expr != expr: + drilldown_args.append({"expr": expr, "account_id": account_id}) + else: + drilldown_args.append(None) + yield account_id, vals, drilldown_args, name_error diff --git a/mis_builder/models/kpimatrix.py b/mis_builder/models/kpimatrix.py new file mode 100644 index 0000000..0150b4e --- /dev/null +++ b/mis_builder/models/kpimatrix.py @@ -0,0 +1,542 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import logging +from collections import OrderedDict, defaultdict + +from flectra import _ +from flectra.exceptions import UserError + +from .accounting_none import AccountingNone +from .mis_kpi_data import ACC_SUM +from .mis_safe_eval import DataError, mis_safe_eval +from .simple_array import SimpleArray + +_logger = logging.getLogger(__name__) + + +class KpiMatrixRow: + # TODO: ultimately, the kpi matrix will become ignorant of KPI's and + # accounts and know about rows, columns, sub columns and styles only. + # It is already ignorant of period and only knowns about columns. + # This will require a correct abstraction for expanding row details. + + def __init__(self, matrix, kpi, account_id=None, parent_row=None): + self._matrix = matrix + self.kpi = kpi + self.account_id = account_id + self.description = "" + self.parent_row = parent_row + if not self.account_id: + self.style_props = self._matrix._style_model.merge( + [self.kpi.report_id.style_id, self.kpi.style_id] + ) + else: + self.style_props = self._matrix._style_model.merge( + [self.kpi.report_id.style_id, self.kpi.auto_expand_accounts_style_id] + ) + + @property + def label(self): + if not self.account_id: + return self.kpi.description + else: + return self._matrix.get_account_name(self.account_id) + + @property + def row_id(self): + if not self.account_id: + return self.kpi.name + else: + return f"{self.kpi.name}:{self.account_id}" + + def iter_cell_tuples(self, cols=None): + if cols is None: + cols = self._matrix.iter_cols() + for col in cols: + yield col.get_cell_tuple_for_row(self) + + def iter_cells(self, subcols=None): + if subcols is None: + subcols = self._matrix.iter_subcols() + for subcol in subcols: + yield subcol.get_cell_for_row(self) + + def is_empty(self): + for cell in self.iter_cells(): + if cell and cell.val not in (AccountingNone, None): + return False + return True + + +class KpiMatrixCol: + def __init__(self, key, label, description, locals_dict, subkpis): + self.key = key + self.label = label + self.description = description + self.locals_dict = locals_dict + self.colspan = subkpis and len(subkpis) or 1 + self._subcols = [] + self.subkpis = subkpis + if not subkpis: + subcol = KpiMatrixSubCol(self, "", "", 0) + self._subcols.append(subcol) + else: + for i, subkpi in enumerate(subkpis): + subcol = KpiMatrixSubCol(self, subkpi.description, "", i) + self._subcols.append(subcol) + self._cell_tuples_by_row = {} # {row: (cells tuple)} + + def _set_cell_tuple(self, row, cell_tuple): + self._cell_tuples_by_row[row] = cell_tuple + + def iter_subcols(self): + return self._subcols + + def iter_cell_tuples(self): + return self._cell_tuples_by_row.values() + + def get_cell_tuple_for_row(self, row): + return self._cell_tuples_by_row.get(row) + + +class KpiMatrixSubCol: + def __init__(self, col, label, description, index=0): + self.col = col + self.label = label + self.description = description + self.index = index + + @property + def subkpi(self): + if self.col.subkpis: + return self.col.subkpis[self.index] + + def iter_cells(self): + for cell_tuple in self.col.iter_cell_tuples(): + yield cell_tuple[self.index] + + def get_cell_for_row(self, row): + cell_tuple = self.col.get_cell_tuple_for_row(row) + if cell_tuple is None: + return None + return cell_tuple[self.index] + + +class KpiMatrixCell: # noqa: B903 (immutable data class) + def __init__( + self, + row, + subcol, + val, + val_rendered, + val_comment, + style_props, + drilldown_arg, + val_type, + ): + self.row = row + self.subcol = subcol + self.val = val + self.val_rendered = val_rendered + self.val_comment = val_comment + self.style_props = style_props + self.drilldown_arg = drilldown_arg + self.val_type = val_type + + +class KpiMatrix: + def __init__(self, env, multi_company=False, account_model="account.account"): + # cache language id for faster rendering + lang_model = env["res.lang"] + self.lang = lang_model._lang_get(env.user.lang) + self._style_model = env["mis.report.style"] + self._account_model = env[account_model] + # data structures + # { kpi: KpiMatrixRow } + self._kpi_rows = OrderedDict() + # { kpi: {account_id: KpiMatrixRow} } + self._detail_rows = {} + # { col_key: KpiMatrixCol } + self._cols = OrderedDict() + # { col_key (left of comparison): [(col_key, base_col_key)] } + self._comparison_todo = defaultdict(list) + # { col_key (left of sum): (col_key, [(sign, sum_col_key)]) + self._sum_todo = {} + # { account_id: account_name } + self._account_names = {} + self._multi_company = multi_company + + def declare_kpi(self, kpi): + """Declare a new kpi (row) in the matrix. + + Invoke this first for all kpi, in display order. + """ + self._kpi_rows[kpi] = KpiMatrixRow(self, kpi) + self._detail_rows[kpi] = {} + + def declare_col(self, col_key, label, description, locals_dict, subkpis): + """Declare a new column, giving it an identifier (key). + + Invoke the declare_* methods in display order. + """ + col = KpiMatrixCol(col_key, label, description, locals_dict, subkpis) + self._cols[col_key] = col + return col + + def declare_comparison( + self, cmpcol_key, col_key, base_col_key, label, description=None + ): + """Declare a new comparison column. + + Invoke the declare_* methods in display order. + """ + self._comparison_todo[cmpcol_key] = (col_key, base_col_key, label, description) + self._cols[cmpcol_key] = None # reserve slot in insertion order + + def declare_sum( + self, sumcol_key, col_to_sum_keys, label, description=None, sum_accdet=False + ): + """Declare a new summation column. + + Invoke the declare_* methods in display order. + :param col_to_sum_keys: [(sign, col_key)] + """ + self._sum_todo[sumcol_key] = (col_to_sum_keys, label, description, sum_accdet) + self._cols[sumcol_key] = None # reserve slot in insertion order + + def set_values(self, kpi, col_key, vals, drilldown_args, tooltips=True): + """Set values for a kpi and a colum. + + Invoke this after declaring the kpi and the column. + """ + self.set_values_detail_account( + kpi, col_key, None, vals, drilldown_args, tooltips + ) + + def set_values_detail_account( + self, kpi, col_key, account_id, vals, drilldown_args, tooltips=True + ): + """Set values for a kpi and a column and a detail account. + + Invoke this after declaring the kpi and the column. + """ + if not account_id: + row = self._kpi_rows[kpi] + else: + kpi_row = self._kpi_rows[kpi] + if account_id in self._detail_rows[kpi]: + row = self._detail_rows[kpi][account_id] + else: + row = KpiMatrixRow(self, kpi, account_id, parent_row=kpi_row) + self._detail_rows[kpi][account_id] = row + col = self._cols[col_key] + cell_tuple = [] + assert len(vals) == col.colspan + assert len(drilldown_args) == col.colspan + for val, drilldown_arg, subcol in zip( + vals, drilldown_args, col.iter_subcols(), strict=True + ): + if isinstance(val, DataError): + val_rendered = val.name + val_comment = val.msg + else: + val_rendered = self._style_model.render( + self.lang, row.style_props, kpi.type, val + ) + if row.kpi.multi and subcol.subkpi: + val_comment = "{}.{} = {}".format( + row.kpi.name, + subcol.subkpi.name, + row.kpi._get_expression_str_for_subkpi(subcol.subkpi), + ) + else: + val_comment = f"{row.kpi.name} = {row.kpi.expression}" + cell_style_props = row.style_props + if row.kpi.style_expression: + # evaluate style expression + try: + style_name = mis_safe_eval( + row.kpi.style_expression, col.locals_dict + ) + except Exception: + _logger.error( + "Error evaluating style expression <%s>", + row.kpi.style_expression, + exc_info=True, + ) + if style_name: + style = self._style_model.search([("name", "=", style_name)]) + if style: + cell_style_props = self._style_model.merge( + [row.style_props, style[0]] + ) + else: + _logger.error("Style '%s' not found.", style_name) + cell = KpiMatrixCell( + row, + subcol, + val, + val_rendered, + tooltips and val_comment or None, + cell_style_props, + drilldown_arg, + kpi.type, + ) + cell_tuple.append(cell) + assert len(cell_tuple) == col.colspan + col._set_cell_tuple(row, cell_tuple) + + def _common_subkpis(self, cols): + if not cols: + return set() + common_subkpis = set(cols[0].subkpis) + for col in cols[1:]: + common_subkpis = common_subkpis & set(col.subkpis) + return common_subkpis + + def compute_comparisons(self): + """Compute comparisons. + + Invoke this after setting all values. + """ + for ( + cmpcol_key, + (col_key, base_col_key, label, description), + ) in self._comparison_todo.items(): + col = self._cols[col_key] + base_col = self._cols[base_col_key] + common_subkpis = self._common_subkpis([col, base_col]) + if (col.subkpis or base_col.subkpis) and not common_subkpis: + raise UserError( + _( + "Columns %(descr)s and %(base_descr)s are not comparable", + descr=col.description, + base_descr=base_col.description, + ) + ) + if not label: + label = f"{col.label} vs {base_col.label}" + comparison_col = KpiMatrixCol( + cmpcol_key, + label, + description, + {}, + sorted(common_subkpis, key=lambda s: s.sequence), + ) + self._cols[cmpcol_key] = comparison_col + for row in self.iter_rows(): + cell_tuple = col.get_cell_tuple_for_row(row) + base_cell_tuple = base_col.get_cell_tuple_for_row(row) + if cell_tuple is None and base_cell_tuple is None: + continue + if cell_tuple is None: + vals = [AccountingNone] * (len(common_subkpis) or 1) + else: + vals = [ + cell.val + for cell in cell_tuple + if not common_subkpis or cell.subcol.subkpi in common_subkpis + ] + if base_cell_tuple is None: + base_vals = [AccountingNone] * (len(common_subkpis) or 1) + else: + base_vals = [ + cell.val + for cell in base_cell_tuple + if not common_subkpis or cell.subcol.subkpi in common_subkpis + ] + comparison_cell_tuple = [] + for val, base_val, comparison_subcol in zip( + vals, + base_vals, + comparison_col.iter_subcols(), + strict=True, + ): + # TODO FIXME average factors + comparison = self._style_model.compare_and_render( + self.lang, + row.style_props, + row.kpi.type, + row.kpi.compare_method, + val, + base_val, + 1, + 1, + ) + delta, delta_r, delta_style, delta_type = comparison + comparison_cell_tuple.append( + KpiMatrixCell( + row, + comparison_subcol, + delta, + delta_r, + None, + delta_style, + None, + delta_type, + ) + ) + comparison_col._set_cell_tuple(row, comparison_cell_tuple) + + def compute_sums(self): + """Compute comparisons. + + Invoke this after setting all values. + """ + for ( + sumcol_key, + (col_to_sum_keys, label, description, sum_accdet), + ) in self._sum_todo.items(): + sumcols = [self._cols[k] for (sign, k) in col_to_sum_keys] + # TODO check all sumcols are resolved; we need a kind of + # recompute queue here so we don't depend on insertion + # order + common_subkpis = self._common_subkpis(sumcols) + if any(c.subkpis for c in sumcols) and not common_subkpis: + raise UserError( + _( + "Sum cannot be computed in column {} " + "because the columns to sum have no " + "common subkpis" + ).format(label) + ) + sum_col = KpiMatrixCol( + sumcol_key, + label, + description, + {}, + sorted(common_subkpis, key=lambda s: s.sequence), + ) + self._cols[sumcol_key] = sum_col + for row in self.iter_rows(): + acc = SimpleArray([AccountingNone] * (len(common_subkpis) or 1)) + if row.kpi.accumulation_method == ACC_SUM and not ( + row.account_id and not sum_accdet + ): + for sign, col_to_sum in col_to_sum_keys: + cell_tuple = self._cols[col_to_sum].get_cell_tuple_for_row(row) + if cell_tuple is None: + vals = [AccountingNone] * (len(common_subkpis) or 1) + else: + vals = [ + cell.val + for cell in cell_tuple + if not common_subkpis + or cell.subcol.subkpi in common_subkpis + ] + if sign == "+": + acc += SimpleArray(vals) + else: + acc -= SimpleArray(vals) + self.set_values_detail_account( + row.kpi, + sumcol_key, + row.account_id, + acc, + [None] * (len(common_subkpis) or 1), + tooltips=False, + ) + + def iter_rows(self): + """Iterate rows in display order. + + yields KpiMatrixRow. + """ + for kpi_row in self._kpi_rows.values(): + yield kpi_row + detail_rows = self._detail_rows[kpi_row.kpi].values() + detail_rows = sorted(detail_rows, key=lambda r: r.label) + yield from detail_rows + + def iter_cols(self): + """Iterate columns in display order. + + yields KpiMatrixCol: one for each column or comparison. + """ + for _col_key, col in self._cols.items(): + yield col + + def iter_subcols(self): + """Iterate sub columns in display order. + + yields KpiMatrixSubCol: one for each subkpi in each column + and comparison. + """ + for col in self.iter_cols(): + yield from col.iter_subcols() + + def _load_account_names(self): + account_ids = set() + for detail_rows in self._detail_rows.values(): + account_ids.update(detail_rows.keys()) + accounts = self._account_model.search([("id", "in", list(account_ids))]) + self._account_names = {a.id: self._get_account_name(a) for a in accounts} + + def _get_account_name(self, account): + result = f"{account.code} {account.name}" + if self._multi_company: + result = f"{result} [{account.company_id.name}]" + return result + + def get_account_name(self, account_id): + if account_id not in self._account_names: + self._load_account_names() + return self._account_names[account_id] + + def as_dict(self): + header = [{"cols": []}, {"cols": []}] + for col in self.iter_cols(): + header[0]["cols"].append( + { + "label": col.label, + "description": col.description, + "colspan": col.colspan, + } + ) + for subcol in col.iter_subcols(): + header[1]["cols"].append( + { + "label": subcol.label, + "description": subcol.description, + "colspan": 1, + } + ) + + body = [] + for row in self.iter_rows(): + if ( + row.style_props.hide_empty and row.is_empty() + ) or row.style_props.hide_always: + continue + row_data = { + "row_id": row.row_id, + "parent_row_id": (row.parent_row and row.parent_row.row_id or None), + "label": row.label, + "description": row.description, + "style": self._style_model.to_css_style(row.style_props), + "cells": [], + } + for cell in row.iter_cells(): + if cell is None: + # TODO use subcol style here + row_data["cells"].append({}) + else: + if cell.val is AccountingNone or isinstance(cell.val, DataError): + val = None + else: + val = cell.val + col_data = { + "val": val, + "val_r": cell.val_rendered, + "val_c": cell.val_comment, + "style": self._style_model.to_css_style( + cell.style_props, no_indent=True + ), + } + if cell.drilldown_arg: + col_data["drilldown_arg"] = cell.drilldown_arg + row_data["cells"].append(col_data) + body.append(row_data) + + return {"header": header, "body": body} diff --git a/mis_builder/models/mis_kpi_data.py b/mis_builder/models/mis_kpi_data.py new file mode 100644 index 0000000..058a90a --- /dev/null +++ b/mis_builder/models/mis_kpi_data.py @@ -0,0 +1,115 @@ +# Copyright 2017 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from collections import defaultdict + +from flectra import _, api, fields, models +from flectra.exceptions import UserError +from flectra.osv import expression + +ACC_SUM = "sum" +ACC_AVG = "avg" +ACC_NONE = "none" + + +def intersect_days(item_dt_from, item_dt_to, dt_from, dt_to): + item_days = (item_dt_to - item_dt_from).days + 1.0 + i_dt_from = max(dt_from, item_dt_from) + i_dt_to = min(dt_to, item_dt_to) + i_days = (i_dt_to - i_dt_from).days + 1.0 + return i_days, item_days + + +class MisKpiData(models.AbstractModel): + """Abstract class for manually entered KPI values.""" + + _name = "mis.kpi.data" + _description = "MIS Kpi Data Abtract class" + + name = fields.Char(compute="_compute_name", required=False, readonly=True) + kpi_expression_id = fields.Many2one( + comodel_name="mis.report.kpi.expression", + required=True, + ondelete="restrict", + string="KPI", + ) + date_from = fields.Date(required=True, string="From") + date_to = fields.Date(required=True, string="To") + amount = fields.Float() + seq1 = fields.Integer( + related="kpi_expression_id.kpi_id.sequence", + store=True, + readonly=True, + string="KPI Sequence", + ) + seq2 = fields.Integer( + related="kpi_expression_id.subkpi_id.sequence", + store=True, + readonly=True, + string="Sub-KPI Sequence", + ) + + @api.depends( + "kpi_expression_id.subkpi_id.name", + "kpi_expression_id.kpi_id.name", + "date_from", + "date_to", + ) + def _compute_name(self): + for rec in self: + subkpi_name = rec.kpi_expression_id.subkpi_id.name + if subkpi_name: + subkpi_name = "." + subkpi_name + else: + subkpi_name = "" + rec.name = "{}{}: {} - {}".format( + rec.kpi_expression_id.kpi_id.name, + subkpi_name, + rec.date_from, + rec.date_to, + ) + + @api.model + def _intersect_days(self, item_dt_from, item_dt_to, dt_from, dt_to): + return intersect_days(item_dt_from, item_dt_to, dt_from, dt_to) + + @api.model + def _query_kpi_data(self, date_from, date_to, base_domain): + """Query mis.kpi.data over a time period. + + Returns {mis.report.kpi.expression: amount} + """ + dt_from = fields.Date.from_string(date_from) + dt_to = fields.Date.from_string(date_to) + # all data items within or overlapping [date_from, date_to] + date_domain = [("date_from", "<=", date_to), ("date_to", ">=", date_from)] + domain = expression.AND([date_domain, base_domain]) + res = defaultdict(float) + res_avg = defaultdict(list) + for item in self.search(domain): + item_dt_from = fields.Date.from_string(item.date_from) + item_dt_to = fields.Date.from_string(item.date_to) + i_days, item_days = self._intersect_days( + item_dt_from, item_dt_to, dt_from, dt_to + ) + if item.kpi_expression_id.kpi_id.accumulation_method == ACC_SUM: + # accumulate pro-rata overlap between item and reporting period + res[item.kpi_expression_id] += item.amount * i_days / item_days + elif item.kpi_expression_id.kpi_id.accumulation_method == ACC_AVG: + # memorize the amount and number of days overlapping + # the reporting period (used as weight in average) + res_avg[item.kpi_expression_id].append((i_days, item.amount)) + else: + raise UserError( + _( + "Unexpected accumulation method %(method)s for %(name)s.", + method=item.kpi_expression_id.kpi_id.accumulation_method, + name=item.name, + ) + ) + # compute weighted average for ACC_AVG + for kpi_expression, amounts in res_avg.items(): + res[kpi_expression] = sum(d * a for d, a in amounts) / sum( + d for d, a in amounts + ) + return res diff --git a/mis_builder/models/mis_report.py b/mis_builder/models/mis_report.py new file mode 100644 index 0000000..2623f24 --- /dev/null +++ b/mis_builder/models/mis_report.py @@ -0,0 +1,1015 @@ +# Copyright 2014 ACSONE SA/NV () +# Copyright 2020 CorporateHub (https://corporatehub.eu) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import datetime +import logging +import re +import time +from collections import defaultdict + +import dateutil +import pytz + +from flectra import _, api, fields, models +from flectra.exceptions import UserError, ValidationError +from flectra.models import expression as osv_expression +from flectra.tools.safe_eval import ( + datetime as safe_datetime, +) +from flectra.tools.safe_eval import ( + dateutil as safe_dateutil, +) +from flectra.tools.safe_eval import ( + safe_eval, +) +from flectra.tools.safe_eval import ( + time as safe_time, +) + +from .accounting_none import AccountingNone +from .aep import AccountingExpressionProcessor as AEP +from .aggregate import _avg, _max, _min, _sum +from .expression_evaluator import ExpressionEvaluator +from .kpimatrix import KpiMatrix +from .mis_kpi_data import ACC_AVG, ACC_NONE, ACC_SUM +from .mis_report_style import CMP_DIFF, CMP_NONE, CMP_PCT, TYPE_NUM, TYPE_PCT, TYPE_STR +from .mis_safe_eval import DataError +from .simple_array import SimpleArray, named_simple_array + +_logger = logging.getLogger(__name__) + + +class SubKPITupleLengthError(UserError): + pass + + +class SubKPIUnknownTypeError(UserError): + pass + + +class AutoStruct: + def __init__(self, **kwargs): + for k, v in kwargs.items(): + setattr(self, k, v) + + +def _utc_midnight(d, tz_name, add_day=0): + d = fields.Datetime.from_string(d) + datetime.timedelta(days=add_day) + utc_tz = pytz.timezone("UTC") + context_tz = pytz.timezone(tz_name) + local_timestamp = context_tz.localize(d, is_dst=False) + return fields.Datetime.to_string(local_timestamp.astimezone(utc_tz)) + + +def _python_var(var_str): + return re.sub(r"\W|^(?=\d)", "_", var_str).lower() + + +def _is_valid_python_var(name): + return re.match("[_A-Za-z][_a-zA-Z0-9]*$", name) + + +class MisReportKpi(models.Model): + """A KPI is an element (ie a line) of a MIS report. + + In addition to a name and description, it has an expression + to compute it based on queries defined in the MIS report. + It also has various informations defining how to render it + (numeric or percentage or a string, a prefix, a suffix, divider) and + how to render comparison of two values of the KPI. + KPI's have a sequence and are ordered inside the MIS report. + """ + + _name = "mis.report.kpi" + _description = "MIS Report KPI" + + name = fields.Char(required=True) + description = fields.Char(required=True, translate=True) + multi = fields.Boolean() + expression = fields.Char( + compute="_compute_expression", + inverse="_inverse_expression", + ) + expression_ids = fields.One2many( + comodel_name="mis.report.kpi.expression", + inverse_name="kpi_id", + copy=True, + string="Expressions", + ) + auto_expand_accounts = fields.Boolean(string="Display details by account") + auto_expand_accounts_style_id = fields.Many2one( + string="Style for account detail rows", + comodel_name="mis.report.style", + required=False, + ) + style_id = fields.Many2one( + string="Style", comodel_name="mis.report.style", required=False + ) + style_expression = fields.Char( + help="An expression that returns a style depending on the KPI value. " + "Such style is applied on top of the row style.", + ) + type = fields.Selection( + [ + (TYPE_NUM, _("Numeric")), + (TYPE_PCT, _("Percentage")), + (TYPE_STR, _("String")), + ], + required=True, + string="Value type", + default=TYPE_NUM, + ) + compare_method = fields.Selection( + [ + (CMP_DIFF, _("Difference")), + (CMP_PCT, _("Percentage")), + (CMP_NONE, _("None")), + ], + required=True, + string="Comparison Method", + default=CMP_PCT, + ) + accumulation_method = fields.Selection( + [(ACC_SUM, _("Sum")), (ACC_AVG, _("Average")), (ACC_NONE, _("None"))], + required=True, + default=ACC_SUM, + help="Determines how values of this kpi spanning over a " + "time period are transformed to match the reporting period. " + "Sum: values of shorter period are added, " + "values of longest or partially overlapping periods are " + "adjusted pro-rata temporis.\n" + "Average: values of included period are averaged " + "with a pro-rata temporis weight.", + ) + sequence = fields.Integer(default=100) + report_id = fields.Many2one("mis.report", required=True, ondelete="cascade") + + _order = "sequence, id" + + def name_get(self): + res = [] + for rec in self: + name = f"{rec.description} ({rec.name})" + res.append((rec.id, name)) + return res + + @api.model + def name_search(self, name="", args=None, operator="ilike", limit=100): + domain = args or [] + domain += ["|", ("name", operator, name), ("description", operator, name)] + return self.search(domain, limit=limit).name_get() + + @api.constrains("name") + def _check_name(self): + for record in self: + if not _is_valid_python_var(record.name): + raise ValidationError( + _("KPI name ({}) must be a valid python identifier").format( + record.name + ) + ) + + @api.depends("expression_ids.subkpi_id.name", "expression_ids.name") + def _compute_expression(self): + for kpi in self: + exprs = [] + for expression in kpi.expression_ids: + if expression.subkpi_id: + exprs.append( + f"{expression.subkpi_id.name}\xa0=\xa0{expression.name}" + ) + else: + exprs.append(expression.name or "AccountingNone") + kpi.expression = ",\n".join(exprs) + + def _inverse_expression(self): + for kpi in self: + if kpi.multi: + continue + if kpi.expression_ids: + kpi.expression_ids[0].write({"name": kpi.expression, "subkpi_id": None}) + for expression in kpi.expression_ids[1:]: + expression.unlink() + else: + expression = self.env["mis.report.kpi.expression"].new( + {"name": kpi.expression} + ) + kpi.expression_ids += expression + + @api.onchange("multi") + def _onchange_multi(self): + for kpi in self: + if not kpi.multi: + if kpi.expression_ids: + kpi.expression = kpi.expression_ids[0].name + else: + kpi.expression = None + else: + expressions = [] + for subkpi in kpi.report_id.subkpi_ids: + expressions.append( + (0, 0, {"name": kpi.expression, "subkpi_id": subkpi.id}) + ) + kpi.expression_ids = expressions + + @api.onchange("description") + def _onchange_description(self): + """construct name from description""" + if self.description and not self.name: + self.name = _python_var(self.description) + + @api.onchange("type") + def _onchange_type(self): + if self.type == TYPE_NUM: + self.compare_method = CMP_PCT + self.accumulation_method = ACC_SUM + elif self.type == TYPE_PCT: + self.compare_method = CMP_DIFF + self.accumulation_method = ACC_AVG + elif self.type == TYPE_STR: + self.compare_method = CMP_NONE + self.accumulation_method = ACC_NONE + + def _get_expression_str_for_subkpi(self, subkpi): + e = self._get_expression_for_subkpi(subkpi) + return e and e.name or "" + + def _get_expression_for_subkpi(self, subkpi): + for expression in self.expression_ids: + if expression.subkpi_id == subkpi: + return expression + return None + + def _get_expressions(self, subkpis): + if subkpis and self.multi: + return [self._get_expression_for_subkpi(subkpi) for subkpi in subkpis] + else: + if self.expression_ids: + assert len(self.expression_ids) == 1 + assert not self.expression_ids[0].subkpi_id + return self.expression_ids + else: + return [None] + + +class MisReportSubkpi(models.Model): + _name = "mis.report.subkpi" + _description = "MIS Report Sub-KPI" + _order = "sequence, id" + + sequence = fields.Integer(default=1) + report_id = fields.Many2one( + comodel_name="mis.report", required=True, ondelete="cascade" + ) + name = fields.Char(required=True) + description = fields.Char(required=True, translate=True) + expression_ids = fields.One2many("mis.report.kpi.expression", "subkpi_id") + + @api.constrains("name") + def _check_name(self): + for record in self: + if not _is_valid_python_var(record.name): + raise ValidationError( + _("Sub-KPI name ({}) must be a valid python identifier").format( + record.name + ) + ) + + @api.onchange("description") + def _onchange_description(self): + """construct name from description""" + if self.description and not self.name: + self.name = _python_var(self.description) + + +class MisReportKpiExpression(models.Model): + """A KPI Expression is an expression of a line of a MIS report Kpi. + It's used to compute the kpi value. + """ + + _name = "mis.report.kpi.expression" + _description = "MIS Report KPI Expression" + _order = "sequence, name, id" + + sequence = fields.Integer(related="subkpi_id.sequence", store=True, readonly=True) + name = fields.Char(string="Expression") + kpi_id = fields.Many2one("mis.report.kpi", required=True, ondelete="cascade") + # TODO FIXME set readonly=True when onchange('subkpi_ids') below works + subkpi_id = fields.Many2one("mis.report.subkpi", readonly=False, ondelete="cascade") + + _sql_constraints = [ + ( + "subkpi_kpi_unique", + "unique(subkpi_id, kpi_id)", + "Sub KPI must be used once and only once for each KPI", + ) + ] + + def name_get(self): + res = [] + for rec in self: + kpi = rec.kpi_id + subkpi = rec.subkpi_id + if subkpi: + name = "{} / {} ({}.{})".format( + kpi.description, subkpi.description, kpi.name, subkpi.name + ) + else: + name = rec.kpi_id.display_name + res.append((rec.id, name)) + return res + + @api.model + def name_search(self, name="", args=None, operator="ilike", limit=100): + # TODO maybe implement negative search operators, although + # there is not really a use case for that + domain = args or [] + splitted_name = name.split(".", 2) + name_search_domain = [] + if "." in name: + kpi_name, subkpi_name = splitted_name[0], splitted_name[1] + name_search_domain = osv_expression.AND( + [ + name_search_domain, + [ + "|", + "|", + "&", + ("kpi_id.name", "=", kpi_name), + ("subkpi_id.name", operator, subkpi_name), + ("kpi_id.description", operator, name), + ("subkpi_id.description", operator, name), + ], + ] + ) + name_search_domain = osv_expression.OR( + [ + name_search_domain, + [ + "|", + ("kpi_id.name", operator, name), + ("kpi_id.description", operator, name), + ], + ] + ) + domain = osv_expression.AND([domain, name_search_domain]) + return self.search(domain, limit=limit).name_get() + + +class MisReportQuery(models.Model): + """A query to fetch arbitrary data for a MIS report. + + A query works on a model and has a domain and list of fields to fetch. + At runtime, the domain is expanded with a "and" on the date/datetime field. + """ + + _name = "mis.report.query" + _description = "MIS Report Query" + + @api.depends("field_ids") + def _compute_field_names(self): + for record in self: + field_names = [field.name for field in record.field_ids] + record.field_names = ", ".join(field_names) + + name = fields.Char(required=True) + model_id = fields.Many2one("ir.model", required=True, ondelete="cascade") + field_ids = fields.Many2many( + "ir.model.fields", required=True, string="Fields to fetch" + ) + field_names = fields.Char( + compute="_compute_field_names", string="Fetched fields name" + ) + aggregate = fields.Selection( + [ + ("sum", _("Sum")), + ("avg", _("Average")), + ("min", _("Min")), + ("max", _("Max")), + ], + ) + date_field = fields.Many2one( + comodel_name="ir.model.fields", + required=True, + domain=[("ttype", "in", ("date", "datetime"))], + ondelete="cascade", + ) + domain = fields.Char() + report_id = fields.Many2one( + comodel_name="mis.report", required=True, ondelete="cascade" + ) + + _order = "name" + + @api.constrains("name") + def _check_name(self): + for record in self: + if not _is_valid_python_var(record.name): + raise ValidationError( + _("Query name ({}) must be valid python identifier").format( + record.name + ) + ) + + +class MisReport(models.Model): + """A MIS report template (without period information) + + The MIS report holds: + * a list of explicit queries; the result of each query is + stored in a variable with same name as a query, containing as list + of data structures populated with attributes for each fields to fetch; + when queries have an aggregate method and no fields to group, it returns + a data structure with the aggregated fields + * a list of KPI to be evaluated based on the variables resulting + from the accounting data and queries (KPI expressions can references + queries and accounting expression - see AccoutingExpressionProcessor) + """ + + _name = "mis.report" + _description = "MIS Report Template" + + def _default_move_lines_source(self): + return self.env["ir.model"].sudo().search([("model", "=", "account.move.line")]) + + name = fields.Char(required=True, translate=True) + description = fields.Char(required=False, translate=True) + style_id = fields.Many2one(string="Style", comodel_name="mis.report.style") + query_ids = fields.One2many( + "mis.report.query", "report_id", string="Queries", copy=True + ) + kpi_ids = fields.One2many("mis.report.kpi", "report_id", string="KPI's", copy=True) + subkpi_ids = fields.One2many( + "mis.report.subkpi", "report_id", string="Sub KPI", copy=True + ) + subreport_ids = fields.One2many( + "mis.report.subreport", "report_id", string="Sub reports", copy=True + ) + all_kpi_ids = fields.One2many( + comodel_name="mis.report.kpi", + compute="_compute_all_kpi_ids", + help="KPIs of this report and subreports.", + ) + move_lines_source = fields.Many2one( + comodel_name="ir.model", + domain=[ + ("field_id.name", "=", "debit"), + ("field_id.name", "=", "credit"), + ("field_id.name", "=", "account_id"), + ("field_id.name", "=", "date"), + ("field_id.name", "=", "company_id"), + ], + default=_default_move_lines_source, + required=True, + ondelete="cascade", + help="A 'move line like' model, ie having at least debit, credit, " + "date, account_id and company_id fields. This model is the " + "data source for column Actuals.", + ) + account_model = fields.Char(compute="_compute_account_model") + + @api.depends("kpi_ids", "subreport_ids") + def _compute_all_kpi_ids(self): + for rec in self: + rec.all_kpi_ids = rec.kpi_ids | rec.subreport_ids.mapped( + "subreport_id.kpi_ids" + ) + + @api.depends("move_lines_source") + def _compute_account_model(self): + for record in self: + record.account_model = ( + record.move_lines_source.sudo() + .field_id.filtered(lambda r: r.name == "account_id") + .relation + ) + + @api.onchange("subkpi_ids") + def _on_change_subkpi_ids(self): + """Update kpi expressions when subkpis change on the report, + so the list of kpi expressions is always up-to-date""" + for kpi in self.kpi_ids: + if not kpi.multi: + continue + new_subkpis = {subkpi for subkpi in self.subkpi_ids} + expressions = [] + for expression in kpi.expression_ids: + assert expression.subkpi_id # must be true if kpi is multi + if expression.subkpi_id not in self.subkpi_ids: + expressions.append((2, expression.id, None)) # remove + else: + new_subkpis.remove(expression.subkpi_id) # no change + for subkpi in new_subkpis: + # TODO FIXME this does not work, while the remove above works + expressions.append( + (0, None, {"name": False, "subkpi_id": subkpi.id}) + ) # add empty expressions for new subkpis + if expressions: + kpi.expression_ids = expressions + + def get_wizard_report_action(self): + xmlid = "mis_builder.mis_report_instance_view_action" + action = self.env["ir.actions.act_window"]._for_xml_id(xmlid) + view = self.env.ref("mis_builder.wizard_mis_report_instance_view_form") + action.update( + { + "view_id": view.id, + "views": [(view.id, "form")], + "target": "new", + "context": { + "default_report_id": self.id, + "default_name": self.name, + "default_temporary": True, + }, + } + ) + return action + + def copy(self, default=None): + self.ensure_one() + default = dict(default or []) + default["name"] = _("%s (copy)") % self.name + new = super().copy(default) + # after a copy, we have new subkpis, but the expressions + # subkpi_id fields still point to the original one, so + # we patch them after copying + subkpis_by_name = {sk.name: sk for sk in new.subkpi_ids} + for subkpi in self.subkpi_ids: + # search expressions linked to subkpis of the original report + exprs = self.env["mis.report.kpi.expression"].search( + [("kpi_id.report_id", "=", new.id), ("subkpi_id", "=", subkpi.id)] + ) + # and replace them with references to subkpis of the new report + exprs.write({"subkpi_id": subkpis_by_name[subkpi.name].id}) + return new + + # TODO: kpi name cannot be start with query name + + def prepare_kpi_matrix(self, multi_company=False): + self.ensure_one() + kpi_matrix = KpiMatrix(self.env, multi_company, self.account_model) + for kpi in self.kpi_ids: + kpi_matrix.declare_kpi(kpi) + return kpi_matrix + + def _prepare_aep(self, companies, currency=None): + self.ensure_one() + aep = AEP(companies, currency, self.account_model) + for kpi in self.all_kpi_ids: + for expression in kpi.expression_ids: + if expression.name: + aep.parse_expr(expression.name) + aep.done_parsing() + return aep + + def prepare_locals_dict(self): + return { + "sum": _sum, + "min": _min, + "max": _max, + "len": len, + "avg": _avg, + "time": time, + "datetime": datetime, + "dateutil": dateutil, + "AccountingNone": AccountingNone, + "SimpleArray": SimpleArray, + } + + def _fetch_queries(self, date_from, date_to, get_additional_query_filter=None): + self.ensure_one() + res = {} + for query in self.query_ids: + query_sudo = query.sudo() + model = self.env[query_sudo.model_id.model] + eval_context = { + "env": self.env, + "time": safe_time, + "datetime": safe_datetime, + "dateutil": safe_dateutil, + # deprecated + "uid": self.env.uid, + "context": self.env.context, + } + domain = query.domain and safe_eval(query.domain, eval_context) or [] + if get_additional_query_filter: + domain.extend(get_additional_query_filter(query)) + if query_sudo.date_field.ttype == "date": + domain.extend( + [ + (query_sudo.date_field.name, ">=", date_from), + (query_sudo.date_field.name, "<=", date_to), + ] + ) + else: + tz = str(self.env["ir.fields.converter"]._input_tz()) + datetime_from = _utc_midnight(date_from, tz) + datetime_to = _utc_midnight(date_to, tz, add_day=1) + domain.extend( + [ + (query_sudo.date_field.name, ">=", datetime_from), + (query_sudo.date_field.name, "<", datetime_to), + ] + ) + field_names = [f.name for f in query_sudo.field_ids] + all_stored = all([model._fields[f].store for f in field_names]) + if not query.aggregate: + data = model.search_read(domain, field_names) + res[query.name] = [AutoStruct(**d) for d in data] + elif query.aggregate == "sum" and all_stored: + # use read_group to sum stored fields + data = model.read_group(domain, field_names, []) + s = AutoStruct(count=data[0]["__count"]) + for field_name in field_names: + try: + v = data[0][field_name] + except KeyError: + _logger.error( + "field %s not found in read_group " "for %s; not summable?", + field_name, + model._name, + ) + v = AccountingNone + setattr(s, field_name, v) + res[query.name] = s + else: + data = model.search_read(domain, field_names) + s = AutoStruct(count=len(data)) + if query.aggregate == "min": + agg = _min + elif query.aggregate == "max": + agg = _max + elif query.aggregate == "avg": + agg = _avg + elif query.aggregate == "sum": + agg = _sum + for field_name in field_names: + setattr(s, field_name, agg([d[field_name] for d in data])) + res[query.name] = s + return res + + def _declare_and_compute_col( # noqa: C901 (TODO simplify this fnction) + self, + expression_evaluator, + kpi_matrix, + col_key, + col_label, + col_description, + subkpis_filter, + locals_dict, + no_auto_expand_accounts=False, + ): + """This is the main computation loop. + + It evaluates the kpis and puts the results in the KpiMatrix. + Evaluation is done through the expression_evaluator so data sources + can provide their own mean of obtaining the data (eg preset + kpi values for budget, or alternative move line sources). + """ + + if subkpis_filter: + # TODO filter by subkpi names + subkpis = [subkpi for subkpi in self.subkpi_ids if subkpi in subkpis_filter] + else: + subkpis = self.subkpi_ids + + SimpleArray_cls = named_simple_array( + f"SimpleArray_{col_key}", [subkpi.name for subkpi in subkpis] + ) + locals_dict["SimpleArray"] = SimpleArray_cls + + col = kpi_matrix.declare_col( + col_key, col_label, col_description, locals_dict, subkpis + ) + + compute_queue = self.kpi_ids + recompute_queue = [] + while True: + for kpi in compute_queue: + # build the list of expressions for this kpi + expressions = kpi._get_expressions(subkpis) + + ( + vals, + drilldown_args, + name_error, + ) = expression_evaluator.eval_expressions(expressions, locals_dict) + for drilldown_arg in drilldown_args: + if not drilldown_arg: + continue + drilldown_arg["period_id"] = col_key + drilldown_arg["kpi_id"] = kpi.id + + if name_error: + recompute_queue.append(kpi) + else: + # no error, set it in locals_dict so it can be used + # in computing other kpis + if not subkpis or not kpi.multi: + locals_dict[kpi.name] = vals[0] + else: + locals_dict[kpi.name] = SimpleArray_cls(vals) + + # even in case of name error we set the result in the matrix + # so the name error will be displayed if it cannot be + # resolved by recomputing later + + if subkpis and not kpi.multi: + # here we have one expression for this kpi, but + # multiple subkpis (so this kpi is most probably + # a sum or other operation on multi-valued kpis) + if isinstance(vals[0], tuple): + vals = vals[0] + if len(vals) != col.colspan: + raise SubKPITupleLengthError( + _( + 'KPI "%(kpi)s" is valued as a tuple of ' + "length %(length)s while a tuple of length" + "%(expected_length)s is expected.", + kpi=kpi.description, + length=len(vals), + expected_length=col.colspan, + ) + ) + elif isinstance(vals[0], DataError): + vals = (vals[0],) * col.colspan + else: + raise SubKPIUnknownTypeError( + _( + 'KPI "%(kpi)s" has type %(type)s while a tuple was ' + "expected.\n\nThis can be fixed by either:\n\t- " + "Changing the KPI value to a tuple of length " + "%(length)s\nor\n\t- Changing the " + "KPI to `multi` mode and giving an explicit " + "value for each sub-KPI.", + kpi=kpi.description, + type=type(vals[0]), + length=col.colspan, + ) + ) + if len(drilldown_args) != col.colspan: + drilldown_args = [None] * col.colspan + + kpi_matrix.set_values(kpi, col_key, vals, drilldown_args) + + if ( + name_error + or no_auto_expand_accounts + or not kpi.auto_expand_accounts + ): + continue + + for ( + account_id, + vals, + drilldown_args, + _name_error, + ) in expression_evaluator.eval_expressions_by_account( + expressions, locals_dict + ): + for drilldown_arg in drilldown_args: + if not drilldown_arg: + continue + drilldown_arg["period_id"] = col_key + drilldown_arg["kpi_id"] = kpi.id + kpi_matrix.set_values_detail_account( + kpi, col_key, account_id, vals, drilldown_args + ) + + if len(recompute_queue) == 0: + # nothing to recompute, we are done + break + if len(recompute_queue) == len(compute_queue): + # could not compute anything in this iteration + # (ie real Name errors or cyclic dependency) + # so we stop trying + break + # try again + compute_queue = recompute_queue + recompute_queue = [] + + def declare_and_compute_period( + self, + kpi_matrix, + col_key, + col_label, + col_description, + aep, + date_from, + date_to, + subkpis_filter=None, + get_additional_move_line_filter=None, + get_additional_query_filter=None, + locals_dict=None, + aml_model=None, + no_auto_expand_accounts=False, + ): + _logger.warning( + "declare_and_compute_period() is deprecated, " + "use _declare_and_compute_period() instead" + ) + expression_evaluator = ExpressionEvaluator( + aep, + date_from, + date_to, + get_additional_move_line_filter() + if get_additional_move_line_filter + else None, + aml_model, + ) + return self._declare_and_compute_period( + expression_evaluator, + kpi_matrix, + col_key, + col_label, + col_description, + subkpis_filter, + get_additional_query_filter, + locals_dict, + no_auto_expand_accounts, + ) + + def _declare_and_compute_period( + self, + expression_evaluator, + kpi_matrix, + col_key, + col_label, + col_description, + subkpis_filter=None, + get_additional_query_filter=None, + locals_dict=None, + no_auto_expand_accounts=False, + ): + """Evaluate a report for a given period, populating a KpiMatrix. + + :param expression_evaluator: an ExpressionEvaluator instance + :param kpi_matrix: the KpiMatrix object to be populated created + with prepare_kpi_matrix() + :param col_key: the period key to use when populating the KpiMatrix + :param subkpis_filter: a list of subkpis to include in the evaluation + (if empty, use all subkpis) + :param get_additional_query_filter: a bound method that takes a single + query argument and returns a + domain compatible with the query + underlying model + :param locals_dict: personalized locals dictionary used as evaluation + context for the KPI expressions + :param no_auto_expand_accounts: disable expansion of account details + """ + self.ensure_one() + + # prepare the localsdict + if locals_dict is None: + locals_dict = {} + + # Evaluate subreports + for subreport in self.subreport_ids: + subreport_locals_dict = subreport.subreport_id._evaluate( + expression_evaluator, subkpis_filter, get_additional_query_filter + ) + locals_dict[subreport.name] = AutoStruct( + **{ + srk.name: subreport_locals_dict.get(srk.name, AccountingNone) + for srk in subreport.subreport_id.kpi_ids + } + ) + + locals_dict.update(self.prepare_locals_dict()) + locals_dict["date_from"] = fields.Date.from_string( + expression_evaluator.date_from + ) + locals_dict["date_to"] = fields.Date.from_string(expression_evaluator.date_to) + + # fetch non-accounting queries + locals_dict.update( + self._fetch_queries( + expression_evaluator.date_from, + expression_evaluator.date_to, + get_additional_query_filter, + ) + ) + + # use AEP to do the accounting queries + expression_evaluator.aep_do_queries() + + self._declare_and_compute_col( + expression_evaluator, + kpi_matrix, + col_key, + col_label, + col_description, + subkpis_filter, + locals_dict, + no_auto_expand_accounts, + ) + + def get_kpis_by_account_id(self, company): + """Return { account_id: set(kpi) }""" + aep = self._prepare_aep(company) + res = defaultdict(set) + for kpi in self.kpi_ids: + for expression in kpi.expression_ids: + if not expression.name: + continue + account_ids = aep.get_account_ids_for_expr(expression.name) + for account_id in account_ids: + res[account_id].add(kpi) + return res + + @api.model + def _supports_target_move_filter(self, aml_model_name): + return "parent_state" in self.env[aml_model_name]._fields + + @api.model + def _get_target_move_domain(self, target_move, aml_model_name): + """ + Obtain a domain to apply on a move-line-like model, to get posted + entries or return all of them (always excluding cancelled entries). + + :param: target_move: all|posted + :param: aml_model_name: an optional move-line-like model name + (defaults to account.move.line) + """ + if not self._supports_target_move_filter(aml_model_name): + return [] + + if target_move == "posted": + return [("parent_state", "=", "posted")] + elif target_move == "all": + # all (in Flectra 13+, there is also the cancel state that we must ignore) + return [("parent_state", "in", ("posted", "draft"))] + else: + raise UserError(_("Unexpected value %s for target_move.") % (target_move,)) + + def evaluate( + self, + aep, + date_from, + date_to, + target_move="posted", + aml_model=None, + subkpis_filter=None, + get_additional_move_line_filter=None, + get_additional_query_filter=None, + ): + """Simplified method to evaluate a report over a time period. + + :param aep: an AccountingExpressionProcessor instance created + using _prepare_aep() + :param date_from, date_to: the starting and ending date + :param target_move: all|posted + :param aml_model: the name of a model that is compatible with + account.move.line (default: account.move.line) + :param subkpis_filter: a list of subkpis to include in the evaluation + (if empty, use all subkpis) + :param get_additional_move_line_filter: a bound method that takes + no arguments and returns + a domain compatible with + account.move.line + :param get_additional_query_filter: a bound method that takes a single + query argument and returns a + domain compatible with the query + underlying model + :return: a dictionary where keys are KPI names, and values are the + evaluated results; some additional keys might be present: + these should be ignored as they might be removed in + the future. + """ + additional_move_line_filter = self._get_target_move_domain( + target_move, aml_model or "account.move.line" + ) + if get_additional_move_line_filter: + additional_move_line_filter.extend(get_additional_move_line_filter()) + expression_evaluator = ExpressionEvaluator( + aep, + date_from, + date_to, + additional_move_line_filter, + aml_model, + ) + return self._evaluate( + expression_evaluator, subkpis_filter, get_additional_query_filter + ) + + def _evaluate( + self, + expression_evaluator, + subkpis_filter=None, + get_additional_query_filter=None, + ): + locals_dict = {} + kpi_matrix = self.prepare_kpi_matrix() + self._declare_and_compute_period( + expression_evaluator, + kpi_matrix, + col_key=1, + col_label="", + col_description="", + subkpis_filter=subkpis_filter, + get_additional_query_filter=get_additional_query_filter, + locals_dict=locals_dict, + no_auto_expand_accounts=True, + ) + return locals_dict diff --git a/mis_builder/models/mis_report_instance.py b/mis_builder/models/mis_report_instance.py new file mode 100644 index 0000000..89fd983 --- /dev/null +++ b/mis_builder/models/mis_report_instance.py @@ -0,0 +1,922 @@ +# Copyright 2014 ACSONE SA/NV () +# Copyright 2020 CorporateHub (https://corporatehub.eu) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import ast +import datetime +import logging + +from dateutil.relativedelta import relativedelta + +from flectra import _, api, fields, models +from flectra.exceptions import UserError, ValidationError + +from .aep import AccountingExpressionProcessor as AEP +from .expression_evaluator import ExpressionEvaluator + +_logger = logging.getLogger(__name__) + + +SRC_ACTUALS = "actuals" +SRC_ACTUALS_ALT = "actuals_alt" +SRC_CMPCOL = "cmpcol" +SRC_SUMCOL = "sumcol" + +MODE_NONE = "none" +MODE_FIX = "fix" +MODE_REL = "relative" + + +class DateFilterRequired(ValidationError): + pass + + +class DateFilterForbidden(ValidationError): + pass + + +class MisReportInstancePeriodSum(models.Model): + _name = "mis.report.instance.period.sum" + _description = "MIS Report Instance Period Sum" + + period_id = fields.Many2one( + comodel_name="mis.report.instance.period", + string="Parent column", + ondelete="cascade", + required=True, + ) + period_to_sum_id = fields.Many2one( + comodel_name="mis.report.instance.period", + string="Column", + ondelete="restrict", + required=True, + ) + sign = fields.Selection([("+", "+"), ("-", "-")], required=True, default="+") + + @api.constrains("period_id", "period_to_sum_id") + def _check_period_to_sum(self): + for rec in self: + if rec.period_id == rec.period_to_sum_id: + raise ValidationError( + _("You cannot sum period %s with itself.") % rec.period_id.name + ) + + +class MisReportInstancePeriod(models.Model): + """A MIS report instance has the logic to compute + a report template for a given date period. + + Periods have a duration (day, week, fiscal period) and + are defined as an offset relative to a pivot date. + """ + + @api.depends( + "report_instance_id.pivot_date", + "report_instance_id.comparison_mode", + "date_range_type_id", + "type", + "offset", + "duration", + "mode", + "manual_date_from", + "manual_date_to", + "is_ytd", + ) + def _compute_dates(self): + for record in self: + record.date_from = False + record.date_to = False + record.valid = False + report = record.report_instance_id + d = fields.Date.from_string(report.pivot_date) + if not report.comparison_mode: + record.date_from = report.date_from + record.date_to = report.date_to + record.valid = record.date_from and record.date_to + elif record.mode == MODE_NONE: + record.date_from = False + record.date_to = False + record.valid = True + elif record.mode == MODE_FIX: + record.date_from = record.manual_date_from + record.date_to = record.manual_date_to + record.valid = record.date_from and record.date_to + elif record.mode == MODE_REL and record.type == "d": + date_from = d + datetime.timedelta(days=record.offset) + date_to = date_from + datetime.timedelta(days=record.duration - 1) + record.date_from = fields.Date.to_string(date_from) + record.date_to = fields.Date.to_string(date_to) + record.valid = True + elif record.mode == MODE_REL and record.type == "w": + date_from = d - datetime.timedelta(d.weekday()) + date_from = date_from + datetime.timedelta(days=record.offset * 7) + date_to = date_from + datetime.timedelta(days=(7 * record.duration) - 1) + record.date_from = fields.Date.to_string(date_from) + record.date_to = fields.Date.to_string(date_to) + record.valid = True + elif record.mode == MODE_REL and record.type == "m": + date_from = d.replace(day=1) + date_from = date_from + relativedelta(months=record.offset) + date_to = ( + date_from + + relativedelta(months=record.duration - 1) + + relativedelta(day=31) + ) + record.date_from = fields.Date.to_string(date_from) + record.date_to = fields.Date.to_string(date_to) + record.valid = True + elif record.mode == MODE_REL and record.type == "y": + date_from = d.replace(month=1, day=1) + date_from = date_from + relativedelta(years=record.offset) + date_to = date_from + relativedelta(years=record.duration - 1) + date_to = date_to.replace(month=12, day=31) + record.date_from = fields.Date.to_string(date_from) + record.date_to = fields.Date.to_string(date_to) + record.valid = True + elif record.mode == MODE_REL and record.type == "date_range": + date_range_obj = record.env["date.range"] + current_periods = date_range_obj.search( + [ + ("type_id", "=", record.date_range_type_id.id), + ("date_start", "<=", d), + ("date_end", ">=", d), + "|", + ("company_id", "=", False), + ( + "company_id", + "in", + record.report_instance_id.query_company_ids.ids, + ), + ] + ) + if current_periods: + # TODO we take the first date range we found as current + # this may be surprising if several companies + # have overlapping date ranges with different dates + current_period = current_periods[0] + all_periods = date_range_obj.search( + [ + ("type_id", "=", current_period.type_id.id), + ("company_id", "=", current_period.company_id.id), + ], + order="date_start", + ) + p = all_periods.ids.index(current_period.id) + record.offset + if p >= 0 and p + record.duration <= len(all_periods): + periods = all_periods[p : p + record.duration] + record.date_from = periods[0].date_start + record.date_to = periods[-1].date_end + record.valid = True + if record.mode == MODE_REL and record.valid and record.is_ytd: + record.date_from = fields.Date.from_string(record.date_to).replace( + day=1, month=1 + ) + + _name = "mis.report.instance.period" + _description = "MIS Report Instance Period" + + name = fields.Char(required=True, string="Label", translate=True) + mode = fields.Selection( + [ + (MODE_FIX, "Fixed dates"), + (MODE_REL, "Relative to report base date"), + (MODE_NONE, "No date filter"), + ], + required=True, + default=MODE_FIX, + ) + type = fields.Selection( + [ + ("d", _("Day")), + ("w", _("Week")), + ("m", _("Month")), + ("y", _("Year")), + ("date_range", _("Date Range")), + ], + string="Period type", + ) + is_ytd = fields.Boolean( + default=False, + string="Year to date", + help="Forces the start date to Jan 1st of the relevant year", + ) + date_range_type_id = fields.Many2one( + comodel_name="date.range.type", + string="Date Range Type", + domain=[("allow_overlap", "=", False)], + ) + offset = fields.Integer(help="Offset from current period", default=-1) + duration = fields.Integer(help="Number of periods", default=1) + date_from = fields.Date(compute="_compute_dates", string="From (computed)") + date_to = fields.Date(compute="_compute_dates", string="To (computed)") + manual_date_from = fields.Date(string="From") + manual_date_to = fields.Date(string="To") + date_range_id = fields.Many2one(comodel_name="date.range", string="Date Range") + valid = fields.Boolean(compute="_compute_dates", type="boolean") + sequence = fields.Integer(default=100) + report_instance_id = fields.Many2one( + comodel_name="mis.report.instance", + string="Report Instance", + required=True, + ondelete="cascade", + ) + report_id = fields.Many2one(related="report_instance_id.report_id") + normalize_factor = fields.Integer( + string="Factor", + help="Factor to use to normalize the period (used in comparison", + default=1, + ) + subkpi_ids = fields.Many2many("mis.report.subkpi", string="Sub KPI Filter") + + source = fields.Selection( + [ + (SRC_ACTUALS, "Actuals"), + (SRC_ACTUALS_ALT, "Actuals (alternative)"), + (SRC_SUMCOL, "Sum columns"), + (SRC_CMPCOL, "Compare columns"), + ], + default=SRC_ACTUALS, + required=True, + help="Actuals: current data, from accounting and other queries.\n" + "Actuals (alternative): current data from an " + "alternative source (eg a database view providing look-alike " + "account move lines).\n" + "Sum columns: summation (+/-) of other columns.\n" + "Compare to column: compare to other column.\n", + ) + source_aml_model_id = fields.Many2one( + comodel_name="ir.model", + string="Move lines source", + domain=[ + ("field_id.name", "=", "debit"), + ("field_id.name", "=", "credit"), + ("field_id.name", "=", "account_id"), + ("field_id.name", "=", "date"), + ("field_id.name", "=", "company_id"), + ("field_id.model_id.model", "!=", "account.move.line"), + ], + compute="_compute_source_aml_model_id", + store=True, + readonly=False, + help="A 'move line like' model, ie having at least debit, credit, " + "date, account_id and company_id fields.", + ) + source_aml_model_name = fields.Char( + string="Move lines source model name", related="source_aml_model_id.model" + ) + source_sumcol_ids = fields.One2many( + comodel_name="mis.report.instance.period.sum", + inverse_name="period_id", + string="Columns to sum", + ) + source_sumcol_accdet = fields.Boolean(string="Sum account details") + source_cmpcol_from_id = fields.Many2one( + comodel_name="mis.report.instance.period", string="versus" + ) + source_cmpcol_to_id = fields.Many2one( + comodel_name="mis.report.instance.period", string="Compare" + ) + allowed_cmpcol_ids = fields.Many2many( + comodel_name="mis.report.instance.period", compute="_compute_allowed_cmpcol_ids" + ) + analytic_domain = fields.Text( + default="[]", + help="A domain to additionally filter move lines considered in this column.", + ) + + _order = "sequence, id" + + _sql_constraints = [ + ("duration", "CHECK (duration>0)", "Wrong duration, it must be positive!"), + ( + "normalize_factor", + "CHECK (normalize_factor>0)", + "Wrong normalize factor, it must be positive!", + ), + ( + "name_unique", + "unique(name, report_instance_id)", + "Period name should be unique by report", + ), + ] + + @api.depends("source", "report_instance_id.report_id.move_lines_source") + def _compute_source_aml_model_id(self): + for record in self: + if record.source == SRC_ACTUALS: + if not record.report_instance_id.report_id: + raise UserError( + _( + "Please select a report template and/or " + "save the report before adding columns." + ) + ) + # use the default model defined on the report template + record.source_aml_model_id = ( + record.report_instance_id.report_id.move_lines_source + ) + elif record.source in (SRC_SUMCOL, SRC_CMPCOL): + record.source_aml_model_id = False + elif record.source == SRC_ACTUALS_ALT: + pass # let the user choose + + @api.depends("report_instance_id") + def _compute_allowed_cmpcol_ids(self): + """Compute actual records while in NewId context""" + for record in self: + record.allowed_cmpcol_ids = record.report_instance_id.period_ids - record + + @api.constrains("source_aml_model_id") + def _check_source_aml_model_id(self): + for record in self: + if record.source_aml_model_id: + record_model = record.source_aml_model_id.field_id.filtered( + lambda r: r.name == "account_id" + ).relation + report_account_model = record.report_id.account_model + if record_model != report_account_model: + raise ValidationError( + _( + "Actual (alternative) models used in columns must " + "have the same account model in the Account field and must " + "be the same defined in the " + "report template: %s" + ) + % report_account_model + ) + + @api.onchange("date_range_id") + def _onchange_date_range(self): + if self.date_range_id: + self.manual_date_from = self.date_range_id.date_start + self.manual_date_to = self.date_range_id.date_end + + @api.onchange("manual_date_from", "manual_date_to") + def _onchange_dates(self): + if self.date_range_id: + if ( + self.manual_date_from != self.date_range_id.date_start + or self.manual_date_to != self.date_range_id.date_end + ): + self.date_range_id = False + + @api.onchange("source") + def _onchange_source(self): + if self.source in (SRC_SUMCOL, SRC_CMPCOL): + self.mode = MODE_NONE + # Dirty hack to solve bug https://github.com/OCA/mis-builder/issues/393 + if self.source and not self.report_instance_id.id: + self.report_instance_id = self.report_instance_id._origin.id + + def _get_additional_move_line_filter(self): + """Prepare a filter to apply on all move lines + + This filter will be applied with a AND operator on all accounting expression + domains. This hook is intended to be inherited, and is useful to implement + filtering on analytic dimensions or operational units. + + The default filter is obtained from the report-instance-level + ``_get_filter_domain`` method, extended with a per column analytic domain. + + Returns an Flectra domain expression (a python list) compatible with + account.move.line. + """ + self.ensure_one() + if not self.source_aml_model_name: + # This column does not have a move line source, so this additional move line + # filter does not apply + return [] + # First get the report-level filter domain. + domain = self.report_instance_id._get_filter_domain(self.source_aml_model_name) + if self.analytic_domain: + # Then extend it with the column-level analytic domain. + domain.extend(ast.literal_eval(self.analytic_domain)) + return domain + + def _get_additional_query_filter(self, query): + """Prepare an additional filter to apply on the query + + This filter is combined to the query domain with a AND + operator. This hook is intended + to be inherited, and is useful to implement filtering + on analytic dimensions or operational units. + + Returns an Flectra domain expression (a python list) + compatible with the model of the query.""" + self.ensure_one() + return [] + + @api.constrains("mode", "source") + def _check_mode_source(self): + for rec in self: + if rec.source in (SRC_ACTUALS, SRC_ACTUALS_ALT): + if rec.mode == MODE_NONE: + raise DateFilterRequired( + _("A date filter is mandatory for this source " "in column %s.") + % rec.name + ) + elif rec.source in (SRC_SUMCOL, SRC_CMPCOL): + if rec.mode != MODE_NONE: + raise DateFilterForbidden( + _("No date filter is allowed for this source " "in column %s.") + % rec.name + ) + + @api.constrains("source", "source_cmpcol_from_id", "source_cmpcol_to_id") + def _check_source_cmpcol(self): + for rec in self: + if rec.source == SRC_CMPCOL: + if not rec.source_cmpcol_from_id or not rec.source_cmpcol_to_id: + raise ValidationError( + _("Please provide both columns to compare in %s.") % rec.name + ) + if rec.source_cmpcol_from_id == rec or rec.source_cmpcol_to_id == rec: + raise ValidationError( + _("Column %s cannot be compared to itrec.") % rec.name + ) + if ( + rec.source_cmpcol_from_id.report_instance_id + != rec.report_instance_id + or rec.source_cmpcol_to_id.report_instance_id + != rec.report_instance_id + ): + raise ValidationError( + _("Columns to compare must belong to the same report " "in %s") + % rec.name + ) + + def copy_data(self, default=None): + if self.source == SRC_CMPCOL: + # While duplicating a MIS report instance, comparison columns are + # ignored because they would raise an error, as they keep the old + # `source_cmpcol_from_id` and `source_cmpcol_to_id` from the + # original record. + return [ + False, + ] + return super().copy_data(default=default) + + +class MisReportInstance(models.Model): + """The MIS report instance combines everything to compute + a MIS report template for a set of periods.""" + + @api.depends("date") + def _compute_pivot_date(self): + for record in self: + if self.env.context.get("mis_pivot_date"): + record.pivot_date = self.env.context.get("mis_pivot_date") + elif record.date: + record.pivot_date = record.date + else: + record.pivot_date = fields.Date.context_today(record) + + _name = "mis.report.instance" + _description = "MIS Report Instance" + + name = fields.Char(required=True, translate=True) + description = fields.Char(related="report_id.description", readonly=True) + date = fields.Date( + string="Base date", help="Report base date " "(leave empty to use current date)" + ) + pivot_date = fields.Date(compute="_compute_pivot_date") + report_id = fields.Many2one("mis.report", required=True, string="Report") + period_ids = fields.One2many( + comodel_name="mis.report.instance.period", + inverse_name="report_instance_id", + required=True, + string="Periods", + copy=True, + ) + target_move = fields.Selection( + [("posted", "All Posted Entries"), ("all", "All Entries")], + string="Target Moves", + required=True, + default="posted", + ) + company_id = fields.Many2one( + comodel_name="res.company", + string="Allowed company", + default=lambda self: self.env.company, + required=False, + ) + multi_company = fields.Boolean( + string="Multiple companies", + help="Check if you wish to specify several companies to be searched for data.", + default=False, + ) + company_ids = fields.Many2many( + comodel_name="res.company", + string="Allowed companies", + help="Select companies for which data will be searched.", + ) + query_company_ids = fields.Many2many( + string="Effective companies", + comodel_name="res.company", + compute="_compute_query_company_ids", + help="Companies for which data will be searched.", + ) + currency_id = fields.Many2one( + comodel_name="res.currency", + string="Currency", + help="Select target currency for the report. " + "Required if companies have different currencies.", + required=False, + ) + landscape_pdf = fields.Boolean(string="Landscape PDF") + no_auto_expand_accounts = fields.Boolean(string="Disable account details expansion") + display_columns_description = fields.Boolean( + help="Display the date range details in the column headers." + ) + comparison_mode = fields.Boolean( + compute="_compute_comparison_mode", inverse="_inverse_comparison_mode" + ) + date_range_id = fields.Many2one(comodel_name="date.range", string="Date Range") + date_from = fields.Date(string="From") + date_to = fields.Date(string="To") + temporary = fields.Boolean(default=False) + source_aml_model_id = fields.Many2one( + related="report_id.move_lines_source", + readonly=True, + ) + source_aml_model_name = fields.Char( + related="source_aml_model_id.model", + related_sudo=True, + readonly=True, + ) + analytic_domain = fields.Text( + default="[]", + help=( + "A domain to additionally filter move lines considered in this report. " + "Caution: when using different move line sources in different columns, " + "such as budgets by account, " + "make sure to use only fields that are available in " + "all move line sources." + ), + ) + widget_show_filters = fields.Boolean( + default=True, + string="Show filters box", + help="Show the filter bar in the report widget.", + ) + widget_show_settings_button = fields.Boolean( + default=False, + string="Show settings button", + help="Show the settings button in the report widget.", + ) + widget_show_pivot_date = fields.Boolean( + default=False, + string="Show Pivot Date", + help="Show the Pivot Date in the report widget filter bar.", + ) + widget_search_view_id = fields.Many2one( + comodel_name="ir.ui.view", + domain='[("type", "=", "search"), ("model", "=", source_aml_model_name)]', + compute="_compute_widget_search_view_id", + store=True, + readonly=False, + string="Filter box search view", + help="Search view to customize the filter box in the report widget.", + ) + + @api.depends("report_id.move_lines_source") + def _compute_widget_search_view_id(self): + for rec in self: + rec.widget_search_view_id = ( + self.env["ir.ui.view"] + .sudo() + .search( + [ + ("type", "=", "search"), + ("model", "=", rec.report_id.move_lines_source.model), + ], + limit=1, + ) + ) + + @api.onchange("multi_company") + def _onchange_company(self): + if self.multi_company: + self.company_ids |= self.company_id + self.company_id = False + else: + prev = self.company_ids.ids + company = False + if self.env.company.id in prev or not prev: + company = self.env.company + else: + for c_id in prev: + if c_id in self.env.companies.ids: + company = self.env["res.company"].browse(c_id) + break + + self.company_id = company + self.company_ids = False + + @api.depends("multi_company", "company_id", "company_ids") + @api.depends_context("allowed_company_ids") + def _compute_query_company_ids(self): + for rec in self: + if rec.multi_company: + if not rec.company_ids: + rec.query_company_ids = self.env.companies + else: + rec.query_company_ids = rec.company_ids & self.env.companies + else: + rec.query_company_ids = rec.company_id or self.env.company + + @api.model + def get_filter_descriptions(self): + return [] + + def save_report(self): + self.ensure_one() + self.write({"temporary": False}) + xmlid = "mis_builder.mis_report_instance_view_action" + action = self.env["ir.actions.act_window"]._for_xml_id(xmlid) + view = self.env.ref("mis_builder.mis_report_instance_view_form") + action.update({"views": [(view.id, "form")], "res_id": self.id}) + return action + + @api.model + def _vacuum_report(self, hours=24): + clear_date = fields.Datetime.to_string( + datetime.datetime.now() - datetime.timedelta(hours=hours) + ) + reports = self.search( + [("write_date", "<", clear_date), ("temporary", "=", True)] + ) + _logger.debug("Vacuum %s Temporary MIS Builder Report", len(reports)) + return reports.unlink() + + def copy(self, default=None): + self.ensure_one() + default = dict(default or {}) + default["name"] = _("%s (copy)") % self.name + return super().copy(default) + + def _format_date(self, date): + # format date following user language + lang_model = self.env["res.lang"] + lang = lang_model._lang_get(self.env.user.lang) + date_format = lang.date_format + return datetime.datetime.strftime(fields.Date.from_string(date), date_format) + + @api.depends("date_from") + def _compute_comparison_mode(self): + for instance in self: + instance.comparison_mode = bool(instance.period_ids) and not bool( + instance.date_from + ) + + def _inverse_comparison_mode(self): + for record in self: + if not record.comparison_mode: + if not record.date_from: + record.date_from = fields.Date.context_today(self) + if not record.date_to: + record.date_to = fields.Date.context_today(self) + record.period_ids.unlink() + record.write({"period_ids": [(0, 0, {"name": "Default"})]}) + else: + record.date_from = None + record.date_to = None + + @api.onchange("date_range_id") + def _onchange_date_range(self): + if self.date_range_id: + self.date_from = self.date_range_id.date_start + self.date_to = self.date_range_id.date_end + + @api.onchange("date_from", "date_to") + def _onchange_dates(self): + if self.date_range_id: + if ( + self.date_from != self.date_range_id.date_start + or self.date_to != self.date_range_id.date_end + ): + self.date_range_id = False + + def _add_analytic_filters_to_context(self, context): + self.ensure_one() + context["mis_analytic_domain"] = ast.literal_eval(self.analytic_domain) + + def _get_filter_domain(self, source_aml_model_name): + """Return the domain to filter the source move lines. + + It combines + - the draft/posted filter (if the move line source has a parent_state + field). + - the analytic domain field configured on this report instance + - a mis_analytic_domain obtained from the context (typically populated + by the mis builder widget) + """ + domain = [] + # draft/posted filter + domain.extend( + self.report_id._get_target_move_domain( + self.target_move, source_aml_model_name + ) + ) + # report-level analytic domain filter + domain.extend(ast.literal_eval(self.analytic_domain)) + # contextual analytic domain filter + domain.extend(self.env.context.get("mis_analytic_domain", [])) + return domain + + @api.model + def get_views(self, views, options=None): + """ + Override to get correct form view on dashboard + """ + context = self.env.context + if ( + context.get("from_dashboard") + and context.get("active_model") == "mis.report.instance" + ): + view_id = self.env.ref( + "mis_builder." "mis_report_instance_result_view_form" + ) + mis_report_form_view = view_id and [view_id.id, "form"] + for view in views: + if view and view[1] == "form": + views.remove(view) + views.append(mis_report_form_view) + result = super().get_views(views, options) + return result + + def preview(self): + self.ensure_one() + view_id = self.env.ref("mis_builder." "mis_report_instance_result_view_form") + return { + "type": "ir.actions.act_window", + "res_model": "mis.report.instance", + "res_id": self.id, + "view_mode": "form", + "view_id": view_id.id, + "target": "current", + "context": self.env.context, + } + + def print_pdf(self): + self.ensure_one() + return ( + self.env.ref("mis_builder.qweb_pdf_export") + .with_context(landscape=self.landscape_pdf) + .report_action(self, data=dict(dummy=True)) # required to propagate context + ) + + def export_xls(self): + self.ensure_one() + return self.env.ref("mis_builder.xls_export").report_action( + self, data=dict(dummy=True) + ) # required to propagate context + + def display_settings(self): + assert len(self.ids) <= 1 + view_id = self.env.ref("mis_builder.mis_report_instance_view_form") + return { + "type": "ir.actions.act_window", + "res_model": "mis.report.instance", + "res_id": self.id if self.id else False, + "view_mode": "form", + "views": [(view_id.id, "form")], + "view_id": view_id.id, + "target": "current", + } + + def _add_column_move_lines(self, aep, kpi_matrix, period, label, description): + if not period.date_from or not period.date_to: + raise UserError( + _("Column %s with move lines source must have from/to dates.") + % (period.name,) + ) + expression_evaluator = ExpressionEvaluator( + aep, + period.date_from, + period.date_to, + period._get_additional_move_line_filter(), + period.source_aml_model_name, + ) + self.report_id._declare_and_compute_period( + expression_evaluator, + kpi_matrix, + period.id, + label, + description, + period.subkpi_ids, + period._get_additional_query_filter, + no_auto_expand_accounts=self.no_auto_expand_accounts, + ) + + def _add_column_sumcol(self, aep, kpi_matrix, period, label, description): + kpi_matrix.declare_sum( + period.id, + [(c.sign, c.period_to_sum_id.id) for c in period.source_sumcol_ids], + label, + description, + period.source_sumcol_accdet, + ) + + def _add_column_cmpcol(self, aep, kpi_matrix, period, label, description): + kpi_matrix.declare_comparison( + period.id, + period.source_cmpcol_to_id.id, + period.source_cmpcol_from_id.id, + label, + description, + ) + + def _add_column(self, aep, kpi_matrix, period, label, description): + if period.source == SRC_ACTUALS: + return self._add_column_move_lines( + aep, kpi_matrix, period, label, description + ) + elif period.source == SRC_ACTUALS_ALT: + return self._add_column_move_lines( + aep, kpi_matrix, period, label, description + ) + elif period.source == SRC_SUMCOL: + return self._add_column_sumcol(aep, kpi_matrix, period, label, description) + elif period.source == SRC_CMPCOL: + return self._add_column_cmpcol(aep, kpi_matrix, period, label, description) + + def _compute_matrix(self): + """Compute a report and return a KpiMatrix. + + The key attribute of the matrix columns (KpiMatrixCol) + is guaranteed to be the id of the mis.report.instance.period. + """ + self.ensure_one() + aep = self.report_id._prepare_aep(self.query_company_ids, self.currency_id) + kpi_matrix = self.report_id.prepare_kpi_matrix(self.multi_company) + for period in self.period_ids: + description = None + if period.mode == MODE_NONE: + pass + elif not self.display_columns_description: + pass + elif period.date_from == period.date_to and period.date_from: + description = self._format_date(period.date_from) + elif period.date_from and period.date_to: + date_from = self._format_date(period.date_from) + date_to = self._format_date(period.date_to) + description = _( + "from %(date_from)s to %(date_to)s", + date_from=date_from, + date_to=date_to, + ) + self._add_column(aep, kpi_matrix, period, period.name, description) + kpi_matrix.compute_comparisons() + kpi_matrix.compute_sums() + return kpi_matrix + + def compute(self): + self.ensure_one() + kpi_matrix = self._compute_matrix() + return kpi_matrix.as_dict() + + def drilldown(self, arg): + self.ensure_one() + period_id = arg.get("period_id") + expr = arg.get("expr") + account_id = arg.get("account_id") + if period_id and expr and AEP.has_account_var(expr): + period = self.env["mis.report.instance.period"].browse(period_id) + aep = AEP( + self.query_company_ids, self.currency_id, self.report_id.account_model + ) + aep.parse_expr(expr) + aep.done_parsing() + domain = aep.get_aml_domain_for_expr( + expr, + period.date_from, + period.date_to, + account_id, + ) + domain.extend(period._get_additional_move_line_filter()) + return { + "name": self._get_drilldown_action_name(arg), + "domain": domain, + "type": "ir.actions.act_window", + "res_model": period.source_aml_model_name, + "views": [[False, "list"], [False, "form"]], + "view_mode": "list", + "target": "current", + "context": {"active_test": False}, + } + else: + return False + + def _get_drilldown_action_name(self, arg): + kpi_id = arg.get("kpi_id") + kpi = self.env["mis.report.kpi"].browse(kpi_id) + period_id = arg.get("period_id") + period = self.env["mis.report.instance.period"].browse(period_id) + account_id = arg.get("account_id") + + if account_id: + account = self.env[self.report_id.account_model].browse(account_id) + return f"{kpi.description} - {account.display_name} - {period.display_name}" + else: + return f"{kpi.description} - {period.display_name}" diff --git a/mis_builder/models/mis_report_style.py b/mis_builder/models/mis_report_style.py new file mode 100644 index 0000000..0fc7ed0 --- /dev/null +++ b/mis_builder/models/mis_report_style.py @@ -0,0 +1,311 @@ +# Copyright 2016 Therp BV () +# Copyright 2016 ACSONE SA/NV () +# Copyright 2020 CorporateHub (https://corporatehub.eu) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import sys + +from flectra import _, api, fields, models +from flectra.exceptions import ValidationError + +from .accounting_none import AccountingNone +from .data_error import DataError + +if sys.version_info.major >= 3: + unicode = str + + +class PropertyDict(dict): + def __getattr__(self, name): + return self.get(name) + + def copy(self): # pylint: disable=copy-wo-api-one,method-required-super + return PropertyDict(self) + + +PROPS = [ + "color", + "background_color", + "font_style", + "font_weight", + "font_size", + "indent_level", + "prefix", + "suffix", + "dp", + "divider", + "hide_empty", + "hide_always", +] + +TYPE_NUM = "num" +TYPE_PCT = "pct" +TYPE_STR = "str" + +CMP_DIFF = "diff" +CMP_PCT = "pct" +CMP_NONE = "none" + + +class MisReportKpiStyle(models.Model): + _name = "mis.report.style" + _description = "MIS Report Style" + + @api.constrains("indent_level") + def check_positive_val(self): + for record in self: + if record.indent_level < 0: + raise ValidationError( + _("Indent level must be greater than " "or equal to 0") + ) + + _font_style_selection = [("normal", "Normal"), ("italic", "Italic")] + + _font_weight_selection = [("nornal", "Normal"), ("bold", "Bold")] + + _font_size_selection = [ + ("medium", "medium"), + ("xx-small", "xx-small"), + ("x-small", "x-small"), + ("small", "small"), + ("large", "large"), + ("x-large", "x-large"), + ("xx-large", "xx-large"), + ] + + _font_size_to_xlsx_size = { + "medium": 11, + "xx-small": 5, + "x-small": 7, + "small": 9, + "large": 13, + "x-large": 15, + "xx-large": 17, + } + + # style name + # TODO enforce uniqueness + name = fields.Char(string="Style name", required=True) + + # color + color_inherit = fields.Boolean(default=True) + color = fields.Char( + string="Text color", + help="Text color in valid RGB code (from #000000 to #FFFFFF)", + default="#000000", + ) + background_color_inherit = fields.Boolean(default=True) + background_color = fields.Char( + help="Background color in valid RGB code (from #000000 to #FFFFFF)", + default="#FFFFFF", + ) + # font + font_style_inherit = fields.Boolean(default=True) + font_style = fields.Selection(selection=_font_style_selection) + font_weight_inherit = fields.Boolean(default=True) + font_weight = fields.Selection(selection=_font_weight_selection) + font_size_inherit = fields.Boolean(default=True) + font_size = fields.Selection(selection=_font_size_selection) + # indent + indent_level_inherit = fields.Boolean(default=True) + indent_level = fields.Integer() + # number format + prefix_inherit = fields.Boolean(default=True) + prefix = fields.Char() + suffix_inherit = fields.Boolean(default=True) + suffix = fields.Char() + dp_inherit = fields.Boolean(default=True) + dp = fields.Integer(string="Rounding", default=0) + divider_inherit = fields.Boolean(default=True) + divider = fields.Selection( + [ + ("1e-6", _("µ")), + ("1e-3", _("m")), + ("1", _("1")), + ("1e3", _("k")), + ("1e6", _("M")), + ], + string="Factor", + default="1", + ) + hide_empty_inherit = fields.Boolean(default=True) + hide_empty = fields.Boolean(default=False) + hide_always_inherit = fields.Boolean(default=True) + hide_always = fields.Boolean(default=False) + + @api.model + def merge(self, styles): + """Merge several styles, giving priority to the last. + + Returns a PropertyDict of style properties. + """ + r = PropertyDict() + for style in styles: + if not style: + continue + if isinstance(style, dict): + r.update(style) + else: + for prop in PROPS: + inherit = getattr(style, prop + "_inherit", None) + if not inherit: + value = getattr(style, prop) + r[prop] = value + return r + + @api.model + def render(self, lang, style_props, var_type, value, sign="-"): + if var_type == TYPE_NUM: + return self.render_num( + lang, + value, + style_props.divider, + style_props.dp, + style_props.prefix, + style_props.suffix, + sign=sign, + ) + elif var_type == TYPE_PCT: + return self.render_pct(lang, value, style_props.dp, sign=sign) + else: + return self.render_str(lang, value) + + @api.model + def render_num( + self, lang, value, divider=1.0, dp=0, prefix=None, suffix=None, sign="-" + ): + # format number following user language + if value is None or value is AccountingNone: + return "" + value = round(value / float(divider or 1), dp or 0) or 0 + r = lang.format("%%%s.%df" % (sign, dp or 0), value, grouping=True) + r = r.replace("-", "\N{NON-BREAKING HYPHEN}") + if prefix: + r = prefix + "\N{NO-BREAK SPACE}" + r + if suffix: + r = r + "\N{NO-BREAK SPACE}" + suffix + return r + + @api.model + def render_pct(self, lang, value, dp=1, sign="-"): + return self.render_num(lang, value, divider=0.01, dp=dp, suffix="%", sign=sign) + + @api.model + def render_str(self, lang, value): + if value is None or value is AccountingNone: + return "" + return unicode(value) + + @api.model + def compare_and_render( + self, + lang, + style_props, + var_type, + compare_method, + value, + base_value, + average_value=1, + average_base_value=1, + ): + """ + :param lang: res.lang record + :param style_props: PropertyDict with style properties + :param var_type: num, pct or str + :param compare_method: diff, pct, none + :param value: value to compare (value - base_value) + :param base_value: value compared with (value - base_value) + :param average_value: value = value / average_value + :param average_base_value: base_value = base_value / average_base_value + :return: tuple with 4 elements + - delta = comparison result (Float or AccountingNone) + - delta_r = delta rendered in formatted string (String) + - delta_style = PropertyDict with style properties + - delta_type = Type of the comparison result (num or pct) + """ + delta = AccountingNone + delta_r = "" + delta_style = style_props.copy() + delta_type = TYPE_NUM + if isinstance(value, DataError) or isinstance(base_value, DataError): + return AccountingNone, "", delta_style, delta_type + if value is None: + value = AccountingNone + if base_value is None: + base_value = AccountingNone + if var_type == TYPE_PCT: + delta = value - base_value + if delta and round(delta, (style_props.dp or 0) + 2) != 0: + delta_style.update(divider=0.01, prefix="", suffix=_("pp")) + else: + delta = AccountingNone + elif var_type == TYPE_NUM: + if value and average_value: + # pylint: disable=redefined-variable-type + value = value / float(average_value) + if base_value and average_base_value: + # pylint: disable=redefined-variable-type + base_value = base_value / float(average_base_value) + if compare_method == CMP_DIFF: + delta = value - base_value + if delta and round(delta, style_props.dp or 0) != 0: + pass + else: + delta = AccountingNone + elif compare_method == CMP_PCT: + if base_value and round(base_value, style_props.dp or 0) != 0: + delta = (value - base_value) / abs(base_value) + if delta and round(delta, 3) != 0: + delta_style.update(dp=1) + delta_type = TYPE_PCT + else: + delta = AccountingNone + if delta is not AccountingNone: + delta_r = self.render(lang, delta_style, delta_type, delta, sign="+") + return delta, delta_r, delta_style, delta_type + + @api.model + def to_xlsx_style(self, var_type, props, no_indent=False): + xlsx_attributes = [ + ("italic", props.font_style == "italic"), + ("bold", props.font_weight == "bold"), + ("size", self._font_size_to_xlsx_size.get(props.font_size, 11)), + ("font_color", props.color), + ("bg_color", props.background_color), + ] + if var_type == TYPE_NUM: + num_format = "#,##0" + if props.dp: + num_format += "." + num_format += "0" * props.dp + if props.prefix: + num_format = f'"{props.prefix} "{num_format}' + if props.suffix: + num_format = f'{num_format}" {props.suffix}"' + xlsx_attributes.append(("num_format", num_format)) + elif var_type == TYPE_PCT: + num_format = "0" + if props.dp: + num_format += "." + num_format += "0" * props.dp + num_format += "%" + xlsx_attributes.append(("num_format", num_format)) + if props.indent_level is not None and not no_indent: + xlsx_attributes.append(("indent", props.indent_level)) + return dict([a for a in xlsx_attributes if a[1] is not None]) + + @api.model + def to_css_style(self, props, no_indent=False): + css_attributes = [ + ("font-style", props.font_style), + ("font-weight", props.font_weight), + ("font-size", props.font_size), + ("color", props.color), + ("background-color", props.background_color), + ] + if props.indent_level is not None and not no_indent: + css_attributes.append(("text-indent", f"{props.indent_level}em")) + return ( + "; ".join(["{}: {}".format(*a) for a in css_attributes if a[1] is not None]) + or None + ) diff --git a/mis_builder/models/mis_report_subreport.py b/mis_builder/models/mis_report_subreport.py new file mode 100644 index 0000000..5cdb894 --- /dev/null +++ b/mis_builder/models/mis_report_subreport.py @@ -0,0 +1,74 @@ +# Copyright 2020 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from flectra import _, api, fields, models +from flectra.exceptions import ValidationError + +from .mis_report import _is_valid_python_var + + +class ParentLoopError(ValidationError): + pass + + +class InvalidNameError(ValidationError): + pass + + +class MisReportSubReport(models.Model): + _name = "mis.report.subreport" + _description = "MIS Report - Sub Reports Relation" + + name = fields.Char(required=True) + report_id = fields.Many2one( + comodel_name="mis.report", + required=True, + ondelete="cascade", + ) + subreport_id = fields.Many2one( + comodel_name="mis.report", + required=True, + ondelete="restrict", + ) + + _sql_constraints = [ + ( + "name_unique", + "unique(name, report_id)", + "Subreport name should be unique by report", + ), + ( + "subreport_unique", + "unique(subreport_id, report_id)", + "Should not include the same report more than once as sub report " + "of a given report", + ), + ] + + @api.constrains("name") + def _check_name(self): + for rec in self: + if not _is_valid_python_var(rec.name): + raise InvalidNameError( + _("Subreport name ({}) must be a valid python identifier").format( + rec.name + ) + ) + + @api.constrains("report_id", "subreport_id") + def _check_loop(self): + def _has_subreport(reports, report): + if not reports: + return False + if report in reports: + return True + return any( + _has_subreport(r.subreport_ids.mapped("subreport_id"), report) + for r in reports + ) + + for rec in self: + if _has_subreport(rec.subreport_id, rec.report_id): + raise ParentLoopError(_("Subreport loop detected")) + + # TODO check subkpi compatibility in subreports diff --git a/mis_builder/models/mis_safe_eval.py b/mis_builder/models/mis_safe_eval.py new file mode 100644 index 0000000..6d62722 --- /dev/null +++ b/mis_builder/models/mis_safe_eval.py @@ -0,0 +1,33 @@ +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import traceback + +from flectra.tools.safe_eval import _BUILTINS, _SAFE_OPCODES, test_expr + +from .data_error import DataError, NameDataError + +__all__ = ["mis_safe_eval"] + + +def mis_safe_eval(expr, locals_dict): + """Evaluate an expression using safe_eval + + Returns the evaluated value or DataError. + + Raises NameError if the evaluation depends on a variable that is not + present in local_dict. + """ + try: + c = test_expr(expr, _SAFE_OPCODES, mode="eval") + globals_dict = {"__builtins__": _BUILTINS} + # pylint: disable=eval-used,eval-referenced + val = eval(c, globals_dict, locals_dict) + except NameError: + val = NameDataError("#NAME", traceback.format_exc()) + except ZeroDivisionError: + # pylint: disable=redefined-variable-type + val = DataError("#DIV/0", traceback.format_exc()) + except Exception: + val = DataError("#ERR", traceback.format_exc()) + return val diff --git a/mis_builder/models/prorata_read_group_mixin.py b/mis_builder/models/prorata_read_group_mixin.py new file mode 100644 index 0000000..4e6543d --- /dev/null +++ b/mis_builder/models/prorata_read_group_mixin.py @@ -0,0 +1,96 @@ +# Copyright 2020 ACSONE SA/NV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from flectra import _, api, fields, models +from flectra.exceptions import UserError +from flectra.fields import Date + +from .mis_kpi_data import intersect_days + + +class ProRataReadGroupMixin(models.AbstractModel): + _name = "prorata.read_group.mixin" + _description = "Adapt model with date_from/date_to for pro-rata temporis read_group" + + date_from = fields.Date(required=True) + date_to = fields.Date(required=True) + date = fields.Date( + compute=lambda self: None, + search="_search_date", + help=( + "Dummy field that adapts searches on date " + "to searches on date_from/date_to." + ), + ) + + def _search_date(self, operator, value): + if operator in (">=", ">"): + return [("date_to", operator, value)] + elif operator in ("<=", "<"): + return [("date_from", operator, value)] + raise UserError( + _("Unsupported operator %s for searching on date") % (operator,) + ) + + @api.model + def _intersect_days(self, item_dt_from, item_dt_to, dt_from, dt_to): + return intersect_days(item_dt_from, item_dt_to, dt_from, dt_to) + + @api.model + def read_group( + self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True + ): + """Override read_group to perform pro-rata temporis adjustments. + + When read_group is invoked with a domain that filters on + a time period (date >= from and date <= to, or + date_from <= to and date_to >= from), adjust the accumulated + values pro-rata temporis. + """ + date_from = None + date_to = None + assert isinstance(domain, list) + for domain_item in domain: + if isinstance(domain_item, list | tuple): + field, op, value = domain_item + if field == "date" and op == ">=": + date_from = value + elif field == "date_to" and op == ">=": + date_from = value + elif field == "date" and op == "<=": + date_to = value + elif field == "date_from" and op == "<=": + date_to = value + if ( + date_from is not None + and date_to is not None + and not any(":" in f for f in fields) + ): + dt_from = Date.from_string(date_from) + dt_to = Date.from_string(date_to) + res = {} + sum_fields = set(fields) - set(groupby) + read_fields = set(fields + ["date_from", "date_to"]) + for item in self.search(domain).read(read_fields): + key = tuple(item[k] for k in groupby) + if key not in res: + res[key] = {k: item[k] for k in groupby} + res[key].update({k: 0.0 for k in sum_fields}) + res_item = res[key] + for sum_field in sum_fields: + item_dt_from = Date.from_string(item["date_from"]) + item_dt_to = Date.from_string(item["date_to"]) + i_days, item_days = self._intersect_days( + item_dt_from, item_dt_to, dt_from, dt_to + ) + res_item[sum_field] += item[sum_field] * i_days / item_days + return res.values() + return super().read_group( + domain, + fields, + groupby, + offset=offset, + limit=limit, + orderby=orderby, + lazy=lazy, + ) diff --git a/mis_builder/models/simple_array.py b/mis_builder/models/simple_array.py new file mode 100644 index 0000000..fa67b42 --- /dev/null +++ b/mis_builder/models/simple_array.py @@ -0,0 +1,184 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +""" A trivial immutable array that supports basic arithmetic operations. + +>>> a = SimpleArray((1.0, 2.0, 3.0)) +>>> b = SimpleArray((4.0, 5.0, 6.0)) +>>> t = (4.0, 5.0, 6.0) +>>> +a +SimpleArray((1.0, 2.0, 3.0)) +>>> -a +SimpleArray((-1.0, -2.0, -3.0)) +>>> a + b +SimpleArray((5.0, 7.0, 9.0)) +>>> b + a +SimpleArray((5.0, 7.0, 9.0)) +>>> a + t +SimpleArray((5.0, 7.0, 9.0)) +>>> t + a +SimpleArray((5.0, 7.0, 9.0)) +>>> a - b +SimpleArray((-3.0, -3.0, -3.0)) +>>> a - t +SimpleArray((-3.0, -3.0, -3.0)) +>>> t - a +SimpleArray((3.0, 3.0, 3.0)) +>>> a * b +SimpleArray((4.0, 10.0, 18.0)) +>>> b * a +SimpleArray((4.0, 10.0, 18.0)) +>>> a * t +SimpleArray((4.0, 10.0, 18.0)) +>>> t * a +SimpleArray((4.0, 10.0, 18.0)) +>>> a / b +SimpleArray((0.25, 0.4, 0.5)) +>>> b / a +SimpleArray((4.0, 2.5, 2.0)) +>>> a / t +SimpleArray((0.25, 0.4, 0.5)) +>>> t / a +SimpleArray((4.0, 2.5, 2.0)) +>>> b / 2 +SimpleArray((2.0, 2.5, 3.0)) +>>> 2 * b +SimpleArray((8.0, 10.0, 12.0)) +>>> 1 - b +SimpleArray((-3.0, -4.0, -5.0)) +>>> b += 2 ; b +SimpleArray((6.0, 7.0, 8.0)) +>>> a / ((1.0, 0.0, 1.0)) +SimpleArray((1.0, DataError('#DIV/0'), 3.0)) +>>> a / 0.0 +SimpleArray((DataError('#DIV/0'), DataError('#DIV/0'), DataError('#DIV/0'))) +>>> a * ((1.0, 'a', 1.0)) +SimpleArray((1.0, DataError('#ERR'), 3.0)) +>>> 6.0 / a +SimpleArray((6.0, 3.0, 2.0)) +>>> Vector = named_simple_array('Vector', ('x', 'y')) +>>> p1 = Vector((1, 2)) +>>> print(p1.x, p1.y, p1) +1 2 Vector((1, 2)) +>>> p2 = Vector((2, 3)) +>>> print(p2.x, p2.y, p2) +2 3 Vector((2, 3)) +>>> p3 = p1 + p2 +>>> print(p3.x, p3.y, p3) +3 5 Vector((3, 5)) +>>> p4 = (4, 5) + p2 +>>> print(p4.x, p4.y, p4) +6 8 Vector((6, 8)) +>>> p1 * 2 +Vector((2, 4)) +>>> 2 * p1 +Vector((2, 4)) +>>> p1 - 1 +Vector((0, 1)) +>>> 1 - p1 +Vector((0, -1)) +>>> p1 / 2.0 +Vector((0.5, 1.0)) +>>> v = 2.0 / p1 +>>> print(v.x, v.y, v) +2.0 1.0 Vector((2.0, 1.0)) +""" + +import itertools +import operator +import traceback + +from .data_error import DataError + +__all__ = ["SimpleArray", "named_simple_array"] + + +class SimpleArray(tuple): + def _op(self, op, other): + def _o2(x, y): + try: + return op(x, y) + except ZeroDivisionError: + return DataError("#DIV/0", traceback.format_exc()) + except Exception: + return DataError("#ERR", traceback.format_exc()) + + if isinstance(other, tuple): + if len(other) != len(self): + raise TypeError("tuples must have same length for %s" % op) + return self.__class__(map(_o2, self, other)) + else: + return self.__class__(_o2(z, other) for z in self) + + def _cast(self, other): + if isinstance(other, self.__class__): + return other + elif isinstance(other, tuple): + return self.__class__(other) + else: + # other is a scalar + return self.__class__(itertools.repeat(other, len(self))) + + def __add__(self, other): + return self._op(operator.add, other) + + __radd__ = __add__ + + def __pos__(self): + return self.__class__(map(operator.pos, self)) + + def __neg__(self): + return self.__class__(map(operator.neg, self)) + + def __sub__(self, other): + return self._op(operator.sub, other) + + def __rsub__(self, other): + return self._cast(other)._op(operator.sub, self) + + def __mul__(self, other): + return self._op(operator.mul, other) + + __rmul__ = __mul__ + + def __div__(self, other): + return self._op(operator.div, other) + + def __floordiv__(self, other): + return self._op(operator.floordiv, other) + + def __truediv__(self, other): + return self._op(operator.truediv, other) + + def __rdiv__(self, other): + return self._cast(other)._op(operator.div, self) + + def __rfloordiv__(self, other): + return self._cast(other)._op(operator.floordiv, self) + + def __rtruediv__(self, other): + return self._cast(other)._op(operator.truediv, self) + + def __repr__(self): + return f"{self.__class__.__name__}({tuple.__repr__(self)})" + + +def named_simple_array(typename, field_names): + """Return a subclass of SimpleArray, with named properties. + + This method is to SimpleArray what namedtuple is to tuple. + It's less sophisticated than namedtuple so some namedtuple + advanced use cases may not work, but it's good enough for + our needs in mis_builder, ie referring to subkpi values + by name. + """ + props = { + field_name: property(operator.itemgetter(i)) + for i, field_name in enumerate(field_names) + } + return type(typename, (SimpleArray,), props) + + +if __name__ == "__main__": # pragma: no cover + import doctest + + doctest.testmod() diff --git a/mis_builder/pyproject.toml b/mis_builder/pyproject.toml new file mode 100644 index 0000000..4231d0c --- /dev/null +++ b/mis_builder/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/mis_builder/report/__init__.py b/mis_builder/report/__init__.py new file mode 100644 index 0000000..6f814d6 --- /dev/null +++ b/mis_builder/report/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import mis_report_instance_qweb +from . import mis_report_instance_xlsx diff --git a/mis_builder/report/mis_report_instance_qweb.py b/mis_builder/report/mis_report_instance_qweb.py new file mode 100644 index 0000000..bdbfa8f --- /dev/null +++ b/mis_builder/report/mis_report_instance_qweb.py @@ -0,0 +1,27 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import logging + +from flectra import models + +_logger = logging.getLogger(__name__) + + +class Report(models.Model): + _inherit = "ir.actions.report" + + def _render_qweb_pdf(self, report_ref, res_ids=None, data=None): + if ( + self._get_report(report_ref).report_name + == "mis_builder.report_mis_report_instance" + ): + if not res_ids: + res_ids = self.env.context.get("active_ids") + mis_report_instance = self.env["mis.report.instance"].browse(res_ids)[0] + # data=None, because it was there only to force Flectra + # to propagate context + return super( + Report, self.with_context(landscape=mis_report_instance.landscape_pdf) + )._render_qweb_pdf(report_ref, res_ids, data=None) + return super()._render_qweb_pdf(report_ref, res_ids, data) diff --git a/mis_builder/report/mis_report_instance_qweb.xml b/mis_builder/report/mis_report_instance_qweb.xml new file mode 100644 index 0000000..aa0e829 --- /dev/null +++ b/mis_builder/report/mis_report_instance_qweb.xml @@ -0,0 +1,111 @@ + + + + MIS report instance QWEB PDF report + mis.report.instance + ir.actions.report + mis_builder.report_mis_report_instance + qweb-pdf + + + + diff --git a/mis_builder/report/mis_report_instance_xlsx.py b/mis_builder/report/mis_report_instance_xlsx.py new file mode 100644 index 0000000..db67d7f --- /dev/null +++ b/mis_builder/report/mis_report_instance_xlsx.py @@ -0,0 +1,176 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import logging +import numbers +from collections import defaultdict +from datetime import datetime + +from flectra import _, fields, models + +from ..models.accounting_none import AccountingNone +from ..models.data_error import DataError +from ..models.mis_report_style import TYPE_STR + +_logger = logging.getLogger(__name__) + + +ROW_HEIGHT = 15 # xlsxwriter units +COL_WIDTH = 0.9 # xlsxwriter units +MIN_COL_WIDTH = 10 # characters +MAX_COL_WIDTH = 50 # characters + + +class MisBuilderXlsx(models.AbstractModel): + _name = "report.mis_builder.mis_report_instance_xlsx" + _description = "MIS Builder XLSX report" + _inherit = "report.report_xlsx.abstract" + + def generate_xlsx_report(self, workbook, data, objects): + # get the computed result of the report + matrix = objects._compute_matrix() + style_obj = self.env["mis.report.style"] + + # create worksheet + report_name = "{} - {}".format( + objects[0].name, ", ".join([a.name for a in objects[0].query_company_ids]) + ) + sheet = workbook.add_worksheet(report_name[:31]) + row_pos = 0 + col_pos = 0 + # width of the labels column + label_col_width = MIN_COL_WIDTH + # {col_pos: max width in characters} + col_width = defaultdict(lambda: MIN_COL_WIDTH) + + # document title + bold = workbook.add_format({"bold": True}) + header_format = workbook.add_format( + {"bold": True, "align": "center", "bg_color": "#F0EEEE"} + ) + sheet.write(row_pos, 0, report_name, bold) + row_pos += 2 + + # filters + filter_descriptions = objects.get_filter_descriptions() + if filter_descriptions: + for filter_description in objects.get_filter_descriptions(): + sheet.write(row_pos, 0, filter_description) + row_pos += 1 + row_pos += 1 + + # column headers + sheet.write(row_pos, 0, "", header_format) + col_pos = 1 + for col in matrix.iter_cols(): + label = col.label + if col.description: + label += "\n" + col.description + sheet.set_row(row_pos, ROW_HEIGHT * 2) + if col.colspan > 1: + sheet.merge_range( + row_pos, + col_pos, + row_pos, + col_pos + col.colspan - 1, + label, + header_format, + ) + else: + sheet.write(row_pos, col_pos, label, header_format) + col_width[col_pos] = max( + col_width[col_pos], len(col.label or ""), len(col.description or "") + ) + col_pos += col.colspan + row_pos += 1 + + # sub column headers + sheet.write(row_pos, 0, "", header_format) + col_pos = 1 + for subcol in matrix.iter_subcols(): + label = subcol.label + if subcol.description: + label += "\n" + subcol.description + sheet.set_row(row_pos, ROW_HEIGHT * 2) + sheet.write(row_pos, col_pos, label, header_format) + col_width[col_pos] = max( + col_width[col_pos], + len(subcol.label or ""), + len(subcol.description or ""), + ) + col_pos += 1 + row_pos += 1 + + # rows + for row in matrix.iter_rows(): + if ( + row.style_props.hide_empty and row.is_empty() + ) or row.style_props.hide_always: + continue + row_xlsx_style = style_obj.to_xlsx_style(TYPE_STR, row.style_props) + row_format = workbook.add_format(row_xlsx_style) + col_pos = 0 + label = row.label + if row.description: + label += "\n" + row.description + sheet.set_row(row_pos, ROW_HEIGHT * 2) + sheet.write(row_pos, col_pos, label, row_format) + label_col_width = max( + label_col_width, len(row.label or ""), len(row.description or "") + ) + for cell in row.iter_cells(): + col_pos += 1 + if not cell or cell.val is AccountingNone: + # TODO col/subcol format + sheet.write(row_pos, col_pos, "", row_format) + continue + cell_xlsx_style = style_obj.to_xlsx_style( + cell.val_type, cell.style_props, no_indent=True + ) + cell_xlsx_style["align"] = "right" + cell_format = workbook.add_format(cell_xlsx_style) + if isinstance(cell.val, DataError): + val = cell.val.name + # TODO display cell.val.msg as Excel comment? + elif cell.val is None or cell.val is AccountingNone: + val = "" + else: + divider = float(cell.style_props.get("divider", 1)) + if ( + divider != 1 + and isinstance(cell.val, numbers.Number) + and not cell.val_type == "pct" + ): + val = cell.val / divider + else: + val = cell.val + sheet.write(row_pos, col_pos, val, cell_format) + col_width[col_pos] = max( + col_width[col_pos], len(cell.val_rendered or "") + ) + row_pos += 1 + + # Add date/time footer + row_pos += 1 + footer_format = workbook.add_format( + {"italic": True, "font_color": "#202020", "size": 9} + ) + lang_model = self.env["res.lang"] + lang = lang_model._lang_get(self.env.user.lang) + + now_tz = fields.Datetime.context_timestamp( + self.env["res.users"], datetime.now() + ) + create_date = _( + "Generated on %(gen_date)s at %(gen_time)s", + gen_date=now_tz.strftime(lang.date_format), + gen_time=now_tz.strftime(lang.time_format), + ) + sheet.write(row_pos, 0, create_date, footer_format) + + # adjust col widths + sheet.set_column(0, 0, min(label_col_width, MAX_COL_WIDTH) * COL_WIDTH) + data_col_width = min(MAX_COL_WIDTH, max(col_width.values())) + min_col_pos = min(col_width.keys()) + max_col_pos = max(col_width.keys()) + sheet.set_column(min_col_pos, max_col_pos, data_col_width * COL_WIDTH) diff --git a/mis_builder/report/mis_report_instance_xlsx.xml b/mis_builder/report/mis_report_instance_xlsx.xml new file mode 100644 index 0000000..93d2e02 --- /dev/null +++ b/mis_builder/report/mis_report_instance_xlsx.xml @@ -0,0 +1,11 @@ + + + + MIS report instance XLS report + mis.report.instance + ir.actions.report + mis_builder.mis_report_instance_xlsx + xlsx + mis_report_instance + + diff --git a/mis_builder/security/ir.model.access.csv b/mis_builder/security/ir.model.access.csv new file mode 100644 index 0000000..5a61ee7 --- /dev/null +++ b/mis_builder/security/ir.model.access.csv @@ -0,0 +1,22 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +manage_mis_report_kpi,manage_mis_report_kpi,model_mis_report_kpi,account.group_account_manager,1,1,1,1 +access_mis_report_kpi,access_mis_report_kpi,model_mis_report_kpi,base.group_user,1,0,0,0 +manage_mis_report_query,manage_mis_report_query,model_mis_report_query,account.group_account_manager,1,1,1,1 +access_mis_report_query,access_mis_report_query,model_mis_report_query,base.group_user,1,0,0,0 +manage_mis_report,manage_mis_report,model_mis_report,account.group_account_manager,1,1,1,1 +access_mis_report,access_mis_report,model_mis_report,base.group_user,1,0,0,0 +manage_mis_report_instance_period,manage_mis_report_instance_period,model_mis_report_instance_period,account.group_account_manager,1,1,1,1 +access_mis_report_instance_period,access_mis_report_instance_period,model_mis_report_instance_period,base.group_user,1,0,0,0 +manage_mis_report_instance_period_sum,manage_mis_report_instance_period_sum,model_mis_report_instance_period_sum,account.group_account_manager,1,1,1,1 +access_mis_report_instance_period_sum,access_mis_report_instance_period_sum,model_mis_report_instance_period_sum,base.group_user,1,0,0,0 +manage_mis_report_instance,manage_mis_report_instance,model_mis_report_instance,account.group_account_manager,1,1,1,1 +access_mis_report_instance,access_mis_report_instance,model_mis_report_instance,base.group_user,1,0,0,0 +manage_mis_report_subkpi,access_mis_report_subkpi,model_mis_report_subkpi,account.group_account_manager,1,1,1,1 +access_mis_report_subkpi,access_mis_report_subkpi,model_mis_report_subkpi,base.group_user,1,0,0,0 +manage_mis_report_kpi_expression,access_mis_report_kpi_expression,model_mis_report_kpi_expression,account.group_account_manager,1,1,1,1 +access_mis_report_kpi_expression,access_mis_report_kpi_expression,model_mis_report_kpi_expression,base.group_user,1,0,0,0 +manage_mis_report_subreport,access_mis_report_subreport,model_mis_report_subreport,account.group_account_manager,1,1,1,1 +access_mis_report_subreport,access_mis_report_subreport,model_mis_report_subreport,base.group_user,1,0,0,0 +manage_mis_report_style,access_mis_report_style,model_mis_report_style,account.group_account_manager,1,1,1,1 +access_mis_report_style,access_mis_report_style,model_mis_report_style,base.group_user,1,0,0,0 +access_add_to_dashboard_wizard,access_add_to_dashboard_wizard,model_add_mis_report_instance_dashboard_wizard,base.group_user,1,1,1,0 diff --git a/mis_builder/security/mis_builder_security.xml b/mis_builder/security/mis_builder_security.xml new file mode 100644 index 0000000..cf4d64b --- /dev/null +++ b/mis_builder/security/mis_builder_security.xml @@ -0,0 +1,11 @@ + + + + Mis Report Instance multi company + + + ['|',('company_id','=',False),('company_id','in',company_ids), '|', + ('company_ids', '=', False), ('company_ids', 'in', company_ids)] + + + diff --git a/mis_builder/static/description/ex_report_preview.png b/mis_builder/static/description/ex_report_preview.png new file mode 100644 index 0000000..e818c52 Binary files /dev/null and b/mis_builder/static/description/ex_report_preview.png differ diff --git a/mis_builder/static/description/ex_report_settings.png b/mis_builder/static/description/ex_report_settings.png new file mode 100644 index 0000000..f2633b9 Binary files /dev/null and b/mis_builder/static/description/ex_report_settings.png differ diff --git a/mis_builder/static/description/ex_report_template.png b/mis_builder/static/description/ex_report_template.png new file mode 100644 index 0000000..33950ae Binary files /dev/null and b/mis_builder/static/description/ex_report_template.png differ diff --git a/mis_builder/static/description/icon.png b/mis_builder/static/description/icon.png new file mode 100644 index 0000000..1afa781 Binary files /dev/null and b/mis_builder/static/description/icon.png differ diff --git a/mis_builder/static/description/index.html b/mis_builder/static/description/index.html new file mode 100644 index 0000000..c65909d --- /dev/null +++ b/mis_builder/static/description/index.html @@ -0,0 +1,1054 @@ + + + + + + +MIS Builder + + + +
+

MIS Builder

+ + +

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

+

This module allows you to build Management Information Systems dashboards. +Such style of reports presents KPI in rows and time periods in columns. +Reports mainly fetch data from account moves, but can also combine data coming +from arbitrary Odoo models. Reports can be exported to PDF, Excel and they +can be added to Odoo dashboards.

+

Table of contents

+ +
+

Installation

+

Your preferred way to install addons will work with MIS Builder.

+

An easy way to install it with all its dependencies is using pip:

+
    +
  • pip install --pre odoo12-addon-mis_builder
  • +
  • then restart Odoo, update the addons list in your database, and install +the MIS Builder application.
  • +
+
+
+

Usage

+

To configure this module, you need to:

+
    +
  • Go to Accounting > Configuration > MIS Reporting > MIS Report Templates where +you can create report templates by defining KPI’s. KPI’s constitute the rows of your +reports. Such report templates are time independent.
  • +
+
+Sample report template +
+
    +
  • Then in Accounting > Reports > MIS Reporting > MIS Reports you can create report instance by +binding the templates to time periods, hence defining the columns of your reports.
  • +
+
+Sample report configuration +
+
    +
  • From the MIS Reports view, you can preview the report, add it to and Odoo dashboard, +and export it to PDF or Excel.
  • +
+
+Sample preview +
+
+
+

Development

+

A typical extension is to provide a mechanism to filter reports on analytic dimensions +or operational units. To implement this, you can override _get_additional_move_line_filter +and _get_additional_filter to further filter move lines or queries based on a user +selection. A typical use case could be to add an analytic account field on mis.report.instance, +or even on mis.report.instance.period if you want different columns to show different +analytic accounts.

+
+
+

Known issues / Roadmap

+

The mis_builder roadmap +and known issues can +be found on GitHub.

+
+
+

Changelog

+
+

16.0.5.1.0 (2023-04-04)

+

Features

+
    +
  • Improve UX by adding the option to edit the pivot date directly on the view.
  • +
+
+
+

16.0.5.0.0 (2023-04-01)

+

Features

+
    +
  • Migration to 16.0
      +
    • Addition of a generic filter domain on reports and columns.
    • +
    • Addition of a search bar to the widget. The corresponding search view is configurable +per report.
    • +
    • Huge improvement of the widget style. This was long overdue.
    • +
    • Make the MIS Report menu accessible to the Billing Administrator group +(instead of the hidden Show Full Accounting Features), to align with the access rules +and avoid giving a false sense of security. This also makes the menu discoverable to +new users.
    • +
    • Removal of analytic fetures because the upstream analytic_distribution mechanism +is not compatible; support may be introduced in separate module, depending on use +cases.
    • +
    • Abandon the mis_report_filters context key which had security implication. +It is replaced by a mis_analytic_domain context key which is ANDed with other +report-defined filters. (#472)
    • +
    • Rename the get_filter_descriptions_from_context method to +get_filter_descriptions. This method may be overridden to provide additional +subtitles on the PDF or XLS report, representing user-selected filters.
    • +
    • The hide_analytic_filters has been replaced by widget_show_filters.
    • +
    • The visibility of the settings button on the widget is now controlled by a +show_settings_button. Before it was visible only for the account_user group +but this was not flexible enough.
    • +
    • The widget configuration settings are now grouped in a dedicated Widget tab in +the report configuration form.
    • +
    +
  • +
+

Bugfixes

+
    +
  • Fix access error when previewing or printing report. (#415)
  • +
+
+
+

15.0.4.0.5 (2022-07-19)

+

Bugfixes

+
    +
  • Support users without timezone. (#388)
  • +
+
+
+

15.0.4.0.4 (2022-07-19)

+

Bugfixes

+
    +
  • Allow deleting a report that has subreports. (#431)
  • +
+
+
+

15.0.4.0.2 (2022-02-16)

+

Bugfixes

+
    +
  • Fix access right issue when clicking the “Save” button on a MIS Report Instance form. (#410)
  • +
+
+
+

14.0.4.0.0 (2022-01-08)

+

Features

+
    +
  • Remove various field size limits. (#332)
  • +
+

Bugfixes

+
    +
  • Support for the Odoo 13+ multi-company model. In multi-company mode, several allowed +companies can be declared on MIS Report instances, and the report operates on the +intersection of report companies and companies selected in the user context. (#327)

    +
  • +
  • The get_additional_query_filter argument of evaluate() is now propagated +correctly. (#375)

    +
  • +
  • Use the parent_state field of account.move.line to filter entries in posted +and draft state only. Before, when reporting in draft mode, all entries were used +(i.e. there was no filter), and that started including the cancelled entries/invoices in +Odoo 13.+.

    +

    This change also contains a breaking change in the internal API. For quite a while +the target_move argument of AEP and other methods was not used by MIS Builder itself +and was kept for backward compatibility. To avoid rippling effects of the necessary +change to use parent_state, we now remove this argument. (#377)

    +
  • +
+
+
+

14.0.3.6.7 (2021-06-02)

+

Bugfixes

+
    +
  • When on a MIS Report Instance, if you wanted to generate a new line of type comparison, you couldn’t currently select any existing period to compare. +This happened because the field domain was searching in a NewId context, thus not finding a correct period. +Changing the domain and making it use a computed field with a search for the _origin record solves the problem. (#361)
  • +
+
+
+

14.0.3.6.6 (2021-04-23)

+

Bugfixes

+
    +
  • Fix drilldown action name when the account model has been customized. (#350)
  • +
+
+
+

14.0.3.6.5 (2021-04-23)

+

Bugfixes

+
    +
  • While duplicating a MIS report instance, comparison columns are ignored because +they would raise an error otherwise, as they keep the old source_cmpcol_from_id +and source_cmpcol_to_id from the original record. (#343)
  • +
+
+
+

14.0.3.6.4 (2021-04-06)

+

Features

+
    +
  • The drilldown action name displayed on the breadcrumb has been revised. +The kpi description and the account display_name are shown instead +of the kpi’s technical definition. (#304)
  • +
  • Add analytic group filters on report instance, periods and in the interactive +view. (#320)
  • +
+
+
+

13.0.3.6.3 (2020-08-28)

+

Bugfixes

+
    +
  • Having a “Compare columns” added on a KPI with an associated style using a +Factor/Divider did lead to the said factor being applied on the percentages +when exporting to XLSX. (#300)
  • +
+

Misc

+ +
+
+

13.0.3.6.2 (2020-04-22)

+

Bugfixes

+
    +
  • The “Settings” button is now displayed for users with the “Show full accounting features” right when previewing a report. (#281)
  • +
+
+
+

13.0.3.6.1 (2020-04-22)

+

Bugfixes

+
    +
  • Fix TypeError: 'module' object is not iterable when using +budgets by account. (#276)
  • +
+
+
+

13.0.3.6.0 (2020-03-28)

+

Features

+
    +
  • Add column-level filters on analytic account and analytic tags. +These filters are combined with a AND with the report-level filters +and cannot be modified in the preview. (#138)
  • +
  • Access to KPI from other reports in KPI expressions, aka subreports. In a +report template, one can list named “subreports” (other report templates). When +evaluating expressions, you can access KPI’s of subreports with a dot-prefix +notation. Example: you can define a MIS Report for a “Balance Sheet”, and then +have another MIS Report “Balance Sheet Ratios” that fetches KPI’s from “Balance +Sheet” to create new KPI’s for the ratios (e.g. balance_sheet.current_assets / +balance_sheet.total_assets). (#155)
  • +
+
+
+

13.0.3.5.0 (2020-01-??)

+

Migration to odoo 13.0.

+
+
+

12.0.3.5.0 (2019-10-26)

+

Features

+
    +
  • The account_id field of the model selected in ‘Move lines source’ +in the Period form can now be a Many2one +relationship with any model that has a code field (not only with +account.account model). To this end, the model to be used for Actuals +move lines can be configured on the report template. It can be something else +than move lines and the only constraint is that its account_id field +has a code field. (#149)
  • +
  • Add source_aml_model_name field so extension modules providing +alternative data sources can more easily customize their data source. (#214)
  • +
  • Support analytic tag filters in the backend view and preview widget. +Selecting several tags in the filter means filtering on move lines which +have all these tags set. This is to support the most common use case of +using tags for different dimensions. The filter also makes a AND with the +analytic account filter. (#228)
  • +
  • Display company in account details rows in multi-company mode. (#242)
  • +
+

Bugfixes

+
    +
  • Propagate context to xlsx report, so the analytic account filter +works when exporting to xslx too. This also requires a fix to +report_xlsx (see https://github.com/OCA/reporting-engine/pull/259). (#178)
  • +
  • In columns of type Sum, preserve styles for KPIs that are not summable +(eg percentage values). Before this fix, such cells were displayed without +style. (#219)
  • +
  • In Excel export, keep the percentage point suffix (pp) instead of replacing it with %. (#220)
  • +
+
+
+

12.0.3.4.0 (2019-07-09)

+

Features

+
    +
  • New year-to-date mode for defining periods. (#165)
  • +
  • Add support for move lines with negative debit or credit. +Used by some for storno accounting. Not officially supported. (#175)
  • +
  • In Excel export, use a number format with thousands separator. The +specific separator used depends on the Excel configuration (eg regional +settings). (#190)
  • +
  • Add generation date/time at the end of the XLS export. (#191)
  • +
  • In presence of Sub KPIs, report more informative user errors when +non-multi expressions yield tuples of incorrect lenght. (#196)
  • +
+

Bugfixes

+
    +
  • Fix rendering of percentage types in Excel export. (#192)
  • +
+
+
+

12.0.3.3.0 (2019-01-26)

+

Features

+

Dynamic analytic filters in report preview are not yet available in 11, +this requires an update to the JS widget that proved difficult to implement +so far. Help welcome.

+
    +
  • Analytic account filters. On a report, an analytic +account can be selected for filtering. The filter will +be applied to move lines queries. A filter box is also +available in the widget to let the user select the analytic +account during report preview. (#15)
  • +
  • Control visibility of analytic filter combo box in widget. +This is useful to hide the analytic filters on reports where +they do not make sense, such as balance sheet reports. (#42)
  • +
  • Display analytic filters in the header of exported pdf and xls. (#44)
  • +
  • Replace the last old gtk icons with fontawesome icons. (#104)
  • +
  • Use active_test=False in AEP queries. +This is important for reports involving inactive taxes. +This should not negatively effect existing reports, because +an accounting report must take into account all existing move lines +even if they reference objects such as taxes, journals, accounts types +that have been deactivated since their creation. (#107)
  • +
  • int(), float() and round() support for AccountingNone. (#108)
  • +
  • Allow referencing subkpis by name by writing kpi_x.subkpi_y in expressions. (#114)
  • +
  • Add an option to control the display of the start/end dates in the +column headers. It is disabled by default (this is a change compared +to previous behaviour). (#118)
  • +
  • Add evaluate method to mis.report. This is a simplified +method to evaluate kpis of a report over a time period, +without creating a mis.report.instance. (#123)
  • +
+

Bugs

+
    +
  • In the style form, hide the “Hide always” checkbox when “Hide always inherit” +is checked, as for all other syle elements. (#121 <https://github.com/OCA/mis-builder/pull/121>_)
  • +
+

Upgrading from 3.2 (breaking changes)

+

If you use Actuals (alternative) data source in combination with analytic +filters, the underlying model must now have an analytic_account_id field.

+
+
+

11.0.3.2.2 (2018-06-30)

+
    +
  • [FIX] Fix bug in company_default_get call returning +id instead of recordset +(#103)
  • +
  • [IMP] add “hide always” style property to make hidden KPI’s +(for KPI that serve as basis for other formulas, but do not +need to be displayed). +(#46)
  • +
+
+
+

11.0.3.2.1 (2018-05-29)

+
    +
  • [FIX] Missing comparison operator for AccountingNone +leading to errors in pbal computations +(#93)
  • +
+
+
+

10.0.3.2.0 (2018-05-02)

+
    +
  • [FIX] make subkpi ordering deterministic +(#71)
  • +
  • [ADD] report instance level option to disable account expansion, +enabling the creation of detailed templates while deferring the decision +of rendering the details or not to the report instance +(#74)
  • +
  • [ADD] pbal and nbal accounting expressions, to sum positive +and negative balances respectively (ie ignoring accounts with negative, +resp positive balances) +(#86)
  • +
+
+
+

11.0.3.1.2 (2018-02-04)

+

Migration to Odoo 11. No new feature. +(#67)

+
+
+

10.0.3.1.1 (2017-11-14)

+

New features:

+
    +
  • [ADD] month and year relative periods, easier to use than +date ranges for the most common case. +(#2)
  • +
  • [ADD] multi-company consolidation support, with currency conversion +(the conversion rate date is the end of the reporting period) +(#7, +#3)
  • +
  • [ADD] provide ref, datetime, dateutil, time, user in the evaluation +context of move line domains; among other things, this allows using +references to xml ids (such as account types or tax tags) when +querying move lines +(#26).
  • +
  • [ADD] extended account selectors: you can now select accounts using +any domain on account.account, not only account codes +balp[('account_type', '=', 'asset_receivable')] +(#4).
  • +
  • [IMP] in the report instance configuration form, the filters are +now grouped in a notebook page, this improves readability and +extensibility +(#39).
  • +
+

Bug fixes:

+
    +
  • [FIX] fix error when saving periods in comparison mode on newly +created (not yet saved) report instances. +#50
  • +
  • [FIX] improve display of Base Date report instance view. +#51
  • +
+

Upgrading from 3.0 (breaking changes):

+
    +
  • Alternative move line data sources must have a company_id field.
  • +
+
+
+

10.0.3.0.4 (2017-10-14)

+

Bug fix:

+
    +
  • [FIX] issue with initial balance rounding. +#30
  • +
+
+
+

10.0.3.0.3 (2017-10-03)

+

Bug fix:

+
    +
  • [FIX] fix error saving KPI on newly created reports. +#18
  • +
+
+
+

10.0.3.0.2 (2017-10-01)

+

New features:

+
    +
  • [ADD] Alternative move line source per report column. +This makes mis buidler accounting expressions work on any model +that has debit, credit, account_id and date fields. Provided you can +expose, say, committed purchases, or your budget as a view with +debit, credit and account_id, this opens up a lot of possibilities
  • +
  • [ADD] Comparison column source (more flexible than the previous, +now deprecated, comparison mechanism). +CAVEAT: there is no automated migration to the new mechanism.
  • +
  • [ADD] Sum column source, to create columns that add/subtract +other columns.
  • +
  • [ADD] mis.kpi.data abstract model as a basis for manual KPI values +supporting automatic ajustment to the reporting time period (the basis +for budget item, but could also server other purposes, such as manually +entering some KPI values, such as number of employee)
  • +
  • [ADD] mis_builder_budget module providing a new budget data source
  • +
  • [ADD] new “hide empty” style property
  • +
  • [IMP] new AEP method to get accounts involved in an expression +(this is useful to find which KPI relate to a given P&L +acount, to implement budget control)
  • +
  • [IMP] many UI improvements
  • +
  • [IMP] many code style improvements and some refactoring
  • +
  • [IMP] add the column date_from, date_to in expression evaluation context, +as well as time, datetime and dateutil modules
  • +
+

Main bug fixes:

+ +
+
+

10.0.2.0.3 (unreleased)

+
    +
  • [IMP] more robust behaviour in presence of missing expressions
  • +
  • [FIX] indent style
  • +
  • [FIX] local variable ‘ctx’ referenced before assignment when generating +reports with no objects
  • +
  • [IMP] use fontawesome icons
  • +
  • [MIG] migrate to 10.0
  • +
  • [FIX] unicode error when exporting to Excel
  • +
  • [IMP] provide full access to mis builder style for group Adviser.
  • +
+
+
+

9.0.2.0.2 (2016-09-27)

+
    +
  • [IMP] Add refresh button in mis report preview.
  • +
  • [IMP] Widget code changes to allow to add fields in the widget more easily.
  • +
+
+
+

9.0.2.0.1 (2016-05-26)

+
    +
  • [IMP] remove unused argument in declare_and_compute_period() +for a cleaner API. This is a breaking API changing merged in +urgency before it is used by other modules.
  • +
+
+
+

9.0.2.0.0 (2016-05-24)

+

Part of the work for this release has been done at the Sorrento sprint +April 26-29, 2016. The rest (ie a major refactoring) has been done in +the weeks after.

+
    +
  • [IMP] hide button box in edit mode on the report instance settings form
  • +
  • [FIX] Fix sum aggregation of non-stored fields +(https://github.com/OCA/account-financial-reporting/issues/178)
  • +
  • [IMP] There is now a default style at the report level
  • +
  • [CHG] Number display properties (rounding, prefix, suffix, factor) are +now defined in styles
  • +
  • [CHG] Percentage difference are rounded to 1 digit instead of the kpi’s +rounding, as the KPI rounding does not make sense in this case
  • +
  • [CHG] The divider suffix (k, M, etc) is not inserted automatically anymore +because it is inconsistent when working with prefixes; you need to add it +manually in the suffix
  • +
  • [IMP] AccountingExpressionProcessor now supports ‘balu’ expressions +to obtain the unallocated profit/loss of previous fiscal years; +get_unallocated_pl is the corresponding convenience method
  • +
  • [IMP] AccountingExpressionProcessor now has easy methods to obtain +balances by account: get_balances_initial, get_balances_end, +get_balances_variation
  • +
  • [IMP] there is now an auto-expand feature to automatically display +a detail by account for selected kpis
  • +
  • [IMP] the kpi and period lists are now manipulated through forms instead +of directly in the tree views
  • +
  • [IMP] it is now possible to create a report through a wizard, such +reports are deemed temporary and available through a “Last Reports Generated” +menu, they are garbaged collected automatically, unless saved permanently, +which can be done using a Save button
  • +
  • [IMP] there is now a beginner mode to configure simple reports with +only one period
  • +
  • [IMP] it is now easier to configure periods with fixed start/end dates
  • +
  • [IMP] the new sub-kpi mechanism allows the creation of columns +with multiple values, or columns with different values
  • +
  • [IMP] thanks to the new style model, the Excel export is now styled
  • +
  • [IMP] a new style model is now used to centralize style configuration
  • +
  • [FIX] use =like instead of like to search for accounts, because +the % are added by the user in the expressions
  • +
  • [FIX] Correctly compute the initial balance of income and expense account +based on the start of the fiscal year
  • +
  • [IMP] Support date ranges (from OCA/server-tools/date_range) as a more +flexible alternative to fiscal periods
  • +
  • v9 migration: fiscal periods are removed, account charts are removed, +consolidation accounts have been removed
  • +
+
+
+

8.0.1.0.0 (2016-04-27)

+ +
+
+

8.0.0.2.0

+

Pre-history. Or rather, you need to look at the git log.

+
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • ACSONE SA/NV
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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

+

Current maintainer:

+

sbidoul

+

This module is part of the OCA/mis-builder project on GitHub.

+

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

+
+
+
+ + diff --git a/mis_builder/static/src/components/mis_report_widget.css b/mis_builder/static/src/components/mis_report_widget.css new file mode 100644 index 0000000..e3bb177 --- /dev/null +++ b/mis_builder/static/src/components/mis_report_widget.css @@ -0,0 +1,67 @@ +.o_web_client .mis_builder_amount { + text-align: right; +} + +.o_web_client .mis_builder_collabel { + text-align: center; +} + +.o_web_client .mis_builder_rowlabel { + text-align: left; +} + +.o_web_client .mis_builder a { + /* we don't want the link color, to respect user styles */ + color: inherit; +} + +.o_web_client .mis_builder a:hover { + /* underline links on hover to give a visual cue */ + text-decoration: underline; +} + +.oe_mis_builder_content { +} + +/* style for the control panel (search box and buttons) */ + +.oe_mis_builder_cp { + display: flex; + flex-direction: row; + padding-bottom: 20px; +} + +.oe_mis_builder_cp_left { + display: flex; + flex-direction: column; + flex-grow: 1; +} + +.oe_mis_builder_cp_right { + display: flex; + flex-direction: column; + flex-grow: 2; + max-width: 1280px; +} + +.oe_mis_builder_cp_right_top { + display: flex; + flex-direction: row; +} + +.oe_mis_builder_cp_right_bottom { + display: flex; + flex-direction: row; +} + +.oe_mis_builder_filter_buttons { + display: flex; + flex-grow: 1; + justify-content: flex-start; +} + +.oe_mis_builder_action_buttons { + display: flex; + flex-grow: 1; + justify-content: flex-end; +} diff --git a/mis_builder/static/src/components/mis_report_widget.esm.js b/mis_builder/static/src/components/mis_report_widget.esm.js new file mode 100644 index 0000000..7f3af93 --- /dev/null +++ b/mis_builder/static/src/components/mis_report_widget.esm.js @@ -0,0 +1,182 @@ +/** @flectra-module **/ + +import {Component, onWillStart, useState, useSubEnv} from "@flectra/owl"; +import {useBus, useService} from "@web/core/utils/hooks"; +import {DatePicker} from "@web/core/datepicker/datepicker"; +import {FilterMenu} from "@web/search/filter_menu/filter_menu"; +import {SearchBar} from "@web/search/search_bar/search_bar"; +import {SearchModel} from "@web/search/search_model"; +import {parseDate} from "@web/core/l10n/dates"; +import {registry} from "@web/core/registry"; + +export class MisReportWidget extends Component { + setup() { + super.setup(); + this.orm = useService("orm"); + this.user = useService("user"); + this.action = useService("action"); + this.view = useService("view"); + this.JSON = JSON; + this.state = useState({ + mis_report_data: {header: [], body: []}, + pivot_date: null, + }); + this.searchModel = new SearchModel(this.env, { + user: this.user, + orm: this.orm, + view: this.view, + }); + useSubEnv({searchModel: this.searchModel}); + useBus(this.env.searchModel, "update", async () => { + await this.env.searchModel.sectionsPromise; + this.refresh(); + }); + onWillStart(this.willStart); + } + + // Lifecycle + async willStart() { + const [result] = await this.orm.read( + "mis.report.instance", + [this._instanceId()], + [ + "source_aml_model_name", + "widget_show_filters", + "widget_show_settings_button", + "widget_search_view_id", + "pivot_date", + "widget_show_pivot_date", + ], + {context: this.context} + ); + this.source_aml_model_name = result.source_aml_model_name; + this.widget_show_filters = result.widget_show_filters; + this.widget_show_settings_button = result.widget_show_settings_button; + this.widget_search_view_id = + result.widget_search_view_id && result.widget_search_view_id[0]; + this.state.pivot_date = parseDate(result.pivot_date); + this.widget_show_pivot_date = result.widget_show_pivot_date; + if (this.showSearchBar) { + // Initialize the search model + await this.searchModel.load({ + resModel: this.source_aml_model_name, + searchViewId: this.widget_search_view_id, + }); + } + + // Compute the report + this.refresh(); + } + + get showSearchBar() { + return ( + this.source_aml_model_name && + this.widget_show_filters && + this.widget_search_view_id + ); + } + + get showPivotDate() { + return this.widget_show_pivot_date; + } + + /** + * Return the id of the mis.report.instance to which the widget is + * bound. + * + * @returns int + */ + _instanceId() { + if (this.props.value) { + return this.props.value; + } + + /* + * This trick is needed because in a dashboard the view does + * not seem to be bound to an instance: it seems to be a limitation + * of Flectra dashboards that are not designed to contain forms but + * rather tree views or charts. + */ + var context = this.props.record.context; + if (context.active_model === "mis.report.instance") { + return context.active_id; + } + } + + get context() { + var ctx = super.context; + if (this.showSearchBar) { + ctx = { + ...ctx, + mis_analytic_domain: this.searchModel.searchDomain, + }; + } + if (this.showPivotDate && this.state.pivot_date) { + ctx = { + ...ctx, + mis_pivot_date: this.state.pivot_date, + }; + } + return ctx; + } + + async drilldown(event) { + const drilldown = $(event.target).data("drilldown"); + const action = await this.orm.call( + "mis.report.instance", + "drilldown", + [this._instanceId(), drilldown], + {context: this.context} + ); + this.action.doAction(action); + } + + async refresh() { + this.state.mis_report_data = await this.orm.call( + "mis.report.instance", + "compute", + [this._instanceId()], + {context: this.context} + ); + } + + async printPdf() { + const action = await this.orm.call( + "mis.report.instance", + "print_pdf", + [this._instanceId()], + {context: this.context} + ); + this.action.doAction(action); + } + + async exportXls() { + const action = await this.orm.call( + "mis.report.instance", + "export_xls", + [this._instanceId()], + {context: this.context} + ); + this.action.doAction(action); + } + + async displaySettings() { + const action = await this.orm.call( + "mis.report.instance", + "display_settings", + [this._instanceId()], + {context: this.context} + ); + this.action.doAction(action); + } + + onDateTimeChanged(ev) { + this.state.pivot_date = ev; + this.refresh(); + } +} + +MisReportWidget.components = {FilterMenu, SearchBar, DatePicker}; +MisReportWidget.template = "mis_builder.MisReportWidget"; + +registry.category("fields").add("mis_report_widget", MisReportWidget); diff --git a/mis_builder/static/src/components/mis_report_widget.xml b/mis_builder/static/src/components/mis_report_widget.xml new file mode 100644 index 0000000..c5e2206 --- /dev/null +++ b/mis_builder/static/src/components/mis_report_widget.xml @@ -0,0 +1,115 @@ + + + + +
+ +
+
+
+
+
+ +
+
+
+ + +
+
+ + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+ + +
+ + +
+ + +
+ + + + + + + + +
+
+
+
+
+ +
diff --git a/mis_builder/static/src/css/report.css b/mis_builder/static/src/css/report.css new file mode 100644 index 0000000..0d58939 --- /dev/null +++ b/mis_builder/static/src/css/report.css @@ -0,0 +1,46 @@ +.mis_table { + display: table; + width: 100%; + table-layout: fixed; +} +.mis_row { + display: table-row; + page-break-inside: avoid; +} +.mis_cell { + display: table-cell; + page-break-inside: avoid; +} +.mis_thead { + display: table-header-group; +} +.mis_tbody { + display: table-row-group; +} +.mis_table, +.mis_table .mis_row { + border-left: 0px; + border-right: 0px; + text-align: left; + padding-right: 3px; + padding-left: 3px; + padding-top: 2px; + padding-bottom: 2px; + border-collapse: collapse; +} +.mis_table .mis_row { + border-color: grey; + border-bottom: 1px solid lightGrey; +} +.mis_table .mis_cell.mis_collabel { + font-weight: bold; + background-color: #f0f0f0; + text-align: center; +} +.mis_table .mis_cell.mis_rowlabel { + text-align: left; + /*white-space: nowrap;*/ +} +.mis_table .mis_cell.mis_amount { + text-align: right; +} diff --git a/mis_builder/tests/__init__.py b/mis_builder/tests/__init__.py new file mode 100644 index 0000000..85ac64f --- /dev/null +++ b/mis_builder/tests/__init__.py @@ -0,0 +1,16 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import test_accounting_none +from . import test_aep +from . import test_multi_company_aep +from . import test_aggregate +from . import test_data_sources +from . import test_kpi_data +from . import test_mis_report_instance +from . import test_mis_safe_eval +from . import test_period_dates +from . import test_render +from . import test_simple_array +from . import test_target_move +from . import test_utc_midnight diff --git a/mis_builder/tests/common.py b/mis_builder/tests/common.py new file mode 100644 index 0000000..c609241 --- /dev/null +++ b/mis_builder/tests/common.py @@ -0,0 +1,67 @@ +# Copyright 2017 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import doctest + +from flectra.tests import BaseCase, tagged + + +def _zip(iter1, iter2): + i = 0 + iter1 = iter(iter1) + iter2 = iter(iter2) + while True: + i1 = next(iter1, None) + i2 = next(iter2, None) + if i1 is None and i2 is None: + return + yield i, i1, i2 + i += 1 + + +def assert_matrix(matrix, expected): + for i, row, expected_row in _zip(matrix.iter_rows(), expected): + if row is None and expected_row is not None: + raise AssertionError("not enough rows") + if row is not None and expected_row is None: + raise AssertionError("too many rows") + for j, cell, expected_val in _zip(row.iter_cells(), expected_row): + assert ( + cell and cell.val + ) == expected_val, "{} != {} in row {} col {}".format( + cell and cell.val, expected_val, i, j + ) + + +@tagged("doctest") +class FlectraDocTestCase(BaseCase): + """ + We need a custom DocTestCase class in order to: + - define test_tags to run as part of standard tests + - output a more meaningful test name than default "DocTestCase.runTest" + """ + + __qualname__ = "doctests for " + + def __init__(self, test): + self.__test = test + self.__name = test._dt_test.name + super().__init__(self.__name) + + def __getattr__(self, item): + if item == self.__name: + return self.__test + + +def load_doctests(module): + """ + Generates a tests loading method for the doctests of the given module + https://docs.python.org/3/library/unittest.html#load-tests-protocol + """ + + def load_tests(loader, tests, ignore): + for test in doctest.DocTestSuite(module): + tests.addTest(FlectraDocTestCase(test)) + return tests + + return load_tests diff --git a/mis_builder/tests/fake_models.py b/mis_builder/tests/fake_models.py new file mode 100644 index 0000000..12ca84e --- /dev/null +++ b/mis_builder/tests/fake_models.py @@ -0,0 +1,7 @@ +from flectra import models + + +class MisKpiDataTestItem(models.Model): + _name = "mis.kpi.data.test.item" + _inherit = "mis.kpi.data" + _description = "MIS Kpi Data test item" diff --git a/mis_builder/tests/test_accounting_none.py b/mis_builder/tests/test_accounting_none.py new file mode 100644 index 0000000..ced8c3e --- /dev/null +++ b/mis_builder/tests/test_accounting_none.py @@ -0,0 +1,8 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + + +from ..models import accounting_none +from .common import load_doctests + +load_tests = load_doctests(accounting_none) diff --git a/mis_builder/tests/test_aep.py b/mis_builder/tests/test_aep.py new file mode 100644 index 0000000..4fe80fb --- /dev/null +++ b/mis_builder/tests/test_aep.py @@ -0,0 +1,397 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import datetime +import time + +import flectra.tests.common as common +from flectra import fields +from flectra.exceptions import UserError +from flectra.tools.safe_eval import safe_eval + +from ..models.accounting_none import AccountingNone +from ..models.aep import AccountingExpressionProcessor as AEP +from ..models.aep import _is_domain + + +class TestAEP(common.TransactionCase): + def setUp(self): + super().setUp() + self.res_company = self.env["res.company"] + self.account_model = self.env["account.account"] + self.move_model = self.env["account.move"] + self.journal_model = self.env["account.journal"] + self.curr_year = datetime.date.today().year + self.prev_year = self.curr_year - 1 + # create company + self.company = self.res_company.create({"name": "AEP Company"}) + # create receivable bs account + self.account_ar = self.account_model.create( + { + "company_id": self.company.id, + "code": "400AR", + "name": "Receivable", + "account_type": "asset_receivable", + "reconcile": True, + } + ) + # create income pl account + self.account_in = self.account_model.create( + { + "company_id": self.company.id, + "code": "700IN", + "name": "Income", + "account_type": "income", + } + ) + # create journal + self.journal = self.journal_model.create( + { + "company_id": self.company.id, + "name": "Sale journal", + "code": "VEN", + "type": "sale", + } + ) + # create move in December last year + self._create_move( + date=datetime.date(self.prev_year, 12, 1), + amount=100, + debit_acc=self.account_ar, + credit_acc=self.account_in, + ) + # create move in January this year + self._create_move( + date=datetime.date(self.curr_year, 1, 1), + amount=300, + debit_acc=self.account_ar, + credit_acc=self.account_in, + ) + # create move in March this year + self._create_move( + date=datetime.date(self.curr_year, 3, 1), + amount=500, + debit_acc=self.account_ar, + credit_acc=self.account_in, + ) + # create the AEP, and prepare the expressions we'll need + self.aep = AEP(self.company) + self.aep.parse_expr("bali[]") + self.aep.parse_expr("bale[]") + self.aep.parse_expr("balp[]") + self.aep.parse_expr("balu[]") + self.aep.parse_expr("bali[700IN]") + self.aep.parse_expr("bale[700IN]") + self.aep.parse_expr("balp[700IN]") + self.aep.parse_expr("bali[400AR]") + self.aep.parse_expr("bale[400AR]") + self.aep.parse_expr("balp[400AR]") + self.aep.parse_expr("debp[400A%]") + self.aep.parse_expr("crdp[700I%]") + self.aep.parse_expr("bali[400%]") + self.aep.parse_expr("bale[700%]") + self.aep.parse_expr("balp[]" "[('account_id.code', '=', '400AR')]") + self.aep.parse_expr( + "balp[]" "[('account_id.account_type', '=', " " 'asset_receivable')]" + ) + self.aep.parse_expr("balp[('account_type', '=', " " 'asset_receivable')]") + self.aep.parse_expr( + "balp['&', " + " ('account_type', '=', " + " 'asset_receivable'), " + " ('code', '=', '400AR')]" + ) + self.aep.parse_expr("bal_700IN") # deprecated + self.aep.parse_expr("bals[700IN]") # deprecated + + def _create_move(self, date, amount, debit_acc, credit_acc, post=True): + move = self.move_model.create( + { + "journal_id": self.journal.id, + "date": fields.Date.to_string(date), + "line_ids": [ + (0, 0, {"name": "/", "debit": amount, "account_id": debit_acc.id}), + ( + 0, + 0, + {"name": "/", "credit": amount, "account_id": credit_acc.id}, + ), + ], + } + ) + if post: + move._post() + return move + + def _do_queries(self, date_from, date_to): + self.aep.do_queries( + date_from=fields.Date.to_string(date_from), + date_to=fields.Date.to_string(date_to), + ) + + def _eval(self, expr): + eval_dict = {"AccountingNone": AccountingNone} + return safe_eval(self.aep.replace_expr(expr), eval_dict) + + def _eval_by_account_id(self, expr): + res = {} + eval_dict = {"AccountingNone": AccountingNone} + for account_id, replaced_exprs in self.aep.replace_exprs_by_account_id([expr]): + res[account_id] = safe_eval(replaced_exprs[0], eval_dict) + return res + + def test_sanity_check(self): + self.assertEqual(self.company.fiscalyear_last_day, 31) + self.assertEqual(self.company.fiscalyear_last_month, "12") + + def test_aep_basic(self): + self.aep.done_parsing() + # let's query for december + self._do_queries( + datetime.date(self.prev_year, 12, 1), datetime.date(self.prev_year, 12, 31) + ) + # initial balance must be None + self.assertIs(self._eval("bali[400AR]"), AccountingNone) + self.assertIs(self._eval("bali[700IN]"), AccountingNone) + # check variation + self.assertEqual(self._eval("balp[400AR]"), 100) + self.assertEqual(self._eval("balp[][('account_id.code', '=', '400AR')]"), 100) + self.assertEqual( + self._eval( + "balp[]" "[('account_id.account_type', '=', " " 'asset_receivable')]" + ), + 100, + ) + self.assertEqual( + self._eval("balp[('account_type', '=', " " 'asset_receivable')]"), + 100, + ) + self.assertEqual( + self._eval( + "balp['&', " + " ('account_type', '=', " + " 'asset_receivable'), " + " ('code', '=', '400AR')]" + ), + 100, + ) + self.assertEqual(self._eval("balp[700IN]"), -100) + # check ending balance + self.assertEqual(self._eval("bale[400AR]"), 100) + self.assertEqual(self._eval("bale[700IN]"), -100) + + # let's query for January + self._do_queries( + datetime.date(self.curr_year, 1, 1), datetime.date(self.curr_year, 1, 31) + ) + # initial balance is None for income account (it's not carried over) + self.assertEqual(self._eval("bali[400AR]"), 100) + self.assertIs(self._eval("bali[700IN]"), AccountingNone) + # check variation + self.assertEqual(self._eval("balp[400AR]"), 300) + self.assertEqual(self._eval("balp[700IN]"), -300) + # check ending balance + self.assertEqual(self._eval("bale[400AR]"), 400) + self.assertEqual(self._eval("bale[700IN]"), -300) + + # let's query for March + self._do_queries( + datetime.date(self.curr_year, 3, 1), datetime.date(self.curr_year, 3, 31) + ) + # initial balance is the ending balance fo January + self.assertEqual(self._eval("bali[400AR]"), 400) + self.assertEqual(self._eval("bali[700IN]"), -300) + self.assertEqual(self._eval("pbali[400AR]"), 400) + self.assertEqual(self._eval("nbali[400AR]"), 0) + self.assertEqual(self._eval("nbali[700IN]"), -300) + self.assertEqual(self._eval("pbali[700IN]"), 0) + # check variation + self.assertEqual(self._eval("balp[400AR]"), 500) + self.assertEqual(self._eval("balp[700IN]"), -500) + self.assertEqual(self._eval("nbalp[400AR]"), 0) + self.assertEqual(self._eval("pbalp[400AR]"), 500) + self.assertEqual(self._eval("nbalp[700IN]"), -500) + self.assertEqual(self._eval("pbalp[700IN]"), 0) + # check ending balance + self.assertEqual(self._eval("bale[400AR]"), 900) + self.assertEqual(self._eval("nbale[400AR]"), 0) + self.assertEqual(self._eval("pbale[400AR]"), 900) + self.assertEqual(self._eval("bale[700IN]"), -800) + self.assertEqual(self._eval("nbale[700IN]"), -800) + self.assertEqual(self._eval("pbale[700IN]"), 0) + # check some variant expressions, for coverage + self.assertEqual(self._eval("crdp[700I%]"), 500) + self.assertEqual(self._eval("debp[400A%]"), 500) + self.assertEqual(self._eval("bal_700IN"), -500) + self.assertEqual(self._eval("bals[700IN]"), -800) + + # unallocated p&l from previous year + self.assertEqual(self._eval("balu[]"), -100) + + # TODO allocate profits, and then... + + def test_aep_by_account(self): + self.aep.done_parsing() + self._do_queries( + datetime.date(self.curr_year, 3, 1), datetime.date(self.curr_year, 3, 31) + ) + variation = self._eval_by_account_id("balp[]") + self.assertEqual(variation, {self.account_ar.id: 500, self.account_in.id: -500}) + variation = self._eval_by_account_id("pbalp[]") + self.assertEqual( + variation, {self.account_ar.id: 500, self.account_in.id: AccountingNone} + ) + variation = self._eval_by_account_id("nbalp[]") + self.assertEqual( + variation, {self.account_ar.id: AccountingNone, self.account_in.id: -500} + ) + variation = self._eval_by_account_id("balp[700IN]") + self.assertEqual(variation, {self.account_in.id: -500}) + variation = self._eval_by_account_id("crdp[700IN] - debp[400AR]") + self.assertEqual(variation, {self.account_ar.id: -500, self.account_in.id: 500}) + end = self._eval_by_account_id("bale[]") + self.assertEqual(end, {self.account_ar.id: 900, self.account_in.id: -800}) + + def test_aep_convenience_methods(self): + initial = AEP.get_balances_initial(self.company, time.strftime("%Y") + "-03-01") + self.assertEqual( + initial, {self.account_ar.id: (400, 0), self.account_in.id: (0, 300)} + ) + variation = AEP.get_balances_variation( + self.company, + time.strftime("%Y") + "-03-01", + time.strftime("%Y") + "-03-31", + ) + self.assertEqual( + variation, {self.account_ar.id: (500, 0), self.account_in.id: (0, 500)} + ) + end = AEP.get_balances_end(self.company, time.strftime("%Y") + "-03-31") + self.assertEqual( + end, {self.account_ar.id: (900, 0), self.account_in.id: (0, 800)} + ) + unallocated = AEP.get_unallocated_pl( + self.company, time.strftime("%Y") + "-03-15" + ) + self.assertEqual(unallocated, (0, 100)) + + def test_float_is_zero(self): + dp = self.company.currency_id.decimal_places + self.assertEqual(dp, 2) + # make initial balance at Jan 1st equal to 0.01 + self._create_move( + date=datetime.date(self.prev_year, 12, 1), + amount=100.01, + debit_acc=self.account_in, + credit_acc=self.account_ar, + ) + initial = AEP.get_balances_initial(self.company, time.strftime("%Y") + "-01-01") + self.assertEqual(initial, {self.account_ar.id: (100.00, 100.01)}) + # make initial balance at Jan 1st equal to 0.001 + self._create_move( + date=datetime.date(self.prev_year, 12, 1), + amount=0.009, + debit_acc=self.account_ar, + credit_acc=self.account_in, + ) + initial = AEP.get_balances_initial(self.company, time.strftime("%Y") + "-01-01") + # epsilon initial balances is reported as empty + self.assertEqual(initial, {}) + + def test_get_account_ids_for_expr(self): + self.aep.done_parsing() + expr = "balp[700IN]" + account_ids = self.aep.get_account_ids_for_expr(expr) + self.assertEqual(account_ids, {self.account_in.id}) + expr = "balp[700%]" + account_ids = self.aep.get_account_ids_for_expr(expr) + self.assertEqual(account_ids, {self.account_in.id}) + expr = "bali[400%], bale[700%]" # subkpis combined expression + account_ids = self.aep.get_account_ids_for_expr(expr) + self.assertEqual(account_ids, {self.account_in.id, self.account_ar.id}) + + def test_get_aml_domain_for_expr(self): + self.aep.done_parsing() + expr = "balp[700IN]" + domain = self.aep.get_aml_domain_for_expr(expr, "2017-01-01", "2017-03-31") + self.assertEqual( + domain, + [ + ("account_id", "in", (self.account_in.id,)), + "&", + ("date", ">=", "2017-01-01"), + ("date", "<=", "2017-03-31"), + ], + ) + expr = "debi[700IN] - crdi[400AR]" + domain = self.aep.get_aml_domain_for_expr(expr, "2017-02-01", "2017-03-31") + self.assertEqual( + domain, + [ + "|", + # debi[700IN] + "&", + ("account_id", "in", (self.account_in.id,)), + ("debit", "<>", 0.0), + # crdi[400AR] + "&", + ("account_id", "in", (self.account_ar.id,)), + ("credit", "<>", 0.0), + "&", + # for P&L accounts, only after fy start + "|", + ("date", ">=", "2017-01-01"), + ("account_id.include_initial_balance", "=", True), + # everything must be before from_date for initial balance + ("date", "<", "2017-02-01"), + ], + ) + + def test_is_domain(self): + self.assertTrue(_is_domain("('a', '=' 1)")) + self.assertTrue(_is_domain("'&', ('a', '=' 1), ('b', '=', 1)")) + self.assertTrue(_is_domain("'|', ('a', '=' 1), ('b', '=', 1)")) + self.assertTrue(_is_domain("'!', ('a', '=' 1), ('b', '=', 1)")) + self.assertTrue(_is_domain("\"&\", ('a', '=' 1), ('b', '=', 1)")) + self.assertTrue(_is_domain("\"|\", ('a', '=' 1), ('b', '=', 1)")) + self.assertTrue(_is_domain("\"!\", ('a', '=' 1), ('b', '=', 1)")) + self.assertFalse(_is_domain("123%")) + self.assertFalse(_is_domain("123%,456")) + self.assertFalse(_is_domain("")) + + def test_inactive_tax(self): + expr = 'balp[][("tax_ids.name", "=", "test tax")]' + self.aep.parse_expr(expr) + self.aep.done_parsing() + + tax = self.env["account.tax"].create( + dict(name="test tax", active=True, amount=0, company_id=self.company.id) + ) + move = self._create_move( + date=datetime.date(self.prev_year, 12, 1), + amount=100, + debit_acc=self.account_ar, + credit_acc=self.account_in, + post=False, + ) + for ml in move.line_ids: + if ml.credit: + ml.write(dict(tax_ids=[(6, 0, [tax.id])])) + tax.active = False + move._post() + # let's query for december 1st + self._do_queries( + datetime.date(self.prev_year, 12, 1), datetime.date(self.prev_year, 12, 1) + ) + # let's see if there was a match + self.assertEqual(self._eval(expr), -100) + + def test_invalid_field(self): + expr = 'balp[][("invalid_field", "=", "...")]' + self.aep.parse_expr(expr) + self.aep.done_parsing() + with self.assertRaises(UserError) as cm: + self._do_queries( + datetime.date(self.prev_year, 12, 1), + datetime.date(self.prev_year, 12, 1), + ) + assert "Error while querying move line source" in str(cm.exception) diff --git a/mis_builder/tests/test_aggregate.py b/mis_builder/tests/test_aggregate.py new file mode 100644 index 0000000..f1650f1 --- /dev/null +++ b/mis_builder/tests/test_aggregate.py @@ -0,0 +1,7 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from ..models import aggregate +from .common import load_doctests + +load_tests = load_doctests(aggregate) diff --git a/mis_builder/tests/test_data_sources.py b/mis_builder/tests/test_data_sources.py new file mode 100644 index 0000000..977d89f --- /dev/null +++ b/mis_builder/tests/test_data_sources.py @@ -0,0 +1,219 @@ +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import flectra.tests.common as common + +from ..models.accounting_none import AccountingNone +from ..models.mis_report import CMP_DIFF +from ..models.mis_report_instance import ( + MODE_NONE, + SRC_ACTUALS_ALT, + SRC_CMPCOL, + SRC_SUMCOL, +) +from .common import assert_matrix + + +class TestMisReportInstanceDataSources(common.TransactionCase): + """Test sum and comparison data source.""" + + def _create_move(self, date, amount, debit_acc, credit_acc): + move = self.move_model.create( + { + "journal_id": self.journal.id, + "date": date, + "line_ids": [ + (0, 0, {"name": "/", "debit": amount, "account_id": debit_acc.id}), + ( + 0, + 0, + {"name": "/", "credit": amount, "account_id": credit_acc.id}, + ), + ], + } + ) + move._post() + return move + + def setUp(self): + super().setUp() + self.account_model = self.env["account.account"] + self.move_model = self.env["account.move"] + self.journal_model = self.env["account.journal"] + # create receivable bs account + self.account_ar = self.account_model.create( + { + "company_id": self.env.user.company_id.id, + "code": "400AR", + "name": "Receivable", + "account_type": "asset_receivable", + "reconcile": True, + } + ) + # create income account + self.account_in = self.account_model.create( + { + "company_id": self.env.user.company_id.id, + "code": "700IN", + "name": "Income", + "account_type": "income", + } + ) + self.account_in2 = self.account_model.create( + { + "company_id": self.env.user.company_id.id, + "code": "700IN2", + "name": "Income", + "account_type": "income", + } + ) + # create journal + self.journal = self.journal_model.create( + { + "company_id": self.env.user.company_id.id, + "name": "Sale journal", + "code": "VEN", + "type": "sale", + } + ) + # create move + self._create_move( + date="2017-01-01", + amount=11, + debit_acc=self.account_ar, + credit_acc=self.account_in, + ) + # create move + self._create_move( + date="2017-02-01", + amount=13, + debit_acc=self.account_ar, + credit_acc=self.account_in, + ) + self._create_move( + date="2017-02-01", + amount=17, + debit_acc=self.account_ar, + credit_acc=self.account_in2, + ) + # create report + self.report = self.env["mis.report"].create(dict(name="test report")) + self.kpi1 = self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + name="k1", + description="kpi 1", + expression="-balp[700IN]", + compare_method=CMP_DIFF, + ) + ) + self.expr1 = self.kpi1.expression_ids[0] + self.kpi2 = self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + name="k2", + description="kpi 2", + expression="-balp[700%]", + compare_method=CMP_DIFF, + auto_expand_accounts=True, + ) + ) + self.instance = self.env["mis.report.instance"].create( + dict(name="test instance", report_id=self.report.id, comparison_mode=True) + ) + self.p1 = self.env["mis.report.instance.period"].create( + dict( + name="p1", + report_instance_id=self.instance.id, + manual_date_from="2017-01-01", + manual_date_to="2017-01-31", + ) + ) + self.p2 = self.env["mis.report.instance.period"].create( + dict( + name="p2", + report_instance_id=self.instance.id, + manual_date_from="2017-02-01", + manual_date_to="2017-02-28", + ) + ) + + def test_sum(self): + self.psum = self.env["mis.report.instance.period"].create( + dict( + name="psum", + report_instance_id=self.instance.id, + mode=MODE_NONE, + source=SRC_SUMCOL, + source_sumcol_ids=[ + (0, 0, dict(period_to_sum_id=self.p1.id, sign="+")), + (0, 0, dict(period_to_sum_id=self.p2.id, sign="+")), + ], + ) + ) + matrix = self.instance._compute_matrix() + # None in last col because account details are not summed by default + assert_matrix( + matrix, + [ + [11, 13, 24], + [11, 30, 41], + [11, 13, AccountingNone], + [AccountingNone, 17, AccountingNone], + ], + ) + + def test_sum_diff(self): + self.psum = self.env["mis.report.instance.period"].create( + dict( + name="psum", + report_instance_id=self.instance.id, + mode=MODE_NONE, + source=SRC_SUMCOL, + source_sumcol_ids=[ + (0, 0, dict(period_to_sum_id=self.p1.id, sign="+")), + (0, 0, dict(period_to_sum_id=self.p2.id, sign="-")), + ], + source_sumcol_accdet=True, + ) + ) + matrix = self.instance._compute_matrix() + assert_matrix( + matrix, + [[11, 13, -2], [11, 30, -19], [11, 13, -2], [AccountingNone, 17, -17]], + ) + + def test_cmp(self): + self.pcmp = self.env["mis.report.instance.period"].create( + dict( + name="pcmp", + report_instance_id=self.instance.id, + mode=MODE_NONE, + source=SRC_CMPCOL, + source_cmpcol_from_id=self.p1.id, + source_cmpcol_to_id=self.p2.id, + ) + ) + matrix = self.instance._compute_matrix() + assert_matrix( + matrix, [[11, 13, 2], [11, 30, 19], [11, 13, 2], [AccountingNone, 17, 17]] + ) + + def test_actuals(self): + matrix = self.instance._compute_matrix() + assert_matrix(matrix, [[11, 13], [11, 30], [11, 13], [AccountingNone, 17]]) + + def test_actuals_disable_auto_expand_accounts(self): + self.instance.no_auto_expand_accounts = True + matrix = self.instance._compute_matrix() + assert_matrix(matrix, [[11, 13], [11, 30]]) + + def test_actuals_alt(self): + aml_model = self.env["ir.model"].search([("name", "=", "account.move.line")]) + self.kpi2.auto_expand_accounts = False + self.p1.source = SRC_ACTUALS_ALT + self.p1.source_aml_model_id = aml_model.id + self.p2.source = SRC_ACTUALS_ALT + self.p1.source_aml_model_id = aml_model.id + matrix = self.instance._compute_matrix() + assert_matrix(matrix, [[11, 13], [11, 30]]) diff --git a/mis_builder/tests/test_kpi_data.py b/mis_builder/tests/test_kpi_data.py new file mode 100644 index 0000000..66e586f --- /dev/null +++ b/mis_builder/tests/test_kpi_data.py @@ -0,0 +1,142 @@ +# Copyright 2017 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from flectra_test_helper import FakeModelLoader + +from flectra.tests.common import TransactionCase + +from ..models.mis_kpi_data import ACC_AVG, ACC_SUM + + +class TestKpiData(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + + cls.loader = FakeModelLoader(cls.env, cls.__module__) + cls.loader.backup_registry() + from .fake_models import MisKpiDataTestItem + + cls.loader.update_registry((MisKpiDataTestItem,)) + + report = cls.env["mis.report"].create(dict(name="test report")) + cls.kpi1 = cls.env["mis.report.kpi"].create( + dict( + report_id=report.id, + name="k1", + description="kpi 1", + expression="AccountingNone", + ) + ) + cls.expr1 = cls.kpi1.expression_ids[0] + cls.kpi2 = cls.env["mis.report.kpi"].create( + dict( + report_id=report.id, + name="k2", + description="kpi 2", + expression="AccountingNone", + ) + ) + cls.expr2 = cls.kpi2.expression_ids[0] + cls.kd11 = cls.env["mis.kpi.data.test.item"].create( + dict( + kpi_expression_id=cls.expr1.id, + date_from="2017-05-01", + date_to="2017-05-10", + amount=10, + ) + ) + cls.kd12 = cls.env["mis.kpi.data.test.item"].create( + dict( + kpi_expression_id=cls.expr1.id, + date_from="2017-05-11", + date_to="2017-05-20", + amount=20, + ) + ) + cls.kd13 = cls.env["mis.kpi.data.test.item"].create( + dict( + kpi_expression_id=cls.expr1.id, + date_from="2017-05-21", + date_to="2017-05-25", + amount=30, + ) + ) + cls.kd21 = cls.env["mis.kpi.data.test.item"].create( + dict( + kpi_expression_id=cls.expr2.id, + date_from="2017-06-01", + date_to="2017-06-30", + amount=3, + ) + ) + + @classmethod + def tearDownClass(cls): + cls.loader.restore_registry() + return super().tearDownClass() + + def test_kpi_data_name(self): + self.assertEqual(self.kd11.name, "k1: 2017-05-01 - 2017-05-10") + self.assertEqual(self.kd12.name, "k1: 2017-05-11 - 2017-05-20") + + def test_kpi_data_sum(self): + self.assertEqual(self.kpi1.accumulation_method, ACC_SUM) + # one full + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-01", "2017-05-10", [] + ) + self.assertEqual(r, {self.expr1: 10}) + # one half + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-01", "2017-05-05", [] + ) + self.assertEqual(r, {self.expr1: 5}) + # two full + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-01", "2017-05-20", [] + ) + self.assertEqual(r, {self.expr1: 30}) + # two half + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-06", "2017-05-15", [] + ) + self.assertEqual(r, {self.expr1: 15}) + # more than covered range + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-01-01", "2017-05-31", [] + ) + self.assertEqual(r, {self.expr1: 60}) + # two kpis + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-21", "2017-06-30", [] + ) + self.assertEqual(r, {self.expr1: 30, self.expr2: 3}) + + def test_kpi_data_avg(self): + self.kpi1.accumulation_method = ACC_AVG + # one full + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-01", "2017-05-10", [] + ) + self.assertEqual(r, {self.expr1: 10}) + # one half + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-01", "2017-05-05", [] + ) + self.assertEqual(r, {self.expr1: 10}) + # two full + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-01", "2017-05-20", [] + ) + self.assertEqual(r, {self.expr1: (10 * 10 + 20 * 10) / 20}) + # two half + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-05-06", "2017-05-15", [] + ) + self.assertEqual(r, {self.expr1: (10 * 5 + 20 * 5) / 10}) + # more than covered range + r = self.env["mis.kpi.data.test.item"]._query_kpi_data( + "2017-01-01", "2017-05-31", [] + ) + self.assertEqual(r, {self.expr1: (10 * 10 + 20 * 10 + 30 * 5) / 25}) diff --git a/mis_builder/tests/test_mis_report_instance.py b/mis_builder/tests/test_mis_report_instance.py new file mode 100644 index 0000000..830fa19 --- /dev/null +++ b/mis_builder/tests/test_mis_report_instance.py @@ -0,0 +1,589 @@ +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import flectra.tests.common as common +from flectra.tools import test_reports + +from ..models.accounting_none import AccountingNone +from ..models.mis_report import TYPE_STR, SubKPITupleLengthError, SubKPIUnknownTypeError + + +class TestMisReportInstance(common.HttpCase): + """Basic integration test to exercise mis.report.instance. + + We don't check the actual results here too much as computation correctness + should be covered by lower level unit tests. + """ + + def setUp(self): + super().setUp() + partner_model_id = self.env.ref("base.model_res_partner").id + partner_create_date_field_id = self.env.ref( + "base.field_res_partner__create_date" + ).id + partner_debit_field_id = self.env.ref("account.field_res_partner__debit").id + # create a report with 2 subkpis and one query + self.report = self.env["mis.report"].create( + dict( + name="test report", + subkpi_ids=[ + (0, 0, dict(name="sk1", description="subkpi 1", sequence=1)), + (0, 0, dict(name="sk2", description="subkpi 2", sequence=2)), + ], + query_ids=[ + ( + 0, + 0, + dict( + name="partner", + model_id=partner_model_id, + field_ids=[(4, partner_debit_field_id, None)], + date_field=partner_create_date_field_id, + aggregate="sum", + ), + ) + ], + ) + ) + # create another report with 2 subkpis, no query + self.report_2 = self.env["mis.report"].create( + dict( + name="another test report", + subkpi_ids=[ + ( + 0, + 0, + dict( + name="subkpi1_report2", + description="subkpi 1, report 2", + sequence=1, + ), + ), + ( + 0, + 0, + dict( + name="subkpi2_report2", + description="subkpi 2, report 2", + sequence=2, + ), + ), + ], + ) + ) + # Third report, 2 subkpis, no query + self.report_3 = self.env["mis.report"].create( + dict( + name="test report 3", + subkpi_ids=[ + ( + 0, + 0, + dict( + name="subkpi1_report3", + description="subkpi 1, report 3", + sequence=1, + ), + ), + ( + 0, + 0, + dict( + name="subkpi2_report3", + description="subkpi 2, report 3", + sequence=2, + ), + ), + ], + ) + ) + # kpi with accounting formulas + self.kpi1 = self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + description="kpi 1", + name="k1", + multi=True, + expression_ids=[ + ( + 0, + 0, + dict(name="bale[200%]", subkpi_id=self.report.subkpi_ids[0].id), + ), + ( + 0, + 0, + dict(name="balp[200%]", subkpi_id=self.report.subkpi_ids[1].id), + ), + ], + ) + ) + # kpi with accounting formula and query + self.kpi2 = self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + description="kpi 2", + name="k2", + multi=True, + expression_ids=[ + ( + 0, + 0, + dict(name="balp[200%]", subkpi_id=self.report.subkpi_ids[0].id), + ), + ( + 0, + 0, + dict( + name="partner.debit", subkpi_id=self.report.subkpi_ids[1].id + ), + ), + ], + ) + ) + # kpi with a simple expression summing other multi-valued kpis + self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + description="kpi 4", + name="k4", + multi=False, + expression="k1 + k2 + k3", + ) + ) + # kpi with 2 constants + self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + description="kpi 3", + name="k3", + multi=True, + expression_ids=[ + ( + 0, + 0, + dict( + name="AccountingNone", + subkpi_id=self.report.subkpi_ids[0].id, + ), + ), + (0, 0, dict(name="1.0", subkpi_id=self.report.subkpi_ids[1].id)), + ], + ) + ) + # kpi with a NameError (x not defined) + self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + description="kpi 5", + name="k5", + multi=True, + expression_ids=[ + (0, 0, dict(name="x", subkpi_id=self.report.subkpi_ids[0].id)), + (0, 0, dict(name="1.0", subkpi_id=self.report.subkpi_ids[1].id)), + ], + ) + ) + # string-type kpi + self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + description="kpi 6", + name="k6", + multi=True, + type=TYPE_STR, + expression_ids=[ + (0, 0, dict(name='"bla"', subkpi_id=self.report.subkpi_ids[0].id)), + ( + 0, + 0, + dict(name='"blabla"', subkpi_id=self.report.subkpi_ids[1].id), + ), + ], + ) + ) + # kpi that references another subkpi by name + self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + description="kpi 7", + name="k7", + multi=True, + expression_ids=[ + (0, 0, dict(name="k3.sk1", subkpi_id=self.report.subkpi_ids[0].id)), + (0, 0, dict(name="k3.sk2", subkpi_id=self.report.subkpi_ids[1].id)), + ], + ) + ) + # Report 2 : kpi with AccountingNone value + self.env["mis.report.kpi"].create( + dict( + report_id=self.report_2.id, + description="AccountingNone kpi", + name="AccountingNoneKPI", + multi=False, + ) + ) + # Report 2 : 'classic' kpi with values for each sub-KPI + self.env["mis.report.kpi"].create( + dict( + report_id=self.report_2.id, + description="Classic kpi", + name="classic_kpi_r2", + multi=True, + expression_ids=[ + ( + 0, + 0, + dict( + name="bale[200%]", subkpi_id=self.report_2.subkpi_ids[0].id + ), + ), + ( + 0, + 0, + dict( + name="balp[200%]", subkpi_id=self.report_2.subkpi_ids[1].id + ), + ), + ], + ) + ) + # Report 3 : kpi with wrong tuple length + self.env["mis.report.kpi"].create( + dict( + report_id=self.report_3.id, + description="Wrong tuple length kpi", + name="wrongTupleLen", + multi=False, + expression="('hello', 'does', 'this', 'work')", + ) + ) + # Report 3 : 'classic' kpi + self.env["mis.report.kpi"].create( + dict( + report_id=self.report_3.id, + description="Classic kpi", + name="classic_kpi_r2", + multi=True, + expression_ids=[ + ( + 0, + 0, + dict( + name="bale[200%]", subkpi_id=self.report_3.subkpi_ids[0].id + ), + ), + ( + 0, + 0, + dict( + name="balp[200%]", subkpi_id=self.report_3.subkpi_ids[1].id + ), + ), + ], + ) + ) + # create a report instance + self.report_instance = self.env["mis.report.instance"].create( + dict( + name="test instance", + report_id=self.report.id, + company_id=self.env.ref("base.main_company").id, + period_ids=[ + ( + 0, + 0, + dict( + name="p1", + mode="relative", + type="d", + subkpi_ids=[(4, self.report.subkpi_ids[0].id, None)], + ), + ), + ( + 0, + 0, + dict( + name="p2", + mode="fix", + manual_date_from="2014-01-01", + manual_date_to="2014-12-31", + ), + ), + ], + ) + ) + # same for report 2 + self.report_instance_2 = self.env["mis.report.instance"].create( + dict( + name="test instance 2", + report_id=self.report_2.id, + company_id=self.env.ref("base.main_company").id, + period_ids=[ + ( + 0, + 0, + dict( + name="p3", + mode="fix", + manual_date_from="2019-01-01", + manual_date_to="2019-12-31", + ), + ) + ], + ) + ) + # and for report 3 + self.report_instance_3 = self.env["mis.report.instance"].create( + dict( + name="test instance 3", + report_id=self.report_3.id, + company_id=self.env.ref("base.main_company").id, + period_ids=[ + ( + 0, + 0, + dict( + name="p4", + mode="fix", + manual_date_from="2019-01-01", + manual_date_to="2019-12-31", + ), + ) + ], + ) + ) + + def test_compute(self): + matrix = self.report_instance._compute_matrix() + for row in matrix.iter_rows(): + vals = [c.val for c in row.iter_cells()] + if row.kpi.name == "k3": + # k3 is constant + self.assertEqual(vals, [AccountingNone, AccountingNone, 1.0]) + elif row.kpi.name == "k6": + # k6 is a string kpi + self.assertEqual(vals, ["bla", "bla", "blabla"]) + elif row.kpi.name == "k7": + # k7 references k3 via subkpi names + self.assertEqual(vals, [AccountingNone, AccountingNone, 1.0]) + + def test_multi_company_compute(self): + self.report_instance.write( + { + "multi_company": True, + "company_ids": [(6, 0, self.report_instance.company_id.ids)], + } + ) + self.report_instance.report_id.kpi_ids.write({"auto_expand_accounts": True}) + matrix = self.report_instance._compute_matrix() + for row in matrix.iter_rows(): + if row.account_id: + account = self.env["account.account"].browse(row.account_id) + self.assertEqual( + row.label, + f"{account.code} {account.name} [{account.company_id.name}]", + ) + self.report_instance.write({"multi_company": False}) + matrix = self.report_instance._compute_matrix() + for row in matrix.iter_rows(): + if row.account_id: + account = self.env["account.account"].browse(row.account_id) + self.assertEqual(row.label, f"{account.code} {account.name}") + + def test_evaluate(self): + company = self.env.ref("base.main_company") + aep = self.report._prepare_aep(company) + r = self.report.evaluate(aep, date_from="2014-01-01", date_to="2014-12-31") + self.assertEqual(r["k3"], (AccountingNone, 1.0)) + self.assertEqual(r["k6"], ("bla", "blabla")) + self.assertEqual(r["k7"], (AccountingNone, 1.0)) + + def test_json(self): + self.report_instance.compute() + + def test_drilldown(self): + action = self.report_instance.drilldown( + dict(expr="balp[200%]", period_id=self.report_instance.period_ids[0].id) + ) + account_ids = ( + self.env["account.account"] + .search( + [ + ("code", "=like", "200%"), + ("company_id", "=", self.env.ref("base.main_company").id), + ] + ) + .ids + ) + self.assertTrue(("account_id", "in", tuple(account_ids)) in action["domain"]) + self.assertEqual(action["res_model"], "account.move.line") + + def test_drilldown_action_name_with_account(self): + period = self.report_instance.period_ids[0] + account = self.env["account.account"].search([], limit=1) + args = { + "period_id": period.id, + "kpi_id": self.kpi1.id, + "account_id": account.id, + } + action_name = self.report_instance._get_drilldown_action_name(args) + expected_name = "{kpi} - {account} - {period}".format( + kpi=self.kpi1.description, + account=account.display_name, + period=period.display_name, + ) + assert action_name == expected_name + + def test_drilldown_action_name_without_account(self): + period = self.report_instance.period_ids[0] + args = { + "period_id": period.id, + "kpi_id": self.kpi1.id, + } + action_name = self.report_instance._get_drilldown_action_name(args) + expected_name = f"{self.kpi1.description} - {period.display_name}" + assert action_name == expected_name + + def test_qweb(self): + self.report_instance.print_pdf() # get action + test_reports.try_report( + self.env.cr, + self.env.uid, + "mis_builder.report_mis_report_instance", + [self.report_instance.id], + report_type="qweb-pdf", + ) + + def test_xlsx(self): + self.report_instance.export_xls() # get action + test_reports.try_report( + self.env.cr, + self.env.uid, + "mis_builder.mis_report_instance_xlsx", + [self.report_instance.id], + report_type="xlsx", + ) + + def test_get_kpis_by_account_id(self): + account_ids = ( + self.env["account.account"] + .search( + [ + ("code", "=like", "200%"), + ("company_id", "=", self.env.ref("base.main_company").id), + ] + ) + .ids + ) + kpi200 = {self.kpi1, self.kpi2} + res = self.report.get_kpis_by_account_id(self.env.ref("base.main_company")) + for account_id in account_ids: + self.assertTrue(account_id in res) + self.assertEqual(res[account_id], kpi200) + + def test_kpi_name_get_name_search(self): + r = self.env["mis.report.kpi"].name_search("k1") + self.assertEqual(len(r), 1) + self.assertEqual(r[0][0], self.kpi1.id) + self.assertEqual(r[0][1], "kpi 1 (k1)") + r = self.env["mis.report.kpi"].name_search("kpi 1") + self.assertEqual(len(r), 1) + self.assertEqual(r[0][0], self.kpi1.id) + self.assertEqual(r[0][1], "kpi 1 (k1)") + + def test_kpi_expr_name_get_name_search(self): + r = self.env["mis.report.kpi.expression"].name_search("k1") + self.assertEqual( + [i[1] for i in r], + ["kpi 1 / subkpi 1 (k1.sk1)", "kpi 1 / subkpi 2 (k1.sk2)"], + ) + r = self.env["mis.report.kpi.expression"].name_search("k1.sk1") + self.assertEqual([i[1] for i in r], ["kpi 1 / subkpi 1 (k1.sk1)"]) + r = self.env["mis.report.kpi.expression"].name_search("k4") + self.assertEqual([i[1] for i in r], ["kpi 4 (k4)"]) + + def test_query_company_ids(self): + # sanity check single company mode + assert not self.report_instance.multi_company + assert self.report_instance.company_id + assert self.report_instance.query_company_ids == self.report_instance.company_id + # create a second company + c1 = self.report_instance.company_id + c2 = self.env["res.company"].create( + dict( + name="company 2", + ) + ) + self.report_instance.write(dict(multi_company=True, company_id=False)) + self.report_instance.company_ids |= c1 + self.report_instance.company_ids |= c2 + assert len(self.report_instance.company_ids) == 2 + self.assertFalse(self.report_instance.query_company_ids - self.env.companies) + # In a user context where there is only one company, ensure + # query_company_ids only has one company too. + assert ( + self.report_instance.with_context( + allowed_company_ids=(c1.id,) + ).query_company_ids + == c1 + ) + + def test_multi_company_onchange(self): + # not multi company + self.assertTrue(self.report_instance.company_id) + self.assertFalse(self.report_instance.multi_company) + self.assertFalse(self.report_instance.company_ids) + self.assertEqual( + self.report_instance.query_company_ids[0], self.report_instance.company_id + ) + # create a child company + self.env["res.company"].create( + dict(name="company 2", parent_id=self.report_instance.company_id.id) + ) + self.report_instance.multi_company = True + # multi company, company_ids not set + self.assertEqual(self.report_instance.query_company_ids, self.env.companies) + # set company_ids + previous_company = self.report_instance.company_id + self.report_instance._onchange_company() + self.assertFalse(self.report_instance.company_id) + self.assertTrue(self.report_instance.multi_company) + self.assertEqual(self.report_instance.company_ids, previous_company) + self.assertEqual(self.report_instance.query_company_ids, previous_company) + # reset single company mode + self.report_instance.multi_company = False + self.report_instance._onchange_company() + self.assertEqual( + self.report_instance.query_company_ids[0], self.report_instance.company_id + ) + self.assertFalse(self.report_instance.company_ids) + + def test_mis_report_analytic_filters(self): + # Check that matrix has no values when using a filter with a non existing value + matrix = self.report_instance.with_context( + analytic_domain=[("partner_id", "=", -1)] + )._compute_matrix() + for row in matrix.iter_rows(): + vals = [c.val for c in row.iter_cells()] + if row.kpi.name == "k1": + self.assertEqual(vals, [AccountingNone, AccountingNone, AccountingNone]) + elif row.kpi.name == "k2": + self.assertEqual(vals, [AccountingNone, AccountingNone, None]) + elif row.kpi.name == "k4": + self.assertEqual(vals, [AccountingNone, AccountingNone, 1.0]) + + def test_raise_when_unknown_kpi_value_type(self): + with self.assertRaises(SubKPIUnknownTypeError): + self.report_instance_2.compute() + + def test_raise_when_wrong_tuple_length_with_subkpis(self): + with self.assertRaises(SubKPITupleLengthError): + self.report_instance_3.compute() + + def test_unprivileged(self): + test_user = common.new_test_user( + self.env, "mis_you", groups="base.group_user,account.group_account_readonly" + ) + self.report_instance.with_user(test_user).compute() diff --git a/mis_builder/tests/test_mis_safe_eval.py b/mis_builder/tests/test_mis_safe_eval.py new file mode 100644 index 0000000..e0f220d --- /dev/null +++ b/mis_builder/tests/test_mis_safe_eval.py @@ -0,0 +1,25 @@ +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import flectra.tests.common as common + +from ..models.mis_safe_eval import DataError, NameDataError, mis_safe_eval + + +class TestMisSafeEval(common.TransactionCase): + def test_nominal(self): + val = mis_safe_eval("a + 1", {"a": 1}) + self.assertEqual(val, 2) + + def test_exceptions(self): + val = mis_safe_eval("1/0", {}) # division by zero + self.assertTrue(isinstance(val, DataError)) + self.assertEqual(val.name, "#DIV/0") + val = mis_safe_eval("1a", {}) # syntax error + self.assertTrue(isinstance(val, DataError)) + self.assertEqual(val.name, "#ERR") + + def test_name_error(self): + val = mis_safe_eval("a + 1", {}) + self.assertTrue(isinstance(val, NameDataError)) + self.assertEqual(val.name, "#NAME") diff --git a/mis_builder/tests/test_multi_company_aep.py b/mis_builder/tests/test_multi_company_aep.py new file mode 100644 index 0000000..199fae7 --- /dev/null +++ b/mis_builder/tests/test_multi_company_aep.py @@ -0,0 +1,208 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import datetime + +import flectra.tests.common as common +from flectra import fields +from flectra.tools.safe_eval import safe_eval + +from ..models.accounting_none import AccountingNone +from ..models.aep import AccountingExpressionProcessor as AEP + + +class TestMultiCompanyAEP(common.TransactionCase): + def setUp(self): + super().setUp() + self.res_company = self.env["res.company"] + self.account_model = self.env["account.account"] + self.move_model = self.env["account.move"] + self.journal_model = self.env["account.journal"] + self.currency_model = self.env["res.currency"] + self.curr_year = datetime.date.today().year + self.prev_year = self.curr_year - 1 + self.usd = self.currency_model.with_context(active_test=False).search( + [("name", "=", "USD")] + ) + self.eur = self.currency_model.with_context(active_test=False).search( + [("name", "=", "EUR")] + ) + # create company A and B + self.company_eur = self.res_company.create( + {"name": "CYEUR", "currency_id": self.eur.id} + ) + self.company_usd = self.res_company.create( + {"name": "CYUSD", "currency_id": self.usd.id} + ) + self.env["res.currency.rate"].search([]).unlink() + for company, divider in [(self.company_eur, 1.0), (self.company_usd, 2.0)]: + # create receivable bs account + company_key = company.name + setattr( + self, + "account_ar_" + company_key, + self.account_model.create( + { + "company_id": company.id, + "code": "400AR", + "name": "Receivable", + "account_type": "asset_receivable", + "reconcile": True, + } + ), + ) + # create income pl account + setattr( + self, + "account_in_" + company_key, + self.account_model.create( + { + "company_id": company.id, + "code": "700IN", + "name": "Income", + "account_type": "income", + } + ), + ) + # create journal + setattr( + self, + "journal" + company_key, + self.journal_model.create( + { + "company_id": company.id, + "name": "Sale journal", + "code": "VEN", + "type": "sale", + } + ), + ) + # create move in december last year + self._create_move( + journal=getattr(self, "journal" + company_key), + date=datetime.date(self.prev_year, 12, 1), + amount=100 / divider, + debit_acc=getattr(self, "account_ar_" + company_key), + credit_acc=getattr(self, "account_in_" + company_key), + ) + # create move in january this year + self._create_move( + journal=getattr(self, "journal" + company_key), + date=datetime.date(self.curr_year, 1, 1), + amount=300 / divider, + debit_acc=getattr(self, "account_ar_" + company_key), + credit_acc=getattr(self, "account_in_" + company_key), + ) + # create move in february this year + self._create_move( + journal=getattr(self, "journal" + company_key), + date=datetime.date(self.curr_year, 3, 1), + amount=500 / divider, + debit_acc=getattr(self, "account_ar_" + company_key), + credit_acc=getattr(self, "account_in_" + company_key), + ) + + def _create_move(self, journal, date, amount, debit_acc, credit_acc): + move = self.move_model.create( + { + "journal_id": journal.id, + "date": fields.Date.to_string(date), + "line_ids": [ + (0, 0, {"name": "/", "debit": amount, "account_id": debit_acc.id}), + ( + 0, + 0, + {"name": "/", "credit": amount, "account_id": credit_acc.id}, + ), + ], + } + ) + move._post() + return move + + def _do_queries(self, companies, currency, date_from, date_to): + # create the AEP, and prepare the expressions we'll need + aep = AEP(companies, currency) + aep.parse_expr("bali[]") + aep.parse_expr("bale[]") + aep.parse_expr("balp[]") + aep.parse_expr("balu[]") + aep.parse_expr("bali[700IN]") + aep.parse_expr("bale[700IN]") + aep.parse_expr("balp[700IN]") + aep.parse_expr("bali[400AR]") + aep.parse_expr("bale[400AR]") + aep.parse_expr("balp[400AR]") + aep.parse_expr("debp[400A%]") + aep.parse_expr("crdp[700I%]") + aep.parse_expr("bali[400%]") + aep.parse_expr("bale[700%]") + aep.done_parsing() + aep.do_queries( + date_from=fields.Date.to_string(date_from), + date_to=fields.Date.to_string(date_to), + ) + return aep + + def _eval(self, aep, expr): + eval_dict = {"AccountingNone": AccountingNone} + return safe_eval(aep.replace_expr(expr), eval_dict) + + def _eval_by_account_id(self, aep, expr): + res = {} + eval_dict = {"AccountingNone": AccountingNone} + for account_id, replaced_exprs in aep.replace_exprs_by_account_id([expr]): + res[account_id] = safe_eval(replaced_exprs[0], eval_dict) + return res + + def test_aep_basic(self): + # let's query for december, one company + aep = self._do_queries( + self.company_eur, + None, + datetime.date(self.prev_year, 12, 1), + datetime.date(self.prev_year, 12, 31), + ) + self.assertEqual(self._eval(aep, "balp[700IN]"), -100) + aep = self._do_queries( + self.company_usd, + None, + datetime.date(self.prev_year, 12, 1), + datetime.date(self.prev_year, 12, 31), + ) + self.assertEqual(self._eval(aep, "balp[700IN]"), -50) + # let's query for december, two companies + aep = self._do_queries( + self.company_eur | self.company_usd, + self.eur, + datetime.date(self.prev_year, 12, 1), + datetime.date(self.prev_year, 12, 31), + ) + self.assertEqual(self._eval(aep, "balp[700IN]"), -150) + + def test_aep_multi_currency(self): + date_from = datetime.date(self.prev_year, 12, 1) + date_to = datetime.date(self.prev_year, 12, 31) + today = datetime.date.today() + self.env["res.currency.rate"].create( + dict(currency_id=self.usd.id, name=date_to, rate=1.1) + ) + self.env["res.currency.rate"].create( + dict(currency_id=self.usd.id, name=today, rate=1.2) + ) + # let's query for december, one company, default currency = eur + aep = self._do_queries(self.company_eur, None, date_from, date_to) + self.assertEqual(self._eval(aep, "balp[700IN]"), -100) + # let's query for december, two companies + aep = self._do_queries( + self.company_eur | self.company_usd, self.eur, date_from, date_to + ) + self.assertAlmostEqual(self._eval(aep, "balp[700IN]"), -100 - 50 / 1.1) + # let's query for december, one company, currency = usd + aep = self._do_queries(self.company_eur, self.usd, date_from, date_to) + self.assertAlmostEqual(self._eval(aep, "balp[700IN]"), -100 * 1.1) + # let's query for december, two companies, currency = usd + aep = self._do_queries( + self.company_eur | self.company_usd, self.usd, date_from, date_to + ) + self.assertAlmostEqual(self._eval(aep, "balp[700IN]"), -100 * 1.1 - 50) diff --git a/mis_builder/tests/test_period_dates.py b/mis_builder/tests/test_period_dates.py new file mode 100644 index 0000000..d37303c --- /dev/null +++ b/mis_builder/tests/test_period_dates.py @@ -0,0 +1,159 @@ +# Copyright 2017 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import flectra.tests.common as common +from flectra import fields + +from ..models.mis_report_instance import ( + MODE_FIX, + MODE_NONE, + MODE_REL, + SRC_SUMCOL, + DateFilterForbidden, + DateFilterRequired, +) +from .common import assert_matrix + + +class TestPeriodDates(common.TransactionCase): + def setUp(self): + super().setUp() + self.report_obj = self.env["mis.report"] + self.instance_obj = self.env["mis.report.instance"] + self.period_obj = self.env["mis.report.instance.period"] + self.report = self.report_obj.create(dict(name="test-report")) + self.instance = self.instance_obj.create( + dict(name="test-instance", report_id=self.report.id, comparison_mode=False) + ) + self.assertEqual(len(self.instance.period_ids), 1) + self.period = self.instance.period_ids[0] + + def assertDateEqual(self, first, second, msg=None): + self.assertEqual(first, fields.Date.from_string(second), msg) + + def test_date_filter_constraints(self): + self.instance.comparison_mode = True + with self.assertRaises(DateFilterRequired): + self.period.write(dict(mode=MODE_NONE)) + with self.assertRaises(DateFilterForbidden): + self.period.write(dict(mode=MODE_FIX, source=SRC_SUMCOL)) + + def test_simple_mode(self): + # not comparison_mode + self.assertFalse(self.instance.comparison_mode) + period = self.instance.period_ids[0] + self.assertEqual(period.date_from, self.instance.date_from) + self.assertEqual(period.date_to, self.instance.date_to) + + def tests_mode_none(self): + self.instance.comparison_mode = True + self.period.write(dict(mode=MODE_NONE, source=SRC_SUMCOL)) + self.assertFalse(self.period.date_from) + self.assertFalse(self.period.date_to) + self.assertTrue(self.period.valid) + + def tests_mode_fix(self): + self.instance.comparison_mode = True + self.period.write( + dict( + mode=MODE_FIX, + manual_date_from="2017-01-01", + manual_date_to="2017-12-31", + ) + ) + self.assertDateEqual(self.period.date_from, "2017-01-01") + self.assertDateEqual(self.period.date_to, "2017-12-31") + self.assertTrue(self.period.valid) + + def test_rel_day(self): + self.instance.write(dict(comparison_mode=True, date="2017-01-01")) + self.period.write(dict(mode=MODE_REL, type="d", offset="-2")) + self.assertDateEqual(self.period.date_from, "2016-12-30") + self.assertDateEqual(self.period.date_to, "2016-12-30") + self.assertTrue(self.period.valid) + + def test_rel_day_ytd(self): + self.instance.write(dict(comparison_mode=True, date="2019-05-03")) + self.period.write(dict(mode=MODE_REL, type="d", offset="-2", is_ytd=True)) + self.assertDateEqual(self.period.date_from, "2019-01-01") + self.assertDateEqual(self.period.date_to, "2019-05-01") + self.assertTrue(self.period.valid) + + def test_rel_week(self): + self.instance.write(dict(comparison_mode=True, date="2016-12-30")) + self.period.write(dict(mode=MODE_REL, type="w", offset="1", duration=2)) + # from Monday to Sunday, the week after 2016-12-30 + self.assertDateEqual(self.period.date_from, "2017-01-02") + self.assertDateEqual(self.period.date_to, "2017-01-15") + self.assertTrue(self.period.valid) + + def test_rel_week_ytd(self): + self.instance.write(dict(comparison_mode=True, date="2019-05-27")) + self.period.write( + dict(mode=MODE_REL, type="w", offset="1", duration=2, is_ytd=True) + ) + self.assertDateEqual(self.period.date_from, "2019-01-01") + self.assertDateEqual(self.period.date_to, "2019-06-16") + self.assertTrue(self.period.valid) + + def test_rel_month(self): + self.instance.write(dict(comparison_mode=True, date="2017-01-05")) + self.period.write(dict(mode=MODE_REL, type="m", offset="1")) + self.assertDateEqual(self.period.date_from, "2017-02-01") + self.assertDateEqual(self.period.date_to, "2017-02-28") + self.assertTrue(self.period.valid) + + def test_rel_month_ytd(self): + self.instance.write(dict(comparison_mode=True, date="2019-05-15")) + self.period.write(dict(mode=MODE_REL, type="m", offset="-1", is_ytd=True)) + self.assertDateEqual(self.period.date_from, "2019-01-01") + self.assertDateEqual(self.period.date_to, "2019-04-30") + self.assertTrue(self.period.valid) + + def test_rel_year(self): + self.instance.write(dict(comparison_mode=True, date="2017-05-06")) + self.period.write(dict(mode=MODE_REL, type="y", offset="1")) + self.assertDateEqual(self.period.date_from, "2018-01-01") + self.assertDateEqual(self.period.date_to, "2018-12-31") + self.assertTrue(self.period.valid) + + def test_rel_date_range(self): + # create a few date ranges + date_range_type = self.env["date.range.type"].create(dict(name="Year")) + for year in (2016, 2017, 2018): + self.env["date.range"].create( + dict( + type_id=date_range_type.id, + name="%d" % year, + date_start="%d-01-01" % year, + date_end="%d-12-31" % year, + company_id=date_range_type.company_id.id, + ) + ) + self.instance.write(dict(comparison_mode=True, date="2017-06-15")) + self.period.write( + dict( + mode=MODE_REL, + type="date_range", + date_range_type_id=date_range_type.id, + offset="-1", + duration=3, + ) + ) + self.assertDateEqual(self.period.date_from, "2016-01-01") + self.assertDateEqual(self.period.date_to, "2018-12-31") + self.assertTrue(self.period.valid) + + def test_dates_in_expr(self): + self.env["mis.report.kpi"].create( + dict( + report_id=self.report.id, + name="k1", + description="kpi 1", + expression="(date_to - date_from).days + 1", + ) + ) + self.instance.date_from = "2017-01-01" + self.instance.date_to = "2017-01-31" + matrix = self.instance._compute_matrix() + assert_matrix(matrix, [[31]]) diff --git a/mis_builder/tests/test_render.py b/mis_builder/tests/test_render.py new file mode 100644 index 0000000..2d7225d --- /dev/null +++ b/mis_builder/tests/test_render.py @@ -0,0 +1,315 @@ +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import flectra.tests.common as common + +from ..models.accounting_none import AccountingNone +from ..models.data_error import DataError +from ..models.mis_report_style import CMP_DIFF, CMP_PCT, TYPE_NUM, TYPE_PCT, TYPE_STR + + +class TestRendering(common.TransactionCase): + def setUp(self): + super().setUp() + self.style_obj = self.env["mis.report.style"] + self.kpi_obj = self.env["mis.report.kpi"] + self.style = self.style_obj.create(dict(name="teststyle")) + self.lang = ( + self.env["res.lang"] + .with_context(active_test=False) + .search([("code", "=", "en_US")])[0] + ) + + def _render(self, value, var_type=TYPE_NUM): + style_props = self.style_obj.merge([self.style]) + return self.style_obj.render(self.lang, style_props, var_type, value) + + def _compare_and_render( + self, value, base_value, var_type=TYPE_NUM, compare_method=CMP_PCT + ): + style_props = self.style_obj.merge([self.style]) + r = self.style_obj.compare_and_render( + self.lang, style_props, var_type, compare_method, value, base_value + )[:2] + if r[0]: + return (round(r[0], 8), r[1]) + else: + return r + + def test_render(self): + self.assertEqual("1", self._render(1)) + self.assertEqual("1", self._render(1.1)) + self.assertEqual("2", self._render(1.6)) + self.style.dp_inherit = False + self.style.dp = 2 + self.assertEqual("1.00", self._render(1)) + self.assertEqual("1.10", self._render(1.1)) + self.assertEqual("1.60", self._render(1.6)) + self.assertEqual("1.61", self._render(1.606)) + self.assertEqual("12,345.67", self._render(12345.67)) + + def test_render_negative(self): + # non breaking hyphen + self.assertEqual("\u20111", self._render(-1)) + + def test_render_zero(self): + self.assertEqual("0", self._render(0)) + self.assertEqual("", self._render(None)) + self.assertEqual("", self._render(AccountingNone)) + + def test_render_suffix(self): + self.style.suffix_inherit = False + self.style.suffix = "€" + self.assertEqual("1\xa0€", self._render(1)) + self.style.suffix = "k€" + self.style.divider_inherit = False + self.style.divider = "1e3" + self.assertEqual("1\xa0k€", self._render(1000)) + + def test_render_prefix(self): + self.style.prefix_inherit = False + self.style.prefix = "$" + self.assertEqual("$\xa01", self._render(1)) + self.style.prefix = "k$" + self.style.divider_inherit = False + self.style.divider = "1e3" + self.assertEqual("k$\xa01", self._render(1000)) + + def test_render_divider(self): + self.style.divider_inherit = False + self.style.divider = "1e3" + self.style.dp_inherit = False + self.style.dp = 0 + self.assertEqual("1", self._render(1000)) + self.style.divider = "1e6" + self.style.dp = 3 + self.assertEqual("0.001", self._render(1000)) + self.style.divider = "1e-3" + self.style.dp = 0 + self.assertEqual("1,000", self._render(1)) + self.style.divider = "1e-6" + self.style.dp = 0 + self.assertEqual("1,000,000", self._render(1)) + + def test_render_pct(self): + self.assertEqual("100\xa0%", self._render(1, TYPE_PCT)) + self.assertEqual("50\xa0%", self._render(0.5, TYPE_PCT)) + self.style.dp_inherit = False + self.style.dp = 2 + self.assertEqual("51.23\xa0%", self._render(0.5123, TYPE_PCT)) + + def test_render_string(self): + self.assertEqual("", self._render("", TYPE_STR)) + self.assertEqual("", self._render(None, TYPE_STR)) + self.assertEqual("abcdé", self._render("abcdé", TYPE_STR)) + + def test_compare_num_pct(self): + self.assertEqual((1.0, "+100.0\xa0%"), self._compare_and_render(100, 50)) + self.assertEqual((0.5, "+50.0\xa0%"), self._compare_and_render(75, 50)) + self.assertEqual((0.5, "+50.0\xa0%"), self._compare_and_render(-25, -50)) + self.assertEqual((1.0, "+100.0\xa0%"), self._compare_and_render(0, -50)) + self.assertEqual((2.0, "+200.0\xa0%"), self._compare_and_render(50, -50)) + self.assertEqual((-0.5, "\u201150.0\xa0%"), self._compare_and_render(25, 50)) + self.assertEqual((-1.0, "\u2011100.0\xa0%"), self._compare_and_render(0, 50)) + self.assertEqual((-2.0, "\u2011200.0\xa0%"), self._compare_and_render(-50, 50)) + self.assertEqual((-0.5, "\u201150.0\xa0%"), self._compare_and_render(-75, -50)) + self.assertEqual( + (AccountingNone, ""), self._compare_and_render(50, AccountingNone) + ) + self.assertEqual((AccountingNone, ""), self._compare_and_render(50, None)) + self.assertEqual((AccountingNone, ""), self._compare_and_render(50, 50)) + self.assertEqual((0.002, "+0.2\xa0%"), self._compare_and_render(50.1, 50)) + self.assertEqual((AccountingNone, ""), self._compare_and_render(50.01, 50)) + self.assertEqual( + (-1.0, "\u2011100.0\xa0%"), self._compare_and_render(AccountingNone, 50) + ) + self.assertEqual((-1.0, "\u2011100.0\xa0%"), self._compare_and_render(None, 50)) + self.assertEqual( + (AccountingNone, ""), self._compare_and_render(DataError("#ERR", "."), 1) + ) + self.assertEqual( + (AccountingNone, ""), self._compare_and_render(1, DataError("#ERR", ".")) + ) + + def test_compare_num_diff(self): + self.assertEqual( + (25, "+25"), self._compare_and_render(75, 50, TYPE_NUM, CMP_DIFF) + ) + self.assertEqual( + (-25, "\u201125"), self._compare_and_render(25, 50, TYPE_NUM, CMP_DIFF) + ) + self.style.suffix_inherit = False + self.style.suffix = "€" + self.assertEqual( + (-25, "\u201125\xa0€"), + self._compare_and_render(25, 50, TYPE_NUM, CMP_DIFF), + ) + self.style.suffix = "" + self.assertEqual( + (50.0, "+50"), + self._compare_and_render(50, AccountingNone, TYPE_NUM, CMP_DIFF), + ) + self.assertEqual( + (50.0, "+50"), self._compare_and_render(50, None, TYPE_NUM, CMP_DIFF) + ) + self.assertEqual( + (-50.0, "\u201150"), + self._compare_and_render(AccountingNone, 50, TYPE_NUM, CMP_DIFF), + ) + self.assertEqual( + (-50.0, "\u201150"), self._compare_and_render(None, 50, TYPE_NUM, CMP_DIFF) + ) + self.style.dp_inherit = False + self.style.dp = 2 + self.assertEqual( + (0.1, "+0.10"), self._compare_and_render(1.1, 1.0, TYPE_NUM, CMP_DIFF) + ) + self.assertEqual( + (AccountingNone, ""), + self._compare_and_render(1.001, 1.0, TYPE_NUM, CMP_DIFF), + ) + + def test_compare_pct(self): + self.assertEqual( + (0.25, "+25\xa0pp"), self._compare_and_render(0.75, 0.50, TYPE_PCT) + ) + self.assertEqual( + (AccountingNone, ""), self._compare_and_render(0.751, 0.750, TYPE_PCT) + ) + + def test_compare_pct_result_type(self): + style_props = self.style_obj.merge([self.style]) + result = self.style_obj.compare_and_render( + self.lang, style_props, TYPE_PCT, CMP_DIFF, 0.75, 0.50 + ) + self.assertEqual(result[3], TYPE_NUM) + + def test_merge(self): + self.style.color = "#FF0000" + self.style.color_inherit = False + style_props = self.style_obj.merge([self.style]) + self.assertEqual(style_props, {"color": "#FF0000"}) + style_dict = {"color": "#00FF00", "dp": 0} + style_props = self.style_obj.merge([self.style, style_dict]) + self.assertEqual(style_props, {"color": "#00FF00", "dp": 0}) + style2 = self.style_obj.create( + dict( + name="teststyle2", + dp_inherit=False, + dp=1, + # color_inherit=True: will not be applied + color="#0000FF", + ) + ) + style_props = self.style_obj.merge([self.style, style_dict, style2]) + self.assertEqual(style_props, {"color": "#00FF00", "dp": 1}) + + def test_css(self): + self.style.color_inherit = False + self.style.color = "#FF0000" + self.style.background_color_inherit = False + self.style.background_color = "#0000FF" + self.style.suffix_inherit = False + self.style.suffix = "s" + self.style.prefix_inherit = False + self.style.prefix = "p" + self.style.font_style_inherit = False + self.style.font_style = "italic" + self.style.font_weight_inherit = False + self.style.font_weight = "bold" + self.style.font_size_inherit = False + self.style.font_size = "small" + self.style.indent_level_inherit = False + self.style.indent_level = 2 + style_props = self.style_obj.merge([self.style]) + css = self.style_obj.to_css_style(style_props) + self.assertEqual( + css, + "font-style: italic; " + "font-weight: bold; " + "font-size: small; " + "color: #FF0000; " + "background-color: #0000FF; " + "text-indent: 2em", + ) + css = self.style_obj.to_css_style(style_props, no_indent=True) + self.assertEqual( + css, + "font-style: italic; " + "font-weight: bold; " + "font-size: small; " + "color: #FF0000; " + "background-color: #0000FF", + ) + + def test_xslx(self): + self.style.color_inherit = False + self.style.color = "#FF0000" + self.style.background_color_inherit = False + self.style.background_color = "#0000FF" + self.style.suffix_inherit = False + self.style.suffix = "s" + self.style.prefix_inherit = False + self.style.prefix = "p" + self.style.dp_inherit = False + self.style.dp = 2 + self.style.font_style_inherit = False + self.style.font_style = "italic" + self.style.font_weight_inherit = False + self.style.font_weight = "bold" + self.style.font_size_inherit = False + self.style.font_size = "small" + self.style.indent_level_inherit = False + self.style.indent_level = 2 + style_props = self.style_obj.merge([self.style]) + xlsx = self.style_obj.to_xlsx_style(TYPE_NUM, style_props) + self.assertEqual( + xlsx, + { + "italic": True, + "bold": True, + "size": 9, + "font_color": "#FF0000", + "bg_color": "#0000FF", + "num_format": '"p "#,##0.00" s"', + "indent": 2, + }, + ) + xlsx = self.style_obj.to_xlsx_style(TYPE_NUM, style_props, no_indent=True) + self.assertEqual( + xlsx, + { + "italic": True, + "bold": True, + "size": 9, + "font_color": "#FF0000", + "bg_color": "#0000FF", + "num_format": '"p "#,##0.00" s"', + }, + ) + # percent type ignore prefix and suffix + xlsx = self.style_obj.to_xlsx_style(TYPE_PCT, style_props, no_indent=True) + self.assertEqual( + xlsx, + { + "italic": True, + "bold": True, + "size": 9, + "font_color": "#FF0000", + "bg_color": "#0000FF", + "num_format": "0.00%", + }, + ) + + # str type have no num_format style + xlsx = self.style_obj.to_xlsx_style(TYPE_STR, style_props, no_indent=True) + self.assertEqual( + xlsx, + { + "italic": True, + "bold": True, + "size": 9, + "font_color": "#FF0000", + "bg_color": "#0000FF", + }, + ) diff --git a/mis_builder/tests/test_simple_array.py b/mis_builder/tests/test_simple_array.py new file mode 100644 index 0000000..36d8e13 --- /dev/null +++ b/mis_builder/tests/test_simple_array.py @@ -0,0 +1,7 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from ..models import simple_array +from .common import load_doctests + +load_tests = load_doctests(simple_array) diff --git a/mis_builder/tests/test_subreport.py b/mis_builder/tests/test_subreport.py new file mode 100644 index 0000000..c24bfcf --- /dev/null +++ b/mis_builder/tests/test_subreport.py @@ -0,0 +1,96 @@ +# Copyright 2020 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from flectra.tests.common import TransactionCase + +from flectra.addons.mis_builder.models.expression_evaluator import ExpressionEvaluator +from flectra.addons.mis_builder.models.mis_report_subreport import ( + InvalidNameError, + ParentLoopError, +) + + +class TestMisSubreport(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + # create report + cls.subreport = cls.env["mis.report"].create(dict(name="test subreport")) + cls.subreport_kpi1 = cls.env["mis.report.kpi"].create( + dict( + report_id=cls.subreport.id, + name="sk1", + description="subreport kpi 1", + expression="11", + ) + ) + cls.report = cls.env["mis.report"].create( + dict( + name="test report", + subreport_ids=[ + (0, 0, dict(name="subreport", subreport_id=cls.subreport.id)) + ], + ) + ) + cls.report_kpi1 = cls.env["mis.report.kpi"].create( + dict( + report_id=cls.report.id, + name="k1", + description="report kpi 1", + expression="subreport.sk1 + 1", + ) + ) + cls.parent_report = cls.env["mis.report"].create( + dict( + name="parent report", + subreport_ids=[(0, 0, dict(name="report", subreport_id=cls.report.id))], + ) + ) + cls.parent_report_kpi1 = cls.env["mis.report.kpi"].create( + dict( + report_id=cls.parent_report.id, + name="pk1", + description="parent report kpi 1", + expression="report.k1 + 1", + ) + ) + + def test_basic(self): + ee = ExpressionEvaluator(aep=None, date_from="2017-01-01", date_to="2017-01-16") + d = self.report._evaluate(ee) + assert d["k1"] == 12 + + def test_two_levels(self): + ee = ExpressionEvaluator(aep=None, date_from="2017-01-01", date_to="2017-01-16") + d = self.parent_report._evaluate(ee) + assert d["pk1"] == 13 + + def test_detect_loop(self): + with self.assertRaises(ParentLoopError): + self.report.write( + dict( + subreport_ids=[ + ( + 0, + 0, + dict(name="preport1", subreport_id=self.parent_report.id), + ) + ] + ) + ) + with self.assertRaises(ParentLoopError): + self.report.write( + dict( + subreport_ids=[ + ( + 0, + 0, + dict(name="preport2", subreport_id=self.report.id), + ) + ] + ) + ) + + def test_invalid_name(self): + with self.assertRaises(InvalidNameError): + self.report.subreport_ids[0].name = "ab c" diff --git a/mis_builder/tests/test_target_move.py b/mis_builder/tests/test_target_move.py new file mode 100644 index 0000000..cd2e18e --- /dev/null +++ b/mis_builder/tests/test_target_move.py @@ -0,0 +1,36 @@ +# Copyright 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import flectra.tests.common as common + + +class TestMisReportInstance(common.TransactionCase): + def test_supports_target_move_filter(self): + self.assertTrue( + self.env["mis.report"]._supports_target_move_filter("account.move.line") + ) + + def test_supports_target_move_filter_no_parent_state(self): + self.assertFalse( + self.env["mis.report"]._supports_target_move_filter("account.move") + ) + + def test_target_move_domain_posted(self): + self.assertEqual( + self.env["mis.report"]._get_target_move_domain( + "posted", "account.move.line" + ), + [("parent_state", "=", "posted")], + ) + + def test_target_move_domain_all(self): + self.assertEqual( + self.env["mis.report"]._get_target_move_domain("all", "account.move.line"), + [("parent_state", "in", ("posted", "draft"))], + ) + + def test_target_move_domain_no_parent_state(self): + """Test get_target_move_domain on a model that has no parent_state.""" + self.assertEqual( + self.env["mis.report"]._get_target_move_domain("all", "account.move"), [] + ) diff --git a/mis_builder/tests/test_utc_midnight.py b/mis_builder/tests/test_utc_midnight.py new file mode 100644 index 0000000..f227426 --- /dev/null +++ b/mis_builder/tests/test_utc_midnight.py @@ -0,0 +1,19 @@ +# Copyright 2014 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import flectra.tests.common as common + +from ..models.mis_report import _utc_midnight + + +class TestUtcMidnight(common.TransactionCase): + def test_utc_midnight(self): + date_to_convert = "2014-07-05" + date_time_convert = _utc_midnight(date_to_convert, "Europe/Brussels") + self.assertEqual(date_time_convert, "2014-07-04 22:00:00") + date_time_convert = _utc_midnight(date_to_convert, "Europe/Brussels", add_day=1) + self.assertEqual(date_time_convert, "2014-07-05 22:00:00") + date_time_convert = _utc_midnight(date_to_convert, "US/Pacific") + self.assertEqual(date_time_convert, "2014-07-05 07:00:00") + date_time_convert = _utc_midnight(date_to_convert, "US/Pacific", add_day=1) + self.assertEqual(date_time_convert, "2014-07-06 07:00:00") diff --git a/mis_builder/views/mis_report.xml b/mis_builder/views/mis_report.xml new file mode 100644 index 0000000..7bb7178 --- /dev/null +++ b/mis_builder/views/mis_report.xml @@ -0,0 +1,301 @@ + + + + mis.report.view.tree + mis.report + + + + + + + + + + mis.report.view.form + mis.report + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + mis.report.view.kpi.form + mis.report.kpi + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

+ Expressions can be any valid python expressions. +

+

The following special elements are recognized in the expressions + to compute accounting data: {bal|crd|deb|pbal|nbal}{pieu}[account + selector][journal items domain].

+
    +
  • + bal, crd, deb, + pbal, nbal : balance, debit, credit, + positive balance, negative balance.
  • +
  • + p, i, e : respectively variation over the period, + initial balance, ending balance
  • +
  • The account selector is a like expression on the + account code (eg 70%, etc), or a domain over accounts + (eg [('code', 'like', '60%')]).
  • +
  • The journal items domain is an Flectra domain filter on + journal items.
  • +
  • + balu[] : (u for unallocated) is a special expression + that shows the unallocated profit/loss of previous fiscal + years.
  • +
+

+ Expressions can involve other KPI, sub KPI and + query results by name (eg kpi1 + kpi2, + kpi2.subkpi1, query1.field1). +

+

+ Additionally following variables are available + in the evaluation context: +

+
    +
  • + sum, min, + max, len, + avg : behave as expected, very + similar to the python builtins.
  • +
  • + datetime, datetime, dateutil : the python modules.
  • +
  • + date_from, date_to : beginning and end date of the + period.
  • +
  • + AccountingNone : a null value that behaves as 0 in + arithmetic operations.
  • +
+
+
+

Examples:

+
    +
  • + bal[70] : variation of the balance of account 70 over + the period (it is the same as balp[70].
  • +
  • + bali[70,60] : initial balance of accounts 70 and 60.
  • +
  • + bale[1%%] : balance of accounts starting with 1 at + end of period.
  • +
  • + crdp[40%] : sum of all credits on accounts starting + with 40 during the period.
  • +
  • + + debp[55%][('journal_id.code', '=', + 'BNK1')] + + : sum of all debits on accounts 55 and journal BNK1 during + the period.
  • +
  • + + balp[('user_type_id', '=', + ref('account. + data_account_type_receivable').id)][] + + : variation of the balance of all receivable accounts over + the period.
  • +
  • + + balp[][('tax_line_id.tag_ids', '=', ref('l10n_be.tax_tag_56').id)] + + : balance of move lines related to tax grid 56.
  • +
  • + pbale[55%] : sum of all ending balances of accounts + starting with 55 whose ending balance is positive.
  • +
+
+
+
+
+
+
+
+ + MIS Report Templates + + mis.report + tree,form + + + +
diff --git a/mis_builder/views/mis_report_instance.xml b/mis_builder/views/mis_report_instance.xml new file mode 100644 index 0000000..d54bfeb --- /dev/null +++ b/mis_builder/views/mis_report_instance.xml @@ -0,0 +1,421 @@ + + + + mis.report.instance.result.view.form + mis.report.instance + + +
+ + + +
+
+
+ + mis.report.instance.view.tree + mis.report.instance + + +