From bbba075c023b8f91cb34dfe5f968c2231d3618fd Mon Sep 17 00:00:00 2001 From: masp-odoo Date: Fri, 29 Aug 2025 09:28:40 +0000 Subject: [PATCH 01/52] [IMP] website: create menu with cards for webdesign task-5051186 closes odoo/documentation#14463 X-original-commit: 8d53aff7efa87eed2b5d0c7265e63a1b01953272 Signed-off-by: Audrey Vandromme (auva) --- .../websites/website/web_design.rst | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/content/applications/websites/website/web_design.rst b/content/applications/websites/website/web_design.rst index 9fce7dbc11..98c099e2f3 100644 --- a/content/applications/websites/website/web_design.rst +++ b/content/applications/websites/website/web_design.rst @@ -1,9 +1,46 @@ :nosearch: +:show-content: +:hide-page-toc: ========== Web design ========== +Design your website using :doc:`building blocks <../website/web_design/building_blocks>`, customize +its :doc:`theme <../website/web_design/themes>` with various options, structure and present content +with :doc:`elements <../website/web_design/elements>`, and display or hide building blocks using +:doc:`visibility settings <../website/web_design/visibility>`. + +.. cards:: + + .. card:: Building blocks + :target: web_design/building_blocks + :large: + + Design your website by dragging and dropping building blocks, then editing them to fit your + content and layout needs. + + .. card:: General theme + :target: web_design/themes + :large: + + Customize your website’s theme by adjusting its colors, fonts, and layout. + + .. card:: Elements + :target: web_design/elements + :large: + + Structure and present content effectively with elements such as titles, lists, etc. + + .. card:: Visibility + :target: web_design/visibility + :large: + + Display or hide building blocks based on several criteria. + +.. seealso:: + `Odoo Tutorials: Website `_ + .. toctree:: :titlesonly: From 14e6ed5b348c14c4e6130f382fdb707cb87026f2 Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Thu, 4 Sep 2025 21:17:52 +0000 Subject: [PATCH 02/52] [ADD] Payroll: Time Off To Report closes odoo/documentation#14530 X-original-commit: c5f717344c3f6a720b72b6fb57994ef46ddf6e53 Signed-off-by: Felicia Kuan (feku) Signed-off-by: Lara Martini (larm) --- content/applications/hr/payroll.rst | 2 + .../hr/payroll/time_off_to_report.rst | 77 +++++++++++++++++ .../time_off_to_report/single-defer.png | Bin 0 -> 36348 bytes .../time_off_to_report/time-off-to-report.png | Bin 0 -> 23981 bytes .../applications/hr/payroll/work_entries.rst | 78 ------------------ .../hr/payroll/work_entries/batch-defer.png | Bin 27769 -> 0 bytes .../work_entries/regenerate-details.png | Bin 14426 -> 57390 bytes .../hr/payroll/work_entries/single-defer.png | Bin 24359 -> 0 bytes .../work_entries/time-off-to-report.png | Bin 13270 -> 0 bytes 9 files changed, 79 insertions(+), 78 deletions(-) create mode 100644 content/applications/hr/payroll/time_off_to_report.rst create mode 100644 content/applications/hr/payroll/time_off_to_report/single-defer.png create mode 100644 content/applications/hr/payroll/time_off_to_report/time-off-to-report.png delete mode 100644 content/applications/hr/payroll/work_entries/batch-defer.png delete mode 100644 content/applications/hr/payroll/work_entries/single-defer.png delete mode 100644 content/applications/hr/payroll/work_entries/time-off-to-report.png diff --git a/content/applications/hr/payroll.rst b/content/applications/hr/payroll.rst index 18bec39a38..3a740d0dc2 100644 --- a/content/applications/hr/payroll.rst +++ b/content/applications/hr/payroll.rst @@ -895,6 +895,7 @@ form. .. seealso:: - :doc:`payroll/contracts` - :doc:`payroll/work_entries` + - :doc:`payroll/time_off_to_report` - :doc:`payroll/salary_attachments` - :doc:`payroll/payslips` - :doc:`payroll/batches` @@ -909,6 +910,7 @@ form. payroll/contracts payroll/work_entries + payroll/time_off_to_report payroll/salary_attachments payroll/payslips payroll/batches diff --git a/content/applications/hr/payroll/time_off_to_report.rst b/content/applications/hr/payroll/time_off_to_report.rst new file mode 100644 index 0000000000..5ad8247412 --- /dev/null +++ b/content/applications/hr/payroll/time_off_to_report.rst @@ -0,0 +1,77 @@ +================== +Time off to report +================== + +Payroll is often processed a few days before the end of a pay period, so that employees can be paid +in a timely manner. When work schedules are predictable, this method often works. However, sometimes +employees take time off unexpectedly, especially sick time. When this occurs, there can be +discrepancies in payroll that must be addressed. + +.. example:: + The payroll department for a medium-sized company processes paychecks every two weeks, on + Wednesdays. Each employee is paid on the Friday after. + + One employee is sick on the last Thursday and Friday of the two-week pay period. Since they have + automatically generated work entries based on their working schedule, and payroll is processed on + Wednesdays, the paycheck they receive incorrectly states that they were paid for a regular work + day for all ten days of the two-week pay period. + + Instead of cancelling the paycheck and reissuing it, causing delays for the employee and more + work for the payroll department, Odoo allows for the deferral of the time off taken, to the + following pay period. + + This ensures all time off balances are correct, and the employee is properly compensated for + their time. + +.. _payroll/time-off-dashboard: + +Time off dashboard +================== + +When time off requests are submitted for a time period that was already processed on a payslip, the +time off requests appear in the *Time Off* page of the **Payroll** app. To access this, navigate to +:menuselection:`Payroll app --> Work Entries --> Time Off to Report`. + +The :guilabel:`Time Off` page default filter is :guilabel:`To Defer`, and displays all requests with +a :guilabel:`Payslip State` of :guilabel:`To defer to next payslip`. This is because the employee +was *already paid* for that time as worked time, and it was logged as regular time spent at work. + +.. image:: time_off_to_report/time-off-to-report.png + :alt: A list of all time off requests that were not approved before payslips were generated. + +Defer multiple time off entries +=============================== + +In order to keep the employee's time off balances correct, the time off request **must** be applied +to the following pay period. This not only ensures time off request balances are current, it also +eliminates the need to redo work entries, cancel paychecks, and reissue paychecks. + +To select the work entries to defer, tick the box to the left of the work entry line on the +:ref:`Time Off page `. To select all work entries in the list, tick the +box to the left of the :guilabel:`Employee` column title, at the top of the list. + +Once any work entry is selected, two buttons appear at the top of the report: a :guilabel:`(#) +selected` button, and an :icon:`fa-gear` :guilabel:`Actions` button. The :guilabel:`(#) selected` +button indicates how many entries are currently selected. + +When all the desired work entries are selected, click the :icon:`fa-gear` :guilabel:`Actions` +button, and a menu appears with several choices. Click :guilabel:`Defer to Next Month` in the list, +and all selected entries are deferred to the following month. + +Defer individual time off entries +================================= + +Time off requests appearing on the :ref:`Time Off page ` can be deferred +individually. Click on an individual time off request, and the details for that request load. + +The specific details for the time off request appear on the left-hand side, and all of the +employee's submitted time off requests appear on the right-hand side (including the request in the +details on the left-hand side). + +To defer the time off request to the next payslip, click the :guilabel:`Report to Next Month` button +in the upper-left corner. Once processed, the :guilabel:`Report to Next Month` button disappears, +and the :guilabel:`Payslip State` changes from :guilabel:`To defer to next payslip` to +:guilabel:`Computed in Current Payslip`. + +.. image:: time_off_to_report/single-defer.png + :alt: The time off details for an individual request that needs to be deferred. diff --git a/content/applications/hr/payroll/time_off_to_report/single-defer.png b/content/applications/hr/payroll/time_off_to_report/single-defer.png new file mode 100644 index 0000000000000000000000000000000000000000..725e5fb86655c0d158bf542048717ead3e8a8e97 GIT binary patch literal 36348 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

V1tbE~yI0Qmf9WvvWc_7*w_5cK= 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 wdqbg!d%pJinXzC3lBP&dBV!Z literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/time_off_to_report/time-off-to-report.png b/content/applications/hr/payroll/time_off_to_report/time-off-to-report.png new file mode 100644 index 0000000000000000000000000000000000000000..65db9a6722b1b09c6e522a5f9298434b4f35186d GIT binary patch literal 23981 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 iFtCk+Q7{SyHvj;LZ!qP8HaG+T0000 Work Entries --> Time Off to Report`. - -On the :guilabel:`Time Off` page, the request appears with a status of :guilabel:`To defer to next -payslip`. This is because the employee was already paid for that day, and it was logged as time -spent at work, as a typical work day. - -In order to keep the employee's time off balances correct, the time off request **must** be applied -to the following pay period. This not only ensures time off request balances are current, it also -eliminates the need to redo work entries, cancel paychecks, and reissue paychecks. - -The most common scenario when this situation occurs, is when payslips are processed a day or two -before the pay period ends, and an employee is unexpectedly sick on one of the last days of the pay -period. The employee puts in a time off request for a day that was already processed on a payslip as -a regular work day. Instead of cancelling the payslip, modifying the work entries, and reissuing the -paycheck, Odoo allows for those time off requests to be applied to the following pay period, -instead. - -To view all the time off requests that need to be deferred to the next payslip, navigate to -:menuselection:`Payroll app --> Work Entries --> Time Off to Report`. The default filter for this -report is :guilabel:`To Defer`. - -All time off requests that need to be applied to the following pay period appear with a -:guilabel:`Payslip State` of :guilabel:`To defer to next payslip`. - -.. image:: work_entries/time-off-to-report.png - :align: center - :alt: A list of all time off requests that were not approved before payslips were generated. - -Defer multiple time off entries -------------------------------- - -To select the work entries to defer, click the box to the left of the work entry line. To select all -work entries in the list, click the box to the left of the :guilabel:`Employees` column title, at -the top of the list. - -Once any work entry is selected, two buttons appear at the top of the report: a :guilabel:`(#) -Selected` button, and an :guilabel:`Actions` button. The :guilabel:`(#) Selected` button indicates -how many entries are currently selected. - -When all the desired work entries are selected, click the :guilabel:`Actions` button, and a menu -appears with several choices. Click :guilabel:`Defer to Next Month` in the list, and all selected -entries are deferred to the following month. - -.. image:: work_entries/batch-defer.png - :align: center - :alt: The actions button and # Selected buttons that appear after any selections are made. - -Defer individual time off entries ---------------------------------- - -Time off requests appearing on the :guilabel:`Time Off to Report` list can be deferred individually. - -Click on an individual time off request, and the details for that request load. - -The specific details for the time off request appear on the left-hand side, and all of the -employee's submitted time off requests appear on the right-hand side (including the request in the -details on the left-hand side). - -To defer the time off request to the next payslip, click the :guilabel:`Report to Next Month` button -at the top. Once processed, the :guilabel:`Report to Next Month` button disappears, and the -:guilabel:`Payslip State` changes from :guilabel:`To defer to next payslip` to :guilabel:`Computed -in Current Payslip`. - -To go back to the :guilabel:`Time Off to Report` list, click on :guilabel:`Time Off` in the -breadcrumb menu. - -.. image:: work_entries/single-defer.png - :align: center - :alt: The time off details for an individual request that needs to be deferred. - -.. seealso:: - :ref:`Configure work entries ` diff --git a/content/applications/hr/payroll/work_entries/batch-defer.png b/content/applications/hr/payroll/work_entries/batch-defer.png deleted file mode 100644 index 07b38e8c89bffdca632c653663e9be4931fe4a63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27769 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

yq^eVslVfT^UO!Qn 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 diff --git a/content/applications/hr/payroll/work_entries/single-defer.png b/content/applications/hr/payroll/work_entries/single-defer.png deleted file mode 100644 index 8d2e35aeb43ef4c01a7771471740a233f1485f1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24359 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

aJ!(r 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

VJ+$W&eS@Umg)nq`2|F|8mAvQ<1 zJ!yU^Pt?;xZvN(43x5=>F2yaIX^D>_hcufyrJU|<;tdCvS=BpLc9_NOn+SKomRqI3 z!RfywW-XivE%S*afu{-HJ8fnb-LXpV1OpFc#gD&P@!F!*WqXz{g{5$Of2&}tL6MKs zL=itn^u1fsYDZWY_qTbP7seLuztsLRC@^=@SckSkk~GS+;DYqK+L=J~xR@Tj zRQR+_Oy7X@?^^9{mr){E!y+n(i5$;>f)pVXHxXCwxAU;J(Hj#UPBi!RD(u?d`Oep8 zZR#6uYTB{(&)aSFhLviCC7<)b(sBpZxzoz0<0hVVf2s3r#o`qa_WR2+KQ>r66u4FM zOvLvK%Hr)d)g(A!%?1-N;kodiRC)|9*0I;{aV3Ms6|7SQA^aau0k~BlOapu#AqFyl zZz}A9&!rL3SQ(cB3kz%A;JI&nMJA@LQN&hEDJegZWi;3PvfU{7k_6(Ny%Ud-GnI{Xe?{Y>Np)wK-$S zKjkBL{mpKzlnS$#^$%nG z=JCKK0e@J9cww)NKi=5{Q|fo5I~k8QF0hnP{Oc+GZM0c$3c~%xoQBc*8%IsUJh>-< z0=g=Ii1wITz_Qw|p?lq;#$;I1O`{qm6EVTRd((~5z|KvnfED90QY$(g=B}m7)k+ka z*mJ4WYv%R-UsYWoQqqEc>OmsrhaLwvNhf=?!VPwy`VR!to37)98b9T=ssE%5GS4J8 zN!Qh6qObJ7Vo?1}xQ%{-ui&Jx>hmLa%<7)T<(4RvYUO~o{-`OHTGx7yNH_M8l9rQ_ zIL`8x2vDdtpBcoo-g(Ry^?x1}FEZBrhSN94-M_y-`m_1#=l#$d5*$RfrdLr0`>X4y z>0>P3Z`7d=ZCe$sckT=$>(j26ZE-QpeDrS7Kb%uhP5s1SooF=qAs*X*`x4 zd;#CRIFTo3=G?=i%yv_U2eCU<9s?kQWNeMjYX z{lZpH`Tp*Jj696^MtLCFlA}E;bpk7XwqIDQ)t<7-^DD>6dN;v`jaIE9+^rK-Y+2qB z%K_!<{J#z0&xurQ5LE^3xd8T6f^BOBoq>tOK!C2PRoVXUUN`14mGB-GE zUvQDWbfu3w#IeN$X#d18bz1pl_a3yRf~-@6{2c|xPInI0!s0XtNOEZ$UPav?WyAfo z!6-%|!DC^hH{A4&nbY`T2DGh%_xzO%-H!L^i^F2GzX2OpGv^bp!X8VWT0!1L)LiVP zho7#$<<)`Vi=)At%EJVB&4 zAnW6+OB$cmlzO+Rc$f5beI~akk1s}`=_Un~ivG_ejIpB%n^&;C&<(EW_`8^1Xc1O_ z|4ONOx|9Ai-NXCOZATe8db@=$XQ~eHhQY|hj`*IkvAXBEmDuJP@rRycMgVs;Rnspj z5(9<)J!$Jc3q$Vh#wJKVcI1q?m#>b_AKE$s47Jann_}HaDDp3JCA$992rg+mqCrs{ zJoU-hPK@qU?^+1I*QpPfozhajK07}jew&Mpq!0eWW|9Uiczk>9yc)d5hbco{!uu=y zgX*eVss6@tZ#G3b@lld>uM^C#h0BG5ZZB1Sr!b^Y6QRhd6FsL_M%6~D6UU`dcaSPC zfxrk8@W`?@M#twra2yXZMmZJ^TOkI)3u+k&m(W0 zp(7svu*7No7DPu3O*uw{f7)j?W241XZ{KUHGC;>s>Hj8txj#)aO-ByNCL*qGVZe#V z^+wB-e`k^GZH2+lH2tUI?-y=ymD8&5si6uG?ljLKf3a}y*@4R8g?Q25xeN=U7Pa5) zs(Lp*0HJ<|Q>DyCpHN#ZHkiVnKhybE-#+ens+sg{H&_{}q(g?2J`LLz78D3`F(Hp7 zsFsPGu)J~{(a#Iih-H4K85f#2v*`_0FDZO@RHC^=Tuel zC?9ajhETFsP2ybEhaBsRi=u}-7axon7&9ydykwK>lDa}uU`cA^LVxF6=J{r-i6h8VH+F=8KB$P_g z)SHHvw!{LAe_7Q0X$N516K=GpVKE5Z%Pm1q3c-4#x7=?Q%=UR3iS3|~p|sqvI!KAJ%7Pl3J*vSldR>g|u$ zeRIuOLeVHvQ(8$9ZXv>`Z>y}OvqB+J{@vRH-_w| z+F3PgMqpYY$;alQ5Z`Y+s#9eKbWlZ`OZ`E%u8A-sp(LBRs?Sjr?QB>)oZHuE`vA<7 zQdF{jUm^MdnLMa9y*nwuN1t9bz##pCIdmc{Oi>i+Mi`H(>95N1d&eGDUXeUS3#YQ! zi9qb0Qi&wgtFSl5*lE-OoJ3$oOd0#$Rg8MF&$wYPXlw)JJF*<7U3ArA%4OsUivO~J zQGfX)5u;;I9^&4_uZQ!58}R7oTCH@uU4dZ(rkypp+)L zN?sSr#G43%E98%_E*>gch z1@$#njO}*Bpxa)jJ|P~@QMJ*C+%eoGnp6PX>F(DgRm)eM%Hn;-IE zcve;MqFQ3AXQg`Dffa%FbLH`W(D*|2z7`afmAxuPcs%c~G*&ZxreE3hMRvipdI!Hg zq+fn;zxs`t{dfqE6k>UhTWLI&xBlId_ImprKQW$*i${Bq?R*VQ~JmVUeE zDRz?Ff1xGE4R5Vm;uq3$K|K8b<4grzT(IMIk{3YK(F1)Ne)eOzF#NAv{aKm+D8D28 sy<%Uoh`i4)czU&-4&5Ntd(SjKZ~P=zr^0z&e#}9VlTwnb5;qF^KglaVA^-pY From b22d59fc53a6863993f8aa8c204a3f2077b86b1b Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Mon, 8 Sep 2025 15:17:06 +0000 Subject: [PATCH 03/52] [IMP] Payroll: Removing salary attachment report closes odoo/documentation#14534 X-original-commit: 73469dcb7624398ce9fe1a1754a3e6745a672f75 Signed-off-by: Lara Martini (larm) --- content/applications/hr/payroll.rst | 2 - .../hr/payroll/salary_attachment.rst | 63 ------------------ .../comparison-attachment.png | Bin 67683 -> 0 bytes .../salary_attachment/salary-attachment.png | Bin 23995 -> 0 bytes .../hr/payroll/salary_attachments.rst | 3 - 5 files changed, 68 deletions(-) delete mode 100644 content/applications/hr/payroll/salary_attachment.rst delete mode 100644 content/applications/hr/payroll/salary_attachment/comparison-attachment.png delete mode 100644 content/applications/hr/payroll/salary_attachment/salary-attachment.png diff --git a/content/applications/hr/payroll.rst b/content/applications/hr/payroll.rst index 3a740d0dc2..4bd19d852c 100644 --- a/content/applications/hr/payroll.rst +++ b/content/applications/hr/payroll.rst @@ -902,7 +902,6 @@ form. - :doc:`payroll/commissions` - :doc:`payroll/reporting` - :doc:`payroll/work_entry_analysis` - - :doc:`payroll/salary_attachment` - :doc:`payroll/payroll_localizations` .. toctree:: @@ -917,5 +916,4 @@ form. payroll/commissions payroll/reporting payroll/work_entry_analysis - payroll/salary_attachment payroll/payroll_localizations diff --git a/content/applications/hr/payroll/salary_attachment.rst b/content/applications/hr/payroll/salary_attachment.rst deleted file mode 100644 index a00f6d1b4e..0000000000 --- a/content/applications/hr/payroll/salary_attachment.rst +++ /dev/null @@ -1,63 +0,0 @@ -======================== -Salary attachment report -======================== - -*Salary attachments* in Odoo refer to a portion of an employee's earnings that are designated for -a specific purpose, both voluntary and involuntary. These can include contributions to a retirement -plan, repayment of a loan, wage garnishments, or child support. - -Voluntary salary attachments, such as repaying a loan, or contributing to a charity on a monthly -basis, are considered *Assignments of Salary* in Odoo. Salary attachments that are required, such as -a lawsuit settlement repayment, or repaying a tax lien, are considered *Attachments of Salary* in -Odoo. Child support payments have their own category, and are simply referred to as *Child Support* -in Odoo. - -To view this report, navigate to :menuselection:`Payroll app --> Reporting --> Salary Attachment -Report`. The :guilabel:`Salary Attachment Report` shows all deductions or allocations per employee, -organized by payslip, in a default pivot table. The default filter is the end of the current year -(:guilabel:`Payslip End Date: (year)`). The employees populate the rows, while the various -deductions populate the columns, organized by type of deduction, and further grouped by individual -payslip. - -The default report contains **all** payslips for the current year, so the report typically contains -a large number of columns. This could make it difficult to view all the data at once, as the report -may be very wide and require scrolling to view all the data. - -To view a condensed version of salary attachments, and have all the salary attachment columns -visible on one page, click the :icon:`fa-minus-square-o` :guilabel:`Total` icon at the top of the -report, above the various payslips. - -This presents the salary attachments for the current year, and only displays three columns, -:guilabel:`Attachment of Salary`, :guilabel:`Assignment of Salary`, and :guilabel:`Child Support.` - -Each entry displays the total amount paid for each specific type of salary attachment, for each -employee. - -.. image:: salary_attachment/salary-attachment.png - :alt: The Attachment of Salary report that shows all salary garnishments in a condensed view. - -The report can be downloaded as an XLSX file, or :doc:`inserted into a spreadsheet -<../../productivity/spreadsheet/insert>` using the corresponding buttons at the top. - -Click the :guilabel:`Measures` button to reveal the options of what data is displayed. -:guilabel:`Assignment of salary`, :guilabel:`Attachment of salary`, and :guilabel:`Child support` -are all selected and visible, by default, while the :guilabel:`Count` option is not. - -Click an option to either show or hide that particular metric. A :icon:`fa-check` -:guilabel:`(checkmark)` icon indicates the data is visible. - -Compare to previous year -======================== - -The :guilabel:`Salary Attachment Report` can be compared to the report for the previous time period -or the previous year. - -To view these comparisons, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon in the -search bar, then click either :guilabel:`Payslip End Date: Previous Period` or :guilabel:`Payslip -End Date: Previous Year`, beneath the :icon:`fa-adjust` :guilabel:`Comparison` column. - -The report updates and displays the current time period values, and the previous time period values, -as well as the :guilabel:`Variation` between the two, in a percentage. - -.. image:: salary_attachment/comparison-attachment.png - :alt: The salary attachment report modified to compare to the previous year. diff --git a/content/applications/hr/payroll/salary_attachment/comparison-attachment.png b/content/applications/hr/payroll/salary_attachment/comparison-attachment.png deleted file mode 100644 index d43e8d944e4e70fb8db07065532570d742f8a4df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67683 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 G 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 ZcmL-{Sb24|pYmV;0#8>zmvv4FO#sOm(hUFr diff --git a/content/applications/hr/payroll/salary_attachment/salary-attachment.png b/content/applications/hr/payroll/salary_attachment/salary-attachment.png deleted file mode 100644 index cd6106c3e2c37ac1d5280d439d38fad66f009cd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23995 zcmb@ubyQo=8a7&`6n8BYD^h|KFIwE8IKd@okm3$4?(SY(0+irTpwLo+dvGZ3P~6E4 zJ?GbR&bs%H@2>T&wTHd4XI`1f?0MejogKp7D@kLbk)b_!@BmX*Mnd($gU7%J4<0R` zK1SZLr(m8yo}Pb@0XjW+fc4|PJWOK7B1g7*@LoY(^786hNK}Pa!jo52>+tZ9S5!qq zLIr_9?CkDM&CI9f6!IDt9ADjdNh5FWUtJyWN{5+Bs9Yit+BpkXSLeJEwo^9sC%wMLuf8{p+QGqS+n-(d?&#xSbd~zgf(&<+G{Ebn-$VuF{ND zG?J&~P5ouV21X~Q-AWf0E^ltvzO>&Uj%PdM#Buf{(M zxVOd(T*v6BXy}1>6+^FoRhY`D@QLbeRCI2wQxvXM;gj^IvFW2&VaY<-`q|W zCyrm&9bR9a&q_+GZg!>GN~(OeRF%+iC0E)$W1~nB=YUN@%&rs|ZV|#MIC8 zO8Yz8`&?hZZw|hTs9ROlwFasp2jR3U*x*C$KH_FEr03G$LzsrDR!tW8$}1M|VAtgM?3OTXnH#LisuZkv(#g6(1Sg zws(X;j5ZbZlqFa}Hd+IX4koLbE)gdy^%_BKcXPEB!@JoX^T}1i6#*Xgk)9QccQK{k za(-^BIHw;SZdgaP{`L%G1;1$(O ziiq;g>%G0bS(+SJhA#z_su4YSK=nXYLR8&-W;esn27iOJy9KSW(8TyyebcU74n-GY z`y3!X|5G(gsVwbbg?KrC`J+sjTt>Zooct=iJoSR5EM|+jDTl@iovtPHOW-R<9(d@@ z`(pO6k@b*doDaiBa#Ylz+PbKTXwdyzhYhbG;b)UrU+fkSUiNgk`5t7Sdk7yK3sz-$ z?SD!grD6m=%xQwfQ!&2%1c-h5pMnY!r9%IwJObjt{we%fYN|*yG7$=TKtK9`;FJX?%L|q4wqc}@t)Tv8#a7I zdN3aj5h*JzTW-_g_PEV#ZM)*cg|~UDrcQ{9+?b;vy%?^5UEvjPjBOO;_=LaoO>Q+< zach#x)^qJ#b5zv5cPyT6XJ>Q+1N6q{;7%*wf)LpY@Ez88l<`My&zRJHqC1Pah+fxN(A%o@44DqhGh~8 z+Dd6I&?Yij?ScLJLd#H&DKC{!ks4r$fQN-8A{x*I_Y2aizN_`t_HdfMt1e>f`#z<` zpVsNFK~nZ_A6*|uDGL@POgODqiD)<8kbB*0kKe6Xm~)N3ZMyBSpaB&ktft4EHGikv zkAF|RS#k}$^^8yl^N!-)RUq_-F!OCUTTK-RaycS?LVQ0Y(pOl)Jqx*6`-i4J=`^L>r#dEBF&-ZEyQj$+o zXcpcPCH{7sKRqxS7j9n*yVHlzV|=YMyL4(P>?U8FIT}9_IZ2rLLVvSkfoo5Nj@JXN zFSr-r`?EWRLW~eoQALsS#facf9a6y)YMB3e0K{wm3mdvH>D3}_pUzid?)<#g z510B&G1I`<(`s6 zc&*Pe* z?`#U@pu)DTR7m5FoEihT-iFmP{JdWpW*bBPZGeaR`6R|!kK^|dYx!Of;R_K-)urLf zQz^Fh;N>_o{`}GlEYK?j%`~n3p++#M0#$1Zmv?)w5*>xvVn&srJXb^0&QR7F9SX^& zc!_!`|CXNuvb)3Ezh#LBN}BB5=lAPja-1b$`$663EhP%iq5{|Fn@D(^?#I2t*f@56 z6O2YwtfZOdwsSH2xkZ9V_Q&<AQZbaaNr;*`eRB+CF%{rj2(Re339A&j-x%QED=dw=22a)K9wW z{+{`QLa+k>&IOy*?9pIX#R>BhcpM7pC@4y$$EP!|QerZcZKbsjf6pIRKfUN|m$KtC zJ5LQFcJ78TpR8~7gY52HuQna&C*=Hc{}3b{s!xMj?W;S*nQyh-KXf{<-;t2y-DlP(7g1< zFD-WbQ>z7pbca=axPq_x2rGa6!qBB0@@&!XkZKwbBi`w;I&xi4_-Gp$S>nQ*k!6?C zt|ANz-eh1H6HlXvEn z2>L$ByN|H}Q3j#0bwBbmbJ?UfAeK<6EOFluM4~t6@((EnpAV(xdT+O1W*TESA(Esn zkrP=))3`AlXLTUj5c96nOGl5r3B6)(T=eE*m`~S&_ic}h$5Ocd?zT^D6oWxs{g-i* z62{)IiA-Qlp8$u3Dcv_j99;4zwqo2Xy&kg_1?1j3Op+t^9DSS*8Qed$4@16ycg1oD(^P1IP0pUPX7i6NwgSrS zDoLxfORumejG&?unIw;U6-G|M<5bYRlxg38@iFS>i?HR_YFK{56 zWSj;G+;nd6=jljm=*_3HSXWK1#dpbB*bFYQ(mb)RPBXVOeq@Q72fl;bFgJyq5vj6e zav8FwceQl6f4Vi|w4Ng$x8Ok?WtHJ7*lcE;cOP@vp1_!G4!gO6C0fE>t~S&5%)ZQZkuK{a{{l*Bs#lM4XE zcI6pZPtK-t8E>$pNN+s@Og46FKU3}%$rhSIwSEqW@A56}-uZg^Ri6JHX@L~W;U@D# z&f#~-Kil;wqiG_(xZDH_s#~-BC)5R=Ibya7ByZarC%i3-5o7>16HmotJ)W-4v9RK_ z79#?pIAc$(&4p%6=RJk0Qbzzh(L=+(*N#Qem($PrEL~0Hx;=L3v&&c38pbH3tm*GO zmI#5AyzAmGGhS?W?Oqt?7X2gZ_B^aS;#`Vri<;YU93TIa{FJ1 z_Tw5><0z}ma)n(3((N5p4;7V5FCr7{L}cLExMWKZ2T- zh;}MhJx5Tbi0sP>G~)nA80Di3C)k&xf%{xY&~U|4PxE~iFj#U{ivoQF12%*~zW!Dx z8gsC(51J(U>Nhxy{z6Lg?p^&WT zf7u8Ap@Aa_9WIxlD3l2+VX@+PfoH&)N5IR+wnfyo7YcHFHIQnbWY}p!5E3fJ zUWs3yi0kXh?qY<Xx*k#Naj|~w z8dEkS{jW#kX{rxu>xuJ(zFEgJOrf$ULk~2n7eM=&Ysb!eoak2EYb0kV2;3Up#*bar zqVGtFqKvBb*Ufg4;vjipcjm1m1nJ$5_L6mHimv$3G7{W_5D91?Y0?qLw3e+pbQ|$~ z;Zj=CLEphUS*XSf50~H#7ghLAk{bsCQI+4kKgrZ^JF#p037Yl|TNzOzTg+6#z6vKt3ikX|AcV@E&=1Ig=xC5oR}@@Up^fvdBx!a# z!Fh&qx5UtS3)KUCXAj=uxnaGcbc?vH71^?7dFsB&_O4@ZF#|EH0hzIuU!(6mO!MyY ztAv`EGqh-`-x;bbKF;1a{&7&*z4l^=nK_C!rX$6G`g%1RqDKp{;O^Z4(g4f6oJV|+hlw3i3%4!fCB*4PZ9}~he2DnJuNhf z>(=Zg+eP@V#8d*wnS@^fYsMY%ie0$fdLAlyuK#|DKh7GFqN41^gxd5lO;AiQ_E?n0 z&}t<0)wl@(MLX@wPv^_GX0~TQRTbM6DsJGFzpCmpYM1m?Yr+W&QVrhAJLSeuF<>}A z%x{^1_g%?)Ooq;4!h+dG`=*k=!9*2(>5t6uD`(E3hW_?AEC;L{)it(^L&7yyCO?k& z&L+x983U&!bSVSRH9-fxxgd8sxRDH~^ne0p?Iu}S-L$o5TVd<1X|ulf$xidDq}Xgc zC-F(NnUi`=?Z%7?HQ;OBcomdUEEX{BRo77V+eyx+mT%DRk0IDIEdVO2j$Y6bXh~6QgpeVw#JYaYY zk4cbtT?EUt#Xh3uB{JH7(G7{6xZ(=;ti5}H{Cv*>?zt=!Cy)vq1xkhXuTSrY{Bb}X z?}#M+)FD}b7>+-H1m^!geBm(==ilt%4__E}KnduW0lWK)cnMuO;jC%jeMItvzZ(8f z4{B8EzZU+@GyZz;Zypl*4@dcEb3;YL<|meimURG_jmO;i0eLGt8l+F! z{qrEJyOPKoCP*7x1|r-6@+>4c@gS2_~Y=T9LbMriTVHC<;kee>LD7dkjUSU0{7&6SNQ756wU7WVNe zx|AwtgJ61f+W1}0vuG+$MJSAm(LpTHYpjF`O$OI)Y0SMHY5Dw$>`tEK*JC_D&osze zmyk!^@#*eRt^$$0yvc(Z%E6xqC5eojKVrI{0*A zu#Ozav@o*T(+;Zdma)Tf8k*LSgj3eHaNbU8nPv%d;ejFA6ZKN+PDJM?OFf=ZLh^%@ z5OP`w&ffY_rF2Ce|% z%&%QINySc0E*sI|F6mH^E9}weLiZW2l=n$+&vZe)(OkRn^>h@ZI?KZQwIz`1^m}+o zT1}no?027dyHNKg`2r@BpuI$sX4{IADAk;kbh-L_uTuRrARzoKn{+&0mE$5=UT-26X z%@v!QxN?{_B*6=@%PfMCi+BvXXH?8@;#=#cFBe^^*I`FH{hoU){6)`k8TfZhvh2vh z2wn3C#`Z$!!1^|@J7@a6_(1^h?i`F2R5JtaitJ&s-BiAo4q&E1*?ii`?_C(XCgMW5 zbJ~OgsoiDz+q%(>sRfHu_X*dF{Gk2U@ETsy;XU4c{B-l-!`49?(;Z zb2cun6!!oKkL}B*v6~aQ%iq6U zrqw*;K0SBuL2oUR;RH#%jHDQ*&w4tSzbtoik=fYiOlWP@c(VK^?Gr z)CFZpF+6U#^QO2ybekVzV_V@7K_aq^XyEIl7~z1ea79x}88}K!u{Qx}q~GvT!^p1S z4yQ-S3ctcB0OwDBrR*7)rwC+( z*15pvQvv5U-`;>J6^KMg+%bUXpGlqNOnhTwE8ef6bc27)88L>Wuyd_mLG18=O!j9F zfP2-1)uRCMRF}C7*nFFJLY=I&@l@Ss#8Xb@E@M$wJtiV=glzG=$ehBj<^yA`BF;*$ zK-s(_z~`=Y`wiE+CAn%`V4Ch@PF8kvm?JmHL4-NlQbaRn^yi%nXy8RsT-jGiM@CTP zg0oP0%9-Zp#_T#yj+LA1!eX|f%{;Q>qYDo>WGac5)gR*8-?;X9L>oFPpuWQ0%<~a5 zZrf@(X`7yf$-McS#SAP^bov+0gd(AX1{sg(*oXXYSv}{_2*fwf3C-#d@gPcte#c>x z?^1_rO0_1$$BAKsRd5dyOb#SR?Uidj{NtHOWs4i)r%y^y@qONRrb_ zpFsA$@B!~GdCsRuS;>9pm)DxBcA;U)ua$YX@P5cB&FXN^TTGZcSZVfFs+i2TW3_Ac zPu0_C(Sxyx6HbAVKX9HSFGgWc0dx4BbtoQy|jx%4UV~$bmJmXnGBh zATAKEF{yoX66dnaCQl)k*n0C2s2sLr>+|gR88R{We+SV21Nu0DIA*Va>?DxZU}1D0 zA_-$I)c>R?kyn2Miu;fRi30xu1F#tI31CZ|(Jywmyu0rx@Wx{;1)Ki`BC8KE-E^K?6eIZH z*OMc86GB4V6$N(*9a5aHHF;F8k4Bk3lzh#@X^a$m^0ZLQ!Tp7pN+Jdy6+>qIYit!2 zPmLk`g6-#podl=O{aISx#zM0K8$bG}O~Dl#bNdGr@sU%HBUW4dQU~mO+b_t^ITz;- z>`r>F36T9bP9~(MIfaKEG zTejr3Kg!a>$VQ;_nK-{e6)xys&!p9{@~-S(qh98H=p=Uwev;e#?RDbBcYF3tE?wXO zjo@RmCiEOpJXP2Yrd5nvBxue_lL0yi# zCSzVixHK(=&J67xx%i+%v%Scgc?f(V7bFBxic*$g>-ta>o#l`J@%Hpk&ZGCd1aVN2 z9eAUBohmF2Tt25Ti5q7VIY}&>V=!B?SDlw6p4&!CAx>y$4cezUzUw&c(^NL=%vav3 ziX~3q?8!zyT?z!O8B&2SxHI#YN)$BXpoHi-^cta|V6L@&76 z_ygIoCqQrDn8w*Mpie&$zV+O#h1uZ6J3RZMYD zm6ue0Wp<-T);Qs#r#DY`x2@55(;U`G=_h%T_T$K&!KKn$TWi9du&dUT5PDJ+e8%G) zVPxg0Z({1RFBZ!^XXX;L7{HYc$%?ZP8W8>TeG)+4#}U!>!{4Jsn3$Os9XU>805ihq z6;&cxL14Kzx_zj{bbl_0a5*U6@8h|P+)#SKT)-8+h~EHK0#vW&5igDYLc64!OJ8c| z07}4<>dm%09?FE&=f&kU%WevHfzHnT4WQ@oW?{#1L3YF8M z+i&)H>gro6Xf{Y3tzu6YEQo}Ph)tR(xJm_mCRy%Xkx74nQ{6bZ_;WNHuLq2rbIL%< zpQdp4myU1iyv#V1;dYJhhb{0-U=Wd~|A_uFon>%_zz(TQ1z!4If4Jpm|f`a~|Un=A;g6f;8bu znog(lUvq32S_X!`#NbNehXvNbWq17 zb%`Vy~YBr#g)|Cf~dqo*HP@o6Y9*Ze-h9_*CTioP0w?!%sNIBq|7eCCew39l065a z@Es-74>cXn-&_F3nq12%zGf{`TxE24?I;fgWG#1Okrz1mtDDb-&Dr#_8sf$%H>q6% zjUP7o4cP6{#6l*Ljv_QP)^_>jGhel)n=fg_w69w=6#-v-yNzxm5oC!HZu1tY9f*!w3MBGpwgKqVp9OTWv+h-aM;wYq)SCxb* zqn(aE&}bc;1G}G{UIWz3#K--~=URX9cI8VFY1IFirl4@aK5Yhtb=73Jw=>zzoQG2n z(G&Srh*+Bq5LYvxh{D0lUSmUa=6*>!iP%u73W(5SjsvP4mqa3Oj``bft`{%OrK%u( z6qi(ekM0iWW1nLGL$obE^0RAC=BZUB*KTiLr4=B_~{rC3&C|sx8aWs9Vwa_dwo{#7uK_X8( zbLhKdV9$(rNZB#Pg!Av^rxgYkrEhTA90NP6Y|T@f%|yku8Ug&b!ffVd!a>u&$T?B% z>w}r|vGtb8%(aSN=U1(hjI;S|GC3i#&qaN|e^aVSNRo6=ou+-Pp2R>ek?;KG%^@dC zxg@Rp)@Ebu)vm!yW^_2vJ{nSkHI!Esgun0>xuqgjA8Pk&lJ*hmB~3@o7=+R{K(u(e zSI1ldo)sTF7f{7mE~#FN-EMv-{?Y0agjWGR=`d<2Lno9pWRjLFATi?BxMX_UJQ&sJ zCVLbH+o!sHi`2jXTkhKq!48-VUdBv~8Fsw{RFtH`wd zn$YY-9SWQofa%yYDK>UT>vfo2dFBf&*qkO7dW#p)mlJ;`&v^o*m4F+FQew$;jH63d zkcV)HN<|yAj&)RFOk{+K@v|P1WAKX-84{g+=yYUm(t}2~O^w%fqAO!r0cXm}Ue|hW zZ-$(|- zZsbVW(e!qztLMtJhG@PXJ`4E50sW0MHK3Y&hL-|u{GL##2EGmyB9o@ZFCH!~d3LUt;_*-aGxNCSRu zG_4y?&Lu|b=ViSm*hha1z%lUcb$^qUPj*)&CP<=j(8w3F7J!9cdnK1*lRhT}cG78( zDt(I?u(-(TJQk1ThJsEdP=v3Pj`9{o>!O~UfG$QZh2`PpRSaUUJfB=5p%SNt57@fn zAcH%o?~#EF?hCr#0iV|80`?8Jw6Zatbl;TSg{)Kr(LUG7YV+*9-Yp8AL2yJQX(>z zGM(Ip36+Y3pn98sb1ao`Y+4!$VTGgVIihfrN0RW7NB$Z>q3!qLu@r+pzbnN^fGRCL zp%TkC<0Pr4=OEc^Q8#N9X7%AS7mB8q$AXbLTmwBHqH>UkvmpnfjHZuegq{|f>Qe^5 zLt!X?XZw1GmEg?M(f>3TwvR#*m88;?Mx@uWMN| z%5P*y+c{^wQhwqH#c&NjB;?95$cfb9cZAsmPo7AIqH*9!O6uVx2Z`!E0fO@-fp09SB~mAFOAd&` z3&^qvY-#GnRVCH)HdC#+S%j^#rg%zS70O2x_FlFg2=!HxhQ9lDdv`Zov$5Oic;bDN z<+Klc^%7;#?q-)Go1lGn&ZxPoNz_<5Hi{1TsSZNTaCiOXa;l2w)+OWWC*H~%t1Rx- z5rd$zP5&{CCFimHpbCU8^O4p0$f4aNOpHH0qskW*_*fZ!7=uAj*hBexUp3g-!TDUZ zHA0~VzBqE~ESQh;n!*lI+|UZur;&VJ3mQfj6&?_#AW+`Lqqu!pOF9xj@1jqyv}8~( z7?(lwqFFz|5doD9GMi>K!vv1499S#~bh&;BpaxV6ni#eyon}C&wKA_x1iE6m-JdNz z3bJAWEiHC@ge*kky>@2=i4uWMUG={H#(+|xLx-7Q{(!#+hL|(j{oQ|#0GzDD^^b>#m`Jc~>lii0ZQmd^mS^oq#7*~iGcz~$%u;!F8|s^R~q1J2gNeP~q< z9Ma$0DD}3mfU!@3Y+>JG@)dg%#Z_^MX z0=3pdmC#DddP@yt3^E3yF5OxeJk5X+hz~qLs#Z!Oo3$mre#W&gL6~1fH-#Okc`;T^ z3(A%QP%74krOF-MJp*6Uc{N_@K=Z))^F3tUPL55|T9LmZ?ACv7P0W1EsCv!Ze`*|1 zy)H@X;`0cE>EFJ99c+|92U<$Rk)?kw}Ed3CB4Dv@`Zic zz$8Qu4E8%8UAd<``2|?s)H&QuH>L2>+G}7!BHgY`t-?ll6i(JRN7Vy1`yOu^RahN6 zk)o18#{S8>y^|qoz!;eV*9G))mX;=@9noo$5`%&?^7VUPzqDI`YRkcTqnHmsdQaSv zG>Q!CvYCic9H7A-P)sw=F?!eT0EdeeKD+dk#N*OJ2%&IWWb>vW2QQY+npHL?J&Yr% zKYox~ooSv$bS}5Qz3;7cIOm(*_!q6ym~nt(03P&;DxNU$^})$wt51pV97cOj6q;#z z_wUr%XJ6!hNb4RV3qvcHx=vg>i*MN5EpZi2N}iI`^tvIj%6g?^nL_y6>%z^lnJz?L z#2%rONGRyM$!qvhg&kvLPgVfxQqfqji?P9ou?1ejjt>HJO}soQvbxrJiNF@ z2|6_nZ0GZ%4~kzD0en?n9#gi<^u_>Ez76UHWfZsYdphON-cL3)&62&$HNhbAbpc{R z=Qxeds1NeMSCj`(5wR{*!}Mqsf-mK-d99uWWPr;2+QOOwb2_WExuoJX;&cXYPa7ke z%H11^s3zL89XwdABdPke5+x6o4XMf-oHS-XJ$^P?|6$Fkf$-=NY&+itezHBiiwHi_ z9Rg_>37lE2;Q zaA$=>m2=YG8irYgtW^s5g>C8HnUaTPx@1+6iA)0`dQux$liDmeEkrf_ekfTTJQN^l z1(Yiorge0&1XaZ=lF6yS2TLC9xFk<@eHWrO5W{{)(-x$XR#9^Z#V*knondiyldW53sEfC z0O?<%9N6CMfdrZM7ye+`B9TR;By{MD^|sH{n&wgDXcFd6kvd%H=F@OExxzd(Ygb?) zrS_VYyyhkD$f}UQd`B=jU3Qw=jywf-wNL2wpd0l*Z^j-!M0;i zohGa+Ng4Ma;5UE|^@}r(E*>i!uasnZfRNB5Y}UF9@k%Y{%38^x@^K6n($ejs%*lX5BtNgRh*1_iSUtu~lAVq3%Ie4+pL-krtu>0@WkleH6vKAGN(?T!KB-D9 zWaRhpcAb+XcH*Uq_bT2s!$|{h+1H3yX|?&K@)FOM15HZk&C25WHE@ye`FfUvw+Q%s zWlduV?1=Ab#-*$s^rojM?Lx`nxNU*tQ1NP52}X7kz%FI%5r_lzg`s|}Yc!Xy9&^|^F*xWLGE1Ag}goyM+x^lN$ke;o|Bz52wcaON>r0jmIKv>MTW z;Vg#O{aNfUk_O=1!`)vX?xYI52jss%%#KQZ56FLk_>cI10X4FIX95&7$(NRIY-q>? zLm*$r6ivQ`q22I>)6n|HKxZe3SgUSwXJ1loTrmBqlGA*jyyQ?jJDI%Y^z~kQpJpb3 zsz#DpYwTAZbQZ5FNy|D9Nfxl7uS0c3{SC7+CclPEHz$ltAz;|2Du&JQwXo%|HI^+G zZyX`$t)P$?VZ6}Xjp+Xi0mb@MW3ciMr_?03DBH8=J|LLnYDRmuzEa~uQQ{!Ch|oND z;LbMVDLIq+$&>0Z2vwi`piwW!rHw2$(0IbK0ZKob-_mQctOLkjRX~c zHJP5od^WVrm17HvAa1(MZa6M6&c+ZbG9Wx^`k>(tNSJ!`_Pju)xN=4shE~OEDGn8& z2EXe;lehJ03r?xy>jRS>$5WB>B-_(6!yF5SYTsgE(cYH6r)G;I)QpNXV~NN%@X3n9 z;mkjka%%153MtBxu5$&vsdsmTq7jz~)FTeN1jKsL8rf=(rF)RozVg$Wfj4L=9ygGKMK&YDOE7VhM(3T*gI!thtK!1n-=M2XGN~6r|Ze-6w0Nh%1%Rba;gGITJv2 zB%Hqm)H@BlGZ6I_fWA}RN`vMZaF`!L!@maRmwN(3D*y-WeF6uiFM4(G$Z62fiOdK~ zMb_>L)_RR#jwryMV%NQyBm+!fYt7)YMZm1KzMf9mKtobjf4fIC52&=Dri1u24E;hO z7pjn0H{eaFj{+Q|0%N!-e*<%x2edW@jI5=0VOkRdyzm~c0E6bEfaf8(L)Y@cFLmS_?_Y$; ze=#c%r8UJd$Dn>EHk&4g%zub|)xGzOGQEKn1DdImyvE)r2Vg*l33`y+NRCbBe^8wp z^9q2^D&92hkB9ATM358ARW?OIUJ8Tf9h*7`%!F_BHRN}yYHJ0-Xqst5HSUJ;wOQvR z=D~Tlz5B~xuMgR45GV{?p_507w;{tZ5M6=k@Fa5!^vQOC)6B(Z@)o3qVLJ}AUrpvA zNXHu`J31*a5~L8vm@r38;EzIGhk)OO zypFdSY6ts;A804f%sr2H{6xwlP97~Xxk>`DR4;8#eH+lX^?OXDy8Ah~;8W z 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 diff --git a/content/applications/hr/payroll/salary_attachments.rst b/content/applications/hr/payroll/salary_attachments.rst index d78d86734a..579a4f3998 100644 --- a/content/applications/hr/payroll/salary_attachments.rst +++ b/content/applications/hr/payroll/salary_attachments.rst @@ -163,6 +163,3 @@ Any salary attachment can be cancelled at any time. To cancel a salary attachmen individual attachment record from the main :guilabel:`Salary Attachment` dashboard to open the record. From the :guilabel:`Salary Attachment` record, click the :guilabel:`Cancel` button to cancel the salary attachment, and stop having the designated money taken out of future paychecks. - -.. seealso:: - :doc:`salary_attachment` From 762dd095f9e8405f678c0300b76e7864294dc550 Mon Sep 17 00:00:00 2001 From: Brandon Mercier <113701731+bram-odoo@users.noreply.github.com> Date: Fri, 5 Sep 2025 08:59:23 +0000 Subject: [PATCH 04/52] [IMP] Odoo SaaS dump + Base/Inherited/Duplicated views closes odoo/documentation#14557 X-original-commit: ea0c7ccf3036d00bf2503250d0d593a815342e4a Signed-off-by: Brandon Mercier (bram) --- .../developer/howtos/website_themes/setup.rst | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/content/developer/howtos/website_themes/setup.rst b/content/developer/howtos/website_themes/setup.rst index 9d13d60d31..9de7d8e30d 100644 --- a/content/developer/howtos/website_themes/setup.rst +++ b/content/developer/howtos/website_themes/setup.rst @@ -114,15 +114,23 @@ Static vs. Dynamic .. _website_themes/setup/databases/views/standard_vs_inherited : -Standard vs. Inherited -********************** +Base vs. Inherited vs. Duplicated +********************************* -- **Standard views** are base views implemented by Odoo. They are directly derived from their model. - You should never change them as they allow updating an Odoo database without overwriting a - client's modifications. -- **Inherited views** are duplicated views. Modifications always take place in an inherited view. If - there is a duplicate view, there will be two views with the same name in the database, but the - duplicated view will not have an ID like for standard view. +- **Base view:** View natively implemented by Odoo. It is directly derived from their model. + A base view should never be altered as it allows updating an Odoo database without overwriting a + client's modification. + +Modifications always take place in either a duplicated or inherited view with some differences: + +- **Inherited view** always has an `inherit_id` and applies modifications based on the source + code of the base view it inherits from. +- **Duplicated view** is a duplication from another one. Most of the time this kind of view is + created by Odoo when the end-user applies modifications through the Website Builder. This + mechanism prevents data loss when the module is updated because only the source view will be + updated, not the duplicated one. If a duplicated view exists, both the original view and the + duplicated one are visible in the list but only the duplicated one has an `external_id` (an + `external_id` set means that the view has been created by the source code of a module). .. _website_themes/setup/databases/import : @@ -143,7 +151,8 @@ Dump Odoo SaaS ********* -Go to `/saas_worker/dump`. +#. Log in to a user account with sufficient access rights. +#. Go to `/saas_worker/dump`. .. _website_themes/setup/databases/import/sh : From 0ead9fe115f88c1462fab56aea48a0370a2e5637 Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Wed, 10 Sep 2025 20:17:49 +0000 Subject: [PATCH 05/52] [IMP] Payroll: Updating payslips closes odoo/documentation#14546 X-original-commit: 8c7c60742e4472358446620ec4543216a418a98c Signed-off-by: Lara Martini (larm) --- content/applications/hr/payroll/payslips.rst | 431 +++++++++++------- .../hr/payroll/payslips/all-pay-slips.png | Bin 33113 -> 87764 bytes .../hr/payroll/payslips/all-payslips.png | Bin 30276 -> 14109 bytes .../hr/payroll/payslips/banking.png | Bin 24244 -> 0 bytes .../hr/payroll/payslips/export-select.png | Bin 44012 -> 0 bytes .../hr/payroll/payslips/export.png | Bin 14712 -> 0 bytes .../hr/payroll/payslips/new-payslip.png | Bin 13664 -> 29135 bytes .../hr/payroll/payslips/other-info-tab.png | Bin 15733 -> 17680 bytes .../applications/hr/payroll/payslips/pay.png | Bin 0 -> 10730 bytes .../hr/payroll/payslips/payslip-chatter.png | Bin 22807 -> 25710 bytes .../hr/payroll/payslips/payslips.png | Bin 13701 -> 0 bytes .../hr/payroll/payslips/salary-comp-tab.png | Bin 14931 -> 39454 bytes .../hr/payroll/payslips/warnings.png | Bin 25631 -> 36163 bytes .../hr/payroll/payslips/worked-days-tab.png | Bin 20157 -> 18983 bytes 14 files changed, 258 insertions(+), 173 deletions(-) delete mode 100644 content/applications/hr/payroll/payslips/banking.png delete mode 100644 content/applications/hr/payroll/payslips/export-select.png delete mode 100644 content/applications/hr/payroll/payslips/export.png create mode 100644 content/applications/hr/payroll/payslips/pay.png delete mode 100644 content/applications/hr/payroll/payslips/payslips.png diff --git a/content/applications/hr/payroll/payslips.rst b/content/applications/hr/payroll/payslips.rst index b39a4d7a03..db309f40ac 100644 --- a/content/applications/hr/payroll/payslips.rst +++ b/content/applications/hr/payroll/payslips.rst @@ -2,222 +2,172 @@ Payslips ======== -*Payslips* are generated by payroll officers through the :menuselection:`Payroll` application. - -The :guilabel:`Payslips` drop-down header of the :menuselection:`Payroll` application consists of -three sections: :guilabel:`To Pay`, :guilabel:`All Payslips`, and :guilabel:`Batches`. - -These three sections provide all the tools needed to create payslips for employees, including -individual payslips, a batch of payslips, or commission payslips. - -.. image:: payslips/payslips.png - :align: center - :alt: Payslips menu selection in Payroll. - -.. _payroll/to-pay: - -To pay -====== - -Click on :menuselection:`Payroll app --> Payslips --> To Pay` to see the payslips that need to be -paid. - -.. image:: payslips/all-pay-slips.png - :align: center - :alt: View all payslips that need to be paid on the Payslips To Pay page. - -Each payslip lists the :guilabel:`Reference` number for the individual payslip, the -:guilabel:`Employee` name, the :guilabel:`Batch Name`, the :guilabel:`Company`, the :guilabel:`Basic -Wage`, :guilabel:`Gross Wage`, :guilabel:`Net Wage`, and the :guilabel:`Status` of the payslip. - -Click on an individual payslip entry to view the details for that individual payslip. +*Payslips* are individual records of payment, containing all the details of how the pay was +calculated (hours, deductions, other inputs, etc.), and generated by payroll officers through the +**Payroll** application. Payslips can be created and processed individually, or multiple payslips +can be processed at one time, in a single batch. .. _payroll/new-payslip: -Create a new payslip --------------------- +Create a payslip +================ A new payslip can be created from either the :ref:`Payslips To Pay ` page or the :ref:`Employee Payslips ` page. -Create a new payslip by clicking the :guilabel:`New` button in the top-left corner. - -A blank payslip form is loaded, where the necessary payslip information can be entered. +Navigate to :menuselection:`Payroll app --> Payslips`, and click either :guilabel:`To Pay` or +:guilabel:`All Payslips`. Click the :guilabel:`New` button in the top-left corner, and a blank +payslip form loads. Payslip form -~~~~~~~~~~~~ - -On the blank payslip form, several fields are required. Most of the required fields auto-populate -after an employee is selected. +------------ Fill out the following information on the payslip form: -- :guilabel:`Employee`: type in the name of an employee, or select the desired employee from the - drop-down list in this field. This field is **required**. +- :guilabel:`Employee`: Using the drop-down menu, select the employee in this field. This field is + **required**. Once a selection is made, other fields may auto-populate according to the employee + record. .. note:: It is recommended to **only** create payslips for employees that are already in the database. If there is no current employee record (and therefore no employee contract) it is recommended - to create the new employee in the *Employees* application **before** creating payslips for that + to create the new employee in the **Employees** application *before* creating payslips for that employee. Refer to the :doc:`new employee <../employees/new_employee>` documentation for instructions on how to add an employee. -- :guilabel:`Period`: the first day to the last day of the *current* month auto-populates the +- :guilabel:`Contract`: The current contract for the selected employee populates this field. This + field is **required**. + + .. important:: + All employees are required to have a contract in order to generate payslips. Additionally, + *only one* contract can be in the running stage for each employee, therefore the current + contract populates this field, and it is **not** recommended to make changes to this field. + +- :guilabel:`Batch`: Using the drop-down menu, select the payslip batch this new payslip should be + added to, if applicable. +- :guilabel:`Structure`: The structure linked to the employee's contract auto-populates this field + by default. If desired, use the drop-down menu to select a different structure. +- :guilabel:`Period`: The first day to the last day of the *current* month auto-populates the :guilabel:`Period` fields by default. The dates can be changed, if desired. To change the start date, click on the first date in the :guilabel:`Period` field to reveal a - pop-up calendar. On this calendar, use the :guilabel:`< (less-than)` and :guilabel:`> - (greater-than)` icons to select the desired month. Then, click on the desired day to select that + pop-up calendar. Navigate to the desired month, and click on the desired day to select that specific date. Repeat this process to modify the end date for the payslip. These fields are **required**. -- :guilabel:`Contract`: using the drop-down menu, select the desired contract for the employee. Only - the available corresponding contracts for the selected employee appear as options. This field is - **required**. -- :guilabel:`Batch`: using the drop-down menu in this field, select the batch of payslips this new - payslip should be added to. -- :guilabel:`Structure`: using the drop-down menu, select the salary structure type. Only the - corresponding structures associated with the selected contract for the employee appear as options. - - If no employee and/or no contract is selected yet, all available :guilabel:`Structures` appear in - the list. Once an employee and/or contract is selected, any unavailable :guilabel:`Structures` set - for that employee and/or contract do not appear. This field is **required**. - -.. image:: payslips/new-payslip.png - :align: center - :alt: The top fields for a new payslip all filled out for a February payslip. .. note:: Typically, after making a selection in the :guilabel:`Employee` field, Odoo auto-populates all other required fields (besides the :guilabel:`Period` field), but **only** if that information is - already on that employee's form in the *Employees* app. + already on that employee's form in the **Employees** app. .. important:: If modifications to auto-populated fields are made, it is recommended to check with the - accounting department to ensure every entry that affects the *Accounting* application is correct. + accounting department to ensure every entry that affects the **Accounting** application is + correct. + +.. image:: payslips/new-payslip.png + :alt: The top fields for a new payslip all filled out for a February payslip. .. _payroll/worked-days-inputs: Worked days & inputs tab -************************ +~~~~~~~~~~~~~~~~~~~~~~~~ + +The :guilabel:`Worked Days & Inputs` tab details the number of days and hours the employee worked +during the specified :guilabel:`Period` of time on the top portion of the payslip form, and is +calculated based on the selected :guilabel:`Contract` and :guilabel:`Structure` fields. -- :guilabel:`Worked Days`: the entries under :guilabel:`Worked Days` (including the - :guilabel:`Type`, :guilabel:`Description`, :guilabel:`Number of Days`, :guilabel:`Number of - Hours`, and :guilabel:`Amount`) are automatically filled in, based on what was entered for the - :guilabel:`Period`, :guilabel:`Contract`, and :guilabel:`Structure` fields of the payslip form. -- :guilabel:`Other Inputs`: additional inputs affecting the payslip can be entered in this section, - such as deductions, reimbursements, and expenses. +The :guilabel:`Worked Days` section is automatically populated and lists all the individual +attendance records for the time period, including both worked time and any time off taken. - Click :guilabel:`Add a line` to create an entry in the :guilabel:`Other Inputs` section. +Each individual entry lists the :guilabel:`Type`, :guilabel:`Description`, :guilabel:`Number of +Days`, :guilabel:`Number of Hours`, and the total :guilabel:`Amount`. - Using the drop-down menu in the :guilabel:`Type` column, select a :guilabel:`Type` for the input. - Next, enter a :guilabel:`Description`, if desired. Lastly, enter the amount in the - :guilabel:`Count` field. +Additional records cannot be created for the :guilabel:`Worked Days & Inputs` as it is +auto-populated according to the employee's attendance records or working schedule on their +:ref:`employee record `. + +The :guilabel:`Other Inputs` section is where additional inputs are listed, such as deductions, +reimbursements, and expenses. + +Each individual item lists the :guilabel:`Type`, :guilabel:`Description`, and :guilabel:`Count`. To +add a new input, click :guilabel:`Add a line`, and using the drop-down menu, select the +:guilabel:`Type`. Next, enter a brief :guilabel:`Description`, and last, enter the +:guilabel:`Count`. .. image:: payslips/worked-days-tab.png - :align: center :alt: The fields filled out in the worked days and inputs tab. Salary computation tab -********************** +~~~~~~~~~~~~~~~~~~~~~~ -- :guilabel:`Salary Computation`: the :guilabel:`Salary Computation` tab is automatically filled in - after the :guilabel:`Compute Sheet` button is clicked. Doing so displays the wages, deductions, - taxes, etc. for the entry. +The :guilabel:`Salary Computation` tab is where all the individual salary rules are listed and +calculated, including everything from the employee's salary, to all the deductions and allowances, +such as taxes, expenses, benefit contributions, and any other items associated with the installed +:doc:`payroll localization `. -.. image:: payslips/salary-comp-tab.png - :align: center - :alt: The fields filled out in the salary computation tab. +When the payslip is first created, this tab remains blank. Click the :guilabel:`Compute Sheet` +button in the upper-left corner, and the :guilabel:`Salary Computation` tab is populated. -Other info tab -************** - -- :guilabel:`Payslip Name`: type in a name for the payslip in this field. The name should be short - and descriptive, such as `(Employee Name) April 2023`. This field is **required**. -- :guilabel:`Company`: select the company the payslip applies to using the drop-down menu in this - field. This field is **required**. -- :guilabel:`Close Date`: enter the date that the payment is made to the employee in this field. - - Click in the field to reveal a calendar pop-up window. Using the :guilabel:`< > - (less-than/greater-than)` icons, navigate to the desired month and year. - - Then, click on the desired date to select it. -- :guilabel:`Date Account`: enter the date on which the payslip should be posted in this field. -- :guilabel:`Salary Journal`: this field auto-populates after selecting an existing - :guilabel:`Employee`. This field **cannot** be edited, as it is linked to the *Accounting* - application. This field is **required**. -- :guilabel:`Accounting Entry`: if applicable, this field is automatically populated once the - payslip is confirmed. This field **cannot** be modified. -- :guilabel:`Add an Internal Note...`: any note or reference message for the new entry can be typed - in this field. +.. important:: + It is **not** possible to make edits to this tab, as the calculations are based on other entries + on the payslip. -.. image:: payslips/other-info-tab.png - :align: center - :alt: The fields filled out in the other info tab. +.. tip:: + The :guilabel:`Compute Sheet` button does not disappear from view after it is clicked, so the + payslip can be recalculated at any point prior to :ref:`processing it `. -Process the new payslip -~~~~~~~~~~~~~~~~~~~~~~~ + If any changes need to be made to the :ref:`Worked Days & Inputs ` + tab, click the :guilabel:`Compute Sheet` button to recalculate the payslip. -When all the necessary information on the payslip is entered, click the :guilabel:`Compute Sheet` -button. Upon doing so, all the information on the payslip is saved, and the :guilabel:`Salary -Computation` tab auto-populates, based on the information on the employee's contract or attendance -records. +.. image:: payslips/salary-comp-tab.png + :alt: The fields filled out in the salary computation tab. -If any modifications need to be made, first click the :guilabel:`Cancel` button, then click the -:guilabel:`Set to Draft` button. Make any desired changes, then click the :guilabel:`Compute Sheet` -button once again, and the changes are reflected in the :guilabel:`Worked Days` and -:guilabel:`Salary Computation` tabs. +Other info tab +~~~~~~~~~~~~~~ -Once everything on the payslip form is correct, click the :guilabel:`Create Draft Entry` button to -create the payslip. +The :guilabel:`Other Info` tab houses information that is required, but not associated with any +inputs or calculations, as the other tabs do. -Then, a confirmation pop-up window appears, asking :guilabel:`Are you sure you want to proceed?`. -Click :guilabel:`OK` to confirm. +The :guilabel:`Payslip Name` is auto-populated according to the employee name and the time period +the payslip is for. Make any desired edits to the name in this field. This field is **required**. -.. note:: - The database may need to be refreshed for the payslip and email to appear. +The :guilabel:`Company` field is also automatically populated according to the employee's record, +and cannot be modified. -To print the payslip, click the :guilabel:`Print` button. To cancel the payslip, click the -:guilabel:`Cancel` button. +The end date selected in the :guilabel:`Period` field in the top half of the form populates both the +:guilabel:`Close Date` and :guilabel:`Date Account` fields, by default. The :guilabel:`Close Date` +is the date the payment is issued to the employee, while the :guilabel:`Date Account` is the end +date the payslip covers. Modify the dates, if needed. -.. image:: payslips/payslip-chatter.png - :align: center - :alt: The new payslip is emailed to the employee and the email appears in the chatter. +The :guilabel:`Salary Journal` field is populated by default, and **cannot** be edited. This is the +accounting journal the paycheck is logged in. -Next, the payment must be sent to the employee. To do this, click the :guilabel:`Register Payment` -button. Doing so reveals a pop-up form, in which the desired :guilabel:`Bank Journal` that the -payment should be made against must be selected from a drop-down menu. Then, click the -:guilabel:`Confirm` button to confirm the journal, and return to the payslip. +If there are any additional notes or information needed for the payslip, add them to the +:guilabel:`Add an Internal Note...` field. -.. important:: - In order for a payslip to be paid, the employee *must* have a bank account entered in their - contact information. If there is no bank information, a payslip cannot be paid, and an error - appears when the :guilabel:`Make Payment` button is clicked. Banking information can be found in - the :ref:`Private Information ` tab on the employee's card in the - *Employees* app. Edit the employee card, and add banking information, if it is missing. +.. image:: payslips/other-info-tab.png + :alt: The fields filled out in the other info tab. - .. image:: payslips/banking.png - :align: center - :alt: Banking information can be entered in an employee's card. +.. _payroll/process: -Odoo automatically checks bank account information. If there is an error with the employee's listed -bank account, an error appears in a pop-up window, stating, *The employee bank account is -untrusted.* If this error appears, update the employee's bank account information on their -:ref:`Employee Form `. +Process a payslip +================= -If a payment needs to be cancelled or refunded, click the corresponding :guilabel:`Cancel` or -:guilabel:`Refund` button, located at the top-left of the screen. +When all the necessary information on the payslip is entered, the payslip can be processed. First, a +:ref:`draft of the journal entry ` is created, followed by a :ref:`payment +report `, and finally, the employee is :ref:`paid `. .. tip:: - Before processing payslips, it is best practice to check the *Warnings* section of the *Payroll* - app dashboard. Here, all possible issues concerning payroll appear. + Before processing payslips, it is best practice to check the *Warnings* section of the + **Payroll** app dashboard. Here, all possible issues concerning payroll appear. To view the warnings, navigate to :menuselection:`Payroll app --> Dashboard`. The warnings appear in the top-left corner of the dashboard. .. image:: payslips/warnings.png - :align: center - :alt: The dashboard view of the Payroll app, with the warnings box highlighted. + :alt: The dashboard view of the Payroll app, with the warnings box visible. Warnings are grouped by type, such as `Employees Without Running Contracts` or `Employees Without Bank account Number`. Click on a warning to view all entries associated with that specific issue. @@ -226,17 +176,147 @@ If a payment needs to be cancelled or refunded, click the corresponding :guilabe occur. Errors appear in a pop-up window, and provide details for the error, and how to resolve them. +.. _payroll/draft-entry: + +Create draft entry +------------------ + +Once everything on the payslip form is correct, click the :guilabel:`Create Draft Entry` button to +create the payslip. A :guilabel:`Confirmation` pop-up window appears, asking :guilabel:`Are you sure +you want to proceed?` Click :guilabel:`OK` to confirm. + +Once the payslip draft is created, the status changes to :guilabel:`Done`, a :icon:`fa-usd` +:guilabel:`Journal Entry (Draft)` smart button appears at the top, and additional buttons appear in +the top-left corner. + +.. note:: + After creating a draft entry, Odoo considers the payslip as confirmed. + +Click the :icon:`fa-usd` :guilabel:`Journal Entry (Draft)` smart button to view the detailed +accounting journal entry. Click :guilabel:`Post` to post the entry. Using the breadcrumb menu, +return to the payslip. + +After the journal entry is posted, the smart button at the top changes to :icon:`fa-usd` +:guilabel:`Journal Entry (Posted)` + +.. note:: + Employees cannot be :ref:`paid ` until the journal entry is posted. + +.. _payroll/payment-report: + +Create payment report +--------------------- + +Once the payslip status has changed to :guilabel:`Done`, a payment report must be created. A payment +report is a document that contains all the necessary information to transfer the employee's earnings +from the company's bank account to theirs. These are submitted by the payroll department to the +appropriate institution. + +Click the :guilabel:`Create Payment Report` and a pop-up window loads. Using the drop-down menu, +select the :guilabel:`Export Format` for the payment report. The two default options available are +:guilabel:`NACHA` and :guilabel:`CSV`. :guilabel:`NACHA` stands for the :abbr:`National Automated +Clearing House Association (NACHA)`, and this selection creates a compatible ACH file which is sent +to the company's bank. + +.. note:: + Other options may be available depending on the :doc:`payroll localization + ` installed in the database. + + If :guilabel:`CSV` is selected, all other fields are hidden from view. + +Next, select the desired :guilabel:`Bank Journal` the paycheck is logged to. Last, using the +calendar selector, set the date the paycheck is issued in the :guilabel:`Effective Date` field. + +Once the pop-up window is configured, click the :guilabel:`Generate` button, and the file appears on +the payslip form, in a new :guilabel:`Payment Report` field. + +.. _payroll/pay-employee: + +Pay employee +------------ + +Next, the payment must be sent to the employee. To do this, click the :guilabel:`Pay` button in the +upper-left corner. Doing so reveals a :guilabel:`Pay` pop-up form. + +All the necessary information is pre-populated on the form according to the payslip configuration, +but modifications can be made, if necessary, to any of the fields *except* the :guilabel:`Amount`. +This is populated according to the payslip calculations, and **cannot** be modified. + +- :guilabel:`Journal`: The accounting journal the payslip is logged to. +- :guilabel:`Payment Method`: Using the drop-down menu, select how the employee is being paid. The + default options are: + + - :guilabel:`Manual Payment`: Select this if paying the employee in a method *other* than A + :guilabel:`Check` or :guilabel:`NACHA`. + - :guilabel:`Check`: Select this when issuing a check directly to the employee. + - :guilabel:`NACHA`: Select this if using the :abbr:`National Automated Clearing House Association + (NACHA)` to transfer the payment to the employee, via direct deposit. + +- :guilabel:`Group Payments`: If the employee has multiple payslips for the same time period (for + example, payroll, reimbursement, and commission checks), tick the checkbox to group all payments + into one payment. +- :guilabel:`Payment Date`: Using the calendar selector, select the date the employee is to be paid. + +Once the pop-up :guilabel:`Pay` form is complete, click the :guilabel:`Create Payments` button, and +the payment is processed. + +After the payment is processed, and there is confirmation that the checks have been issued, or the +funds have been directly deposited to the employee's bank account, click the :guilabel:`Mark as +paid` button to mark the payslip as paid. + +.. image:: payslips/pay.png + :alt: Banking information can be entered in an employee's card. + +.. important:: + In order for a payslip to be paid, the employee **must** have a bank account entered in the + :ref:`private information tab ` of their employee record, *and* the bank + account must be marked as :guilabel:`Trusted`. + + If there is no bank information, or if the bank is not listed as :guilabel:`Trusted`, payslips + cannot be paid, and an error appears when the :guilabel:`Pay` button is clicked. Edit the + employee record, and add banking information, or trust the bank account, as needed. + +Refund a payslip +================ + +When refunding a payment, the refund is achieved by creating a payslip for a negative amount of the +original payslip. + +.. example:: + An employee is paid $5,000.00 USD in a paycheck, in error. When refunding the payslip, a new + payslip is created in the amount of $-5,000.00. + +If a payment needs to be refunded, navigate to the individual payslip being refunded, and click the +:guilabel:`Refund` button, located at the top-left of the screen. The :guilabel:`Refund Payslip` +dashboard loads, with all refund payslips appearing in a list view. + +.. note:: + Since refunds are uncommon, typically only the one payslip being refunded appears in the list. + +By default, the refund payslip has a status of :guilabel:`Waiting`. This refund payslip is processed +:ref:`in the same way a regular payslip is processed `. + +Print a payslip +=============== + +To print a payslip, click the :guilabel:`Print` button in the upper-left corner of the individual +payslip record. A PDF file is downloaded, and the payslip appears in the chatter, and the file is +attached to the payslip record. + +.. image:: payslips/payslip-chatter.png + :alt: The new payslip is emailed to the employee and the email appears in the chatter. + .. _payroll/all-payslips: -All payslips -============ +View all payslips +================= To view all payslips, regardless of status, go to :menuselection:`Payroll app --> Payslips --> All Payslips`. The :guilabel:`Employee Payslips` page loads, displaying all payslips, organized by batch, in a default nested list view. -Click on the :guilabel:`▶ (right arrow)` next to an individual batch name to view all the payslips -in that particular batch, along with all the payslip details. +Click the :guilabel:`▶ (right arrow)` next to an individual batch name to expand the list, and view +all the payslips in that particular batch, along with all the payslip details. The number of payslips in the batch is written in parenthesis after the batch name. The :guilabel:`Status` for each individual payslip appears on the far-right side, indicating one of the @@ -250,7 +330,6 @@ following status options: - :guilabel:`Paid`: the employee has been paid. .. image:: payslips/all-payslips.png - :align: center :alt: View all payslips organized by batches. Click on the arrow to expand each batch. Click on an individual payslip to view the details for that payslip on a separate page. Using the @@ -259,32 +338,38 @@ breadcrumb menu, click :guilabel:`Employee Payslips` to go back to the list view A new payslip can be created from the :guilabel:`Employee Payslips` page, by clicking the :guilabel:`New` button in the upper-left corner. Doing so reveals a separate blank payslip form page. On that blank payslip form page, enter all the necessary information, as described in the -:ref:`Create new payslips ` section. - -To print PDF versions of payslips from the *Payslips to Pay* or :guilabel:`Employee Payslips` pages, -first select the desired payslips by clicking on the individual checkbox to the left of each payslip -to be printed. Or, click the box to the left of the :guilabel:`Reference` column title, which -selects all visible payslips on the page. Then, click the :guilabel:`Print` button to print the -payslips. +:ref:`Create a payslip ` section. Payslips can also be exported to an Excel spreadsheet. To export **all** payslips, click on the -:guilabel:`⚙️ (gear)` icon at the end of the words :guilabel:`Employee Payslips` in the top-left -corner. This reveals a drop-down menu. Click :guilabel:`Export All` to export all payslips to a -spreadsheet. - -.. image:: payslips/export.png - :align: center - :alt: Click on the Export All smart button to export all payslips to an Excel payslip. +:icon:`fa-cog` :guilabel:`(gear)` icon at the end of the words :guilabel:`Employee Payslips` in the +top-left corner. This reveals a drop-down menu. Click :icon:`fa-upload` :guilabel:`Export All` to +export all payslips to a spreadsheet. To export only select payslips, first select the payslips to be exported from the list. Then, click the checkbox to the left of each individual payslip to select it. As payslips are selected, a smart button appears in the top-center of the page, indicating the number of selected payslips. Then, -click the :guilabel:`⚙️ (gear) Actions` icon in the top-center of the page, and click -:guilabel:`Export`. - -.. image:: payslips/export-select.png - :align: center - :alt: The individual list of employee payslips with three selected to be exported. +click the :icon:`fa-cog` :guilabel:`Actions` icon in the top-center of the page, and click +:icon:`fa-upload` :guilabel:`Export`. .. note:: Both *To Pay* and *All Payslips* display all the detailed information for each payslip. + +.. _payroll/to-pay: + +View payslips to pay +==================== + +To only view the payslips awaiting to be processed, navigate to :menuselection:`Payroll app --> +Payslips --> To Pay`. + +.. image:: payslips/all-pay-slips.png + :alt: View all payslips that need to be paid on the Payslips To Pay page. + +Each payslip lists the :guilabel:`Reference` number for the individual payslip, the +:guilabel:`Employee` name, the :guilabel:`Batch Name`, the :guilabel:`Company`, the :guilabel:`Basic +Wage`, :guilabel:`Gross Wage`, :guilabel:`Net Wage`, and the :guilabel:`Status` of the payslip. + +Click on an individual payslip entry to view the details for that individual payslip. + +Process the payslips :ref:`in the same way a regular payslip is processed `, or in +a batch. diff --git a/content/applications/hr/payroll/payslips/all-pay-slips.png b/content/applications/hr/payroll/payslips/all-pay-slips.png index 1f99b48fecd22fe212f5a0ea9f367d52a5ece3b0..44e84a08761f752bd23fe77538972e7d0776b4c9 100644 GIT binary patch literal 87764 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 literal 33113 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 C&ZJ=g literal 30276 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 diff --git a/content/applications/hr/payroll/payslips/banking.png b/content/applications/hr/payroll/payslips/banking.png deleted file mode 100644 index bc37ea68ac84d2f530afd4911dd45136e4aaac56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24244 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 diff --git a/content/applications/hr/payroll/payslips/export.png b/content/applications/hr/payroll/payslips/export.png deleted file mode 100644 index 50121bcd18911b4114b0bd14113c3ab9adb1b627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14712 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 O0SYpzkZLK@kpBxI{Uuib diff --git a/content/applications/hr/payroll/payslips/new-payslip.png b/content/applications/hr/payroll/payslips/new-payslip.png index 496c1a46ef20a1c7140cc2a64834c101f5a71de1..7f8cd4d2787f92e8dd247aaba203f3ee0b2a1c36 100644 GIT binary patch literal 29135 zcma%iWmFu^^K}RbuEE`57lOMJoW+;L2`<42?hxDwVUggrXn^4E?qqRy2<{%>&+|Ly z{r-OHIXyF7xBFJzn$ukqsiq=_iAIX{=FJ;S1$k-kn>UECH*XN!Q4n8ya)-y4UpwBY zDM4gjUS8IA_WwP56lLpbdck62#pQVK5WVPWl^Mr)Vw@)umPycRi?|1i3hesyZ$VfE# zxwJ(2m6blLbAIHdqj`9ETwGkG#l||mxP5uPHiy4r%~eLKDvKioSpkKKGD(KCm7c+JJmO^b9WCJ9UOYPTsKlS?g(>c zViag;>uav6h>1>?(Frv(b98d@&oB7R#Vy_6)j9F&hbSS1i@xS*=WjcR%Eyml@+uCu zyHio#?&0CkQtvNo7yrP_3{|yl2la(lgN?BXSuZdDs)Fp*!Dc0n2Kw3-rN3&<{#4r7 zxNZH)2>)s?E^BTq%wzw(aUv;%o{+^@RVkx)r+)e<(AMgFZ9Laf+t)W@AlcnU$2cdW zR6)~Y_xh=(q~LD7Qvm(L-9*<%(=OUfv*NYBMRv)`1R`K)b8NWnw*YhrkI z?bZ2-Noe)c$+WU@;P!ZHzVzpZxe-5kGd2I}r13L%W3Lv|ASNLTUnKzO2@X`0`tMW-ZR3@vBvapq#faV=y0%>th-b6L~C>h?l z>apLw%j~AG#*$vQhyqdf4;Z9 zc|-k1LHZNKbMa`!N0H2j6xk{Kr;-w5Bp%bxe)F*FA3u0Z*$g*%Lh1$QW1HkLe`%Hy z(7$K7Qd4O#RRkg|z=HygzCCYr=gMFucUK*Kn+lN1b5nOt;UUt#3ij zs;oUI#w)wu_VQ0r^6>`XqlHT5s{Ma97ez7LcL7j=Coupto;!~jXJ+?$(VT%ECHK4P zABbj>Jzx4Sn<&ODTN#{pGD#M^^btSko9Gk5oie&_u`x0Cy%`fpe)N8)?eS_2Baf8k ziOuZZt*i2Et4f_i+SBB1E!PnszZpiuZa_Bb5sQ+`xO&V{6U&9*DKQ&I5HZLFyv=#5 zuTj#?nI1*mOmCQIA>-P#a-!6asluR+|86MrtI!rP6ZxhD^%p3e7}Y?oW7u>w`%xnj zHcCbb56MmGTkk#11xOmkfIKkNnHCl~0U(G2gm!KyF*-2jE9P~+3zAi{$;!j6^dkT6 zOxikEh_5p83gh+Z3qe>A3}OljRRtsoL7T60pTpn_0__HoR&UsR(E@9DDAh@AnUm~) zZN=6>`Miz6pj=-qYx(yIIn#f@HgR(Ig>hI7qPicQ)mw0rF+HVjO@Uk`2mR3hjn4FW

L3`_#~?Ba_N($%cp;=; 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

N(x5Vf)H4JkoRnYvd_ zs!O$!n4ED8L4$-E1hgu-lr|Lx$Sq^jxuQPvwfiTs6TIy;T3u24BaGI|1kIL4 zcoNAzz>NC%41Po0?%7CWgYJzK%8REkVAhXTc9PonV1qRN?%dSdG&@ly*8Uke4ZJ=A zqAc~F4scv@8QNi*LyiH+5`G}3ZQ-6Vkq>RG|Ng9Wf*18kUA_fIO+C60p`UOOAs5q% zoPy{emTGAiwU9$YNVZTunrmBZ$*&7PyV@`V5e(|hN2~@%j0&uK#a}akFw#w<=KwOC zO(R1ALk(@ic95#;7lu|DNWf1WnN*Pu01 zYcjuQhtU`8dQ6p18Y`k!Q^V=5Cz&i1|A4F235Ic7!rIP^ z8#Hb-*$aeRV9~m-O$40I958-{z;*a`PX$w=th{&L)}=36+vk0Ae<)8|0(cWvCfvz2 z-#H=qIG6Aqa0b9-s;MQP%}Td_cpRN3#HiGn6R^%$wft&^{;cf$!5|0sBV2{=MkJb~ z?i{%)u{rl;Ly}J|)Rq!L5Q3NFYwMA={QK0h8(l(yCE^I_Au`Pb4|`hpnoFh#i~a*8 z!eAqTt-|L)`miIqYp+ zL1)tGL(@9!5wPo$??*>&?dQ5SBFTYQo!Lf5lPYJyO7`ZWf>4bqt5#pgj*3e9RfIms z{-ai6($ZDtl#_eGbC=FI_am<79^tfDYX3!JBQLKc`@hk+;lANM*}t7rb56F+ODN93 zd5CqdGx7Qv$t+X&G?AI;={<@ou{docB)#$63lvbrt+yx5mzBemV-ih_rhF}H8 z8w;B{g&e8Vx3Qnq|C%^!li38L1%#P^_CuNhvO0tD;j`nKL)ZS$j?)1!NqASYeYgK1 z#hJ!%Fx2U(zfz(`h{i0s1cHb*2}wTyjz=<2cb9oA)0)~rG&Mj68}X+%S88QVs8PAl zOHN}t{t|Rq)miPc4vio0r2@UhzZtDHQM#fdmg*+0M^tIrl;K#Jg%G|IHLh!NXEF17=7O%PY~TJU9)($!Km?fU zER-OcAD1Zy1Xm_dK>q+LH>vjL;Hsp@slaR8zR3rZyz$XRp6RXA^*JGLi#^fjr{pju zl_eS+h7E3*sdi>;d1B&6hf&%%#zGVzFtAG*Wbfb*V($>8=DdAn#>>h8)T^Up!H-89 z@5?hSY+2)o6lI+SGnf@RmBc-s9AmhG4`#RIoJ>3HGL5-7xvH$x)4efV=A;A?9cvm& z#!jsKC}E|}06Pwo4mnv$Mh`5$P8avT&%Q#+)-~-+yTOL}j5byxHdN%9Dw2xuDXCDI za;G4#K`@+J%jG{B$N8fDM985>asN3=rnGWX!=(wK4OQWucw)HAM$jpi)Eht?WnjuI zwGqBjLYa?57=qbpW#uM-lo*)_u&ZX`O^3Rrsx~U7veIc35wN<3>QyO^jgd@tlK8oI zETX)RVr$*<_*FExM+6cdC`knT`TKn+i?6ZL0qS5dB&_>T7iyaaIR#q2dMno`Mp?- zA17jglhta>7PU#K_6-vt^Uziq0}K9u`2u5);iHRR(mL&DC+%3EOmcTiU*Tzo!A_-KOUG*5II(6i%5DuK zR4bc_N{Kd{*DeF1wMC*UpjH3aX5EC2l!_K_>MkvPKF!1WaI8g~i5NOICY^B_hVdQu zF{Q~a)rO6IZ_>K`!dvl*AP)z!f%7!S{8@+i>m*ibSE?@L8Z6FL_TCDptgI}3TLpcX zWUX1|3S&+k0MNd}U$tNH7P3GJ5;ZiAy_R=4Uif7%3%Xkn^)Yoa2j5oIe*l%v7}rb(SZ> z|9DdH%Qf-5$abQ>#E%OOW(voQkK`)=vF=A~` zevnD;MPi6nlUhS+Jsr7oP@I}6ZzD0N(9VEPq6*RLqYKyNMmO@Aq08y-xgwz99$>WK zH?wV{*>Fbzr871C!i@7>WOah>54srO2e`W{bZW1$jrzi`8)jSKCT&Doji zzKqS;rbdotK&nOoFJ+E*IXq2&KX`FHN$`_9l zVV*sIpjc)H%YJcXQ$}jLgNwe~l9rm~NJhhhj>2=s&#~r5Y{A7O&BsLF&d1^x#Oo!0 zoA4`hR{5MSIWZ*BmiHP3N?y&F9+TF$x~z`eqKZ8 zWHo-clFfY+(VARiXmRaj9ggmD%cjiDt8*j{E>e+%$D((d1=n4p>EWG_A+7KTtTC-O zS873E+cb)2IjbO=Fa8I>xKDRdqvA}j2uw9^gY{Omv9YocOo%{$Xs+iMOHSa)eu~cl znUAKc)isjWW5-Y7`Bz(V=61)7<%*dwfXRpIJY%|@mK*keG;PLoH(lVG#@dto{wb5lHad5IpW z_~7t!bZd3E1!eQ*{lLlGdmVd7FI@{Htpl?f68nCFDn%rtx)~`9(y&CfN`H8;%hBQe zKyJ{YOQ9`xUtlK-D3!J0>gj`q@AnN!Tx6h$Qq9?hx2| zM?e_&fojSrKyB~Nkk8eW-SO-t^Nq)~FFVciizz}odVXz}V79#OnA;!$)-AYcP*KkZ zk>}KXPf8y@HAF4z7ocmu*;676%`7J=&)O~^>2k2#OhRe3Au=g!Uw8_IIyrt*lDC?n zbbK8%O96VP(7``&E?wou{x>IsmYe#eDw6(0y~4dqIUqy$uTR~x=H2hjjp(BRMa!4VY*HPcR7oSuifcvMOP%Gj?OU zGz>BX`D0INLl6JX+zRii4-czD29H3Cz@w`}C0Zse`&2>#xdvnBCLgy@WMd?+%gj5+ zwZXTEyH22J^RANp3>5W5#kfWJsgZs0B0k_%k6D(*a_=MG(! zXXeP7mzPLgdaq{RzUCH5JnrJfjoAXL93?JBZt|TQ?Y)jxb?o>tH~juqvklxsa66-L zMxV7;UXzAS6OL-I)bjexk9TGz+XHJ?f;|0mKY;Mc?P&@ogps^hlHzsOGl=?64}aPP z_;vTB3k6eJno^aH_2Z=-TYujoNB<>q>7O26+IwFH>JxE76?$Y9PMlcRfE-8ONPPA9 zT8u|dCEIO+!gqd)+F45ekaF`C&~Tbh-MM`uC@`+q=_ZtBB(3Zs57}a{1yBl}(LCeF z3Jo;)&mu^s>X&V>K>38GiB!IP6ga+^gd=WrIY@PUiDBU-<9qv7d`WU)(8+%2w{1@? zK!(MB_sNZXZ!Ym(mqjA0!`3;XVWrz*vk~>o!SRnrZY6Ug#vP_W=54A-Gf7#MWZ|NIf~HaNK_3Z(9~E(Q0ixN?_*FYCl2(J*z%JiiPk0^bS! z6Q=cY&XF(cKha?i&6F#B0Z+-+c%65-wnGRZZyG4DrbHW;R-$6OexSEa*gZQYfSWhn&VAGcd$Vd}!T z^|ES=^Gmg!7Z=vJ<{iuB*s>(?+tTPo@K*{SLdP&Joy2)LH!)er^P{##j1f0H3|}t7 z*56E>URpmWRrGh^V-}B6ArypAlSsM2uKV@|61!KQ%xsElkyNvQ7B18N)<@81g~RIO z&TsZ*{MK;0_yps^&~>mpT`wWAL97e2P+Pz-EHTEv3a^R`(>xD~*5kWTg}sJ{IX0Yt zgvk10t65w;_(&zOk!EB^BJnwgdNo4djXegv2|v%nw^ zq+uYSUGL`_5bD=w7GPeT=Vr2XR{%CJ@Z6Hf`a1eO<7fb}=&5eSPhM3tVibL**4;3o z#*VtKH~BLDL2zXT*lw2i!wGGvC}BPg*MN^J;#l4I=MwQItUO*59mA!D^U16EO|Rgx zhh7twl_W3keQhyT;SJ}UPv-7CMQxk7;Z0M51%{864pvso*R$^=a^h$`wBdyBZ$~;0 zM5)(X0n1E_QGxm>R&J{R%0AXYX4BGDQ~d0dAE1gTGf&0Hvx4heEd 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 VJ}Nno?fs|XkrtN|D-+T8|369!s=WXJ literal 13664 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 diff --git a/content/applications/hr/payroll/payslips/other-info-tab.png b/content/applications/hr/payroll/payslips/other-info-tab.png index 0069818989551ae042d85559d08ed7230b528691..4ab1b6adb7a02d25fb563df0d61ced62b7f42be5 100644 GIT binary patch literal 17680 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 FCII$(^^yPp literal 15733 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

}Pe@1MJ|6Zr&$8*7! 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 literal 37065 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

A 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 z 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 T_Bys#3IUfr(%HJ+(l_}(jnCkF literal 0 HcmV?d00001 From 2a0260cb6387d5a4ee6b34e167cd12002dbe3914 Mon Sep 17 00:00:00 2001 From: mcsi-odoo Date: Tue, 15 Jul 2025 13:56:49 +0000 Subject: [PATCH 10/52] [IMP] elearning: clarification content types plus various edits task-4902005 closes odoo/documentation#14394 X-original-commit: 6649cfbd2315749d4fb4e834d0d61beab20c97fe Signed-off-by: Audrey Vandromme (auva) Signed-off-by: Siobhan McGonigle (mcsi) --- .../general/users/access_rights.rst | 4 + content/applications/websites/elearning.rst | 360 ++++++++++++------ .../elearning/elearning-document-tab.png | Bin 0 -> 43949 bytes .../websites/elearning/options-tab.png | Bin 26047 -> 30605 bytes content/applications/websites/forum.rst | 2 +- 5 files changed, 250 insertions(+), 116 deletions(-) create mode 100644 content/applications/websites/elearning/elearning-document-tab.png diff --git a/content/applications/general/users/access_rights.rst b/content/applications/general/users/access_rights.rst index 6d587d97b0..f66350b2ba 100644 --- a/content/applications/general/users/access_rights.rst +++ b/content/applications/general/users/access_rights.rst @@ -28,6 +28,8 @@ should not have access to. Once complete, click :guilabel:`Save` to save the changes, and implement the user as an administrator. +.. _access-rights/user-permissions: + Manage user permissions ======================= @@ -52,6 +54,8 @@ The :guilabel:`Administration` field in the :guilabel:`Access Rights` tab has th .. image:: access_rights/user-permissions-dropdown-menu.png :alt: The Sales apps drop-down menu to set the user's level of permissions. +.. _access-rights/specific-user-permissions: + Manage specific permissions --------------------------- diff --git a/content/applications/websites/elearning.rst b/content/applications/websites/elearning.rst index 8f395d83f3..ad5b6be91e 100644 --- a/content/applications/websites/elearning.rst +++ b/content/applications/websites/elearning.rst @@ -15,27 +15,32 @@ learning experience enhances their attentiveness and fosters heightened producti .. seealso:: `Odoo Tutorials: eLearning `_ +.. _elearning/courses: + Courses ======= -By going to :menuselection:`eLearning --> Courses --> Courses`, you can get an overview of all your -courses. +To get an overview of all courses, go to :menuselection:`eLearning --> Courses --> Courses`. + +Click on a course card to edit the course on the back end. Click :guilabel:`View course` to access +the course on the front end. -Click on a course title to edit your course on the back end. Click on :guilabel:`View course` to -access your course on the front end. +.. _elearning/course-creation: Course creation --------------- -Click :guilabel:`New` to create a new course. When the page pops up, you can add your -:guilabel:`Course Title` and one or more :guilabel:`Tags` to describe your course. You can add an -image to illustrate your course by hovering your mouse on the camera placeholder image and clicking -on the edit icon. Four tabs allow you to edit your course further: -:ref:`Content `, :ref:`Description `, -:ref:`Options `, and :ref:`Karma `. +Click :guilabel:`New` to create a new course. In the form that opens, add a :guilabel:`Course Title` +and one or more :guilabel:`Tags` to categorize the course and :ref:`allow users +to filter courses based on their tags `. +To add an image to illustrate the course, hover your mouse on the camera placeholder image and +click on :icon:`fa-pencil` :guilabel:`(Edit)`. + +Four tabs allow you to edit your course further: :ref:`Content `, +:ref:`Description `, :ref:`Options `, and +:ref:`Karma `. .. image:: elearning/elearning-course-creation.png - :align: center :alt: Create your elearning course. .. _elearning/content: @@ -43,22 +48,21 @@ on the edit icon. Four tabs allow you to edit your course further: Content tab ~~~~~~~~~~~ -This tab allows you to manage your course content. Click on :guilabel:`Add Section` to divide your -course into different sections. Click on :guilabel:`Add Content` to create -:ref:`content `. Click on :guilabel:`Add Certification` to assess the -level of understanding of your attendees, certify their skills, and motivate them. **Certification** -is part of the :doc:`Surveys <../marketing/surveys/create>` app. +This tab allows you to manage the course content. Click :guilabel:`Add Section` to divide the +course into different sections. Click :guilabel:`Add Content` to create :ref:`content items +`. Click :guilabel:`Add Certification` to assess the attendees' level of +understanding, certify their skills, and motivate them. **Certification** is part of the +:doc:`Surveys <../marketing/surveys/create>` app. .. _elearning/description: Description tab ~~~~~~~~~~~~~~~ -You can add a short description or information related to your course in the :guilabel:`Description` -tab. It appears under your course title on your website. +You can add a short description or information related to the course in the :guilabel:`Description` +tab. It appears under the course title on your website. .. image:: elearning/course-description.png - :align: center :alt: Add a description to your course. .. _elearning/options: @@ -67,70 +71,122 @@ Options tab ~~~~~~~~~~~ In the :guilabel:`Options` tab, different configurations are available: -:ref:`Course `, :ref:`Communication `, -:ref:`Access rights `, and :ref:`Display `. +:ref:`Course `, :ref:`Access rights `, +:ref:`Communication ` and :ref:`Display +`. .. image:: elearning/options-tab.png - :align: center :alt: Overview of the Options tab -.. _elearning/course: +.. _elearning/options-course: Course ****** -Assign a :guilabel:`Responsible` user for your course. If you have multiple websites, use the -:guilabel:`Website` field to only display the course on the selected website. +Assign a :guilabel:`Responsible` user for the course. If you have multiple websites, use the +:guilabel:`Website` field to display the course only on the selected website. -.. _elearning/communication: +.. _elearning/options-access-rights: -Communication +Access rights ************* -- :guilabel:`Allow Reviews`: tick the box to allow attendees to like and comment on your content and - to submit reviews on your course; -- :guilabel:`Forum`: add a dedicated forum to your course (only shown if the **Forum** feature is - enabled in the app's settings); -- :guilabel:`New Content Notification`: select an email template sent to your attendees when you - upload new content. Click on the internal link button (:guilabel:`➜`) to have access to the email - template editor; -- :guilabel:`Completion Notification`: select an email template sent to your attendees once they - reach the end of your course. Click on the internal link button (:guilabel:`➜`) to access the - email template editor; +- :guilabel:`Prerequisites`: Set one or more other courses that users are advised to complete before + accessing the course. +- :guilabel:`Prerequisite Of`: If the course has been defined as a prerequisite for one or more + courses, this read-only field displays the course name(s). +- :guilabel:`Show course to`: Define who can see the course on your website. Select one of the + following: -.. _elearning/access-rights: + - :guilabel:`Everyone`: The course is publicly visible. + - :guilabel:`Signed In`: The course is only visible to users who are logged in. + - :guilabel:`Course Attendees`: The course is only visible to users who are already enrolled in + the course. + - :guilabel:`Anyone with the link`: The course can only be accessed via a direct link. -Access rights -************* +- :guilabel:`Enroll Policy`: Define how people can enroll in the course. The choice of policy also + determines which internal eLearning users can add, i.e., manually enroll, attendees via the + :guilabel:`Add attendees` button or invite attendees to enroll via the :guilabel:`Invite` button. + + .. note:: + Internal eLearning users have either `Officer` or `Manager` :doc:`access rights + `. + + Select one of the following: + + - :guilabel:`Open`: + + - Anyone who can see the course can enroll. + - Any eLearning Officer or eLearning Manager can add or invite internal or external + attendees. + + - :guilabel:`On invitation`: + + - Only people who have received an invitation can enroll in the course. + - If the course visibility is set to :guilabel:`Everyone`, :guilabel:`Signed In`, or + :guilabel:`Anyone with the link`, any non-invited person who logs in can request access to the + course via the course page. Enter an :guilabel:`Enroll Message` to explain how to enroll, + e.g., "Contact Responsible". + + .. tip:: + The request creates a to-do assigned to the course's :guilabel:`Responsible` user, allowing + them to :guilabel:`Grant Access` or :guilabel:`Refuse Access`. The to-do is visible to the + :guilabel:`Responsible` user and any eLearning Manager in the course's chatter, and the + :guilabel:`Responsible` user is notified via email. Either the :guilabel:`Responsible` user + or an eLearning Manager can grant access, in which case the requestor is automatically + enrolled in the course, or refuse access. -- :guilabel:`Prerequisites`: set one or more courses that users are advised to complete before - accessing your course; -- :guilabel:`Show course to`: define who can access your course and their content between - :guilabel:`Everyone`, :guilabel:`Signed In` or :guilabel:`Course Attendees`; -- :guilabel:`Enroll Policy`: define how people enroll in your course. Select: + - Only the :guilabel:`Responsible` user for the course or an eLearning Manager can add or invite + internal or external attendees. - - :guilabel:`Open`: if you want your course to be available to anyone; - - :guilabel:`On Invitation`: if only people who received an invitation can enroll to your course. - If selected, fill in the :guilabel:`Enroll Message` explaining the course's enrollment process. - This message appears on your website under the course title; - - :guilabel:`On Payment`: if only people who bought your course can attend it. The - :guilabel:`Paid Courses` feature must be enabled to get this option. If you select - :guilabel:`On Payment`, you must add a :guilabel:`Product` for your course. + - :guilabel:`On payment`: - .. note:: - Only products set up with :guilabel:`Course` as their :guilabel:`Product Type` are - displayed. + - This option is only shown if the :guilabel:`Paid courses` feature is enabled in the + :ref:`eLearning settings `. + - Anyone who can see the course can enroll in the course upon payment. + - Any eLearning Officer can *invite* internal or external attendees to enroll in the course. + - Only the :guilabel:`Responsible` user for the course or an eLearning Manager can *add* + attendees. Payment is not required when an attendee is added in this way. + - To set a course as :guilabel:`On payment`, a :guilabel:`Product` must be selected; only + products set up with :guilabel:`Course` as their :guilabel:`Product Type` are available for + selection. -.. _elearning/display: +.. tip:: + To add or invite an attendee, the attendee must be an existing contact or created as a new + contact. A person who creates a customer account on your website is automatically a contact. + +.. _elearning/options-communication: + +Communication +************* + +- :guilabel:`Allow Reviews`: Enable this option to allow attendees to like, comment on, and submit + reviews for the course content. +- :guilabel:`Forum`: Add a dedicated forum to the course. This option is only shown if the + :guilabel:`Forum` feature is enabled in the :ref:`eLearning settings `. +- :guilabel:`New Content Notification`: Select an email template to send emails to attendees when + you upload new content items. Click on :icon:`oi-arrow-right` :guilabel:`Internal link` to access + the email template editor. +- :guilabel:`Completion Notification`: Select an email template to send emails to attendees once + they reach the end of the course. Click on :icon:`oi-arrow-right` :guilabel:`Internal link` to + access the email template editor. + +.. note:: + If the :guilabel:`Mailing` feature is enabled in the :ref:`eLearning settings + `, it is possible to send mass mailings to people enrolled in a course via a + :guilabel:`Contact Attendees` button at the top left of the course form. The button is only + visible to eLearning Officers who also have `User` :doc:`access rights + ` for Email Marketing and to eLearning Managers. + +.. _elearning/options-display: Display ******* -- :guilabel:`Training`: the course content appears as a training program, and the courses must be +- :guilabel:`Training`: The course content appears as a training program, and the courses must be taken in the proposed order. -- :guilabel:`Documentation`: the content is available in any order. If you choose this option, you - can choose which page should be promoted on the course homepage by using the - :guilabel:`Featured Content` field. +- :guilabel:`Documentation`: The content is available in any order. Use the :guilabel:`Featured + Content` field to define which content items are promoted on the course homepage. .. _elearning/karma: @@ -139,118 +195,192 @@ Karma tab This tab is about gamification to make eLearning fun and interactive. -In the :guilabel:`Rewards` section, choose how many karma points you want to grant your students +In the :guilabel:`Rewards` section, choose how many karma points you want to grant attendees when they :guilabel:`Review` or :guilabel:`Finish` a course. -In the :guilabel:`Access Rights` section, define the karma needed to :guilabel:`Add Review`, +In the :guilabel:`Access Rights` section, define the karma points needed to :guilabel:`Add Review`, :guilabel:`Add Comment`, or :guilabel:`Vote` on the course. -.. note:: - From your course, click the :guilabel:`Contact Attendees` button to reach people who are - enrolled in the course. - .. _elearning/course-groups: Course groups ------------- -Use the **Course Groups** to inform users and allow them to filter the courses from the -:guilabel:`All Courses` dashboard. +**Course Groups** allow users to filter the :guilabel:`All Courses` dashboard on your website and +find the course that meets their interests, needs, level, etc. -You can manage them by going to :menuselection:`Configuration --> -Course Groups`. Click :guilabel:`New` to create a new course group. Add the :guilabel:`Course Group -Name`, tick the :guilabel:`Menu Entry` box to allow users to search by course group on the website, -and add tags in the :guilabel:`Tag Name` column. For each tag, you can select a corresponding color. +To manage them, go to :menuselection:`eLearning --> Configuration --> Course Groups`. Click +:guilabel:`New` to create a new course group. Add the :guilabel:`Course Group Name`, enable +:guilabel:`Menu Entry` to allow users to search by course group on the website, and add tags in +the :guilabel:`Tag Name` column. For each tag, you can select a corresponding color. + +.. _elearning/settings: Settings -------- -You can enable different features to customize your courses by going to :menuselection:`eLearning ---> Configuration --> Settings`: +The following options are available in the eLearning settings. Go to :menuselection:`eLearning --> +Configuration --> Settings`, then enable the desired feature: + +- :guilabel:`Certifications`: Assess attendees' knowledge and provide official certification of + their skills. +- :guilabel:`Paid Courses`: Sell course access directly through your website and track revenue. + + .. note:: + Enabling :guilabel:`Paid Courses` automatically installs the :guilabel:`eCommerce` module, + which may impact your `pricing plan `_. -- **Certifications**: to evaluate the knowledge of your attendees and certify their skills; -- **Paid courses**: to sell access to your courses on your website and track revenues; -- **Mailing**: to update all your attendees at once through mass mailings; -- **Forum**: to create a community and let attendees answer each other's questions. + .. seealso:: + :doc:`eCommerce documentation ` -.. _elearning/create-content: +- :guilabel:`Mailing`: Send mass mailings to keep all attendees informed and up to date. +- :guilabel:`Forum`: Build a community space where attendees can ask questions and help each other. + +.. _elearning/content-creation: Content ======= -Manage your content by going to :menuselection:`eLearning --> Courses --> Contents`. Click -:guilabel:`New` to create content. Add your :guilabel:`Content Title`, and if you want -:ref:`Tags `, then fill in the related information among the different tabs. +To manage course content, go to :menuselection:`eLearning --> Courses --> Contents`. Click +:guilabel:`New` to create a content item. Add the :guilabel:`Content Title` and any desired +:ref:`Tags `, then fill in the required information in the different tabs. .. image:: elearning/elearning-content-tab.png - :align: center :alt: Create your content. +.. tip:: + You can also create new content from within a course. Go to :menuselection:`eLearning --> Courses + --> Courses`, click the relevant course card, then click :guilabel:`Add content` at the bottom + of the :guilabel:`Content` tab. + +.. _elearning/content-document: + Document tab ------------ -- :guilabel:`Course`: select the course your content belongs to; -- :guilabel:`Content Type`: select the type of your content; -- :guilabel:`Responsible`: add a responsible person for your content; -- :guilabel:`Duration`: indicate the time required to complete the course; -- :guilabel:`Allow Download`: allow users to download the content of the slide. This option is only - visible when the content is a document; -- :guilabel:`Allow Preview`: the course is accessible by anyone. -- :guilabel:`# of Public Views`: displays the number of views from non-enrolled participants; +For each content type, provide the following information: + +- :guilabel:`Course`: Select the course to which the content item belongs. +- :guilabel:`Content Type`: Select the relevant :ref:`content type ` and + provide the required information. +- :guilabel:`Responsible`: Select the user responsible for the content item. By default, this is the + user who creates the course, but another user can be selected. +- :guilabel:`Duration`: Enter the time required to complete the lesson. +- :guilabel:`Allow Preview`: Enable this if the content should be accessible to anyone. + +.. note:: + If the :ref:`Content Type ` is :guilabel:`Document`, enabling + :guilabel:`Allow Download` allows users to download the content. + +Two read-only fields provide data about how often the content item is viewed: + +- :guilabel:`# of Public Views`: displays the number of views from non-enrolled participants. - :guilabel:`# Total Views`: displays the total number of views (non-enrolled and enrolled participants). +.. image:: elearning/elearning-document-tab.png + :alt: Provide information about the content. + +.. _elearning/content-type: + +Content types +~~~~~~~~~~~~~ + +You can add the following content types: + +- :guilabel:`Image`: To upload an image, select :guilabel:`Upload from Device`, click + :guilabel:`Upload your file`, then select the relevant file. Supported formats include JPG, JPEG, + PNG, SVG, GIF, and WEBP. The maximum file size is 25MB. + + Alternatively, to add an image saved on Google Drive, select :guilabel:`Retrieve from Google + Drive`, then add the Google Drive link to the image. + +- :guilabel:`Article`: Articles are website pages that are customized using the website + builder on your website's front end. + + With the :guilabel:`Course` selected, click the :guilabel:`Go to Website` smart button, then, at + the top-right of the screen, click :icon:`fa-pencil` :guilabel:`(Edit)`. Write the article's + content and :doc:`customize the page using the website builder `. + +- :guilabel:`Document`: To upload a document, select :guilabel:`Upload from Device`, click + :guilabel:`Upload your file`, then select the relevant file. Only PDF documents can be uploaded. + + Alternatively, to add a Google Slides presentation, Google Doc document, or Google Sheets + spreadsheet, click :guilabel:`Retrieve from Google Drive` and add the Google Drive link to the + file. + +- :guilabel:`Video`: Add the YouTube, Google Drive, or Vimeo link to the video. +- :guilabel:`Quiz`: Open the :ref:`Quiz tab ` to create a quiz. + +.. _elearning/content-description: + Description tab --------------- -You can add a description of your content that appears front end in the :guilabel:`About` section of -your course content. +Add a description for the content. This text is displayed in the :guilabel:`About` section of the +content item on your website. + +.. _elearning/content-additional-resources: Additional Resources tab ------------------------ Click :guilabel:`Add a line` to add a link or a file that supports your participants' learning. -It appears in the course content on your website. +The resource appears in the course content on your website. .. image:: elearning/additional-content.png - :align: center :alt: Additional ressources -.. _elearning/quiz: +.. _elearning/content-quiz: Quiz tab -------- -From this tab you can create a quiz to assess your students at the end of the course. +From this tab, you can create a quiz to assess your students at the end of the course. -The :guilabel:`Points Rewards` section lets you give a specific number of karma points depending on -how many tries they need to correctly answer the question. Then, create your questions and the -possible answers by clicking on :guilabel:`Add a line`. A new window pops up, add the question by -filling in the :guilabel:`Question Name` and add multiple answers by clicking on :guilabel:`Add a -line`. Tick the :guilabel:`Is correct answer` to mark one or more answers as correct. You can also -fill in the :guilabel:`Comment` field to display additional information when the answer is chosen by -the participant. +The :guilabel:`Points Rewards` section allows you to assign karma points based on how many attempts +are needed to answer correctly. To create a question, click :guilabel:`Add a line`, enter the +:guilabel:`Question Name`, and add possible answers. Mark the correct answer(s) by selecting +:guilabel:`Is correct answer`. You can also use the :guilabel:`Comment` field to provide additional +information when an answer is selected. -.. _elearning/tags: +.. _elearning/content-tags: Content Tags ------------ -The **Content Tags** help users to classify the content from the :guilabel:`Contents` dashboard. +**Content Tags** are visible on the :guilabel:`Contents` dashboard of a course on your website, and +can help users identify the kind of content a particular lesson contains, e.g., theory, or exercises. -You can manage them by going to :menuselection:`eLearning --> Configuration --> Content Tags`. Click +To manage content tags, go to :menuselection:`eLearning --> Configuration --> Content Tags`. Click :guilabel:`New` to create a new tag. -Publish your content -==================== +.. _elearning/publish-content: -Everything created on the back end needs to be published from the front end. Unpublished content is -always visible from your website but still needs to be published to be available to your audience. +Publish courses and content +=========================== -You must be on your website's front end to publish your content. To do so, click on the -:guilabel:`Go To Website` smart button, and tick the :guilabel:`Publish` option available in the -right-hand corner. +Courses and content items must be published from the front end to be available to your audience. +To access the front end, click the :guilabel:`Go to Website` smart button at the top of the course +form or an individual content form. + +A course and its content items are published separately: + +- To publish a course, access the main course page, then toggle the switch in the + upper-right corner from :guilabel:`Unpublished` to :guilabel:`Published`. +- To publish individual content items, click on an item to open it, then toggle the switch + from :guilabel:`Unpublished` to :guilabel:`Published`. .. image:: elearning/elearning-publish-button.png - :align: center :alt: Publish your content. + +.. tip:: + When publishing a new course, publish the individual content items before publishing the course + itself. Published content is only available to your audience once the course it is part of is + published. + +To unpublish a course or an individual content item, open the course or item, then toggle the switch +from :guilabel:`Published` to :guilabel:`Unpublished`. + +.. note:: + Unpublishing a course renders the course *and* its content unavailable to your audience. diff --git a/content/applications/websites/elearning/elearning-document-tab.png b/content/applications/websites/elearning/elearning-document-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..a652921dcd0d15311cd5dae332b8ae3810eb550c GIT binary patch literal 43949 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


?)Bw7$l(KC|qE%)h=$zNwdG?($L@QMT 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 diff --git a/content/applications/websites/forum.rst b/content/applications/websites/forum.rst index 216e43fc1d..be89253b68 100644 --- a/content/applications/websites/forum.rst +++ b/content/applications/websites/forum.rst @@ -54,7 +54,7 @@ having moderator rights. They are also used to set user :ref:`ranks ` and by :ref:`completing quizzes `. + ` and by :ref:`completing quizzes `. .. _forum/karma-gains: From e4004619d4fc0257c17c7f8274e6b98250f750f7 Mon Sep 17 00:00:00 2001 From: jero-odoo Date: Mon, 15 Sep 2025 15:26:30 +0000 Subject: [PATCH 11/52] [IMP] Purchase: update control policy doc closes odoo/documentation#14581 X-original-commit: abe756fb39c237e63707172beebce2784185ad96 Signed-off-by: Jessica Rogers (jero) --- .../purchase/manage_deals/control_bills.rst | 70 ++++++------------ .../control-bills-billing-status.png | Bin 28274 -> 12775 bytes .../control-bills-error-message-popup.png | Bin 23015 -> 0 bytes .../control-bills-selected-policy.png | Bin 51819 -> 0 bytes .../control-bills-should-be-paid.png | Bin 18292 -> 8860 bytes 5 files changed, 23 insertions(+), 47 deletions(-) delete mode 100644 content/applications/inventory_and_mrp/purchase/manage_deals/control_bills/control-bills-error-message-popup.png delete mode 100644 content/applications/inventory_and_mrp/purchase/manage_deals/control_bills/control-bills-selected-policy.png diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst b/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst index 49ed880b3a..6d127b6830 100644 --- a/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst +++ b/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst @@ -1,53 +1,41 @@ -===================== -Bill control policies -===================== +================ +Control policies +================ .. _purchase/manage_deals/control-bills: .. |PO| replace:: :abbr:`PO (Purchase Order)` .. |POs| replace:: :abbr:`POs (Purchase Orders)` -In Odoo's *Purchase* app, the *bill control* policy determines the quantities billed by vendors on -every purchase order (PO), for either ordered or received quantities. +In Odoo's **Purchase** app, the *Control Policy* determines the quantities billed by vendors on +every purchase order (PO). For example, choosing *On ordered quantities* means the bill is based on +ordered items, even if they have not been received yet. -The policy selected in the *Purchase* app settings acts as the default value, and is applied to any -new product created. +The control policy is selected on the *Product* record. Configuration ============= -To configure the *bill control* policy, navigate to :menuselection:`Purchase app --> Configuration ---> Settings`, and scroll down to the :guilabel:`Invoicing` section. Under :guilabel:`Bill Control`, -select either :guilabel:`Ordered quantities` or :guilabel:`Received quantities`. Then, click -:guilabel:`Save`. +To configure the control policy for a product, navigate to :menuselection:`Purchse app --> Prodcuts +--> Products`, then click on a product record to open it. Click to the :guilabel:`Purchase` tab. +Scroll to the :guilabel:`Vendor Bills` section. Under :guilabel:`Control Policy`, tick the radio +button for either :guilabel:`On ordered quantities` or :guilabel:`On recieved quantities`. -.. image:: control_bills/control-bills-selected-policy.png - :align: center - :alt: Selected bill control policy in Purchase app settings. +- :guilabel:`On ordered quantities`: Creates a vendor bill as soon as a |PO| is confirmed. The + products and quantities in the |PO| are used to generate a draft bill. +- :guilabel:`On received quantities`: A bill is created only *after* part of the total order has + been received. The products and quantities received are used to generate a draft bill. An error + message appears if creation of a vendor bill is attempted without receiving anything. -- :guilabel:`Ordered quantities`: creates a vendor bill as soon as a |PO| is confirmed. The products - and quantities in the |PO| are used to generate a draft bill. -- :guilabel:`Received quantities`: a bill is created only *after* part of the total order has been - received. The products and quantities received are used to generate a draft bill. An error message - appears if creation of a vendor bill is attempted without receiving anything. +The default control policy for a product is determined by the :guilabel:`Product Type`: - .. image:: control_bills/control-bills-error-message-popup.png - :align: center - :alt: Bill control policy draft bill error message. +- **Services**: The default control policy is *On ordered quantities*. +- **Goods**: The default control policy is *On delivered quantities* -.. note:: - If a specific product should use a different control policy than selected in the *Purchase* app - settings, the :guilabel:`Bill Control` policy for that product can be changed from its product - form. - - To do that, navigate to :menuselection:`Purchase app --> Products --> Products`, and select a - product. From the product form, click the :guilabel:`Purchase` tab. Under the :guilabel:`Vendor - Bills` section, modify the selection in the :guilabel:`Control Policy` field. - -3-way matching -============== +Pay vendor bills with 3-way matching +==================================== -The *3-way matching* feature ensures vendor bills are only paid once some (or all) of the products +The *3-way matching* feature ensures vendor bills are only paid once some, or all, of the products included in the |PO| have been received. To activate *3-way matching*, navigate to :menuselection:`Purchase app --> Configuration --> @@ -55,16 +43,8 @@ Settings`, and scroll down to the :guilabel:`Invoicing` section. Then, tick the :guilabel:`3-way matching` to enable the feature, and click :guilabel:`Save`. .. image:: control_bills/control-bills-three-way-matching.png - :align: center :alt: Enabled 3-way matching feature in Purchase app settings. -.. important:: - The :guilabel:`3-way matching` feature **only** works with the :guilabel:`Bill Control` policy - set to :guilabel:`Received quantities`. - -Pay vendor bills with 3-way matching ------------------------------------- - When *3-way matching* is enabled, vendor bills display a :guilabel:`Should Be Paid` field under the :guilabel:`Other Info` tab. When a new vendor bill is created, the field is set to :guilabel:`Yes`, since a bill **cannot** be created until at least some of the products included in a |PO| have been @@ -78,18 +58,15 @@ Paid` field. .. important:: The |PO| selected from the list **must not** be billed yet, or an :guilabel:`Invalid Operation` - pop-up window appears. This occurs for |POs| with a :guilabel:`Received quantities` policy, and a - :guilabel:`Fully Billed` :guilabel:`Billing Status`. + pop-up window appears. .. image:: control_bills/control-bills-invalid-operation.png - :align: center :alt: Invalid Operation pop-up window for billed Purchase Order. Click the drop-down menu next to :guilabel:`Should Be Paid` to view the available options: :guilabel:`Yes`, :guilabel:`No`, and :guilabel:`Exception`. .. image:: control_bills/control-bills-should-be-paid.png - :align: center :alt: Should Be Paid field status on draft vendor bill. .. note:: @@ -131,7 +108,6 @@ Orders --> Purchase Orders`, and select a |PO| to view. Click the :guilabel:`Other Information` tab, and locate the :guilabel:`Billing Status` field. .. image:: control_bills/control-bills-billing-status.png - :align: center :alt: Billing status field on a purchase order form. The table below details the different values the :guilabel:`Billing Status` field could read, and diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills/control-bills-billing-status.png b/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills/control-bills-billing-status.png index a9542b57ab892ac8631e871439df44ad9d877620..97772e831fff7694077717cf66053d608b3cc91d 100644 GIT binary patch literal 12775 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 Js1Y*?`X9fsqlf?i literal 28274 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 diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills/control-bills-error-message-popup.png b/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills/control-bills-error-message-popup.png deleted file mode 100644 index 9ef0f70aa49b8ea1d4e14b350d1f81d6fd421a28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23015 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 P3_#%N>gTe~DWM4f4FLb- diff --git a/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills/control-bills-should-be-paid.png b/content/applications/inventory_and_mrp/purchase/manage_deals/control_bills/control-bills-should-be-paid.png index 523df593533f6b5cd04a78f43cf5ead1a2e9bfe7..4f55cd6690614f96c6be82a9a762beb8ecd780c1 100644 GIT binary patch literal 8860 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 b&zJlEw;am2O#f$J00000NkvXXu0mjf&+(xR From 169e17b87c74c6c3d577848746a1847cbb0dc013 Mon Sep 17 00:00:00 2001 From: jero-odoo Date: Wed, 17 Sep 2025 19:13:46 +0000 Subject: [PATCH 12/52] [ADD] VoIP: DIDWW config closes odoo/documentation#14589 X-original-commit: 01f3e1aed17e45b8af75b7b08aa4a44871859c99 Signed-off-by: Felicia Kuan (feku) Signed-off-by: Jessica Rogers (jero) --- content/applications/productivity/voip.rst | 1 + .../applications/productivity/voip/didww.rst | 84 ++++++++++++++++++ .../productivity/voip/didww/add-user.png | Bin 0 -> 9415 bytes .../voip/didww/didww-purchase-numbers.png | Bin 0 -> 46997 bytes .../productivity/voip/didww/new-provider.png | Bin 0 -> 12421 bytes .../voip/didww/odoo-credentials.png | Bin 0 -> 7711 bytes .../voip/didww/sip-device-route.png | Bin 0 -> 33550 bytes 7 files changed, 85 insertions(+) create mode 100644 content/applications/productivity/voip/didww.rst create mode 100644 content/applications/productivity/voip/didww/add-user.png create mode 100644 content/applications/productivity/voip/didww/didww-purchase-numbers.png create mode 100644 content/applications/productivity/voip/didww/new-provider.png create mode 100644 content/applications/productivity/voip/didww/odoo-credentials.png create mode 100644 content/applications/productivity/voip/didww/sip-device-route.png diff --git a/content/applications/productivity/voip.rst b/content/applications/productivity/voip.rst index ccc58fbe02..e844b4ac18 100644 --- a/content/applications/productivity/voip.rst +++ b/content/applications/productivity/voip.rst @@ -123,6 +123,7 @@ VoIP workflows voip/onsip voip/axivox + voip/didww voip/voip_widget voip/devices_integrations voip/sales_calls diff --git a/content/applications/productivity/voip/didww.rst b/content/applications/productivity/voip/didww.rst new file mode 100644 index 0000000000..d69b1d9a4d --- /dev/null +++ b/content/applications/productivity/voip/didww.rst @@ -0,0 +1,84 @@ +================================ +VoIP services in Odoo with DIDWW +================================ + +*DIDWW* is a global *VoIP* and SIP trunking provider. An active account with DIDWW is required to +use this service. + +Before creating an account with DIDWW, make sure that the company's location and the applicable +regions are supported by DIDWW's services. + +DIDWW setup +=========== + +After verifying country coverage and avaiabilty, create an account with `DIDWW +`_. Then navigate to the `DIDWW Dashboard +`_. + +To transfer existing numbers from an existing telephone network servicer provider, follow the steps +outlined on the `DIDWW website `_. + +Purchase new numbers +-------------------- + +To puchase new phone numbers, click :guilabel:`Buy Numbers` in the dashboard, then follow the +instructions to complete the purchase. + +When buying a new number, it **must** support both inbound calls and Local CLI. + +.. image:: didww/didww-purchase-numbers.png + :alt: The purchase dashboard in DIDWW. + +Enable phone.systems +-------------------- + +Next, click :guilabel:`Cloud Phone System` in the dashboard sidebar. Then, click :guilabel:`Launch +admin UI`. + +.. important:: + The *phone.systems PBX* feature is an extra paid service in DIDWW, and may require additional + fees. + +To create a new user, click :guilabel:`Users`, click the plus sign, then enter the necessary +information. + +.. image:: didww/add-user.png + :alt: The add a new user screen in DIDWW. + +Click :guilabel:`Contact Methods`, then click the plus sign to add a new *SIP Device Route*. + +Configure or add the following parameters: + +- :guilabel:`Allowed Codecs`: `OPUS`, `PCMU`, `PCMA`, `telephone-event`, `g722`, `g729`. +- :guilabel:`Allowed media types`: `SRTP-DTLS` +- :guilabel:`Default media type`: `STRP-DTLS` +- :guilabel:`Transport protocol`: `UDP`, `TCP`, `WSS`, `TLS` + +.. image:: didww/sip-device-route.png + :alt: The settings for a new contact method in DIDWW. + +.. tip:: + If no phone number available from drop-down selection in *Inbound and Outbound DID/Caller ID* + selection, the :guilabel:`Inbounch voice trunk` needs to be modified. Navigate to the dashboard, + then click :guilabel:`My Numbers`. Scroll to :guilabel:`Configuration`.In the :guilabel:`Inbound + voice trunk` field, select :guilabel:`phone.systems`. + +Odoo setup +========== + +In *Odoo*, navigate to :menuselection:`Settings app --> Integrations --> VoIP --> Manage Providers`. +Click :guilabel:`New`. + +Enter the name, `DIDWW`, then update the :guilabel:`WebSocket` field with `wss://sip.phone.systems`. +Under :guilabel:`PBX Server IP`, enter `sip.phone.systems`. + +.. image:: didww/new-provider.png + :alt: The VoIP providers page in Odoo. + +To configure a user's VoIP provider, click the user avatar in the top-right of the database, then +click :guilabel:`My Profile`. Click into the :guilabel:`VoIP` tab, then under the :guilabel:`Voip +Provider` field, select :guilabel:`DIDWW`. Finally, enter the :guilabel:`Voip Username` and +:guilabel:`Voip Secret`, then save. + +.. image:: didww/odoo-credentials.png + :alt: DIDWW provider, username, and secret credentials entered. diff --git a/content/applications/productivity/voip/didww/add-user.png b/content/applications/productivity/voip/didww/add-user.png new file mode 100644 index 0000000000000000000000000000000000000000..a6407b110ff388d68e1833a4873370720581cc0b GIT binary patch literal 9415 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 FV1m^K9!mfK literal 0 HcmV?d00001 From cd2fb55041a0c2bc92c4a0e63a257b652a997b06 Mon Sep 17 00:00:00 2001 From: Felicious Date: Tue, 16 Sep 2025 20:45:27 +0000 Subject: [PATCH 13/52] [IMP] inventory: mto feedback closes odoo/documentation#14599 X-original-commit: c5091f002af61c238c5b458f25fa198708ba974d Signed-off-by: Felicia Kuan (feku) --- .../warehouses_storage/replenishment/mto.rst | 48 ++++++++++++++----- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst index d33e3a9707..34b3275298 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst @@ -11,18 +11,27 @@ Replenish on order (MTO) .. |BOM| replace:: :abbr:`BOM (bill of materials)` *Replenish on order*, also known as *MTO* (make to order), is a replenishment strategy that creates -a draft order for a product every time it is required to fulfill a sales order (SO), or when it is -needed as a component in a manufacturing order (MO). +a draft order every time a product is needed to fulfill a sales order (SO) or as a component in a +manufacturing order (MO). -For products that are purchased from a vendor, a request for quotation (RFQ) is created to replenish -the product, while an |MO| is created for products that are manufactured. The creation of an |RFQ| -or |MO| occurs every time an |SO| or |MO| that requires the product is confirmed, regardless of the -current stock level of the product being ordered. +- For :doc:`purchased products <../../../purchase/manage_deals/rfq>`, Odoo creates a |RFQ| +- For :doc:`manufactured products + <../../../manufacturing/basic_setup/configure_manufacturing_product>`, it creates a |MO| + +If stock is available, no |RFQ| or |MO| is generated and the sale proceeds normally. Otherwise, the +|RFQ| or |MO| is generated and directly linked to the originating |SO| through a smart button. + +This approach offers clear traceability, since each |RFQ| or |MO| is tied back to its demand. .. important:: - In order to use the |MTO| route, the :guilabel:`Multi-Step Routes` feature must be enabled. To do - so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`, and tick the - checkbox next to :guilabel:`Multi-Step Routes`, under the :guilabel:`Warehouse` heading. + The |RFQ| or |MO| generated by |MTO| is designed to fulfill the originating |SO|. These documents + should normally be confirmed or adjusted rather than cancelled. If the demand changes, update the + document instead of cancelling it. + +.. note:: + If an |RFQ| or |MO| is cancelled, Odoo does not automatically generate a replacement. A new + replenishment document must be created manually, but it **cannot** be linked back to the original + |SO| through the smart button. Finally, click :guilabel:`Save` to save the change. @@ -31,6 +40,10 @@ current stock level of the product being ordered. Unarchive MTO route =================== +In order to use the |MTO| route, the :guilabel:`Multi-Step Routes` feature must be enabled. To do +so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`, and tick the checkbox +next to :guilabel:`Multi-Step Routes`, under the :guilabel:`Warehouse` heading. + By default, Odoo sets the |MTO| route as *archived*. This is because |MTO| is a somewhat niche workflow that is only used by certain companies. However, it is easy to unarchive the route in just a few simple steps. @@ -121,10 +134,11 @@ Click :guilabel:`Confirm`, and the quotation is turned into an |SO|. A :guilabel:`Purchase` smart button now appears at the top of the page. Clicking it opens the |RFQ| associated with the |SO|. -Click :guilabel:`Confirm Order` to confirm the |RFQ|, and turn it into a |PO|. A purple -:guilabel:`Receive Products` button now appears above the |PO|. Once the products are received, -click :guilabel:`Receive Products` to open the receipt order, and click :guilabel:`Validate` to -enter the products into inventory. +After receiving approval from the vendor that they can meet the demand by the :guilabel:`Expected +Arrival` date, click :guilabel:`Confirm Order` to turn it into a |PO|. A purple :guilabel:`Receive +Products` button now appears above the |PO|. Once the products are received, click +:guilabel:`Receive Products` to open the receipt order, and click :guilabel:`Validate` to enter the +products into inventory. Return to the |SO| by clicking the :guilabel:`SO` breadcrumb, or by navigating to :menuselection:`Sales app --> Orders --> Orders`, and selecting the|SO|. @@ -133,6 +147,14 @@ Finally, click the :guilabel:`Delivery` smart button at the top of the order to order. Once the products have been shipped to the customer, click :guilabel:`Validate` to confirm the delivery. +Cancelling an SO with an MTO product +------------------------------------ + +When a |SO| is cancelled, and it had created an |RFQ| or |MO|, the related delivery order is +cancelled automatically. However, the |RFQ| or |MO| themselves are **not** cancelled. Instead, a +warning appears in their chatter noting the |SO| cancellation. These documents remain active, so the +user can either cancel them manually or repurpose the replenishment for another order. + .. seealso:: For information on workflows that include the |MTO| route, see the following documentation: From abeb26d0b6ec9a0a919cc31ed15ad7c66c11ca41 Mon Sep 17 00:00:00 2001 From: jero-odoo Date: Wed, 17 Sep 2025 14:34:26 +0000 Subject: [PATCH 14/52] [IMP] Quality: add print label qc closes odoo/documentation#14607 X-original-commit: aa57c2f7a225fcdb043f82b45ca58c89fb3a4656 Signed-off-by: Felicia Kuan (feku) Signed-off-by: Jessica Rogers (jero) --- .../quality/quality_management/quality_checks.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst b/content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst index 79089af29d..e9b488068e 100644 --- a/content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst +++ b/content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst @@ -50,6 +50,8 @@ Select a quality check type from the :guilabel:`Type` drop-down field: - :guilabel:`Instructions` provides specific instructions for how to conduct the quality check. - :guilabel:`Take a Picture` requires a picture to be attached to the check before the check can be completed. +- :guilabel:`Print label` opens a pop-up from which labels can be printed. This step can be + customized to provide instructions about where to add the labels on a product. - :guilabel:`Pass - Fail` is used when the product being checked must meet a certain criteria to pass the check. - Selecting :guilabel:`Measure` causes a :guilabel:`Measure` input field to appear, in which a From a412e1dc8a24d6e5924716b95d5a0621d87b1543 Mon Sep 17 00:00:00 2001 From: jero-odoo Date: Wed, 17 Sep 2025 13:52:23 +0000 Subject: [PATCH 15/52] [IMP] Whatsapp: config field closes odoo/documentation#14613 X-original-commit: 5f44a395b713af0700ee935294625c262a27a89b Signed-off-by: Jessica Rogers (jero) Co-authored-by: Felicia Kuan --- .../applications/productivity/whatsapp.rst | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/content/applications/productivity/whatsapp.rst b/content/applications/productivity/whatsapp.rst index 92e306fb81..d2c87b8f2e 100644 --- a/content/applications/productivity/whatsapp.rst +++ b/content/applications/productivity/whatsapp.rst @@ -56,8 +56,8 @@ number), then Odoo will open a group chat with all operators responsible for thi `Magic Sheet - WhatsApp configuration [PDF] `_ -WhatsApp configuration in a Meta -================================ +WhatsApp configuration in Meta +============================== A WhatsApp integration with Odoo uses a standard :abbr:`API (Application Programming Interface)` connection, and is configured on Meta in the following steps: @@ -206,8 +206,8 @@ test message. .. note:: If the browser is not on the :guilabel:`Quickstart` page for WhatsApp, navigate to - ``_ and click on the app that is being configured, (the - app name is `Odoo` if the instructions above were followed). + ``_ and click on the app that is being configured, (the app + name is `Odoo` if the instructions above were followed). Then, in the menu on the left-hand side of the page, click the :guilabel:`v (menu toggle)` icon next to the :guilabel:`WhatsApp` section heading. A small menu will open, containing the @@ -410,8 +410,8 @@ depending on the verification method chosen. Enter that verification code into t :guilabel:`Verification code` field and click :guilabel:`Next` to finish. .. warning:: - If a payment method has not been added, this is necessary to proceed. `Visit Meta's - documentation on how to add a payment method in Meta's Business Manager + If a payment method has not been added, this is necessary to proceed. `Visit Meta's documentation + on how to add a payment method in Meta's Business Manager `_. This is part of Meta's fraud detection system, in order to ensure that the account/company are real a payment method is required to proceed. @@ -460,6 +460,7 @@ permissions: - `business_management` - `whatsapp_business_messaging` - `whatsapp_business_management` +- `whatsapp_business_manage_events` When permissions are set, click :guilabel:`Generate token`. Copy the token value that populates on the screen that follows. @@ -548,10 +549,10 @@ action will apply to for this template. .. tip:: These models can also be accessed in :ref:`developer mode `. On a contact form - (or similar relevant form in Odoo), navigate to the model that is referenced, and hover over - any field name. A box of backend information will reveal itself with the specific Odoo - :guilabel:`Model` name in the backend. Search (using the front-end name) for this model in the - :guilabel:`Applies to` drop-down menu in the WhatsApp template. + (or similar relevant form in Odoo), navigate to the model that is referenced, and hover over any + field name. The backend information box displays the Odoo :guilabel:`Model` name. Search (using + the front-end name) for this model in the :guilabel:`Applies to` drop-down menu in the WhatsApp + template. .. warning:: Often when changing the model or :guilabel:`Applies to` field, the :guilabel:`Phone Field` may @@ -774,8 +775,7 @@ Enter the :guilabel:`Name` of the template and then select the :guilabel:`Langua template. .. note:: - Multiple languages can be selected by typing the language names and selecting the other - languages as needed. + Multiple languages can be selected. .. image:: whatsapp/template-config.png :alt: Template configuration options listed, with Marketing, Utility, Name and Language From 9ed7717c03b0892faa2a23939154fb7cdb925968 Mon Sep 17 00:00:00 2001 From: jero-odoo Date: Wed, 17 Sep 2025 13:34:10 +0000 Subject: [PATCH 16/52] [IMP] Inventory: lot numbers closes odoo/documentation#14619 X-original-commit: 0d72063ea5b62113bdcce0dc248f29c0fac6564a Signed-off-by: Felicia Kuan (feku) Signed-off-by: Jessica Rogers (jero) Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com> --- .../product_tracking/lots.rst | 42 +++--------------- .../product_tracking/lots/add-properties.png | Bin 23382 -> 20583 bytes .../lots/enabled-lots-setting.png | Bin 22590 -> 19409 bytes .../lots/inventory-adjustment.png | Bin 15497 -> 0 bytes .../product_tracking/lots/list-icon.png | Bin 18378 -> 8727 bytes .../lots/lots-excel-spreadsheet.png | Bin 67951 -> 0 bytes .../product_tracking/lots/new-lot-number.png | Bin 7118 -> 9473 bytes .../lots/operation-type-form.png | Bin 27031 -> 16341 bytes .../lots/tracking-product-form.png | Bin 4486 -> 13482 bytes 9 files changed, 7 insertions(+), 35 deletions(-) delete mode 100644 content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/inventory-adjustment.png delete mode 100644 content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/lots-excel-spreadsheet.png diff --git a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst index e1f86bdf71..bcdfa486e7 100644 --- a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst +++ b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst @@ -33,7 +33,6 @@ Then, click :guilabel:`Save`. - :ref:`Print GS1 barcodes for lots and serial numbers ` .. image:: lots/enabled-lots-setting.png - :align: center :alt: Enabled lots and serial numbers feature in inventory settings. .. _inventory/management/track_products_by_lots: @@ -45,9 +44,10 @@ Once the :guilabel:`Lots & Serial Numbers` feature is activated, configure indiv tracked using lots. To do this, go to :menuselection:`Inventory app --> Products --> Products`, and choose a product to configure. -On the product form, go to the :guilabel:`Inventory` tab. In the :guilabel:`Traceability` section, -select the :guilabel:`By Lots` option in the :guilabel:`Tracking` field. Now, new or existing lot -numbers can be assigned to newly-received or manufactured batches of this product. +On the product form, click into the :guilabel:`General Information` tab. In the :guilabel:`Track +Inventory` field, tick the checkbox, then select :guilabel:`By Lots` from the drop-down menu. Now, +new or existing lot numbers can be assigned to newly-received or manufactured batches of this +product. .. seealso:: :doc:`expiration_dates` @@ -58,7 +58,6 @@ numbers can be assigned to newly-received or manufactured batches of this produc products in stock. .. image:: lots/tracking-product-form.png - :align: center :alt: Enabled tracking by lots feature on product form. Assign lots for shipping and receiving @@ -90,14 +89,12 @@ warehouse receipt form. lot number **must** be assigned before validating the receipt. .. image:: lots/user-error.png - :align: center :alt: Add lot/serial number user error popup. On the receipt form, on the product line in the :guilabel:`Operations` tab, select the |list| icon to the right of the product that is tracked by lot numbers. .. image:: lots/list-icon.png - :align: center :alt: Show the bulleted list icon on the product line. Doing so opens the :guilabel:`Open: Stock move` pop-up window, where the :guilabel:`Lot/Serial @@ -118,7 +115,6 @@ Package`, if any. :guilabel:`Quantity` column matches the :guilabel:`Demand` at the top. .. image:: lots/assign-lots-popup.png - :align: center :alt: Assign lot number detailed operations popup. Import lots @@ -127,14 +123,7 @@ Import lots In the :guilabel:`Open: Stock move` pop-up window, click :guilabel:`Import Serials/Lots`, then paste the bulk lot numbers, in the :guilabel:`Lots/Serial numbers` field. -.. figure:: lots/lots-excel-spreadsheet.png - :align: center - :alt: List of lot numbers copied on excel spreadsheet. - - List of lot numbers copied on *Google* spreadsheets. - .. figure:: lots/bulk-sn.png - :align: center :alt: Lot numbers copied to the lot number line. Lot numbers pasted to the "Lots/Serial numbers" field, in the **Import Lots** pop-up window. @@ -193,7 +182,6 @@ Repeat the above steps to select enough lots to fulfill the :guilabel:`Demand`, |DO| to deliver the products. .. image:: lots/pick-from-lots.png - :align: center :alt: Popup for source lot number on sales order. .. seealso:: @@ -212,7 +200,6 @@ displays the existing lot numbers. Select a lot number to :ref:`modify or add de button. .. figure:: lots/lot-dashboard.png - :align: center :alt: Show the "Lot/Serial Number" dashboard. Display lot numbers, grouped by products, on the **Lot/Serial Number** dashboard. @@ -243,7 +230,6 @@ On the lot number form, the following fields can be modified: modified, as the lot numbers are linked with existing stock moves. .. image:: lots/lot-number.png - :align: center :alt: Show the lot number form. .. seealso:: @@ -259,14 +245,13 @@ on a lot number form: :icon:`fa-cogs` :guilabel:`Add Properties` from the drop-down menu. #. Click the :icon:`fa-plus` :guilabel:`Add a Property` button, located below the existing fields. -Name and :doc:`configure the new field `. Once -finished, enter the property value in the new field. +Name and :doc:`configure the new field `. Once finished, +enter the property value in the new field. .. example:: The new property, `Wood type`, is added. The value is recorded as `Cherry wood`. .. image:: lots/add-properties.png - :align: center :alt: Show the "Add Properties" button on a lot number form. .. seealso:: @@ -298,21 +283,11 @@ number will be assigned. The lot number, `000001`, is created for the product, `Drawer Black`. .. image:: lots/new-lot-number.png - :align: center :alt: New lot number creation form with assigned product. After a new lot number has been created, saved, and assigned to the desired product, the lot number is saved as an existing lot number linked to the product, and can be selected when :ref:`assigning -lot numbers to products on a receipt `, or when making an -inventory adjustment. - -.. example:: - After creating the lot number, `000001` appears as an option for `Drawer Black` when assigning - lot numbers on the :guilabel:`Inventory Adjustment` page. - - .. image:: lots/inventory-adjustment.png - :align: center - :alt: Show how to assign lot numbers on the Inventory Adjustment page. +lot numbers to products on a receipt `. Manage lots for different operations types ========================================== @@ -330,7 +305,6 @@ On the operation type form, under the :guilabel:`Lots/Serial Numbers` section, t Choose :guilabel:`Use Existing ones` if only existing lot numbers can be selected. .. image:: lots/operation-type-form.png - :align: center :alt: Enabled traceability setting on operations type form. .. tip:: @@ -398,7 +372,6 @@ Doing so reorganizes all the records on the page to display all existing lots an and can be expanded to show all quantities of products with that assigned number. .. image:: lots/group-by-number.png - :align: center :alt: Lots and serial numbers traceability report. Traceability report @@ -409,7 +382,6 @@ To view a full stock moves report for a lot number, select the lot number line f smart button. .. image:: lots/traceability-report.png - :align: center :alt: Show the Traceability Report for a lot, that displays the stock moves. .. seealso:: diff --git a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/add-properties.png b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/add-properties.png index 79bc45bb82184e31a5eeb50444c9acf79037f6d9..fef22f9deb6644992ba630b1eb8fba7a1ed93fe5 100644 GIT binary patch literal 20583 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�D)D!mgqcr=H_fc9?)h{+r49%!?o4W-9 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 literal 23382 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 literal 22590 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 ZicpsCh?U&_l{vT_N(wLJi)2mw{s$tPcbWhI diff --git a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/inventory-adjustment.png b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/inventory-adjustment.png deleted file mode 100644 index 93730a798fb97312a93813ba2cdb073369befd08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15497 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 diff --git a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/list-icon.png b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/list-icon.png index 611c485df3964ba3f3bf73c9da36e9bfdbffd101..de2e8362f32cc70cec4499d364aa7219f49da106 100644 GIT binary patch literal 8727 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 BZiWB= literal 18378 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 Z_&>wTG2%~vCddE)002ovPDHLkV1oQIw}1cu diff --git a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/lots-excel-spreadsheet.png b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/lots-excel-spreadsheet.png deleted file mode 100644 index 1a61585d5dbc2e6941462ab2a3dc92584af5534c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67951 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 z 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

e3SRGAtLif}-nE`__y)sc6dO9jDvS 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%0A3j3=j}nB(8+b$Ik*aEJMCbkHFaPsYZg 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%0Do z#(Uz2RAELr6u~D|N5}Y5K+tT~0ovB%&znY2uJ0NA`;`hq+nRg{kr9&hp*755C+ z>#F6Qr73e5$AUi3>MBp?KG)`tQ>*x|mkO3$Xuv-tfJef<d`^zrwblV-;s zf{$CZV(0Gbu0?EnAt>u=;PwqMiw##^$RsfP{+VwIIM?Ksa66U$UhREj)`8mpoVP`dZf+A4s{=Hsk!&}s1IV- zbOrkwZziU>*>Na^Oa3OuUPA(yVbOn-TLjEmT!w&Vb7WdRKu;rRy!nCDW@+NMtCnG8 zN0lHnDcO-`8jj(4N7AHWk3p?g=jMXzaGC@Q_>Mr^aRoanFKNEpS^mJS`6T7ne22QP zVVfZAaW`}+Tl4A}JD8Z}X9xFTwZ56l__CVkb)&^xavvBG{^+_4642-#7vou2i=oZe z2^?+Yk8a|)b7k08p#CanH|9G~y)_a$(r+7~bDJtw|8r7capt1oXz@7B{S$+OgA@IM zfEkU4OMG{?HQVs}%~Lx|oALP?=Ye+04t2RnO7g5}B$0}`ue1<;t#usPtmtR#U}AbM zJNDVEh3X!o{z`uq|EVf7OZPbV{tqhP!9}mz$RA4L(rbC^3J0(6;%H+Ie<}sqZkXG? z%a_=pE1jqY;!t+LbNiDEHhott*%9;@I0K*~+%Xjjg@%TPLWBN5;CO@`yIi-5Mf(6m zNdB@L!k2Dj$D3{lPafkppJv>J#?r4<5<4wMV0ey>k7*ahj-$cA1slIRDRsZDg5w5k zz1e50F@iC0G>4H_4FKpd+6&Nf?9Qi+JvqJWQuph(kO3vK1De-n=|7|FI9qKkgjfg= z6GL_gEyxa!Wza~`0jl?#OMEVo9RuAv=vk3|=|;ACp!>!h%L5m%qsV>!zGuAyz_O}O zGuqVH34sb_$D5s{Bb=f?uYS}b46EXKL~Sgyo(3oct_6RY10j|Btt0ZYG&!raAbnVE ze}kQ~OGKt9N}N34q`Lg$x5^IFV%S0Al3Uqu-s|4>dN0`QH5(4{_U$m~QXZt$@>Q_e zDH7V)YiJ`53V3AwkuSxH`kxg@@tNI#7I0NY|avy<-G4;}|Vlh{$sZeo>{&DQHA+C_{j z`x7@0GY=eRp4Mv%xGxTpR0SO=@beL7LRC1BtcA4kEDnmI&KzDhnxtR{ZmU9eKpWlL z(RDFnM=MEp7+S*hfR2z3*})GD4F<-1j=9*e!Hv-fvLo#nQiNOU_$1|AJ)RlKw=Wiu zTxqy%S~HrY=#N)+fY~UNtpp~k8anF1GtPeTU#}I<J z@SkS*4xR_gM&=E5BkpOnWv7Z%-fsR4LLH$gfwJR2^p%{Vigy`yJj_ziFIiE!jvva= zYdrnnzr=%_i?Sq(8&{cSFm_V+^QYt~B)wKwLEMIVpjy9$>oHop5>jg;`Hr*VghHSa zVMp>qOpYR9h}Vs2n&5D2>!h}&rNyK513Q2kE62xIK6}P1d`EPy^jCccVF!AZ`1Kum zSQ-21b7Tibsyk@Vk&o;Uw}_O-U^svtRUU++Paf+=Q=-_Rw?Q;R*s;16_e5rk9wWZ$ zA}PR)NM2Tl74k?Gj~42Vu48BO%T?k6*^#)oaRnnlKca@?KK^mXU>CR6^|9BTqi-g) z6L${gEYfRvT|+ewu2yD8YUjNt7jOWH>=?fXL*`Htmzf2_6GuqH? z2efZ2)4lEeCqM+w`%e?VTJpC}hzSj`JO(^D@AaPEfb7V)`^0;}7&-Wq9ld+1^<6XA z0Z$U@(4E-? z8x}>@cSP7h<}SUI?~vDmB=_0$%@7=5#>09#X6yjp;q-VsPLml6v{IcVlu?VUJX2vHaNC(3ODs4okSrtpS+G{i&DE-w7)t{@0lu$yg`j zz&%!}BKZyoS%9cTU@Ua!@2C{zF#-*a6Mu1N7phcI>^Sii{+r2;LrH4PzEbx|@*U*Q z%2m9KMb>JVV#1DZC&OVuwKp7o(E5VxP-YNlSgWF;Zj)G}^_Xb1YEXY~5jIC}4{@#{ zY*k;T0W_%nCT@8(rco`hW6Y%WXib7;!YH$2!W=AdIO?RWD&KeELi4Zj+)}YgW`k;yobF;E{`eMk(WgpXR?FKEYnT#^Rc5W!VWMq z1#%USu_I1mmgh;mq>pkd30j;^As7srJL;#5A)|3>0?^S9=%}0TEiHm;adY3oIebUH z#16U)km_u;zF97hDcAwy;MNIv*(`Qoij1&>hyBja4(dCkDjs9UGGGVCeJ=$eOOYMN zTaS+kPE*)yHV1w6A6mZg;Wj@}wfm{zF(31~so-(Yf^Q}4y&j29-z z}6hdfT6)v%Tg7Ov13`V;{~FWm&gv#q+km817=a+ zK!SdZSQtBIu!DvRg@6tHpbhIRaMJ5nxOSu>6%Y{o_~29y5I`=EDSgLVy!8snci=4> zMpI;Va771!3qT#dp<{}liygX#2^+5;;p8eFW5<$U$8DsB8JD9!J+VFp>{!Yo_e3w5 z4Ew!p0dqitN846{4#ti-*&(m*ppQ=AK)Pd#5+%I|< zksWkRI=%3k-<>~`9cxLV#NLH#XrwA0W5*I;$I}y)KaWuz{w3}1a$^ToYrog;ZwpXe z^HSHr*fB3h8ZF|LeOODwm3=f%d{wX<5LaBxSsq){DBiL~-8g3$TRvY+O^br^COKIPMTZY>F*rTlF+Dx)bBN@qt1DqcWg&Xk#x7M`HX2(X zJI3PwqcF+n@VQ(r2da+3W2(-=hRQ;8m0gmye573$mR7v(yrTz)4TCrnJUoyTu`&%yW;OUE%WF)=YQF)=YQG5xPS zI3xf7000p5|Fzu>000000000000000000000000000000000000B`|CJ+3)xf|Qd0 O0000X-}Uh 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 literal 0 HcmV?d00001 From a65796370f1aedf501189057375c71dce641b70a Mon Sep 17 00:00:00 2001 From: "Florian(flg)" Date: Thu, 25 Sep 2025 13:39:09 +0000 Subject: [PATCH 29/52] [FIX] coding_guidelines: Change camelcase for Pascal case The coding guidelines establish that we have to write class declaration for both Python and JavaScript in camel case but it's actually in Pascal case. It also establishing that model variable (ex: `Partner = self.env['res.partner]'`) has to be in camel case but it's actually following the Pascal case. Pascal case has to start all variables with a capital letter where camel case is starting with a lower case letter. Source: https://builtin.com/articles/pascal-case-vs-camel-case no task id closes odoo/documentation#14711 X-original-commit: 9fa2ffdeaed77fbc061fc9177738b15c969582a3 Signed-off-by: Antoine Vandevenne (anv) Signed-off-by: Florian Gilbert (flg) --- content/contributing/development/coding_guidelines.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/contributing/development/coding_guidelines.rst b/content/contributing/development/coding_guidelines.rst index b491f1b3ff..d6736e8233 100644 --- a/content/contributing/development/coding_guidelines.rst +++ b/content/contributing/development/coding_guidelines.rst @@ -877,7 +877,7 @@ Symbols and Conventions - When defining *report* model (SQL views e.i.) : use ``.report.``, based on the Transient convention. -- Odoo Python Class : use camelcase (Object-oriented style). +- Odoo Python Class : use Pascal case (Object-oriented style). .. code-block:: python @@ -886,7 +886,7 @@ Symbols and Conventions ... - Variable name : - - use camelcase for model variable + - use Pascal case for model variable - use underscore lowercase notation for common variable. - suffix your variable name with *_id* or *_ids* if it contains a record id or list of id. Don't use ``partner_id`` to contain a record of res.partner @@ -1017,7 +1017,7 @@ Javascript coding guidelines - ``use strict;`` is recommended for all javascript files - Use a linter (jshint, ...) - Never add minified Javascript Libraries -- Use camelcase for class declaration +- Use Pascal case for class declaration More precise JS guidelines are detailed in the `github wiki `_. You may also have a look at existing API in Javascript by looking Javascript From 6904aa3e120f19d84707e089ee2c62dffc2e9df2 Mon Sep 17 00:00:00 2001 From: "Tiffany Chang (tic)" Date: Tue, 30 Sep 2025 08:34:58 +0000 Subject: [PATCH 30/52] [I18N] *: re-export pot files As per usual, leave off developer.pot and contributing.pot since we don't translate them (not useful, can't really contribute to/dev in Odoo without knowing English) closes odoo/documentation#14722 X-original-commit: 8460337245d1189e71ac0aec120b47cd9e480e62 Signed-off-by: Tiffany Chang (tic) --- locale/sources/administration.pot | 307 +- locale/sources/essentials.pot | 580 +- locale/sources/finance.pot | 5816 +++++++---- locale/sources/general.pot | 307 +- locale/sources/hr.pot | 12777 ++++++++++++++----------- locale/sources/inventory_and_mrp.pot | 1180 ++- locale/sources/marketing.pot | 238 +- locale/sources/productivity.pot | 3503 ++++--- locale/sources/sales.pot | 1827 ++-- locale/sources/services.pot | 82 +- locale/sources/studio.pot | 724 +- locale/sources/websites.pot | 1716 ++-- 12 files changed, 16605 insertions(+), 12452 deletions(-) diff --git a/locale/sources/administration.pot b/locale/sources/administration.pot index 2739ff438d..399a1c92f7 100644 --- a/locale/sources/administration.pot +++ b/locale/sources/administration.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../../content/administration.rst:8 -#: ../../content/administration/odoo_online.rst:20 +#: ../../content/administration/odoo_online.rst:18 msgid "Database management" msgstr "" @@ -545,11 +545,11 @@ msgstr "" msgid "To quickly try out Odoo, shared `demo `_ instances are available. No registration is required, but each instance only lives for a few hours." msgstr "" -#: ../../content/administration/odoo_online.rst:22 +#: ../../content/administration/odoo_online.rst:20 msgid "To manage a database, go to the `database manager `_ and sign in as the database administrator." msgstr "" -#: ../../content/administration/odoo_online.rst:25 +#: ../../content/administration/odoo_online.rst:23 msgid "All the main database management options are available by clicking the database name, except the upgrade option, which can be accessed by clicking the **arrow in a circle** icon next to the database name. It is only displayed if an upgrade is available." msgstr "" @@ -557,47 +557,47 @@ msgstr "" msgid "Accessing the database management options" msgstr "" -#: ../../content/administration/odoo_online.rst:32 +#: ../../content/administration/odoo_online.rst:30 msgid ":ref:`odoo_online/upgrade`" msgstr "" -#: ../../content/administration/odoo_online.rst:33 +#: ../../content/administration/odoo_online.rst:31 msgid ":ref:`odoo_online/duplicate`" msgstr "" -#: ../../content/administration/odoo_online.rst:34 +#: ../../content/administration/odoo_online.rst:32 msgid ":ref:`odoo_online/rename`" msgstr "" -#: ../../content/administration/odoo_online.rst:35 +#: ../../content/administration/odoo_online.rst:33 msgid ":ref:`odoo_online/download`" msgstr "" -#: ../../content/administration/odoo_online.rst:36 +#: ../../content/administration/odoo_online.rst:34 msgid ":ref:`odoo_online/domains`" msgstr "" -#: ../../content/administration/odoo_online.rst:37 +#: ../../content/administration/odoo_online.rst:35 msgid ":ref:`odoo_online/tags`" msgstr "" -#: ../../content/administration/odoo_online.rst:38 +#: ../../content/administration/odoo_online.rst:36 msgid ":ref:`odoo_online/delete`" msgstr "" -#: ../../content/administration/odoo_online.rst:39 +#: ../../content/administration/odoo_online.rst:37 msgid ":ref:`odoo_online/contact-support`" msgstr "" -#: ../../content/administration/odoo_online.rst:40 +#: ../../content/administration/odoo_online.rst:38 msgid ":ref:`odoo_online/users`" msgstr "" -#: ../../content/administration/odoo_online.rst:41 +#: ../../content/administration/odoo_online.rst:39 msgid ":ref:`odoo_online/web-services`" msgstr "" -#: ../../content/administration/odoo_online.rst:46 +#: ../../content/administration/odoo_online.rst:44 #: ../../content/administration/odoo_sh/getting_started/branches.rst:293 #: ../../content/administration/odoo_sh/getting_started/settings.rst:123 #: ../../content/administration/odoo_sh/getting_started/settings.rst:168 @@ -605,96 +605,96 @@ msgstr "" msgid "Upgrade" msgstr "" -#: ../../content/administration/odoo_online.rst:48 +#: ../../content/administration/odoo_online.rst:46 msgid "Trigger a database upgrade." msgstr "" -#: ../../content/administration/odoo_online.rst:51 +#: ../../content/administration/odoo_online.rst:49 msgid "For more information about the upgrade process, check out the :ref:`Odoo Online upgrade documentation `." msgstr "" -#: ../../content/administration/odoo_online.rst:57 +#: ../../content/administration/odoo_online.rst:55 msgid "Duplicate" msgstr "" -#: ../../content/administration/odoo_online.rst:59 +#: ../../content/administration/odoo_online.rst:57 msgid "Create an exact copy of the database, which can be used to perform testing without compromising daily operations." msgstr "" -#: ../../content/administration/odoo_online.rst:63 +#: ../../content/administration/odoo_online.rst:61 msgid "By checking :guilabel:`For testing purposes`, all external actions (emails, payments, delivery orders, etc.) are disabled by default on the duplicated database." msgstr "" -#: ../../content/administration/odoo_online.rst:65 +#: ../../content/administration/odoo_online.rst:63 msgid "Duplicated databases expire automatically after 15 days." msgstr "" -#: ../../content/administration/odoo_online.rst:66 +#: ../../content/administration/odoo_online.rst:64 msgid "A maximum of five duplicates can be made per database. Under extraordinary circumstances, contact `support `_ to raise the limit." msgstr "" -#: ../../content/administration/odoo_online.rst:72 +#: ../../content/administration/odoo_online.rst:70 msgid "Rename" msgstr "" -#: ../../content/administration/odoo_online.rst:74 +#: ../../content/administration/odoo_online.rst:72 msgid "Rename the database and its URL." msgstr "" -#: ../../content/administration/odoo_online.rst:79 +#: ../../content/administration/odoo_online.rst:77 msgid "Download" msgstr "" -#: ../../content/administration/odoo_online.rst:81 +#: ../../content/administration/odoo_online.rst:79 msgid "Download a ZIP file containing a backup of the database." msgstr "" -#: ../../content/administration/odoo_online.rst:84 +#: ../../content/administration/odoo_online.rst:82 msgid "Databases are backed up daily as per the `Odoo Cloud Hosting SLA `_." msgstr "" -#: ../../content/administration/odoo_online.rst:86 +#: ../../content/administration/odoo_online.rst:84 msgid "If the :guilabel:`Download` option is disabled, it means your database is too large to be downloaded through this method. In this case, please contact `Odoo Support `_ to request an alternative download solution." msgstr "" -#: ../../content/administration/odoo_online.rst:93 +#: ../../content/administration/odoo_online.rst:91 msgid "Domain names" msgstr "" -#: ../../content/administration/odoo_online.rst:95 +#: ../../content/administration/odoo_online.rst:93 msgid "Use a custom :doc:`domain name ` to access the database via another URL." msgstr "" -#: ../../content/administration/odoo_online.rst:99 +#: ../../content/administration/odoo_online.rst:97 msgid "You can :ref:`register a domain name for free `." msgstr "" -#: ../../content/administration/odoo_online.rst:104 +#: ../../content/administration/odoo_online.rst:102 msgid "Tags" msgstr "" -#: ../../content/administration/odoo_online.rst:106 +#: ../../content/administration/odoo_online.rst:104 msgid "Add tags to easily identify and sort your databases." msgstr "" -#: ../../content/administration/odoo_online.rst:109 +#: ../../content/administration/odoo_online.rst:107 msgid "You can search for tags in the search bar." msgstr "" -#: ../../content/administration/odoo_online.rst:114 +#: ../../content/administration/odoo_online.rst:112 #: ../../content/administration/odoo_sh/getting_started/branches.rst:550 msgid "Delete" msgstr "" -#: ../../content/administration/odoo_online.rst:116 +#: ../../content/administration/odoo_online.rst:114 msgid "Delete a database instantly." msgstr "" -#: ../../content/administration/odoo_online.rst:119 +#: ../../content/administration/odoo_online.rst:117 msgid "Deleting a database means that all data is permanently lost. The deletion is instant and applies to all users. It is recommended to create a backup of the database before deleting it." msgstr "" -#: ../../content/administration/odoo_online.rst:122 +#: ../../content/administration/odoo_online.rst:120 msgid "Carefully read the warning message and only proceed if the implications of deleting a database are fully understood." msgstr "" @@ -702,31 +702,31 @@ msgstr "" msgid "The warning message displayed before deleting a database" msgstr "" -#: ../../content/administration/odoo_online.rst:129 +#: ../../content/administration/odoo_online.rst:127 msgid "Only an administrator can delete a database." msgstr "" -#: ../../content/administration/odoo_online.rst:130 +#: ../../content/administration/odoo_online.rst:128 msgid "The database name is immediately made available to anyone." msgstr "" -#: ../../content/administration/odoo_online.rst:131 +#: ../../content/administration/odoo_online.rst:129 msgid "Deleting a database if it has expired or is linked to a subscription is impossible. In that case, contact `Odoo Support `_." msgstr "" -#: ../../content/administration/odoo_online.rst:137 +#: ../../content/administration/odoo_online.rst:135 msgid "Contact us" msgstr "" -#: ../../content/administration/odoo_online.rst:139 +#: ../../content/administration/odoo_online.rst:137 msgid "Access the `Odoo.com support page `_ with the database's details already pre-filled." msgstr "" -#: ../../content/administration/odoo_online.rst:145 +#: ../../content/administration/odoo_online.rst:143 msgid "Invite / remove users" msgstr "" -#: ../../content/administration/odoo_online.rst:147 +#: ../../content/administration/odoo_online.rst:145 msgid "To invite users, fill out the new user's email address and click :guilabel:`Invite`. To add multiple users, click :guilabel:`Add more users`." msgstr "" @@ -734,32 +734,24 @@ msgstr "" msgid "Inviting a user on a database" msgstr "" -#: ../../content/administration/odoo_online.rst:153 +#: ../../content/administration/odoo_online.rst:151 msgid "To remove users, select them and click :guilabel:`Remove`." msgstr "" -#: ../../content/administration/odoo_online.rst:156 +#: ../../content/administration/odoo_online.rst:154 msgid ":doc:`/applications/general/users`" msgstr "" -#: ../../content/administration/odoo_online.rst:157 +#: ../../content/administration/odoo_online.rst:155 msgid ":doc:`odoo_accounts`" msgstr "" -#: ../../content/administration/odoo_online.rst:162 +#: ../../content/administration/odoo_online.rst:160 msgid "Web Services" msgstr "" -#: ../../content/administration/odoo_online.rst:164 -msgid "In order to programmatically retrieve the list of the databases displayed in the `database manager `_, call the method `list` of the model `odoo.database` via a :doc:`Web Service ` call." -msgstr "" - -#: ../../content/administration/odoo_online.rst:168 -msgid "Inspired from the examples provided in the :doc:`Web Services ` section, this is how to retrieve this list with the library ``xmlrpc.client``::" -msgstr "" - -#: ../../content/administration/odoo_online.rst:181 -msgid "And here is the equivalent example with JSON-RPC::" +#: ../../content/administration/odoo_online.rst:162 +msgid "In order to programmatically retrieve the list of the databases displayed in the `database manager `_, call the method ``list`` of the model ``odoo.database`` via an :doc:`external JSON-2 API ` call." msgstr "" #: ../../content/administration/odoo_sh.rst:5 @@ -799,7 +791,7 @@ msgid "The base is an Ubuntu system, where all of Odoo's required dependencies, msgstr "" #: ../../content/administration/odoo_sh/advanced/containers.rst:14 -msgid "If your project requires additional Python dependencies, or more recent releases, you can define a :file:`requirements.txt` file in the root of your branches listing them. The platform will take care to install these dependencies in your containers. `The pip requirements specifiers `_ documentation can help you write a :file:`requirements.txt` file. To have a concrete example, check out the `requirements.txt file of Odoo `_." +msgid "If your project requires additional Python dependencies, or more recent releases, you can define a :file:`requirements.txt` file in the root of your branches listing them. The platform will take care to install these dependencies in your containers. `The pip requirements specifiers `_ documentation can help you write a :file:`requirements.txt` file. To have a concrete example, check out the `requirements.txt file of Odoo `_." msgstr "" #: ../../content/administration/odoo_sh/advanced/containers.rst:22 @@ -891,78 +883,74 @@ msgid "In the above commands, the argument:" msgstr "" #: ../../content/administration/odoo_sh/advanced/containers.rst:166 -msgid "``--without-demo=all`` prevents demo data to be loaded for all modules" -msgstr "" - -#: ../../content/administration/odoo_sh/advanced/containers.rst:167 msgid "``--stop-after-init`` will immediately shutdown the server instance after it completed the operations you asked." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:169 +#: ../../content/administration/odoo_sh/advanced/containers.rst:168 msgid "More options are available and detailed in the :doc:`CLI documentation `." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:172 +#: ../../content/administration/odoo_sh/advanced/containers.rst:171 msgid "You can find in the logs (*~/logs/odoo.log*) the addons path used by Odoo.sh to run your server. Look for \"*odoo: addons paths*\":" msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:181 +#: ../../content/administration/odoo_sh/advanced/containers.rst:180 msgid "**Be careful**, especially with your production database. Operations that you perform running this Odoo server instance are not isolated: Changes will be effective in the database. Always, make your tests in your staging databases." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:186 +#: ../../content/administration/odoo_sh/advanced/containers.rst:185 msgid "Debugging in Odoo.sh" msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:188 +#: ../../content/administration/odoo_sh/advanced/containers.rst:187 msgid "Debugging an Odoo.sh build is not really different than another Python app. This article only explains the specificities and limitations of the Odoo.sh platform, and assumes that you already know how to use a debugger." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:190 +#: ../../content/administration/odoo_sh/advanced/containers.rst:189 msgid "If you don't know how to debug a Python application yet, there are multiple introductory courses that can be easily found on the Internet." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:192 +#: ../../content/administration/odoo_sh/advanced/containers.rst:191 msgid "You can use ``pdb``, ``pudb`` or ``ipdb`` to debug your code on Odoo.sh. As the server is run outside a shell, you cannot launch the debugger directly from your Odoo instance backend as the debugger needs a shell to operate." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:195 +#: ../../content/administration/odoo_sh/advanced/containers.rst:194 msgid "`pdb `_ is installed by default in every container." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:197 +#: ../../content/administration/odoo_sh/advanced/containers.rst:196 msgid "If you want to use `pudb `_ or `ipdb `_ you have to install it before." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:199 +#: ../../content/administration/odoo_sh/advanced/containers.rst:198 msgid "To do so, you have two options:" msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:201 +#: ../../content/administration/odoo_sh/advanced/containers.rst:200 msgid "temporary (only in the current build):" msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:207 +#: ../../content/administration/odoo_sh/advanced/containers.rst:206 msgid "or" msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:213 +#: ../../content/administration/odoo_sh/advanced/containers.rst:212 msgid "permanent: add ``pudb`` or ``ipdb`` to your project ``requirements.txt`` file." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:216 +#: ../../content/administration/odoo_sh/advanced/containers.rst:215 msgid "Then edit the code where you want to trigger the debugger and add this:" msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:224 +#: ../../content/administration/odoo_sh/advanced/containers.rst:223 msgid "The condition :code:`sys.__stdin__.isatty()` is a hack that detects if you run Odoo from a shell." msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:226 +#: ../../content/administration/odoo_sh/advanced/containers.rst:225 msgid "Save the file and then run the Odoo Shell:" msgstr "" -#: ../../content/administration/odoo_sh/advanced/containers.rst:232 +#: ../../content/administration/odoo_sh/advanced/containers.rst:231 msgid "Finally, *via* the Odoo Shell, you can trigger the piece of code/function/method you want to debug." msgstr "" @@ -1114,7 +1102,7 @@ msgstr "" #: ../../content/administration/odoo_sh/advanced/submodules.rst:82 #: ../../content/administration/odoo_sh/advanced/submodules.rst:94 #: ../../content/administration/odoo_sh/getting_started/first_module.rst:360 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:498 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:499 msgid "Replace" msgstr "" @@ -2546,7 +2534,7 @@ msgid "Open the module manifest *__manifest__.py*." msgstr "" #: ../../content/administration/odoo_sh/getting_started/first_module.rst:366 -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:504 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:505 msgid "with" msgstr "" @@ -2634,27 +2622,27 @@ msgstr "" msgid "Before" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:494 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:495 msgid "Adding a Python dependency requires a module version increase for the platform to install it." msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:496 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:497 msgid "Edit the module manifest *__manifest__.py*" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:510 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:511 msgid "Stage and commit your changes:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:518 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:519 msgid "Then, push your changes:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:520 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:521 msgid "In an Odoo.sh terminal:" msgstr "" -#: ../../content/administration/odoo_sh/getting_started/first_module.rst:526 +#: ../../content/administration/odoo_sh/getting_started/first_module.rst:527 msgid "In your computer terminal:" msgstr "" @@ -2926,18 +2914,14 @@ msgstr "" #: ../../content/administration/odoo_sh/getting_started/settings.rst:181 #: ../../content/administration/odoo_sh/getting_started/settings.rst:186 #: ../../content/administration/supported_versions.rst:35 -#: ../../content/administration/supported_versions.rst:41 -#: ../../content/administration/supported_versions.rst:47 -#: ../../content/administration/supported_versions.rst:53 +#: ../../content/administration/supported_versions.rst:36 +#: ../../content/administration/supported_versions.rst:37 #: ../../content/administration/supported_versions.rst:59 #: ../../content/administration/supported_versions.rst:60 #: ../../content/administration/supported_versions.rst:61 -#: ../../content/administration/supported_versions.rst:77 -#: ../../content/administration/supported_versions.rst:78 -#: ../../content/administration/supported_versions.rst:79 -#: ../../content/administration/supported_versions.rst:83 -#: ../../content/administration/supported_versions.rst:84 -#: ../../content/administration/supported_versions.rst:85 +#: ../../content/administration/supported_versions.rst:65 +#: ../../content/administration/supported_versions.rst:66 +#: ../../content/administration/supported_versions.rst:67 msgid "|green|" msgstr "" @@ -4408,7 +4392,7 @@ msgid "Instead of using the repository, packages for both the **Community** and msgstr "" #: ../../content/administration/on_premise/packages.rst:103 -msgid "Odoo 18 'deb' package currently supports `Debian Bookworm (12) `_ and `Ubuntu Jammy (22.04LTS) `_ or above." +msgid "Odoo 19 'deb' package currently supports `Debian Bookworm (12) `_ and `Ubuntu Jammy (22.04LTS) `_ or above." msgstr "" #: ../../content/administration/on_premise/packages.rst:107 @@ -4424,7 +4408,7 @@ msgid "The `num2words` Python package - needed to render textual amounts - does msgstr "" #: ../../content/administration/on_premise/packages.rst:135 -msgid "Odoo 18 'rpm' package supports Fedora 38." +msgid "Odoo 19 'rpm' package supports Fedora 38." msgstr "" #: ../../content/administration/on_premise/packages.rst:137 @@ -4666,7 +4650,7 @@ msgid "On Debian/Ubuntu, the following commands should install the required pack msgstr "" #: ../../content/administration/on_premise/source.rst:287 -msgid "The `setup/debinstall.sh` script will parse the `debian/control `_ file and install the found packages." +msgid "The `setup/debinstall.sh` script will parse the `debian/control `_ file and install the found packages." msgstr "" #: ../../content/administration/on_premise/source.rst:290 @@ -5008,50 +4992,64 @@ msgid "End of support" msgstr "" #: ../../content/administration/supported_versions.rst:34 +msgid "**Odoo 19.0**" +msgstr "" + +#: ../../content/administration/supported_versions.rst:38 +#: ../../content/administration/supported_versions.rst:75 +msgid "September 2025" +msgstr "" + +#: ../../content/administration/supported_versions.rst:39 +msgid "September 2028 (planned)" +msgstr "" + +#: ../../content/administration/supported_versions.rst:40 msgid "Odoo SaaS 18.4" msgstr "" -#: ../../content/administration/supported_versions.rst:36 -#: ../../content/administration/supported_versions.rst:37 +#: ../../content/administration/supported_versions.rst:41 +#: ../../content/administration/supported_versions.rst:47 +#: ../../content/administration/supported_versions.rst:53 +#: ../../content/administration/supported_versions.rst:71 +#: ../../content/administration/supported_versions.rst:72 +#: ../../content/administration/supported_versions.rst:73 +#: ../../content/administration/supported_versions.rst:77 +#: ../../content/administration/supported_versions.rst:78 +#: ../../content/administration/supported_versions.rst:79 +#: ../../content/administration/supported_versions.rst:83 +#: ../../content/administration/supported_versions.rst:84 +#: ../../content/administration/supported_versions.rst:85 +msgid "|red|" +msgstr "" + #: ../../content/administration/supported_versions.rst:42 #: ../../content/administration/supported_versions.rst:43 #: ../../content/administration/supported_versions.rst:48 #: ../../content/administration/supported_versions.rst:49 #: ../../content/administration/supported_versions.rst:54 #: ../../content/administration/supported_versions.rst:55 -#: ../../content/administration/supported_versions.rst:66 -#: ../../content/administration/supported_versions.rst:67 -#: ../../content/administration/supported_versions.rst:72 -#: ../../content/administration/supported_versions.rst:73 msgid "N/A" msgstr "" -#: ../../content/administration/supported_versions.rst:38 -msgid "July 2025" -msgstr "" - -#: ../../content/administration/supported_versions.rst:40 -msgid "Odoo SaaS 18.3" -msgstr "" - #: ../../content/administration/supported_versions.rst:44 -msgid "May 2025" +msgid "July 2025" msgstr "" #: ../../content/administration/supported_versions.rst:46 -msgid "Odoo SaaS 18.2" +msgid "Odoo SaaS 18.3" msgstr "" #: ../../content/administration/supported_versions.rst:50 -msgid "March 2025" +msgid "May 2025" msgstr "" #: ../../content/administration/supported_versions.rst:52 -msgid "Odoo SaaS 18.1" +msgid "Odoo SaaS 18.2" msgstr "" #: ../../content/administration/supported_versions.rst:56 -msgid "January 2025" +msgid "March 2025" msgstr "" #: ../../content/administration/supported_versions.rst:58 @@ -5059,104 +5057,71 @@ msgid "**Odoo 18.0**" msgstr "" #: ../../content/administration/supported_versions.rst:62 -#: ../../content/administration/supported_versions.rst:69 -#: ../../content/administration/supported_versions.rst:75 -#: ../../content/administration/supported_versions.rst:93 +#: ../../content/administration/supported_versions.rst:81 msgid "October 2024" msgstr "" #: ../../content/administration/supported_versions.rst:63 -msgid "October 2027 (planned)" +msgid "September 2027 (planned)" msgstr "" #: ../../content/administration/supported_versions.rst:64 -msgid "Odoo SaaS 17.4" -msgstr "" - -#: ../../content/administration/supported_versions.rst:65 -#: ../../content/administration/supported_versions.rst:71 -#: ../../content/administration/supported_versions.rst:89 -#: ../../content/administration/supported_versions.rst:90 -#: ../../content/administration/supported_versions.rst:91 -#: ../../content/administration/supported_versions.rst:95 -#: ../../content/administration/supported_versions.rst:96 -#: ../../content/administration/supported_versions.rst:97 -msgid "|red|" -msgstr "" - -#: ../../content/administration/supported_versions.rst:68 -msgid "July 2024" -msgstr "" - -#: ../../content/administration/supported_versions.rst:70 -msgid "Odoo SaaS 17.2" -msgstr "" - -#: ../../content/administration/supported_versions.rst:74 -msgid "April 2024" -msgstr "" - -#: ../../content/administration/supported_versions.rst:76 msgid "**Odoo 17.0**" msgstr "" -#: ../../content/administration/supported_versions.rst:80 +#: ../../content/administration/supported_versions.rst:68 msgid "November 2023" msgstr "" -#: ../../content/administration/supported_versions.rst:81 -msgid "October 2026 (planned)" +#: ../../content/administration/supported_versions.rst:69 +msgid "September 2026 (planned)" msgstr "" -#: ../../content/administration/supported_versions.rst:82 +#: ../../content/administration/supported_versions.rst:70 msgid "**Odoo 16.0**" msgstr "" -#: ../../content/administration/supported_versions.rst:86 +#: ../../content/administration/supported_versions.rst:74 msgid "October 2022" msgstr "" -#: ../../content/administration/supported_versions.rst:87 -msgid "October 2025 (planned)" -msgstr "" - -#: ../../content/administration/supported_versions.rst:88 +#: ../../content/administration/supported_versions.rst:76 msgid "**Odoo 15.0**" msgstr "" -#: ../../content/administration/supported_versions.rst:92 +#: ../../content/administration/supported_versions.rst:80 msgid "October 2021" msgstr "" -#: ../../content/administration/supported_versions.rst:94 +#: ../../content/administration/supported_versions.rst:82 msgid "Older versions" msgstr "" -#: ../../content/administration/supported_versions.rst:98 +#: ../../content/administration/supported_versions.rst:86 msgid "Before 2021" msgstr "" -#: ../../content/administration/supported_versions.rst:99 +#: ../../content/administration/supported_versions.rst:87 msgid "Before 2024" msgstr "" -#: ../../content/administration/supported_versions.rst:101 +#: ../../content/administration/supported_versions.rst:89 msgid "Legend" msgstr "" -#: ../../content/administration/supported_versions.rst:103 +#: ../../content/administration/supported_versions.rst:91 msgid "|green| Supported version" msgstr "" -#: ../../content/administration/supported_versions.rst:105 +#: ../../content/administration/supported_versions.rst:93 msgid "|red| End-of-support" msgstr "" -#: ../../content/administration/supported_versions.rst:107 +#: ../../content/administration/supported_versions.rst:95 msgid "N/A Never released for this platform" msgstr "" -#: ../../content/administration/supported_versions.rst:110 +#: ../../content/administration/supported_versions.rst:98 msgid "Even though we don't support older versions, you can always `upgrade from any version `_." msgstr "" diff --git a/locale/sources/essentials.pot b/locale/sources/essentials.pot index 83051de962..102cb8839e 100644 --- a/locale/sources/essentials.pot +++ b/locale/sources/essentials.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,7 +49,7 @@ msgid ":icon:`fa-check` :guilabel:`(check)` icon: a \"to-do\" is scheduled." msgstr "" #: ../../content/applications/essentials/activities.rst:18 -msgid ":icon:`fa-users` :guilabel:`(people)` icon: a meeting is scheduled." +msgid ":icon:`fa-users` :guilabel:`(users)` icon: a meeting is scheduled." msgstr "" #: ../../content/applications/essentials/activities.rst:19 @@ -77,26 +77,26 @@ msgid "Activities can be created from the chatter on any record." msgstr "" #: ../../content/applications/essentials/activities.rst:36 -msgid "To schedule a new activity, click the :guilabel:`Activities` button, located at the top of the chatter. In the :guilabel:`Schedule Activity` pop-up window that appears, :ref:`fill out the Schedule Activity form `." +msgid "To schedule a new activity, click the :guilabel:`Activity` button, located at the top of the chatter. In the :guilabel:`Schedule Activity` pop-up window that appears, :ref:`fill out the Schedule Activity form `." msgstr "" #: ../../content/applications/essentials/activities.rst:-1 -msgid "New activity type form." +msgid "Activity button in chatter field." msgstr "" -#: ../../content/applications/essentials/activities.rst:47 +#: ../../content/applications/essentials/activities.rst:46 msgid "Kanban view" msgstr "" -#: ../../content/applications/essentials/activities.rst:49 +#: ../../content/applications/essentials/activities.rst:48 msgid "Activities can also be created from the :icon:`oi-view-kanban` :guilabel:`(Kanban)` view." msgstr "" -#: ../../content/applications/essentials/activities.rst:51 +#: ../../content/applications/essentials/activities.rst:50 msgid "To do so, click on the |clock| located at the bottom of an individual record." msgstr "" -#: ../../content/applications/essentials/activities.rst:53 +#: ../../content/applications/essentials/activities.rst:52 msgid "Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Schedule Activity form `." msgstr "" @@ -104,24 +104,24 @@ msgstr "" msgid "Kanban view of the CRM pipeline and the option to schedule an activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:61 -#: ../../content/applications/essentials/activities.rst:79 +#: ../../content/applications/essentials/activities.rst:59 +#: ../../content/applications/essentials/activities.rst:77 msgid "If a record already has a scheduled activity, the |clock| is replaced by the icon that represents the existing scheduled activity. Click on the activity type's icon to schedule another activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:67 +#: ../../content/applications/essentials/activities.rst:65 msgid "List view" msgstr "" -#: ../../content/applications/essentials/activities.rst:69 +#: ../../content/applications/essentials/activities.rst:67 msgid "Activities can also be created from a :icon:`oi-view-list` :guilabel:`(list)` view." msgstr "" -#: ../../content/applications/essentials/activities.rst:71 +#: ../../content/applications/essentials/activities.rst:69 msgid "If the :guilabel:`Activities` column is hidden, reveal it using the :icon:`oi-settings-adjust` :guilabel:`(settings adjust)` icon in the far-right of the top row." msgstr "" -#: ../../content/applications/essentials/activities.rst:74 +#: ../../content/applications/essentials/activities.rst:72 msgid "Then, click on the |clock| for the record the activity is being added to, and click :guilabel:`+ Schedule an activity`. Proceed to :ref:`fill out the Schedule Activity form ` that appears." msgstr "" @@ -129,15 +129,15 @@ msgstr "" msgid "List view of the CRM pipeline and the option to schedule an activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:89 +#: ../../content/applications/essentials/activities.rst:86 msgid "Activity view" msgstr "" -#: ../../content/applications/essentials/activities.rst:91 +#: ../../content/applications/essentials/activities.rst:88 msgid "Most applications in Odoo have an *Activity* view available. If available, a |clock| is visible in the top-right corner of the main menu bar, amongst the other view option icons." msgstr "" -#: ../../content/applications/essentials/activities.rst:94 +#: ../../content/applications/essentials/activities.rst:91 msgid "To open the activity view, click the |clock|." msgstr "" @@ -145,144 +145,159 @@ msgstr "" msgid "Top-right menu with the Activities icon called out." msgstr "" -#: ../../content/applications/essentials/activities.rst:100 +#: ../../content/applications/essentials/activities.rst:96 msgid "In this view, all the available activities are listed in the columns, while the horizontal entries represent all the individual records." msgstr "" -#: ../../content/applications/essentials/activities.rst:103 +#: ../../content/applications/essentials/activities.rst:99 msgid "Activities that appear green have a due date in the future, activities that appear orange are due today, while activities appearing red are overdue." msgstr "" -#: ../../content/applications/essentials/activities.rst:106 -msgid "Color bars in each column represent records for specific activity types, and display a number indicating how many activities are scheduled for that type." +#: ../../content/applications/essentials/activities.rst:102 +msgid "Colored bars in each column represent records for specific activity types, and display a number indicating how many activities are scheduled for that type." msgstr "" -#: ../../content/applications/essentials/activities.rst:109 +#: ../../content/applications/essentials/activities.rst:105 msgid "If multiple activity types are scheduled for a record, a number appears in the box, indicating the total number of scheduled activities." msgstr "" -#: ../../content/applications/essentials/activities.rst:113 +#: ../../content/applications/essentials/activities.rst:109 msgid "Activity colors, and their relation to an activity's due date, are consistent throughout Odoo, regardless of the activity type, or the view." msgstr "" -#: ../../content/applications/essentials/activities.rst:116 -msgid "To schedule an activity for a record, hover over the corresponding field. Click the :icon:`fa-plus` :guilabel:`(plus)` icon that appears, and then :ref:`fill out the Schedule Activity form `." +#: ../../content/applications/essentials/activities.rst:112 +msgid "To schedule an activity for a record, hover over the corresponding field. Click the :icon:`fa-plus` :guilabel:`(plus)` icon, and then :ref:`fill out the Schedule Activity form `." msgstr "" #: ../../content/applications/essentials/activities.rst:-1 msgid "Activity view of the CRM pipeline and the option to schedule an activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:127 +#: ../../content/applications/essentials/activities.rst:122 msgid "Schedule Activity form" msgstr "" -#: ../../content/applications/essentials/activities.rst:129 +#: ../../content/applications/essentials/activities.rst:124 msgid "Activities can be scheduled from many different places, such as from the :ref:`chatter ` of a record, or from one of multiple views in an application, when available: the :ref:`Kanban view `, :ref:`list view `, or :ref:`activity view `." msgstr "" +#: ../../content/applications/essentials/activities.rst:129 +msgid "First, select an activity type:" +msgstr "" + +#: ../../content/applications/essentials/activities.rst:131 +msgid ":icon:`fa-check` :guilabel:`To-Do`" +msgstr "" + +#: ../../content/applications/essentials/activities.rst:132 +msgid ":icon:`fa-envelope` :guilabel:`Email`" +msgstr "" + +#: ../../content/applications/essentials/activities.rst:133 +msgid ":icon:`fa-phone` :guilabel:`Call`" +msgstr "" + #: ../../content/applications/essentials/activities.rst:134 -msgid "Enter the following information on the form:" +msgid ":icon:`fa-users` :guilabel:`Meeting`" msgstr "" -#: ../../content/applications/essentials/activities.rst:136 -msgid ":guilabel:`Activity Type`: select the type of activity from the drop-down menu. The default options are: :guilabel:`Email`, :guilabel:`Call`, :guilabel:`Meeting`, or :guilabel:`To-Do`. Depending on what other applications are installed, additional options may be available." +#: ../../content/applications/essentials/activities.rst:135 +msgid ":guilabel:`Do Stuff`" msgstr "" -#: ../../content/applications/essentials/activities.rst:139 -msgid ":guilabel:`Summary`: enter a short title for the activity, such as `Discuss Proposal`." +#: ../../content/applications/essentials/activities.rst:136 +msgid ":icon:`fa-upload` :guilabel:`Document`" msgstr "" -#: ../../content/applications/essentials/activities.rst:140 -msgid ":guilabel:`Due Date`: using the calendar popover, select the activity's deadline." +#: ../../content/applications/essentials/activities.rst:137 +msgid ":icon:`fa-pencil-square-o` :guilabel:`Signature`" msgstr "" -#: ../../content/applications/essentials/activities.rst:141 -msgid ":guilabel:`Assigned to`: by default, the current user populates this field. To assign a different user to the activity, select them from the drop-down menu." +#: ../../content/applications/essentials/activities.rst:138 +msgid ":icon:`fa-check` :guilabel:`Grant Approval`" msgstr "" -#: ../../content/applications/essentials/activities.rst:143 -msgid ":guilabel:`Notes`: add any additional information for the activity in this field." +#: ../../content/applications/essentials/activities.rst:140 +msgid "Then, enter the following information:" msgstr "" -#: ../../content/applications/essentials/activities.rst:145 -msgid "When the :guilabel:`Schedule Activity` pop-up window is completed, click one of the following buttons:" +#: ../../content/applications/essentials/activities.rst:142 +msgid "**Summary**: enter a short title for the activity, such as `Discuss Proposal`." msgstr "" -#: ../../content/applications/essentials/activities.rst:148 -msgid ":guilabel:`Open Calendar`: opens the user's calendar to add and schedule the activity." +#: ../../content/applications/essentials/activities.rst:143 +msgid ":guilabel:`Due Date`: using the calendar popover, select the activity's deadline." msgstr "" -#: ../../content/applications/essentials/activities.rst:150 -msgid "Click on the desired date and time for the activity, and a :guilabel:`New Event` pop-up window appears. The summary from the *Schedule Activity* pop-up window populates the :guilabel:`Title` field." +#: ../../content/applications/essentials/activities.rst:144 +msgid ":guilabel:`Assigned to`: by default, the current user populates this field. To assign a different user to the activity, select them from the drop-down menu." msgstr "" -#: ../../content/applications/essentials/activities.rst:154 -msgid "Enter the information in the :guilabel:`New Event` pop-up window, then click :guilabel:`Save & Close` to schedule it. Once scheduled, the activity is added to the chatter under the :guilabel:`Planned Activities` section." +#: ../../content/applications/essentials/activities.rst:146 +msgid ":guilabel:`Log a note`: add any additional information for the activity in this field." msgstr "" -#: ../../content/applications/essentials/activities.rst:159 -msgid "The :guilabel:`Open Calendar` button **only** appears if the :guilabel:`Activity Type` is set to either :guilabel:`Call` or :guilabel:`Meeting`." +#: ../../content/applications/essentials/activities.rst:-1 +msgid "View of CRM leads and the option to schedule an activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:162 -msgid ":guilabel:`Schedule`: schedules the activity, and adds the activity to the chatter under :guilabel:`Planned Activities`." +#: ../../content/applications/essentials/activities.rst:151 +msgid "Click :guilabel:`Save` to schedule the activity, and add the activity to the chatter under :guilabel:`Planned Activities`. Click :guilabel:`Mark Done` to add the details of the activity to the chatter under :guilabel:`Today`." msgstr "" -#: ../../content/applications/essentials/activities.rst:164 -msgid ":guilabel:`Schedule & Mark as Done`: adds the details of the activity to the chatter under :guilabel:`Today`. The activity is not scheduled, and is automatically marked as done." +#: ../../content/applications/essentials/activities.rst:156 +msgid "Schedule a meeting" msgstr "" -#: ../../content/applications/essentials/activities.rst:166 -msgid ":guilabel:`Done & Schedule Next`: adds the details of the activity to the chatter under :guilabel:`Today`. The activity is not scheduled, is automatically marked as done, and a new :guilabel:`Schedule Activity` pop-up window appears." +#: ../../content/applications/essentials/activities.rst:158 +msgid "If :icon:`fa-users` :guilabel:`Meeting` is selected as the activity type, enter the information as instructed above, then click :guilabel:`Schedule`. This opens the user's calendar to add and schedule the activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:169 -msgid ":guilabel:`Cancel`: discards any changes made on the :guilabel:`Schedule Activity` pop-up window." +#: ../../content/applications/essentials/activities.rst:162 +msgid "Click on the desired date and time for the activity, and a :guilabel:`New Event` pop-up window appears. The summary from the *Schedule Activity* pop-up window populates the :guilabel:`Title` field." msgstr "" -#: ../../content/applications/essentials/activities.rst:-1 -msgid "View of CRM leads and the option to schedule an activity." +#: ../../content/applications/essentials/activities.rst:166 +msgid "Enter the information in the :guilabel:`New Event` pop-up window, then click :guilabel:`Save & Close` to schedule it. Once scheduled, the activity is added to the chatter under the :guilabel:`Planned Activities` section." msgstr "" -#: ../../content/applications/essentials/activities.rst:178 +#: ../../content/applications/essentials/activities.rst:173 msgid "All scheduled activities" msgstr "" -#: ../../content/applications/essentials/activities.rst:180 +#: ../../content/applications/essentials/activities.rst:175 msgid "To view a consolidated list of activities, organized by application, click the |clock| in the header menu, located in the top-right corner." msgstr "" -#: ../../content/applications/essentials/activities.rst:183 -msgid "If any activities are scheduled, the number of activities appear in a red bubble on the |clock|." +#: ../../content/applications/essentials/activities.rst:178 +msgid "If any activities are scheduled, the number of activities appears in a red bubble on the |clock|." msgstr "" -#: ../../content/applications/essentials/activities.rst:186 +#: ../../content/applications/essentials/activities.rst:181 msgid "All activities for each application are further divided into subsections, indicating where in the application the activity is to be completed. Each sub-section lists the number of scheduled activities that are :guilabel:`Late`, due :guilabel:`Today`, and scheduled in the :guilabel:`Future`." msgstr "" -#: ../../content/applications/essentials/activities.rst:192 -msgid "In the *Time Off* application, one activity is scheduled to be done in the *All Time Off* requests dashboard, and six activities are scheduled to be done in the *Allocations* dashboard." +#: ../../content/applications/essentials/activities.rst:187 +msgid "In the **Time Off** application, one activity is scheduled to be done in the *All Time Off* requests dashboard, and six activities are scheduled to be done in the *Allocations* dashboard." msgstr "" -#: ../../content/applications/essentials/activities.rst:195 +#: ../../content/applications/essentials/activities.rst:190 msgid "These requests appear in two separate lists in the all activities drop-down menu: one labeled `Time Off` and one labeled `Time Off Allocation`." msgstr "" #: ../../content/applications/essentials/activities.rst:0 -msgid "The list of activities that is accessed from the main menu bar. Two entries for the Time\n" -"Off application are highlighted." +msgid "The list of activities that is accessed from the main menu bar." msgstr "" -#: ../../content/applications/essentials/activities.rst:204 +#: ../../content/applications/essentials/activities.rst:197 msgid "The option to :ref:`Request a Document ` is available at the bottom of the list of all scheduled activities." msgstr "" -#: ../../content/applications/essentials/activities.rst:210 +#: ../../content/applications/essentials/activities.rst:203 msgid "Activity types" msgstr "" -#: ../../content/applications/essentials/activities.rst:212 +#: ../../content/applications/essentials/activities.rst:205 msgid "To view the currently configured types of activities in the database, navigate to :menuselection:`Settings app --> Discuss section --> Activities setting --> Activity Types`." msgstr "" @@ -290,123 +305,119 @@ msgstr "" msgid "Activity Types button in the Settings application under the Discuss section." msgstr "" -#: ../../content/applications/essentials/activities.rst:219 +#: ../../content/applications/essentials/activities.rst:211 msgid "Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found." msgstr "" -#: ../../content/applications/essentials/activities.rst:222 -msgid "Individual applications have a list of *Activity Types* dedicated to that application. For example, to view and edit the activities available for the *CRM* application, go to :menuselection:`CRM app --> Configuration --> Activity Types`." +#: ../../content/applications/essentials/activities.rst:214 +msgid "Individual applications have a list of *Activity Types* dedicated to that application. For example, to view and edit the activities available for the **CRM** application, go to :menuselection:`CRM app --> Configuration --> Activity Types`." msgstr "" #: ../../content/applications/essentials/activities.rst:-1 msgid "The list of activity types already configured and available." msgstr "" -#: ../../content/applications/essentials/activities.rst:231 +#: ../../content/applications/essentials/activities.rst:222 msgid "Edit activity types" msgstr "" -#: ../../content/applications/essentials/activities.rst:233 +#: ../../content/applications/essentials/activities.rst:224 msgid "To edit an existing :ref:`activity type `, click on the activity type, and the activity type form loads." msgstr "" -#: ../../content/applications/essentials/activities.rst:236 +#: ../../content/applications/essentials/activities.rst:227 msgid "Make any desired changes to the activity type form. The form automatically saves, but it can be saved manually at any time by clicking the :guilabel:`Save Manually` option, represented by a :icon:`fa-cloud-upload` :guilabel:`(cloud upload)` icon, located in the top-left corner of the page." msgstr "" -#: ../../content/applications/essentials/activities.rst:241 +#: ../../content/applications/essentials/activities.rst:232 msgid "Create new activity types" msgstr "" -#: ../../content/applications/essentials/activities.rst:243 -msgid "To create a new :ref:`activity type `, click :guilabel:`New` from the :guilabel:`Activity Types` page, and a blank activity type form loads." +#: ../../content/applications/essentials/activities.rst:234 +msgid "To create a new :ref:`activity type `, click :guilabel:`New` from the :guilabel:`Activity Types` page, and a blank activity type form loads. Enter a :guilabel:`Name` for the activity type at the top of the form, then enter the following information on the form." msgstr "" -#: ../../content/applications/essentials/activities.rst:246 -msgid "Enter a :guilabel:`Name` for the activity type at the top of the form, then enter the following information on the form." -msgstr "" - -#: ../../content/applications/essentials/activities.rst:250 +#: ../../content/applications/essentials/activities.rst:239 msgid "Activity Settings section" msgstr "" -#: ../../content/applications/essentials/activities.rst:252 +#: ../../content/applications/essentials/activities.rst:241 msgid ":guilabel:`Action`: Using the drop-down menu, select an action associated with this new activity type. Some actions trigger specific behaviors after an activity is scheduled, such as:" msgstr "" -#: ../../content/applications/essentials/activities.rst:255 +#: ../../content/applications/essentials/activities.rst:244 msgid ":guilabel:`Upload Document`: If selected, a link to upload a document is automatically added to the planned activity in the chatter." msgstr "" -#: ../../content/applications/essentials/activities.rst:257 +#: ../../content/applications/essentials/activities.rst:246 msgid ":guilabel:`Call` or :guilabel:`Meeting`: If selected, users have the option to open their calendar to select a date and time for the activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:259 -msgid ":guilabel:`Request Signature`: If selected, a link to open a signature request pop-up window is automatically added to the planned activity in the chatter. This requires the Odoo *Sign* application to be installed." +#: ../../content/applications/essentials/activities.rst:248 +msgid ":guilabel:`Request Signature`: If selected, a link to open a signature request pop-up window is automatically added to the planned activity in the chatter. This requires the Odoo **Sign** application to be installed." msgstr "" -#: ../../content/applications/essentials/activities.rst:264 +#: ../../content/applications/essentials/activities.rst:253 msgid "Available activity types vary based on the installed applications in the database." msgstr "" -#: ../../content/applications/essentials/activities.rst:266 +#: ../../content/applications/essentials/activities.rst:255 msgid ":guilabel:`Folder`: Select a specific :ref:`folder ` to save a document to. This field **only** appears if :guilabel:`Upload Document` is selected for the :guilabel:`Action`." msgstr "" -#: ../../content/applications/essentials/activities.rst:269 +#: ../../content/applications/essentials/activities.rst:258 msgid ":guilabel:`Default User`: Select a user from the drop-down menu to automatically assign this activity to the selected user when this activity type is scheduled. If this field is left blank, the activity is assigned to the user who creates the activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:272 +#: ../../content/applications/essentials/activities.rst:261 msgid ":guilabel:`Default Summary`: enter a note to include whenever this activity type is created." msgstr "" -#: ../../content/applications/essentials/activities.rst:275 +#: ../../content/applications/essentials/activities.rst:264 msgid "The information in the :guilabel:`Default User` and :guilabel:`Default Summary` fields are included when an activity is created. However, they can be altered before the activity is scheduled or saved." msgstr "" -#: ../../content/applications/essentials/activities.rst:279 +#: ../../content/applications/essentials/activities.rst:268 msgid ":guilabel:`Keep Done`: Tick this checkbox to keep activities that have been marked as `Done` visible in the :ref:`activity view `." msgstr "" -#: ../../content/applications/essentials/activities.rst:281 +#: ../../content/applications/essentials/activities.rst:270 msgid ":guilabel:`Default Note`: enter any notes to appear with the activity." msgstr "" -#: ../../content/applications/essentials/activities.rst:284 +#: ../../content/applications/essentials/activities.rst:273 msgid "Next Activity section" msgstr "" -#: ../../content/applications/essentials/activities.rst:286 +#: ../../content/applications/essentials/activities.rst:275 msgid "It is possible to have another activity either suggested or triggered. To do so, configure the :guilabel:`Next Activity` section." msgstr "" -#: ../../content/applications/essentials/activities.rst:289 +#: ../../content/applications/essentials/activities.rst:278 msgid ":guilabel:`Chaining Type`: select either :guilabel:`Suggest Next Activity` or :guilabel:`Trigger Next Activity` from the drop-down menu. Depending on the selected option, either the :guilabel:`Suggest` or :guilabel:`Trigger` field is displayed." msgstr "" -#: ../../content/applications/essentials/activities.rst:294 +#: ../../content/applications/essentials/activities.rst:283 msgid "The :guilabel:`Chaining Type` field does **not** appear if :guilabel:`Upload Document` is selected for the :guilabel:`Action`." msgstr "" -#: ../../content/applications/essentials/activities.rst:297 +#: ../../content/applications/essentials/activities.rst:286 msgid ":guilabel:`Suggest/Trigger`: depending on what is selected for the :guilabel:`Chaining Type`, this field either displays :guilabel:`Suggest` or :guilabel:`Trigger`. Using the drop-down menu, select the activity to recommend or schedule as a follow-up task to the activity type." msgstr "" -#: ../../content/applications/essentials/activities.rst:300 +#: ../../content/applications/essentials/activities.rst:289 msgid ":guilabel:`Schedule`: configure when the next activity is suggested or triggered." msgstr "" -#: ../../content/applications/essentials/activities.rst:302 +#: ../../content/applications/essentials/activities.rst:291 msgid "First, enter a numerical value indicating when the activity is suggested or triggered." msgstr "" -#: ../../content/applications/essentials/activities.rst:304 +#: ../../content/applications/essentials/activities.rst:293 msgid "Next to this field, a :guilabel:`Days` field is visible. Click :guilabel:`Days`, the default option, to reveal a drop-down menu. Select the desired time-frame option from the list. The options are :guilabel:`Days`, :guilabel:`Weeks`, or :guilabel:`Months`." msgstr "" -#: ../../content/applications/essentials/activities.rst:308 +#: ../../content/applications/essentials/activities.rst:297 msgid "Lastly, using the drop-down menu, select whether the activity is scheduled or triggered either :guilabel:`after previous activity deadline` or :guilabel:`after completion date`." msgstr "" @@ -414,15 +425,15 @@ msgstr "" msgid "A new Activity form with all the fields filled out." msgstr "" -#: ../../content/applications/essentials/activities.rst:316 +#: ../../content/applications/essentials/activities.rst:304 msgid ":doc:`../productivity/discuss`" msgstr "" -#: ../../content/applications/essentials/activities.rst:317 +#: ../../content/applications/essentials/activities.rst:305 msgid ":doc:`../productivity/discuss/team_communication`" msgstr "" -#: ../../content/applications/essentials/activities.rst:318 +#: ../../content/applications/essentials/activities.rst:306 msgid ":doc:`../sales/crm/optimize/utilize_activities`" msgstr "" @@ -671,86 +682,62 @@ msgid "Follow the :doc:`Resellers documentation <../sales/crm/track_leads/resell msgstr "" #: ../../content/applications/essentials/contacts.rst:187 -msgid "Membership tab" -msgstr "" - -#: ../../content/applications/essentials/contacts.rst:189 -msgid "Finally, there is the :guilabel:`Membership` tab on contact forms, which can help users manage any memberships that are being offered to this specific contact. It should be noted that this tab **only** appears when the *Members* application is installed." -msgstr "" - -#: ../../content/applications/essentials/contacts.rst:194 -msgid "Activate membership" -msgstr "" - -#: ../../content/applications/essentials/contacts.rst:196 -msgid "To activate a contact's membership, click :guilabel:`Buy Membership` in the :guilabel:`Membership` tab of a contact form. On the pop-up window that appears, select a :guilabel:`Membership` from the drop-down menu. Then, configure a :guilabel:`Member Price`. Click :guilabel:`Invoice Membership` when both fields are filled in." -msgstr "" - -#: ../../content/applications/essentials/contacts.rst:201 -msgid "Alternatively, to offer a free membership, tick the :guilabel:`Free Member` checkbox, in the :guilabel:`Membership` tab of a contact form." -msgstr "" - -#: ../../content/applications/essentials/contacts.rst:205 -msgid "Follow the :doc:`Members documentation <../sales/members>` for more information on publishing members on the website." -msgstr "" - -#: ../../content/applications/essentials/contacts.rst:209 msgid "Smart buttons" msgstr "" -#: ../../content/applications/essentials/contacts.rst:211 +#: ../../content/applications/essentials/contacts.rst:189 msgid "At the top of the contact form, there are some additional options available, known as *smart buttons*." msgstr "" -#: ../../content/applications/essentials/contacts.rst:214 +#: ../../content/applications/essentials/contacts.rst:192 msgid "Here, Odoo displays a variety of records, related to this contact, that were created on other apps. Odoo integrates information from every single app, so there are many smart buttons." msgstr "" -#: ../../content/applications/essentials/contacts.rst:218 +#: ../../content/applications/essentials/contacts.rst:196 msgid "For example, there is an :guilabel:`Opportunities` smart button, where all the opportunities related to this customer from the *CRM* app are accessible." msgstr "" -#: ../../content/applications/essentials/contacts.rst:222 +#: ../../content/applications/essentials/contacts.rst:200 msgid "If the corresponding applications are installed, their related smart buttons appear automatically on a contact form." msgstr "" -#: ../../content/applications/essentials/contacts.rst:225 +#: ../../content/applications/essentials/contacts.rst:203 msgid "A user can see any :guilabel:`Meetings`, :guilabel:`Sales`, :guilabel:`POS Orders`, :guilabel:`Subscriptions`, project :guilabel:`Tasks`, and the :guilabel:`More` smart button reveals additional options, via a drop-down menu. A user can even quickly access :guilabel:`Purchases`, :guilabel:`Helpdesk` tasks, :guilabel:`On-time Rate` for deliveries, :guilabel:`Invoiced` information, :guilabel:`Vendor Bills`, and the :guilabel:`Partner Ledger` connected to this contact." msgstr "" -#: ../../content/applications/essentials/contacts.rst:231 +#: ../../content/applications/essentials/contacts.rst:209 msgid "Deliveries, documents, loyalty cards, and direct debits are *also* linked to smart buttons, like this, should there be any outstanding/on-file for this contact." msgstr "" -#: ../../content/applications/essentials/contacts.rst:234 +#: ../../content/applications/essentials/contacts.rst:212 msgid "If the contact is a partner, the user can visit their partner page on the Odoo-built website by clicking the :guilabel:`Go to Website` smart button." msgstr "" -#: ../../content/applications/essentials/contacts.rst:238 +#: ../../content/applications/essentials/contacts.rst:216 msgid "Archive contacts" msgstr "" -#: ../../content/applications/essentials/contacts.rst:240 +#: ../../content/applications/essentials/contacts.rst:218 msgid "If a user decides they no longer want to have this contact active, the record can be archived. To do that, go to the :icon:`fa-cog` :guilabel:`Action` menu at the top of the contact form, and click :guilabel:`Archive`." msgstr "" -#: ../../content/applications/essentials/contacts.rst:244 +#: ../../content/applications/essentials/contacts.rst:222 msgid "Then, click :guilabel:`OK` from the resulting :guilabel:`Confirmation` pop-up window." msgstr "" -#: ../../content/applications/essentials/contacts.rst:246 +#: ../../content/applications/essentials/contacts.rst:224 msgid "With this contact successfully archived, as indicated by a banner at the top, they do not show up in the main contacts page, but they can still be searched for with the :guilabel:`Archived` filter." msgstr "" -#: ../../content/applications/essentials/contacts.rst:250 +#: ../../content/applications/essentials/contacts.rst:228 msgid "A contact can be *unarchived*, if the user decides to work with them again. To do that, just click the :icon:`fa-cog` :guilabel:`Action` menu again at the top of the archived contact form, and click :guilabel:`Unarchive`. Upon doing so, the :guilabel:`Archived` banner is removed, and the contact is restored." msgstr "" -#: ../../content/applications/essentials/contacts.rst:256 +#: ../../content/applications/essentials/contacts.rst:234 msgid ":doc:`Add different addresses in CRM <../sales/sales/sales_quotations/different_addresses>`" msgstr "" -#: ../../content/applications/essentials/contacts.rst:257 +#: ../../content/applications/essentials/contacts.rst:235 msgid "`Odoo's eLearning Contacts tutorial `_" msgstr "" @@ -1654,7 +1641,7 @@ msgid "Use" msgstr "" #: ../../content/applications/essentials/html_editor.rst:91 -#: ../../content/applications/essentials/property_fields.rst:83 +#: ../../content/applications/essentials/property_fields.rst:89 msgid ":guilabel:`Separator`" msgstr "" @@ -2567,7 +2554,7 @@ msgid "Add property fields" msgstr "" #: ../../content/applications/essentials/property_fields.rst:23 -msgid "To add a first property field to a :ref:`form view `, click the :icon:`fa-cog` (:guilabel:`Actions`) icon, then select :icon:`fa-cogs` :guilabel:`Add Properties`." +msgid "To add a first property field to a :ref:`form view `, click the :icon:`fa-cog` (:guilabel:`Actions`) icon, then select :icon:`fa-cogs` :guilabel:`Edit Properties`." msgstr "" #: ../../content/applications/essentials/property_fields.rst:26 @@ -2591,408 +2578,447 @@ msgid "Short text on a single line" msgstr "" #: ../../content/applications/essentials/property_fields.rst:38 +#: ../../content/applications/essentials/property_fields.rst:41 #: ../../content/applications/essentials/property_fields.rst:44 -#: ../../content/applications/essentials/property_fields.rst:47 +#: ../../content/applications/essentials/property_fields.rst:50 +#: ../../content/applications/essentials/property_fields.rst:53 msgid "Enter a :guilabel:`Default Value` if desired." msgstr "" #: ../../content/applications/essentials/property_fields.rst:39 -msgid ":ref:`Checkbox `" +msgid ":guilabel:`Multiline Text`" msgstr "" #: ../../content/applications/essentials/property_fields.rst:40 +msgid "Full text on multiple lines" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:42 +msgid ":ref:`HTML `" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:43 +msgid "HTML field" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:45 +msgid ":ref:`Checkbox `" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:46 msgid "Checked or unchecked status" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:41 +#: ../../content/applications/essentials/property_fields.rst:47 msgid "Choose the :guilabel:`Default State`." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:42 +#: ../../content/applications/essentials/property_fields.rst:48 msgid ":ref:`Integer `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:43 +#: ../../content/applications/essentials/property_fields.rst:49 msgid "Integer numbers (:dfn:`positive, negative, or zero, without a decimal`)" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:45 +#: ../../content/applications/essentials/property_fields.rst:51 msgid ":ref:`Decimal `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:46 +#: ../../content/applications/essentials/property_fields.rst:52 msgid "Decimal numbers (:dfn:`positive, negative, or zero, with a decimal`)" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:48 +#: ../../content/applications/essentials/property_fields.rst:54 msgid ":ref:`Date `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:49 +#: ../../content/applications/essentials/property_fields.rst:55 msgid "Selection of a date on a calendar" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:50 -#: ../../content/applications/essentials/property_fields.rst:53 -#: ../../content/applications/essentials/property_fields.rst:76 +#: ../../content/applications/essentials/property_fields.rst:56 +#: ../../content/applications/essentials/property_fields.rst:59 #: ../../content/applications/essentials/property_fields.rst:82 +#: ../../content/applications/essentials/property_fields.rst:88 msgid "Select a :guilabel:`Default Value` if desired." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:51 +#: ../../content/applications/essentials/property_fields.rst:57 msgid ":ref:`Date & Time `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:52 +#: ../../content/applications/essentials/property_fields.rst:58 msgid "Selection of a date on a calendar and a time on a clock" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:54 +#: ../../content/applications/essentials/property_fields.rst:60 msgid ":ref:`Selection `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:55 +#: ../../content/applications/essentials/property_fields.rst:61 msgid "Selection of a value from a group of predefined values" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:56 +#: ../../content/applications/essentials/property_fields.rst:62 msgid "Add a selectable option by clicking :icon:`fa-plus` :guilabel:`Add a Value` and entering the :guilabel:`Option Name`." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:59 +#: ../../content/applications/essentials/property_fields.rst:65 msgid "If desired, set an option as default by clicking the :icon:`fa-star-o` (:guilabel:`Select Default`) button." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:62 +#: ../../content/applications/essentials/property_fields.rst:68 msgid "Reorder the options by dragging and dropping them using the :icon:`oi-draggable` (:guilabel:`drag handle`) button." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:65 +#: ../../content/applications/essentials/property_fields.rst:71 msgid "Delete an option by clicking the :icon:`fa-trash-o` (:guilabel:`Remove Property`) button." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:66 +#: ../../content/applications/essentials/property_fields.rst:72 msgid ":ref:`Tags `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:67 +#: ../../content/applications/essentials/property_fields.rst:73 msgid "Selection of multiple values in the form of tags" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:68 +#: ../../content/applications/essentials/property_fields.rst:74 msgid "Enter a :guilabel:`Tag` name and press `Enter` to save it." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:70 +#: ../../content/applications/essentials/property_fields.rst:76 msgid "Change a tag's color by clicking it and selecting another one." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:71 +#: ../../content/applications/essentials/property_fields.rst:77 msgid ":ref:`Many2one `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:72 +#: ../../content/applications/essentials/property_fields.rst:78 msgid "Selection of a single record from another model" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:73 #: ../../content/applications/essentials/property_fields.rst:79 +#: ../../content/applications/essentials/property_fields.rst:85 msgid "Enter the :guilabel:`Model` name. Configure its :ref:`Domain ` to filter records if needed." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:77 +#: ../../content/applications/essentials/property_fields.rst:83 msgid ":ref:`Many2many `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:78 +#: ../../content/applications/essentials/property_fields.rst:84 msgid "Selection of multiple records from another model" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:84 +#: ../../content/applications/essentials/property_fields.rst:90 msgid "Group several properties under a foldable label" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:87 +#: ../../content/applications/essentials/property_fields.rst:93 msgid "Click outside the popover to save the added property." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:90 +#: ../../content/applications/essentials/property_fields.rst:96 msgid "Select whether to display the property in the Kanban, List, or Calendar views cards for every field with the :guilabel:`Display in Cards` option." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:92 -msgid "To add another property, click :icon:`fa-plus` :guilabel:`Add a Property` at the bottom of the form while in :icon:`fa-cogs` :guilabel:`Add Properties` mode." +#: ../../content/applications/essentials/property_fields.rst:98 +msgid "To add another property, click :icon:`fa-plus` :guilabel:`Add a Property` at the bottom of the form while." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:96 +#: ../../content/applications/essentials/property_fields.rst:102 msgid "To edit an existing property, hover the cursor over the property:" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:98 +#: ../../content/applications/essentials/property_fields.rst:104 msgid "Click the :icon:`fa-pencil` (:guilabel:`pencil`) button to open a popover and modify the property. In the popover, click the :icon:`fa-chevron-up` (up) or :icon:`fa-chevron-down` (down) chevron to move a property upwards or downwards." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:101 +#: ../../content/applications/essentials/property_fields.rst:107 msgid "Click :icon:`fa-trash` :guilabel:`Delete`, then :guilabel:`Delete` to delete it. Deleting a property is permanent." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:103 +#: ../../content/applications/essentials/property_fields.rst:109 msgid "Use the :icon:`oi-draggable` (:guilabel:`drag handle`) icon to drag and drop the property to reorder or regroup." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:109 +#: ../../content/applications/essentials/property_fields.rst:115 msgid "Properties across apps" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:111 +#: ../../content/applications/essentials/property_fields.rst:117 msgid "Property fields can be defined in the :ref:`form view ` of multiple models. Once set, the property is shared by all records that are linked to the same *parent*." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:119 +#: ../../content/applications/essentials/property_fields.rst:125 msgid "App" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:120 +#: ../../content/applications/essentials/property_fields.rst:126 msgid "Model" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:121 +#: ../../content/applications/essentials/property_fields.rst:127 msgid "Parent" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:122 +#: ../../content/applications/essentials/property_fields.rst:128 msgid ":guilabel:`Accounting`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:123 +#: ../../content/applications/essentials/property_fields.rst:129 msgid ":ref:`Asset/Revenue Recognition `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:125 +#: ../../content/applications/essentials/property_fields.rst:131 msgid ":doc:`Loan `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:126 +#: ../../content/applications/essentials/property_fields.rst:132 msgid ":ref:`Asset model `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:128 +#: ../../content/applications/essentials/property_fields.rst:134 msgid ":ref:`Journal `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:129 +#: ../../content/applications/essentials/property_fields.rst:135 msgid ":guilabel:`Appraisals`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:130 +#: ../../content/applications/essentials/property_fields.rst:136 msgid ":ref:`Employee Appraisal `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:131 +#: ../../content/applications/essentials/property_fields.rst:137 msgid ":ref:`Department `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:132 +#: ../../content/applications/essentials/property_fields.rst:138 +msgid ":guilabel:`Approvals`" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:139 +msgid "Approval Request" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:140 +#: ../../content/applications/essentials/property_fields.rst:202 +msgid "Category" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:141 msgid ":guilabel:`CRM`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:133 +#: ../../content/applications/essentials/property_fields.rst:142 msgid ":doc:`Lead/Opportunity `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:134 +#: ../../content/applications/essentials/property_fields.rst:143 msgid ":ref:`Sales team `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:135 +#: ../../content/applications/essentials/property_fields.rst:144 msgid ":guilabel:`Employees`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:136 +#: ../../content/applications/essentials/property_fields.rst:145 msgid ":ref:`Employee `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:137 +#: ../../content/applications/essentials/property_fields.rst:146 msgid ":ref:`Company `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:138 +#: ../../content/applications/essentials/property_fields.rst:147 msgid ":guilabel:`Events`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:139 +#: ../../content/applications/essentials/property_fields.rst:148 msgid ":doc:`Event Registration `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:140 +#: ../../content/applications/essentials/property_fields.rst:149 msgid ":ref:`Event `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:141 +#: ../../content/applications/essentials/property_fields.rst:150 msgid ":guilabel:`Fleet`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:142 +#: ../../content/applications/essentials/property_fields.rst:151 msgid ":doc:`Vehicle `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:143 +#: ../../content/applications/essentials/property_fields.rst:152 msgid ":ref:`Vehicle model `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:144 +#: ../../content/applications/essentials/property_fields.rst:153 msgid ":guilabel:`Frontdesk`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:145 +#: ../../content/applications/essentials/property_fields.rst:154 msgid ":ref:`Frontdesk Visitors `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:146 +#: ../../content/applications/essentials/property_fields.rst:155 msgid ":ref:`Station `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:147 +#: ../../content/applications/essentials/property_fields.rst:156 msgid ":guilabel:`Helpdesk`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:148 +#: ../../content/applications/essentials/property_fields.rst:157 msgid ":ref:`Ticket `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:149 +#: ../../content/applications/essentials/property_fields.rst:158 msgid ":ref:`Helpdesk team `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:150 +#: ../../content/applications/essentials/property_fields.rst:159 msgid ":guilabel:`Inventory`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:151 +#: ../../content/applications/essentials/property_fields.rst:160 msgid ":ref:`Lot/Serial `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:153 +#: ../../content/applications/essentials/property_fields.rst:162 msgid ":doc:`Transfer `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:156 +#: ../../content/applications/essentials/property_fields.rst:165 msgid ":ref:`Batch Transfer `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:157 +#: ../../content/applications/essentials/property_fields.rst:166 msgid ":ref:`Product variant `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:159 -#: ../../content/applications/essentials/property_fields.rst:161 +#: ../../content/applications/essentials/property_fields.rst:168 +#: ../../content/applications/essentials/property_fields.rst:170 msgid ":ref:`Operation type `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:162 +#: ../../content/applications/essentials/property_fields.rst:171 msgid ":guilabel:`Knowledge`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:163 +#: ../../content/applications/essentials/property_fields.rst:172 msgid ":ref:`Knowledge Article `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:164 +#: ../../content/applications/essentials/property_fields.rst:173 msgid ":ref:`Parent article `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:165 +#: ../../content/applications/essentials/property_fields.rst:174 msgid ":guilabel:`Maintenance`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:166 +#: ../../content/applications/essentials/property_fields.rst:175 msgid ":ref:`Maintenance Equipment `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:167 +#: ../../content/applications/essentials/property_fields.rst:176 msgid ":ref:`Equipment category `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:168 +#: ../../content/applications/essentials/property_fields.rst:177 msgid ":guilabel:`Meeting Rooms`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:169 +#: ../../content/applications/essentials/property_fields.rst:178 msgid "Room" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:170 +#: ../../content/applications/essentials/property_fields.rst:179 msgid "Office" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:171 +#: ../../content/applications/essentials/property_fields.rst:180 msgid ":guilabel:`Planning`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:172 +#: ../../content/applications/essentials/property_fields.rst:181 msgid ":ref:`Shift `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:173 +#: ../../content/applications/essentials/property_fields.rst:182 msgid ":ref:`Role `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:174 +#: ../../content/applications/essentials/property_fields.rst:183 msgid ":guilabel:`Project` / :guilabel:`Field Service`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:175 +#: ../../content/applications/essentials/property_fields.rst:184 msgid ":ref:`Task `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:176 +#: ../../content/applications/essentials/property_fields.rst:185 msgid ":ref:`Project `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:177 +#: ../../content/applications/essentials/property_fields.rst:186 msgid ":guilabel:`Recruitment`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:178 +#: ../../content/applications/essentials/property_fields.rst:187 msgid ":ref:`Applicant `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:180 +#: ../../content/applications/essentials/property_fields.rst:189 msgid ":ref:`Job Position `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:182 +#: ../../content/applications/essentials/property_fields.rst:191 msgid "Candidate" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:183 +#: ../../content/applications/essentials/property_fields.rst:192 msgid ":ref:`Job position `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:185 -#: ../../content/applications/essentials/property_fields.rst:187 -#: ../../content/applications/essentials/property_fields.rst:190 +#: ../../content/applications/essentials/property_fields.rst:194 +#: ../../content/applications/essentials/property_fields.rst:196 +#: ../../content/applications/essentials/property_fields.rst:199 msgid ":ref:`Company `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:188 +#: ../../content/applications/essentials/property_fields.rst:197 msgid ":guilabel:`Repairs`" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:189 +#: ../../content/applications/essentials/property_fields.rst:198 msgid ":ref:`Repair order `" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:191 +#: ../../content/applications/essentials/property_fields.rst:200 msgid ":guilabel:`Sales` / etc." msgstr "" -#: ../../content/applications/essentials/property_fields.rst:192 +#: ../../content/applications/essentials/property_fields.rst:201 msgid "Product" msgstr "" -#: ../../content/applications/essentials/property_fields.rst:193 -msgid "Category" +#: ../../content/applications/essentials/property_fields.rst:205 +msgid "The following models do not depend on any *parent* and apply to all records:" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:207 +msgid ":doc:`Contact Form <../../../applications/essentials/contacts>` in the :guilabel:`Contacts` app" +msgstr "" + +#: ../../content/applications/essentials/property_fields.rst:208 +msgid ":ref:`Mailing List Contacts ` in the :guilabel:`Email Marketing` app" msgstr "" #: ../../content/applications/essentials/reporting.rst:3 @@ -3420,12 +3446,8 @@ msgstr "" msgid "The options in the :icon:`fa-adjust` :guilabel:`Comparison` section are used to compare data from two different time periods. Pick between the two comparison options: :guilabel:`(Time Filter): Previous Period` and :guilabel:`(Time Filter): Previous Year`." msgstr "" -#: ../../content/applications/essentials/search.rst:201 -msgid "For some reports, the :guilabel:`Comparison` section **only** appears in the search bar drop-down" -msgstr "" - -#: ../../content/applications/essentials/search.rst:200 -msgid "menu if one (or more) time periods have been selected in the :guilabel:`Filters` column. This is because there is nothing to compare if no time period is specified." +#: ../../content/applications/essentials/search.rst:199 +msgid "For some reports, the :guilabel:`Comparison` section **only** appears in the search bar drop-down menu if one (or more) time periods have been selected in the :guilabel:`Filters` column. This is because there is nothing to compare if no time period is specified." msgstr "" #: ../../content/applications/essentials/search.rst:203 @@ -3496,11 +3518,7 @@ msgstr "" msgid ":guilabel:`Default filter`: Sets the favorited search as the default filter for the view." msgstr "" -#: ../../content/applications/essentials/search.rst:263 -msgid ":guilabel:`Shared`: Makes the favorited search available to all users. Otherwise, by default, the favorited search is only available to the user who created it." -msgstr "" - -#: ../../content/applications/essentials/search.rst:266 +#: ../../content/applications/essentials/search.rst:264 msgid "Once the options are set, click :guilabel:`Save` to save the favorited search." msgstr "" @@ -3508,22 +3526,34 @@ msgstr "" msgid "Saving a favorite search on the Sales Analysis report." msgstr "" -#: ../../content/applications/essentials/search.rst:272 -msgid "Favorited searches can be accessed by clicking the :icon:`fa-caret-down` :guilabel:`(dropdown)` icon in the search bar, then selecting the saved search under :icon:`fa-star` :guilabel:`Favorites`." +#: ../../content/applications/essentials/search.rst:270 +msgid "Favorited searches are accessed by clicking the :icon:`fa-caret-down` :guilabel:`(dropdown)` icon in the search bar, and are shown under :icon:`fa-star` :guilabel:`Favorites`. Searches that are only visible to the current user, i.e., that are not shared, are shown first, while any :ref:`shared favorites `, whether created by the current user or another user, are shown in a second section." msgstr "" #: ../../content/applications/essentials/search.rst:276 -msgid "Favorited searches that are only visible to the current user, i.e., that are not shared, are shown first; any shared searches, whether created by the current user or another user, are shown in a second section." +msgid "To edit, archive, or remove a favorited search, hover over the search name in the list of favorites and click :icon:`fa-pencil` :guilabel:`(Edit favorite)`. The following fields can be modified: :guilabel:`Filter Name`, :ref:`Shared with `, :guilabel:`Default Filter`, :guilabel:`Domain`. To archive or remove the favorite, click :icon:`fa-cog` :guilabel:`(Actions)` then :icon:`oi-archive` :guilabel:`Archive` or :icon:`fa-trash` :guilabel:`Delete`, as appropriate." +msgstr "" + +#: ../../content/applications/essentials/search.rst:283 +msgid "When a favorited search is in use, additional filters or groups can be used to further refine the search. The conditions applied by the favorited search can also be modified by hovering over the :icon:`fa-star` :guilabel:`(star)` beside the search name then clicking the :icon:`fa-cog` :guilabel:`(cog)` icon. These changes only affect the current search." +msgstr "" + +#: ../../content/applications/essentials/search.rst:287 +msgid "To edit the grouping or sorting of a favorited search, :ref:`activate developer mode ` when editing the search, then modify the :guilabel:`Context` or :guilabel:`Sort` fields as needed." +msgstr "" + +#: ../../content/applications/essentials/search.rst:290 +msgid "To view *all* favorited searches, with developer mode activated, navigate to :menuselection:`Settings app --> Technical --> User-defined Filters`. From here, all favorited searches can be viewed, edited, archived, or deleted." msgstr "" -#: ../../content/applications/essentials/search.rst:280 -msgid "To edit a favorited search, select the relevant saved search, hover over the :icon:`fa-star` :guilabel:`(star)` icon beside the search name in the search bar, then click the :icon:`fa-cog` :guilabel:`(cog)` icon. Modify the conditions as needed, then click :guilabel:`Confirm`." +#: ../../content/applications/essentials/search.rst:297 +msgid "Share a favorited search" msgstr "" -#: ../../content/applications/essentials/search.rst:284 -msgid "To delete a favorited search, click the :icon:`fa-caret-down` :guilabel:`(dropdown)` icon in the search bar, then click the :icon:`fa-trash` :guilabel:`(delete)` icon next to the saved search." +#: ../../content/applications/essentials/search.rst:299 +msgid "By default, a favorited search is only available to the user who created it. To share a favorited search with other users, click :guilabel:`Edit` when creating the favorite, or, for an existing favorite, click :icon:`fa-pencil` :guilabel:`(Edit favorite)` after hovering over the search name in the list of favorites." msgstr "" -#: ../../content/applications/essentials/search.rst:288 -msgid "To view *all* favorited searches, first activate :ref:`developer-mode`, and navigate to :menuselection:`Settings app --> Technical --> User Interface: User-defined Filters`. From here, all favorited searches can be viewed, edited, archived, or deleted." +#: ../../content/applications/essentials/search.rst:304 +msgid "In the :guilabel:`Shared with` field, select the relevant users from the drop-down menu, then click :icon:`fa-cloud-upload` :guilabel:`(Save manually)`. The favorite is now visible for all selected users under :icon:`fa-star` :guilabel:`Favorites`." msgstr "" diff --git a/locale/sources/finance.pot b/locale/sources/finance.pot index c318027108..b99582585b 100644 --- a/locale/sources/finance.pot +++ b/locale/sources/finance.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -92,6 +92,7 @@ msgstr "" #: ../../content/applications/finance/accounting.rst:114 #: ../../content/applications/finance/fiscal_localizations/egypt.rst:130 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:174 msgid "Branches" msgstr "" @@ -181,7 +182,7 @@ msgid "The following financial :doc:`reports ` are availab msgstr "" #: ../../content/applications/finance/accounting.rst:193 -#: ../../content/applications/finance/fiscal_localizations/austria.rst:32 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:39 #: ../../content/applications/finance/fiscal_localizations/chile.rst:1209 #: ../../content/applications/finance/fiscal_localizations/colombia.rst:479 msgid "Financial reports" @@ -224,12 +225,12 @@ msgid "Audit" msgstr "" #: ../../content/applications/finance/accounting.rst:207 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1052 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1157 msgid "General ledger" msgstr "" #: ../../content/applications/finance/accounting.rst:209 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1016 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1121 msgid "Trial balance" msgstr "" @@ -246,6 +247,11 @@ msgid "Check register" msgstr "" #: ../../content/applications/finance/accounting.rst:217 +#: ../../content/applications/finance/esg.rst:209 +#: ../../content/applications/finance/esg.rst:225 +#: ../../content/applications/finance/esg.rst:237 +#: ../../content/applications/finance/esg.rst:256 +#: ../../content/applications/finance/esg.rst:268 #: ../../content/applications/finance/fiscal_localizations/argentina.rst:146 #: ../../content/applications/finance/fiscal_localizations/peru.rst:374 msgid "Partner" @@ -442,7 +448,7 @@ msgid "Connect a bank for automatic synchronization" msgstr "" #: ../../content/applications/finance/accounting/bank.rst:32 -msgid "To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration --> Add a Bank Account`, select your bank in the list, click on :guilabel:`Connect`, and follow the instructions." +msgid "To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration --> Add a Bank Account`, select your bank in the list, click :guilabel:`Connect`, and follow the instructions." msgstr "" #: ../../content/applications/finance/accounting/bank.rst:37 @@ -460,7 +466,7 @@ msgid "If your banking institution is not available in Odoo, or if you don't wan msgstr "" #: ../../content/applications/finance/accounting/bank.rst:47 -msgid "To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Add a Bank Account`, click on :guilabel:`Record transactions manually` (at the bottom right), fill out the bank information, and click :guilabel:`Create`." +msgid "To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Add a Bank Account`, click :guilabel:`Record transactions manually` (at the bottom right), fill out the bank information, and click :guilabel:`Create`." msgstr "" #: ../../content/applications/finance/accounting/bank.rst:52 @@ -476,7 +482,7 @@ msgid "Create a cash journal" msgstr "" #: ../../content/applications/finance/accounting/bank.rst:61 -msgid "To create a new cash journal, go to :menuselection:`Accounting --> Configuration --> Accounting: Journals`, click on :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field." +msgid "To create a new cash journal, go to :menuselection:`Accounting --> Configuration --> Accounting: Journals`, click :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field." msgstr "" #: ../../content/applications/finance/accounting/bank.rst:64 @@ -502,11 +508,12 @@ msgstr "" #: ../../content/applications/finance/accounting/bank/bank_synchronization/saltedge.rst:17 #: ../../content/applications/finance/accounting/bank/foreign_currency.rst:16 #: ../../content/applications/finance/accounting/bank/internal_transfers.rst:12 +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:17 #: ../../content/applications/finance/accounting/customer_invoices/cash_discounts.rst:27 #: ../../content/applications/finance/accounting/customer_invoices/cash_rounding.rst:14 #: ../../content/applications/finance/accounting/customer_invoices/customer_addresses.rst:13 #: ../../content/applications/finance/accounting/customer_invoices/deferred_revenues.rst:29 -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:52 +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:23 #: ../../content/applications/finance/accounting/customer_invoices/epc_qr_code.rst:20 #: ../../content/applications/finance/accounting/customer_invoices/payment_terms.rst:48 #: ../../content/applications/finance/accounting/customer_invoices/snailmail.rst:12 @@ -528,7 +535,7 @@ msgstr "" #: ../../content/applications/finance/accounting/taxes/fiscal_positions.rst:20 #: ../../content/applications/finance/accounting/taxes/retention.rst:11 #: ../../content/applications/finance/accounting/vendor_bills/deferred_expenses.rst:29 -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:18 +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:24 #: ../../content/applications/finance/fiscal_localizations.rst:18 #: ../../content/applications/finance/fiscal_localizations/argentina.rst:20 #: ../../content/applications/finance/fiscal_localizations/argentina.rst:715 @@ -537,11 +544,13 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/australia.rst:180 #: ../../content/applications/finance/fiscal_localizations/australia.rst:330 #: ../../content/applications/finance/fiscal_localizations/australia.rst:403 -#: ../../content/applications/finance/fiscal_localizations/austria.rst:6 -#: ../../content/applications/finance/fiscal_localizations/austria.rst:49 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:8 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:60 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:179 #: ../../content/applications/finance/fiscal_localizations/belgium.rst:8 -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:255 -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:534 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:252 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:443 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:601 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:212 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:473 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:666 @@ -553,17 +562,17 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/germany.rst:256 #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:61 #: ../../content/applications/finance/fiscal_localizations/hong_kong.rst:6 -#: ../../content/applications/finance/fiscal_localizations/india.rst:659 +#: ../../content/applications/finance/fiscal_localizations/india.rst:633 #: ../../content/applications/finance/fiscal_localizations/italy.rst:8 -#: ../../content/applications/finance/fiscal_localizations/italy.rst:724 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:713 #: ../../content/applications/finance/fiscal_localizations/jordan.rst:104 #: ../../content/applications/finance/fiscal_localizations/kenya.rst:8 #: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:6 #: ../../content/applications/finance/fiscal_localizations/malaysia.rst:10 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:45 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:647 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:759 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:893 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:846 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1257 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1538 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1641 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:215 #: ../../content/applications/finance/fiscal_localizations/peru.rst:88 #: ../../content/applications/finance/fiscal_localizations/peru.rst:720 @@ -647,7 +656,7 @@ msgid "Account number" msgstr "" #: ../../content/applications/finance/accounting/bank.rst:128 -msgid "If you need to **edit your bank account details**, click on the external link arrow next to your :guilabel:`Account Number`. On the account page, click on the external link arrow next to your :guilabel:`Bank` and update your bank information accordingly. These details are used when registering payments." +msgid "If you need to **edit your bank account details**, click the external link arrow next to your :guilabel:`Account Number`. On the account page, click the external link arrow next to your :guilabel:`Bank` and update your bank information accordingly. These details are used when registering payments." msgstr "" #: ../../content/applications/finance/accounting/bank.rst:-1 @@ -755,7 +764,7 @@ msgid ":doc:`Enable Banking `: Scandinavian msgstr "" #: ../../content/applications/finance/accounting/bank/bank_synchronization.rst:25 -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:18 +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:22 msgid ":doc:`transactions`" msgstr "" @@ -1564,282 +1573,542 @@ msgid "Bank reconciliation" msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation.rst:5 -msgid "**Bank reconciliation** is the process of matching your :doc:`bank transactions ` with your business records, such as :doc:`customer invoices <../customer_invoices>`, :doc:`vendor bills <../vendor_bills>`, and :doc:`payments <../payments>`. Not only is this compulsory for most businesses, but it also offers several benefits, such as reduced risk of errors in financial reports, detection of fraudulent activities, and improved cash flow management." +msgid "**Bank reconciliation** is the process of validating :doc:`bank transactions `. Many of these transactions are matched with counterpart items related to business records such as :doc:`customer invoices <../customer_invoices>`, :doc:`vendor bills <../vendor_bills>`, and :doc:`payments <../payments>`, while others that may not have a matching counterpart item (such as bank fees) can be written off :ref:`manually ` or with :ref:`reconciliation models `. Not only is bank reconciliation compulsory for most businesses, but it also offers several benefits, such as reduced risk of errors in financial reports, detection of fraudulent activities, and improved cash flow management." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:11 -msgid "Thanks to the bank :doc:`reconciliation models `, Odoo pre-selects the matching entries automatically." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:14 +msgid "Thanks to the :ref:`default matching rules ` and customizable bank :doc:`reconciliation models `, Odoo selects the matching items automatically when possible." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:15 -msgid "`Odoo Tutorials: Bank reconciliation `_" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:19 +msgid "`Odoo Tutorials: Bank reconciliation `_" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:17 -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:13 +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:21 msgid ":doc:`bank_synchronization`" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:23 +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:27 msgid "Bank reconciliation view" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:25 -msgid "To access a bank journal's **reconciliation view**, go to your :guilabel:`Accounting Dashboard` and either:" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:29 +msgid "To access a journal's :guilabel:`Bank Matching` view, go to the :guilabel:`Accounting Dashboard` and either:" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:28 -msgid "click the journal name (e.g., :guilabel:`Bank`) to display all transactions, including those previously reconciled or" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:32 +#: ../../content/applications/finance/accounting/bank/transactions.rst:25 +msgid "click the journal name (e.g., :guilabel:`Bank`) or its :guilabel:`Transactions` button to display all transactions, including those previously reconciled, or" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:30 -msgid "click the :guilabel:`Reconcile items` button to display all transactions Odoo pre-selected for reconciliation. You can remove the :guilabel:`Not Matched` filter from the search bar to include previously reconciled transactions." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:34 +#: ../../content/applications/finance/accounting/bank/transactions.rst:27 +msgid "click the :guilabel:`x to reconcile` button to display only unreconciled transactions. To include previously reconciled transactions, remove the :guilabel:`Not Matched` filter from the search bar." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation.rst:-1 -msgid "Reaching the bank reconciliation tool from your accounting dashboard" +msgid "Reaching the bank reconciliation tool from the accounting dashboard" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:37 -msgid "The bank reconciliation view is structured into three distinct sections: transactions, counterpart entries, and resulting entry." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:40 +msgid "The :guilabel:`Bank Matching` view is composed of lines for each transaction of the journal with the newest displayed first. Each transaction has a date, a label, a partner (if set), :ref:`action buttons `, and the transaction amount. Each line can be expanded to show additional information and buttons." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation.rst:-1 -msgid "The user interface of the reconciliation view of a bank journal." +msgid "The user interface of the bank matching view of a bank journal." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:45 +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:49 +msgid "Once a :doc:`transaction ` is reconciled, the suggested action button(s) is replaced with the counterpart entry/entries it was matched with or the account(s) it was written off to." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:56 #: ../../content/applications/finance/accounting/bank/transactions.rst:3 #: ../../content/applications/finance/accounting/taxes/avatax/avalara_portal.rst:32 msgid "Transactions" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:44 -msgid "The transactions section on the left shows all bank transactions, with the newest displayed first. Click a transaction to select it." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:58 +msgid "Every :doc:`transaction ` is linked to a journal entry that debits/credits the journal's main account and its :ref:`suspense account ` until it is fully reconciled. At that point, the suspense account is replaced with the account of the counterpart item or, in the case of :ref:`manual matching `, the selected account." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:52 -msgid "Counterpart entries" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:67 +msgid "Possible action buttons" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:48 -msgid "The counterpart entries section on the bottom right displays the options to match the selected bank transaction. Multiple tabs are available, including :ref:`reconciliation/existing-entries`, :ref:`reconciliation/batch-payments`, :ref:`reconciliation/manual-operations`, and :guilabel:`Discuss`, which contains the chatter for the selected bank transaction." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:69 +msgid "Up to two suggested action buttons are available as primary buttons, but all available action buttons are displayed when the transaction is expanded. The following action buttons are available depending on the details of the transaction:" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:58 -msgid "Resulting entry" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:73 +msgid ":guilabel:`Set Partner`: Open a search view to add a partner to the transaction." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:55 -msgid "The resulting entry section on the top right displays the selected bank transaction matched with the counterpart entries and includes any remaining debits or credits. In this section, you can validate the reconciliation or mark it as :guilabel:`To Check`. Any :ref:`reconciliation model buttons ` are also available in the resulting entry section." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:74 +msgid ":guilabel:`Set Account`: Open a search view to manually select an account to write off the full amount of the transaction with this account. If necessary, :ref:`edit the line ` to change the amount." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:63 -msgid "Reconcile transactions" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:77 +msgid ":guilabel:`Receivable`: Write off the transaction to the receivable account of the partner." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:65 -msgid "Transactions can be matched automatically with the use of :doc:`reconciliation models `, or they can be matched with :ref:`existing entries `, :ref:`batch payments `, :ref:`manual operations `, and :ref:`reconciliation model buttons `." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:78 +msgid ":guilabel:`Sales`: Open a list view of sales orders belonging to the transaction's :guilabel:`Partner` (or proceed directly to the form view if only one relevant sales order exists). Select the relevant sales order(s) and click :guilabel:`Create Invoices`, then return to the :guilabel:`Bank Matching` view and match the invoice(s) using the :guilabel:`Reconcile` action button." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:71 -msgid "Select a transaction among unmatched bank transactions." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:83 +msgid ":guilabel:`Payable`: Write off the transaction to the payable account of the partner." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:72 -msgid "Define the counterpart. There are several options for defining a counterpart, including :ref:`matching existing entries `, :ref:`manual operations `, :ref:`batch payments `, and :ref:`reconciliation model buttons `." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:84 +msgid ":guilabel:`Reconcile`: Open a search view of existing items from records such as customer invoices, vendor bills, and payments. Select one or multiple items to add counterpart items with the corresponding accounts of those items." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:76 -msgid "If the resulting entry is not fully balanced, balance it by adding another existing counterpart entry or writing it off with a :ref:`manual operation `." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:87 +msgid ":guilabel:`Batches`: Open a short list of :doc:`batch payments <../payments/batch>`. To view all batch payments, click :guilabel:`Search More ...`. Select a batch payment to add a counterpart item for each payment of the batch with the corresponding account of each payment." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:78 -msgid "Click the :guilabel:`Validate` button to confirm the reconciliation and move to the next transaction." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:90 +msgid ":doc:`reconciliation_models`: Each manual reconciliation model that could apply to the transaction is displayed. Click the reconciliation model's action button to generate the counterpart items defined on the reconciliation model." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:82 -msgid "If you are not sure how to reconcile a particular transaction and would like to deal with it later, use the :guilabel:`To Check` button instead. All transactions marked as :guilabel:`To Check` can be displayed using the :guilabel:`To Check` filter." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:95 +msgid "To remove the partner from a transaction, click the :icon:`fa-times` :guilabel:`(close)` icon next to the partner's name." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:87 -msgid "Bank transactions are posted on the **journal's suspense account** until reconciliation. At this point, reconciliation modifies the transaction journal entry by replacing the bank suspense account with the corresponding receivable, payable, or outstanding account." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:98 +msgid "Click the :icon:`fa-chevron-down` :guilabel:`(chevron down)` button next to the possible action buttons of an expanded line to display any of the above action buttons that are hidden due to space limitations, as well as the following:" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:94 -msgid "Match existing entries" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:102 +msgid ":guilabel:`Upload bills`: Upload one or more bills to be :doc:`digitized <../vendor_bills/invoice_digitization>`. After digitization, the bills are available for matching via the :guilabel:`Reconcile` action button." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:96 -msgid "This tab contains matching entries Odoo automatically pre-selects according to the reconciliation models. The entry order is based on :doc:`reconciliation models `, with suggested entries appearing first." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:105 +msgid ":guilabel:`Manage Models`: Open the list view of :doc:`reconciliation_models`." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:101 -msgid "The search bar within the :guilabel:`Match Existing Entries` tab allows you to search for specific journal items." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:106 +msgid ":guilabel:`Open Journal Entry`: Open the journal entry of this transaction." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation.rst:107 -#: ../../content/applications/finance/accounting/payments/batch.rst:3 -#: ../../content/applications/finance/fiscal_localizations/australia.rst:406 -msgid "Batch payments" +msgid ":guilabel:`Delete Transaction`: Delete this transaction." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:109 -msgid ":doc:`Batch payments <../payments/batch>` allow you to group different payments to ease reconciliation. Use the :guilabel:`Batch Payments` tab to find batch payments for customers and vendors. Similarly to the :guilabel:`Match Existing Entries` tab, the :guilabel:`Batch Payments` tab has a search bar that allows you to search for specific batch payments." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:110 +msgid "Uploading bills from the :guilabel:`Bank Matching` view does not automatically reconcile them with the active transaction." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:117 -msgid "Manual operations" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:114 +msgid ":doc:`../../../essentials/in_app_purchase`" msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation.rst:119 -msgid "If there is not an existing entry to match the selected transaction, you may instead wish to reconcile the transaction manually by choosing the correct account and amount. Then, complete any of the relevant optional fields." +msgid "Reconcile transactions" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:124 -msgid "You can use the :guilabel:`fully paid` option to reconcile a payment, even in cases where only a partial payment is received. A new line appears in the resulting entry section to reflect the open balance registered on the Account Receivable by default. You can choose another account by clicking on the new line in the resulting entry section and selecting the :guilabel:`Account` to record the open balance." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:121 +msgid "When possible, Odoo automatically reconciles transactions based on their fields." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:123 +msgid "If no partner is set on the transaction, the transaction's :guilabel:`Label` is compared with the :guilabel:`Number`, :guilabel:`Customer Reference`, :guilabel:`Bill Reference`, and :guilabel:`Payment Reference` of existing invoices, bills, and payments." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:127 +msgid "If a partner is set on the transaction, the transaction is instead matched with invoices, bills, and payments of the partner based on the :guilabel:`Amount`. The following rules are used in a sequential order to identify and apply a match:" msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation.rst:131 -msgid "Lines are silently reconciled unless a write-off entry is required, which launches a reconciliation wizard." +msgid "Exact match" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:132 +msgid "Discounted match: for payment terms with discounts for early payments" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:133 +msgid "Tolerance match: within 3% to account for merchant fees, rounding differences, and user errors" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:134 +msgid "Currency match: when the transaction is in a different currency than the invoice, bill, or payment (with a 3% tolerance for exchange rate differences)" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:136 +msgid "Amount in label: if the invoice :guilabel:`Amount` is found in the transaction's :guilabel:`Label`" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:139 +msgid "In addition to using these fixed matching rules, transactions can be matched automatically with the use of :doc:`reconciliation models `. Otherwise, reconcile transactions manually by following these steps:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:143 +msgid "Expand the desired line among unmatched bank transactions to display all available action buttons." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:145 +msgid "Define the counterpart. There are several options for defining a counterpart, including :ref:`matching existing items `, :ref:`manually setting the account `, matching with :doc:`batch payments <../payments/batch>`, and using :ref:`reconciliation model buttons `." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:150 +msgid "If the resulting entry is not fully balanced, add another existing counterpart item or write it off by :ref:`setting the account ` of the remaining amount." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:157 +msgid "Existing items" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:159 +msgid "To reconcile transactions with existing items related to records such as customer invoices, vendor bills, and payments, click the :guilabel:`Reconcile` action button, select the matching journal item(s) in the list, and click :guilabel:`Select`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:164 +msgid "If the :guilabel:`Partner` is set, this list is automatically filtered to only include items related to that partner." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:168 +msgid "Use the search bar within the :guilabel:`Search: Journal Items to Match` window to search for specific journal items." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:171 +msgid "If a transaction amount is lower than the invoice or bill it is reconciled with, the transaction is fully reconciled, but the difference remains open on the counterpart item. The remaining amount can be left open to be reconciled later or the invoice or bill can be marked as fully paid. To mark the invoice or bill as fully paid, :ref:`edit ` the line, click :guilabel:`fully paid`, and :guilabel:`Save`. To reverse this, :ref:`edit ` the line again, click :guilabel:`partial payment`, and :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:179 +msgid "If a transaction amount is greater than the invoice or bill it is reconciled with, the transaction is only partially reconciled. The remaining balance can be reconciled as any other transaction amount." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:184 +msgid "Existing items of draft entries can be matched. Eventual automatic moves (like currency exchange or cash basis moves) are created in draft simultaneously with the reconciliation. Posting the original entry also posts the automatic move." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:0 -msgid "Click on fully paid to manually set an invoice as entirely paid." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:191 +msgid "Set account" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:140 -msgid "Reconciliation model buttons" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:193 +msgid "If no existing item matches the selected transaction, you can still write off the transaction manually: Click :guilabel:`Set Account`, then choose the appropriate account. To write off only part of the transaction, :ref:`edit the line ` to reflect the correct value and reconcile the remaining amount as desired." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation.rst:142 -msgid "Use a :doc:`reconciliation model ` button for manual operations that are frequently used. These custom buttons allow you to quickly reconcile bank transactions manually and can also be used in combination with existing entries." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:199 +msgid "If the partner is set, write the amount off to their receivable or payable account directly by clicking the :guilabel:`Receivable` or :guilabel:`Payable` :ref:`action button `." msgstr "" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:206 #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:3 msgid "Reconciliation models" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:5 -msgid "Reconciliation models are used to automate the :doc:`bank reconciliation ` process, which is especially handy when dealing with recurring entries like bank fees. Reconciliation models can also be helpful in handling :doc:`cash discounts <../customer_invoices/cash_discounts>`." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:208 +msgid "Use :doc:`reconciliation models ` to create custom rules that can be applied automatically or manually via custom buttons for operations that are frequently repeated. These custom buttons allow you to quickly reconcile bank transactions manually and can also be combined with other reconciliation models and with counterpart items when reconciling transactions." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:9 -msgid "Each model is created based on a :ref:`model type ` and :guilabel:`bank transaction conditions`." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:214 +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:140 +msgid "An outgoing bank transaction for $103 is partially matched with a vendor bill for $100, leaving $3 of the transaction still unreconciled. Use the :guilabel:`Bank Fees` reconciliation model to create a new counterpart item for $3 and reconcile it with the remaining $3 of the bank transaction." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:14 -msgid "`Odoo Tutorials: Reconciliation models `_" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:222 +msgid "Edit lines and unreconcile transactions" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:19 -msgid "Reconciliation model types" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:224 +msgid "To edit a counterpart item, expand the line, click the :icon:`fa-pencil` :guilabel:`(pencil)` icon, and edit the necessary fields in :guilabel:`Edit Line` window." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:21 -msgid "The reconciliation models are available by going to :menuselection:`Accounting --> Configuration --> Banks: Reconciliation Models`. For each reconciliation model, a :guilabel:`Type` must be set. Three types of models exist:" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:228 +msgid "When the counterpart item is an existing journal item, some fields are read-only." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:25 -msgid ":guilabel:`Button to generate counterpart entry`: a button is created in the resulting entry section of the bank reconciliation view. If clicked, this button generates a counterpart entry to reconcile with the active transaction based on the rules set in the model. The rules specified in the model determine the counterpart entry's account(s), amount(s), label(s), and analytic distribution;" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:230 +msgid "If a transaction is partially matched with a counterpart item, use the link to mark the invoice as :guilabel:`fully paid` or to switch back to a :guilabel:`partial payment`." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:30 -msgid ":guilabel:`Rule to suggest counterpart entry`: used for recurring transactions to match the transaction to a new entry based on conditions that must match the information on the transaction;" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:233 +msgid "To unreconcile a transaction, delete all counterpart items associated with the transaction by clicking on the :icon:`fa-trash` :guilabel:`(trash)` icon." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:32 -msgid ":guilabel:`Rule to match invoices/bills`: used for recurring transactions to match the transaction to existing invoices, bills, or payments based on conditions that must match the information on the transaction." +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:239 +msgid "Netting" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:37 -msgid "Default reconciliation models" +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:241 +msgid "Netting (also known as AP/AR offsetting) is the process of balancing incoming debts from and outgoing debts to the same partner. Reconciling the incoming and outgoing debts creates a new journal entry that balances the debts. Two main scenarios exist:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:245 +msgid ":ref:`A bank transaction balances ` (either fully or partially) the incoming and outgoing debts." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:247 +msgid ":ref:`No bank transaction balances ` the incoming and outgoing debts. This situation can occur either when the debts balance each other completely or when the debts remain unbalanced." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:254 +msgid "Netting with bank transactions" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:256 +msgid "When a bank transaction balances (either fully or partially) the incoming and outgoing debts, reconcile the bank transaction from the :guilabel:`Bank Matching` view like any other :ref:`existing items `:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:260 +msgid "Click :guilabel:`Reconcile` on the transaction." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:261 +msgid "Select all the relevant counterpart items on both the payable and receivable side." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:262 +msgid "Click :guilabel:`Select`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:263 +msgid "If a balance remains, depending on the details, the following situations are possible:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:265 +msgid "An invoice, bill, or other item is not fully reconciled, and the remaining balance can be :ref:`reconciled ` with other bank transactions." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:267 +msgid "The bank transaction itself is not fully reconciled, and the remaining balance can be :ref:`reconciled ` as in any other situation." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:273 +msgid "Netting without bank transactions" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:275 +msgid "When no bank transaction balances the incoming and outgoing debts, there is nothing to reconcile from the :guilabel:`Bank Matching` view. However, the debt amount is visible in both the account receivable and the account payable. To balance these debts so that they no longer appear on the partner ledger, follow these steps:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:280 +msgid "Go to :menuselection:`Accounting --> Accounting --> Reconcile`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:281 +msgid "Select the journal items that debit or credit the account receivable and account payable and represent the debts to be netted." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:283 +#: ../../content/applications/finance/accounting/payments.rst:277 +msgid "Click :guilabel:`Reconcile`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:284 +msgid "If the debts don't balance each other perfectly, a :guilabel:`Write-Off Entry` popup window appears, allowing you to decide how to resolve the remaining balance:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:287 +msgid "Select :guilabel:`Allow partials` to only partially reconcile the account receivable and account payable and leave the remaining balance open." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:289 +msgid "Use a :doc:`reconciliation model button ` to write off the balance." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:290 +msgid "Manually choose an :guilabel:`Account`, and optionally adjust the :guilabel:`Tax`, :guilabel:`Journal`, :guilabel:`Label`, :guilabel:`Date`, and :guilabel:`To Check` fields." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:293 +msgid "The items are then matched, and their balance is removed from the partner ledger, representing that no payment is due for these debts." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation.rst:297 +msgid "The workflow is the same whether there are only two equal debts in the receivable and payable accounts or multiple debts in each account." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:5 +msgid "Reconciliation models are custom rules that complement the :ref:`default set of matching rules ` and enable more advanced automation of the :doc:`bank reconciliation ` process. These models are especially useful when dealing with recurring flows like writing off bank fees or :doc:`cash discounts <../customer_invoices/cash_discounts>`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:12 +msgid "`Odoo Tutorials: Reconciliation models `_" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:19 +msgid "To access reconciliation models, go to the :guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v` :guilabel:`(dropdown menu)` menu on the bank journal, and select :guilabel:`Models` under the :guilabel:`Reconciliation` section." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:23 +msgid "To create a new reconciliation model, click :guilabel:`New`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:25 +msgid "Reconciliation models can be either :guilabel:`Manual` or :guilabel:`Automated`. Manual reconciliation models appear as :ref:`possible action buttons ` when :doc:`reconciling `. Automatic reconciliation models apply automatically to transactions that meet the reconciliation model's :ref:`matching conditions `." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:31 +msgid "Each reconciliation model is configured with :ref:`matching conditions ` to identify the relevant bank transactions and :ref:`Counterpart Items ` to be generated during reconciliation." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:39 -msgid "In Odoo, different models are available by default depending on the company's fiscal localization. These can be updated if needed. Users can also create their own reconciliation models by clicking :guilabel:`New`." +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:36 +msgid "To create an activity on the transaction, select which type of activity to create in the :guilabel:`Next Activity` field." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:44 -msgid "If a record matches with several reconciliation models, the first one in the *sequence* of models is applied. You can rearrange the order by dragging and dropping the handle next to the name." +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:40 +msgid "If a record matches with several reconciliation models, the first one in the *sequence* of models is applied. Rearrange the order by dragging and dropping the handle next to the name." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:0 msgid "Rearrange the sequence of models in the list view." msgstr "" +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:49 +msgid "Matching conditions" +msgstr "" + #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:51 -msgid "Invoices/Bills perfect match" +msgid "A reconciliation model's matching conditions determine to which transactions it applies." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:53 -msgid "This model should be at the top of the *sequence* of models, as it enables Odoo to suggest matching existing invoices or bills with a bank transaction based on set conditions." +msgid "The following fields can be used to restrict the reconciliation model's availability to transactions that meet the conditions:" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:-1 -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:-1 -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:-1 -msgid "Set rules to trigger the reconciliation." +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:56 +msgid ":guilabel:`Journals`" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:59 -msgid "Odoo automatically reconciles the payment when the :guilabel:`Auto-validate` option is selected, and the model conditions are perfectly met. In this case, it expects to find on the bank statement's line the invoice/payment's reference (as :guilabel:`Label` is selected) and the partner's name (as :guilabel:`Partner is set` is selected) to suggest the correct counterpart entry and reconcile the payment automatically." +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:57 +msgid ":guilabel:`Partners`" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:66 -msgid "Invoices/Bills partial match if underpaid" +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:58 +msgid ":guilabel:`Amount`: Select :guilabel:`Is lower than or equal to`, :guilabel:`Is greater than or equal to`, or :guilabel:`Is between` and enter the amount(s)." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:60 +msgid ":guilabel:`Label`: Select :guilabel:`Contains`, :guilabel:`Not Contains`, or :guilabel:`Match Regex` and enter the transaction label's matching condition." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:64 +msgid "`Regular expressions `_, often abbreviated as **regex**, can be used in Odoo in various ways to search, validate, and manipulate data. Regex can be powerful but also complex, so it's essential to use it judiciously." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:68 -msgid "This model suggests a customer invoice or vendor bill that partially matches the payment when the amount received is slightly lower than the invoice amount, for example in the case of **cash discounts**. The difference is reconciled with the account indicated in the :guilabel:`counterpart entries` tab." +msgid "To use regular expressions in a reconciliation model, set the :guilabel:`Label` to :guilabel:`Match Regex` and add an expression. Odoo automatically retrieves the transactions that match the regex expression and the conditions specified in the reconciliation model." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:73 -msgid "The reconciliation model :guilabel:`Type` is :guilabel:`Rule to match invoices/bills`, and the :guilabel:`Payment tolerance` should be set." +msgid "A transaction must meet all conditions for the reconciliation model to be available for it. If no condition is defined (i.e., if all fields are left blank), the reconciliation model will be available for all transactions." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:80 -msgid "The :guilabel:`Payment tolerance` is only applicable to lower payments. It is disregarded when an overpayment is received." +msgid "Counterpart items" msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:84 -msgid ":doc:`../customer_invoices/cash_discounts`" +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:82 +msgid "Each line in the :guilabel:`Counterpart items` tab creates a journal item with the specified details:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:85 +msgid ":guilabel:`Partner`: Select the partner, if any, to set on the journal item." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:86 +msgid ":guilabel:`Account`: Select the account, if any, to set on the journal item." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:87 -msgid "Line with bank fees" +msgid ":guilabel:`Amount Type`: Select how the amount of the journal item should be calculated:" msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:89 -msgid "This model suggests a counterpart entry according to the rules set in the model. In this case, the reconciliation model :guilabel:`Type` is :guilabel:`Rule to suggest counterpart entry`, and the :guilabel:`Label` can be used for example, to identify the information referring to the :guilabel:`Bank fees` in the label of the transaction." +msgid ":guilabel:`Fixed`: Use a fixed amount." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:90 +msgid ":guilabel:`Percentage of balance`: Use a percentage of the remaining balance of the transaction, regardless of the transaction total." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:92 +msgid ":guilabel:`Percentage of statement line`: Use a percentage of the transaction total, regardless of the remaining balance of the transaction." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:94 +msgid ":guilabel:`From label`: Use a percentage from the transaction's label using regex." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:96 +msgid ":guilabel:`Amount`: Enter the amount to be used on the journal item. This field will be either a fixed amount, percentage amount, or regex depending on the :guilabel:`Account Type`." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:98 -msgid "`Regular expressions `_, often abbreviated as **Regex**, can be used in Odoo in various ways to search, validate, and manipulate data within the system. Regex can be powerful but also complex, so it's essential to use it judiciously and with a good understanding of the patterns you're working with." +msgid ":guilabel:`Taxes`: Select a tax, if any, to set on the journal item. This field is hidden behind the :icon:`oi-settings-adjust` :guilabel:`(settings adjust)` icon by default." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:103 -msgid "To use regular expressions in your reconciliation models, set the :guilabel:`Transaction Type` to :guilabel:`Match Regex` and add your expression. Odoo automatically retrieves the transactions that match your Regex expression and the conditions specified in your model." +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:100 +msgid ":guilabel:`Analytic`: Select an analytic distribution, if any, to set on the journal item." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:0 -msgid "Using Regex in Odoo" +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:101 +msgid ":guilabel:`Label`: Enter a label, if any, to set on the journal item." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:111 -msgid "Partner mapping" +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:104 +msgid "While neither the :guilabel:`Partner` nor :guilabel:`Account` fields are mandatory, at least one of the two must be set for the reconciliation model to work correctly." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:113 -msgid "Partner mapping allows you to establish rules for automatically matching transactions to the correct partner account, saving time and reducing the risk of errors that can occur during manual reconciliation. For example, you can create a partner mapping rule for incoming payments with specific reference numbers or keywords in the transaction description. When an incoming payment meets these criteria, Odoo automatically maps it to the corresponding customer's account." +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:106 +msgid "The reconciliation model can be used for :ref:`partner mapping ` if the :guilabel:`Counterpart Items` include a :guilabel:`Partner` but no :guilabel:`Account`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:112 +msgid "Default reconciliation models" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:114 +msgid "In Odoo, different models are available by default depending on the company's :doc:`fiscal localization <../../fiscal_localizations>`. These can be updated if needed. The following reconciliation models exist across most fiscal localizations." msgstr "" #: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:119 -msgid "To create a partner mapping rule, go to the :guilabel:`Partner Mapping` tab and enter the :guilabel:`Find Text in Label`, :guilabel:`Find Text in Notes`, and :guilabel:`Partner`." +msgid "Internal Transfers" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:121 +msgid "The :guilabel:`Internal Transfers` reconciliation model is used for making :doc:`internal transfers ` from one bank or cash account to another by moving the entire transaction's balance to a liquidity or internal transfer account. To fully transfer the amount from one account to another, this reconciliation model must be used on both the incoming journal's transaction and the outgoing journal's transaction." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:128 +msgid ":doc:`internal_transfers`" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:131 +msgid "Bank Fees" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:133 +msgid "The :guilabel:`Bank Fees` reconciliation model generates a counterpart item that moves the remaining balance of a transaction to a bank fees account (that varies by :doc:`fiscal localization <../../fiscal_localizations>`) and includes \"Bank Fees\" in the :guilabel:`Label` of the new item that it creates. This reconciliation model is only applicable to transactions whose label contains \"Bank Fees\" due to its :ref:`matching conditions `." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:146 +msgid "Cash Discount" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:148 +msgid "The :guilabel:`Cash Discount` reconciliation model generates a counterpart item that moves the remaining balance of a transaction to a cash discount account (that varies by :doc:`fiscal localization <../../fiscal_localizations>`) and includes \"Cash Discount\" in the :guilabel:`Label` of the new item that it creates." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:154 +msgid ":doc:`../customer_invoices/cash_discounts`" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:159 +msgid "Partner mapping" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:161 +msgid "Partner mapping allows you to establish rules for automatically matching transactions to the correct partner account, saving time and reducing the risk of errors that can occur during manual reconciliation. For example, you can create a partner mapping rule for incoming payments with specific reference numbers or keywords in the transaction description. When an incoming payment meets these criteria, Odoo automatically maps it to the corresponding customer's account." msgstr "" -#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:-1 -msgid "defining partner mapping" +#: ../../content/applications/finance/accounting/bank/reconciliation_models.rst:167 +msgid "To create a partner mapping rule, configure any :ref:`matching conditions `, such as a specific transaction label, and then configure the :guilabel:`Partner` and any other relevant fields in the :ref:`Counterpart Items ` tab. Setting an :guilabel:`Account` is not mandatory for partner mapping." msgstr "" #: ../../content/applications/finance/accounting/bank/transactions.rst:5 @@ -1851,156 +2120,236 @@ msgid ":doc:`Bank synchronization ` automates the process. msgstr "" #: ../../content/applications/finance/accounting/bank/transactions.rst:11 -msgid ":ref:`Import bank transactions ` delivered by your bank;" +msgid ":ref:`Import bank transactions ` delivered by your bank;" msgstr "" #: ../../content/applications/finance/accounting/bank/transactions.rst:12 -msgid ":ref:`Register bank transactions ` manually." +msgid ":ref:`Register bank transactions ` manually." msgstr "" #: ../../content/applications/finance/accounting/bank/transactions.rst:15 -msgid ":ref:`Grouping transactions by statement ` is optional." +msgid ":ref:`Grouping transactions by statement ` is optional." msgstr "" #: ../../content/applications/finance/accounting/bank/transactions.rst:20 -msgid "Import transactions" +msgid "Transaction view" msgstr "" #: ../../content/applications/finance/accounting/bank/transactions.rst:22 +msgid "The list of transactions for the bank journal is displayed in the :guilabel:`Bank Matching` view. To access it, go to the :guilabel:`Accounting Dashboard`, then either:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:30 +msgid "Unreconciled transactions display the following information while collapsed:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:32 +msgid "The date of the transaction" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:33 +msgid "A button linked to the chatter. The icon of this button can vary:" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:35 +msgid "The :icon:`fa-comments-o` :guilabel:`(comments)` icon displays only on hover and indicates that there are no attachments or activities for the transaction." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:37 +msgid "The :icon:`fa-paperclip` :guilabel:`(attachments)` icon indicates that there is an attachment on the journal entry." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:39 +msgid "The :icon:`fa-clock-o` :guilabel:`(activities)` icon indicates that there is an activity scheduled on the journal entry." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:42 +msgid "The label of the transaction" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:43 +msgid "The partner of the transaction (if one is set)" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:44 +msgid "Up to two :ref:`action buttons `, depending on the details of the transaction" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:46 +msgid "The balance of the transaction" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:49 +msgid "When the chatter of a transaction is open, a blue tag highlights the related transaction." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:50 +msgid "The chatter can be opened and closed by clicking the :icon:`fa-comments-o` :guilabel:`(comments)` icon and the :icon:`fa-times` :guilabel:`(close)` icon in the top right of the view." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:53 +msgid "Once a transaction is :doc:`reconciled `, its action buttons are replaced with the labels of the item(s) it was reconciled with or the account if it was reconciled with the :guilabel:`Set Account` action button." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:60 +msgid "Duplicate transactions" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:62 +msgid "Duplicate transactions occur when either by human error or :doc:`bank sync ` error, the same transaction is created multiple times. The duplicate transaction view identifies potential duplicate transactions so they can be selected and deleted. To access the duplicate transaction view, first access the :guilabel:`Bank Matching` view by going to the :guilabel:`Accounting Dashboard` and clicking the bank journal's name, then open the :icon:`fa-cog` :guilabel:`Actions` menu and click :guilabel:`Find Duplicate Transactions`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:69 +msgid "Potential duplicate transactions are identified based on their amount, date, and account number, or (if the transaction is created via :doc:`bank sync `) the transaction ID." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:72 +msgid "Select a :guilabel:`Starting Date` to view the corresponding potential duplicate transactions, then select the transactions to delete and click :icon:`fa-trash` :guilabel:`Delete Selected`." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:76 +msgid "Any transactions created by :doc:`bank sync ` that the bank sync provider determines to be potential duplicates are displayed in the :guilabel:`Provider Duplicates` tab. This tab is only visible if there are any potential duplicates according to the provider." +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:83 +msgid "Import transactions" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:85 msgid "Odoo supports multiple file formats to import transactions:" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:24 +#: ../../content/applications/finance/accounting/bank/transactions.rst:87 msgid "SEPA recommended Cash Management format (CAMT.053)" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:25 +#: ../../content/applications/finance/accounting/bank/transactions.rst:88 msgid "Comma-separated values (CSV)" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:26 +#: ../../content/applications/finance/accounting/bank/transactions.rst:89 +msgid "Excel (XLSX)" +msgstr "" + +#: ../../content/applications/finance/accounting/bank/transactions.rst:90 msgid "Open Financial Exchange (OFX)" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:27 +#: ../../content/applications/finance/accounting/bank/transactions.rst:91 msgid "Quicken Interchange Format (QIF)" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:28 +#: ../../content/applications/finance/accounting/bank/transactions.rst:92 msgid "Belgium: Coded Statement of Account (CODA)" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:30 -msgid "To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal, click on :guilabel:`Import File`." +#: ../../content/applications/finance/accounting/bank/transactions.rst:94 +msgid "To import a file, go to the :guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon on the :guilabel:`Bank` journal, and select :guilabel:`Import file`. Next, select the file and upload it." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:34 -msgid "Alternatively, you can also:" +#: ../../content/applications/finance/accounting/bank/transactions.rst:101 +msgid "Alternatively, access the transaction list by:" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:36 -msgid "click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon on the :guilabel:`Bank` journal and select :guilabel:`Import file`;" +#: ../../content/applications/finance/accounting/bank/transactions.rst:100 +msgid "clicking on the :guilabel:`Bank` journal's name, then clicking :guilabel:`Upload`" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:38 -msgid "or access the transaction list by clicking the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon on the :guilabel:`Bank` journal and selecting :guilabel:`Transactions`, then click the :icon:`fa-cog` :guilabel:`(gear)` icon and select :guilabel:`Import records`." +#: ../../content/applications/finance/accounting/bank/transactions.rst:101 +msgid "dragging and dropping a file on the bank journal on the :guilabel:`Accounting Dashboard`" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:42 -msgid "Next, select the file and upload it." +#: ../../content/applications/finance/accounting/bank/transactions.rst:102 +msgid "dragging and dropping a file on the :guilabel:`Bank Matching` view" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:44 -msgid "After setting the necessary formatting options and mapping the file columns with their related Odoo fields, you can run a :guilabel:`Test` and :guilabel:`Import` your bank transactions." +#: ../../content/applications/finance/accounting/bank/transactions.rst:104 +msgid "Certain file types such as CSV and XLSX, then require setting the necessary formatting options and mapping the file columns with their related Odoo fields, after which you can run a :guilabel:`Test` and :guilabel:`Import` your bank transactions. Other file types are mapped automatically." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:48 +#: ../../content/applications/finance/accounting/bank/transactions.rst:109 msgid ":doc:`/applications/essentials/export_import_data`" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:53 +#: ../../content/applications/finance/accounting/bank/transactions.rst:114 msgid "Register bank transactions manually" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:55 -msgid "You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process." +#: ../../content/applications/finance/accounting/bank/transactions.rst:116 +msgid "You can also record your bank transactions manually. To do so, go to the :guilabel:`Accounting Dashboard`, click the :guilabel:`Bank` journal's name, and then on :guilabel:`New`. The :guilabel:`Partner` field is optional to ease the reconciliation process, but the :guilabel:`Label` and :guilabel:`Date` fields are mandatory." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:62 +#: ../../content/applications/finance/accounting/bank/transactions.rst:124 msgid "Statements" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:64 +#: ../../content/applications/finance/accounting/bank/transactions.rst:126 msgid "A **bank statement** is a document provided by a bank or financial institution that lists the transactions that have occurred in a particular bank account over a specified period of time." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:67 -msgid "In Odoo Accounting, it is optional to group transactions by their related statement, but depending on your business flow, you may want to record them for control purposes." +#: ../../content/applications/finance/accounting/bank/transactions.rst:129 +msgid "In Odoo Accounting, it is optional to group transactions by their related statement, but depending on your business flow, you may want to record them for record-keeping and organizational purposes." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:71 -msgid "If you want to compare the ending balances of your bank statements with the ending balances of your financial records, *don't forget to create an opening transaction* to record the bank account balance as of the date you begin synchronizing or importing transactions. This is necessary to ensure the accuracy of your accounting." +#: ../../content/applications/finance/accounting/bank/transactions.rst:132 +msgid "To access a list of existing statements, go to the :guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v` :guilabel:`(dropdown menu)` icon next to the bank or cash journal you want to check, then click :guilabel:`Statements`." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:76 -msgid "To access a list of existing statements, go to the :guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon next to the bank or cash journal you want to check, then click :guilabel:`Statements`." +#: ../../content/applications/finance/accounting/bank/transactions.rst:137 +msgid "To ensure the ending balances of your bank statements in Odoo align with the ending balances of the statements that are provided by your bank, create an opening transaction to record the bank account balance as of the date you begin synchronizing or importing transactions. This is necessary to ensure the accuracy of your accounting." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:83 -msgid "Statement creation from the kanban view" +#: ../../content/applications/finance/accounting/bank/transactions.rst:143 +msgid "To access a statement's transactions, click :guilabel:`Transactions` directly from the :guilabel:`Bank Statements` list view or open a statement and click the :guilabel:`Statement lines` smart button." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:85 -msgid "Open the bank reconciliation (kanban) view from the :guilabel:`Accounting Dashboard` by clicking on the name of the bank journal and identify the transaction corresponding to the last (most recent) transaction of your bank statement. Click on the :guilabel:`Statement` button when hovering on the upper separator line to create a statement from that transaction down to the oldest transaction that is not yet part of a statement." +#: ../../content/applications/finance/accounting/bank/transactions.rst:150 +msgid "Statement creation" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:-1 -msgid "A \"Statement\" button is visible when hovering on the line separating two transactions." +#: ../../content/applications/finance/accounting/bank/transactions.rst:152 +msgid "The :guilabel:`Bank Matching` view displays transactions from most recent to oldest and groups them by statement, with any recent transactions that do not belong to a statement at the top. To add transactions to a statement, hover on the most recent transaction that should be included in the statement, and click the :guilabel:`Statement` button that appears on the upper separator line. Doing so creates a statement from that transaction down to the oldest transaction that is not yet part of a statement." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:94 -msgid "In the :guilabel:`Create Statement` window, fill out the statement's :guilabel:`Reference`, verify its :guilabel:`Starting Balance` and :guilabel:`Ending Balance`, and click :guilabel:`Save`." +#: ../../content/applications/finance/accounting/bank/transactions.rst:-1 +msgid "A \"Statement\" button is visible when hovering on a transaction." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:100 -msgid "Statement creation from the list view" +#: ../../content/applications/finance/accounting/bank/transactions.rst:162 +msgid "In the :guilabel:`Create Statement` window, fill out the statement's :guilabel:`Reference`, verify its :guilabel:`Starting Balance` and :guilabel:`Ending Balance`, add an attachment such as a PDF of the statement if desired, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:102 -msgid "Open the list of transactions by clicking on the name of the bank journal and switching to the list view. Select all the transactions corresponding to the bank statement, and, in the :guilabel:`Statement` column, select an existing statement or create a new one by typing its reference, clicking on :guilabel:`Create and edit...`, filling out the statement's details, and saving." +#: ../../content/applications/finance/accounting/bank/transactions.rst:167 +msgid "Transactions can also be added to statements from the list view. Select all the transactions corresponding to the bank statement, and, in the :guilabel:`Statement` column, select an existing statement or create a new one by typing its reference, clicking on :guilabel:`Create and edit...`, filling out the statement's details, and saving." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:111 +#: ../../content/applications/finance/accounting/bank/transactions.rst:175 msgid "Statement viewing, editing, and printing" msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:113 -msgid "To view an existing statement, click on the statement amount in the reconciliation (kanban) view or click on the statement name in the bank transaction list view. From here, you can edit the :guilabel:`Reference`, :guilabel:`Starting Balance`, or :guilabel:`Ending Balance`." +#: ../../content/applications/finance/accounting/bank/transactions.rst:177 +msgid "To view an existing statement, click the statement amount in the :guilabel:`Bank Matching` view or click the statement name and then the :icon:`fa-arrow-right` :guilabel:`(Internal link)` icon in the :guilabel:`Bank Matching` list view. From here, you can edit the :guilabel:`Reference`, :guilabel:`Starting Balance`, :guilabel:`Ending Balance`, and :guilabel:`Attachments`." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:118 +#: ../../content/applications/finance/accounting/bank/transactions.rst:183 msgid "Manually updating the :guilabel:`Starting Balance` automatically updates the :guilabel:`Ending Balance` based on the new value of the :guilabel:`Starting Balance` and the value of the statement's transactions." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:123 +#: ../../content/applications/finance/accounting/bank/transactions.rst:186 msgid "If the :guilabel:`Starting Balance` doesn't equal the previous statement's :guilabel:`Ending Balance`, or if the :guilabel:`Ending Balance` doesn't equal the running balance (:guilabel:`Starting Balance` plus the statement's transactions), a warning appears explaining the issue. To maintain flexibility, it is still possible to save without first resolving the issue." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:129 -msgid "To attach a digital copy (i.e., JPEG, PNG, or PDF) of the bank statement for enhanced recordkeeping, click the :icon:`fa-paperclip` :guilabel:`Attachments` button and select the file to attach." +#: ../../content/applications/finance/accounting/bank/transactions.rst:192 +msgid "To generate and print a PDF of the bank statement, click the :icon:`fa-cog` :guilabel:`(gear)` icon and click :icon:`fa-print` :guilabel:`Statement`." msgstr "" -#: ../../content/applications/finance/accounting/bank/transactions.rst:132 -msgid "To generate and print a PDF of the bank statement, click the :guilabel:`Print` button (if accessed via the reconciliation view) or click on the :icon:`fa-cog`:guilabel:`(gear)` icon and click :icon:`fa-print`:guilabel:`Statement` (if accessed via the list view)." -msgstr "" - -#: ../../content/applications/finance/accounting/bank/transactions.rst:137 -msgid "When a bank statement is generated to be printed, it is automatically added to the :guilabel:`Attachments`." +#: ../../content/applications/finance/accounting/bank/transactions.rst:196 +msgid "When a bank statement is generated to be printed, it is automatically added to the :guilabel:`Attachments` if no file was attached when creating the statement." msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:5 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:494 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:319 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:434 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:296 msgid "Customer invoices" msgstr "" @@ -2075,27 +2424,23 @@ msgid ":doc:`Currency `. If the invoice's currency d msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:50 -#: ../../content/applications/finance/accounting/vendor_bills.rst:90 +#: ../../content/applications/finance/accounting/vendor_bills.rst:93 msgid "In the :guilabel:`Invoice Lines` tab:" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:52 -#: ../../content/applications/finance/accounting/vendor_bills.rst:92 msgid ":guilabel:`Product`: Click :guilabel:`Add a line`, then search for and select the product." msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:53 -#: ../../content/applications/finance/accounting/vendor_bills.rst:93 msgid ":guilabel:`Quantity`" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:54 -#: ../../content/applications/finance/accounting/vendor_bills.rst:94 msgid ":guilabel:`Price`" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:55 -#: ../../content/applications/finance/accounting/vendor_bills.rst:95 msgid ":doc:`Taxes ` (if applicable)" msgstr "" @@ -2116,7 +2461,7 @@ msgid "Odoo initially creates invoices in :guilabel:`Draft` status. Draft invoic msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:77 -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:45 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:47 msgid ":doc:`/applications/sales/sales/invoicing/proforma`" msgstr "" @@ -2201,7 +2546,7 @@ msgid "To check all invoices that have not yet been sent, go to :menuselection:` msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:154 -#: ../../content/applications/finance/accounting/vendor_bills.rst:128 +#: ../../content/applications/finance/accounting/vendor_bills.rst:126 msgid "Payment and reconciliation" msgstr "" @@ -2210,13 +2555,13 @@ msgid "In Odoo, an invoice is considered :guilabel:`Paid` when the associated ac msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:160 -#: ../../content/applications/finance/accounting/vendor_bills.rst:147 +#: ../../content/applications/finance/accounting/vendor_bills.rst:145 msgid ":doc:`payments`" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices.rst:161 #: ../../content/applications/finance/accounting/payments.rst:19 -#: ../../content/applications/finance/accounting/vendor_bills.rst:148 +#: ../../content/applications/finance/accounting/vendor_bills.rst:146 msgid ":doc:`bank/reconciliation`" msgstr "" @@ -2542,7 +2887,7 @@ msgid "Several use cases can lead to a credit note, such as:" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:10 -msgid "a mistake in the invoice" +msgid "a mistake in the invoice or vendor bill" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:11 @@ -2566,7 +2911,7 @@ msgid "Issue a customer credit note" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:29 -msgid "In most cases, credit notes are created directly from the corresponding invoices. To do so, go to :menuselection:`Accounting --> Customers --> Invoices`, open the relevant :guilabel:`Invoice`, and click :guilabel:`Credit Note`." +msgid "In most cases, credit notes are created directly from the corresponding invoices. To do so, go to :menuselection:`Accounting --> Customers --> Invoices`, open the relevant invoice, and click :guilabel:`Credit Note`." msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:33 @@ -2594,72 +2939,68 @@ msgid "Issue a customer debit note" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:57 -msgid "To create a debit note, go to :menuselection:`Accounting --> Customers --> Invoices` and follow these steps:" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:60 -msgid "Select the desired invoice(s), click :icon:`fa-cog` :guilabel:`Actions` and select :guilabel:`Create Debit Note`." +msgid "In most cases, debit notes are created directly from the corresponding invoices. To do so, go to :menuselection:`Accounting --> Customers --> Invoices`, open the relevant invoice, and click :guilabel:`Debit Note`. Then, follow these steps:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:62 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:61 msgid "In the :guilabel:`Create Debit Note` window, fill in the :guilabel:`Reason` and update the :guilabel:`Use Specific Journal` and :guilabel:`Debit Note Date` fields if needed." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:64 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:63 msgid "Enable the :guilabel:`Copy Lines` option to copy the invoice lines and click :guilabel:`Create Debit Note`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:66 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:65 msgid "In the debit note, update the :guilabel:`Product` and :guilabel:`Quantity` and click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:70 -msgid "To create a debit note from the invoice form view, click the :icon:`fa-cog` :guilabel:`(gear)` icon and select :guilabel:`Debit Note`." +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:69 +msgid "To create a debit note from the invoice list view, select the desired invoice(s), click :icon:`fa-cog` :guilabel:`Actions`, and select :guilabel:`Create Debit Note`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:76 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:75 msgid "Record a vendor refund" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:78 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:77 msgid "Vendor refunds or vendor credit notes are recorded the same way as :ref:`credit notes `:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:81 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:80 msgid "To record a vendor refund or a vendor credit note directly from the corresponding vendor bill, go to :menuselection:`Accounting --> Vendors --> Bills`, open the relevant vendor bill, and click :guilabel:`Credit Note`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:85 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:84 msgid "To record it from scratch, go to :menuselection:`Accounting --> Vendors --> Refund`, and click on :guilabel:`New`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:91 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:90 msgid "Record a vendor debit note" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:93 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:92 msgid "Debit notes from vendors are recorded the same way :ref:`debit notes are issued to customers `." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:96 -msgid "To record a debit note, go to :menuselection:`Accounting --> Vendors --> Bills` and select the desired bill(s). Click :icon:`fa-cog` :guilabel:`Actions` and select :guilabel:`Create Debit Note`." +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:95 +msgid "To record a debit note, go to :menuselection:`Accounting --> Vendors --> Bills` open the relevant vendor bill, and click :guilabel:`Debit Note`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:100 -msgid "To create a debit note from the vendor bill form view, click the :icon:`fa-cog` :guilabel:`(gear)` icon and select :guilabel:`Debit Note`." +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:99 +msgid "To create a debit note from the vendor bill list view, select the desired vendor bill(s), click :icon:`fa-cog` :guilabel:`Actions` and select :guilabel:`Create Debit Note`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:106 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:105 #: ../../content/applications/finance/accounting/customer_invoices/payment_terms.rst:156 #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:135 msgid "Journal entries" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:108 -msgid "Creating a credit/debit note from an invoice/bill generates a **reverse entry** that cancels out the journal items from the original invoice." +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:107 +msgid "Creating a credit/debit note from an invoice/bill generates a **reverse entry** that cancels out the journal items from the original invoice/bill." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:112 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:111 msgid "The journal entry of an invoice:" msgstr "" @@ -2667,7 +3008,7 @@ msgstr "" msgid "Invoice journal entry" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:117 +#: ../../content/applications/finance/accounting/customer_invoices/credit_notes.rst:116 msgid "The credit note's journal entry generated to reverse the original invoice above:" msgstr "" @@ -3036,416 +3377,379 @@ msgid "Electronic invoicing (:abbr:`EDI (electronic data interchange)`)" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:5 -msgid "EDI, or electronic data interchange, is the inter-company communication of business documents, such as purchase orders and invoices, in a standard format. Sending documents according to an EDI standard ensures that the machine receiving the message can interpret the information correctly. Various EDI file formats exist and are available depending on your company's country." +msgid "EDI, or electronic data interchange, is the inter-company communication of business documents, such as purchase orders and invoices, in a standard format. Sending documents according to an EDI standard ensures that the system receiving the message can interpret the information correctly. Various EDI file formats are available depending on your company's country." msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:10 -msgid "EDI feature enables automating the administration between companies and might also be required by some governments for fiscal control or to facilitate the administration." +msgid "The EDI feature allows companies to automate administrative processes. It may also be required by some governments for fiscal control or to support administrative procedures. Electronic sending of documents such as customer invoices, credit notes, or vendor bills is one application of EDI." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:13 -msgid "Electronic invoicing of your documents such as customer invoices, credit notes or vendor bills is one of the application of EDI." -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:16 -msgid "Odoo supports e-invoicing in many countries. Refer to the country's page for more details:" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:14 +msgid "Odoo supports e-invoicing in many countries. Refer to the :ref:`country's page ` for more details." msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:18 -msgid ":doc:`Argentina `" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:19 -msgid ":doc:`Austria `" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:20 -msgid ":doc:`Belgium `" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:21 -msgid ":doc:`Brazil `" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:22 -msgid ":doc:`Chile `" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:23 -msgid ":doc:`Colombia `" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:24 -msgid ":doc:`Croatia `" +msgid ":doc:`Fiscal localizations documentation <../../fiscal_localizations>`" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:25 -msgid ":doc:`Ecuador `" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:26 -msgid ":doc:`Estonia `" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:27 -msgid ":doc:`Finland `" +msgid "By default, the format available in the :ref:`send window ` depends on the customer's country." msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:28 -msgid ":doc:`Guatemala `" +msgid "To define a specific e-invoicing format for a customer, go to :menuselection:`Accounting --> Customers --> Customers`, access the customer form, go to the :guilabel:`Accounting` tab, and select the appropriate :guilabel:`Format` in the :guilabel:`Customer invoices` section." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:29 -msgid ":doc:`Hungary `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:35 +msgid "E-invoice generation" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:30 -msgid ":doc:`Ireland `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:37 +msgid "From a confirmed invoice, click :guilabel:`Send`. In the :guilabel:`Print & Send` window, enable the relevant e-invoicing format option (e.g., :guilabel:`by Peppol`), then click :guilabel:`Send` to generate and attach the corresponding e-invoicing XML file." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:31 -msgid ":doc:`Italy `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:44 +#: ../../content/applications/finance/fiscal_localizations/australia.rst:373 +msgid "Peppol" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:32 -msgid ":doc:`Latvia `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:46 +msgid "The `Peppol `_ network ensures the exchange of documents and information between companies and governmental authorities. It is primarily used for electronic invoicing, and its access points (connectors to the Peppol network) allow companies to send electronic documents such as customer invoices and credit notes and receive documents like vendor bills and refunds." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:33 -msgid ":doc:`Lithuania `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:51 +msgid "In this case, Odoo acts as both an **access point** and an :abbr:`SMP (Service Metadata Publisher)` and enables electronic invoicing transactions without the need to send invoices or bills by email or post." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:34 -msgid ":doc:`Luxembourg `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:56 +msgid "Peppol registration is **free** and available in Odoo Community." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:35 -msgid ":doc:`Mexico `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:57 +msgid "Supported formats for sending documents include **BIS Billing 3.0, XRechnung CIUS, and NLCIUS**." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:36 -msgid ":doc:`Netherlands `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:0 +msgid "The following **countries** are eligible for **Peppol registration in Odoo**:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:37 -msgid ":doc:`Norway `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:0 +msgid "Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus, Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece, Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia, Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania, Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State)." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:38 -msgid ":doc:`Peru `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:69 +msgid "Registration" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:39 -msgid ":doc:`Romania `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:71 +msgid "To register on Peppol, go to :menuselection:`Accounting --> Configuration --> Settings` and scroll to the :guilabel:`PEPPOL Electronic Invoicing` section. Then, follow these steps:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:40 -msgid ":doc:`Spain `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:74 +msgid "Click :guilabel:`Activate Electronic Invoicing` and fill in the following fields:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:41 -msgid ":doc:`Spain - Basque Country `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:76 +msgid "Using the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon, make sure the relevant country-specific Peppol endpoint identifier is selected in the dropdown list, then enter your Peppol endpoint (usually a Company Registry or VAT number)." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:42 -msgid ":doc:`Uruguay `" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:79 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:89 +#: ../../content/applications/finance/fiscal_localizations/brazil.rst:151 +#: ../../content/applications/finance/fiscal_localizations/chile.rst:237 +#: ../../content/applications/finance/fiscal_localizations/chile.rst:1100 +msgid ":guilabel:`Email`" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:45 -msgid ":doc:`Fiscal localizations documentation <../../fiscal_localizations>`" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:80 +msgid ":guilabel:`Phone`, including the country code (e.g., `+32` in Belgium)" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:46 -msgid "`Magic Sheet - E-invoicing in Odoo [PDF] `_" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:82 +msgid "Click :guilabel:`Activate Peppol`. The registration is then pending activation and should be automatically activated within a day." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:54 -msgid "By default, the format available in the :ref:`send window ` depends on your customer's country." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:86 +msgid "`Peppol endpoint - OpenPeppol eDEC Code Lists `_ (open the \"Participant Identifier Schemes\" as HTML page)" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:57 -msgid "You can define a specific e-invoicing format for each customer. To do so, go to :menuselection:`Accounting --> Customers --> Customers`, open the customer form, go to the :guilabel:`Accounting` tab and select the appropriate format." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:89 +msgid "Define where documents should be received:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "Select an EDI format for a specific customer" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:91 +msgid ":guilabel:`Receive in Journal`: If necessary, select another purchase journal in the :guilabel:`Incoming Invoices Journal` field." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:65 -msgid "National electronic invoicing" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:93 +msgid ":doc:`Receive in Documents <../../../productivity/documents>`: Select a folder in the :guilabel:`Document Workspace` field if multiple purchase journals are used." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:67 -msgid "Depending on your company's country (e.g., :doc:`Italy <../../fiscal_localizations/italy>`, :doc:`Spain <../../fiscal_localizations/spain>`, :doc:`Mexico <../../fiscal_localizations/mexico>`, etc.), you may be required to issue e-invoicing documents in a specific format for all your invoices. In this case, you can define a default e-invoicing format for your sales journal." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:96 +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:210 +#: ../../content/applications/finance/fiscal_localizations/jordan.rst:135 +#: ../../content/applications/finance/fiscal_localizations/vietnam.rst:130 +msgid "Click :guilabel:`Save`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:73 -msgid "To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open your sales journal, go to the :guilabel:`Advanced Settings` tab, and enable the formats you need for this journal." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:98 +msgid "All invoices and vendor bills can then be sent/received directly using Peppol." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:79 -msgid "E-invoices generation" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:101 +msgid "To update the :guilabel:`Primary contact email`, click :icon:`oi-arrow-right` :guilabel:`Advanced Configuration`, modify it, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:81 -msgid "From a confirmed invoice, click :guilabel:`Send & Print` to open the send window. Check the e-invoicing option to generate and attach the e-invoice file." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:103 +msgid "If you are using an access point from a previous provider, make sure to deregister from it first, then register with your new access point, unless it's Hermes (BOSA). If using Hermes (BOSA), no action is needed; the migration is handled automatically." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "The Peppol option is checked and an e-invoicing XML file is attached to the email." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:108 +msgid "To manually trigger the scheduled action used to check the Peppol registration status, enable :ref:`developer mode `, open the Settings app, go to :menuselection:`Settings --> Technical --> Scheduled actions`, and search for :guilabel:`Peppol: update participant status`. Open the scheduled action, then click :guilabel:`Run Manually`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:90 -#: ../../content/applications/finance/fiscal_localizations/australia.rst:373 -msgid "Peppol" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:112 +msgid "To try Peppol without sending real data, enable demo mode by selecting :guilabel:`Odoo Demo ID` as the Peppol endpoint identifier. To switch back to production mode, :ref:`deregister from the demo mode ` and :ref:`register ` in production." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:92 -msgid "The `Peppol `_ network ensures the exchange of documents and information between enterprises and governmental authorities. It is primarily used for electronic invoicing, and its access points (connectors to the Peppol network) allow enterprises to exchange electronic documents." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:120 +msgid "Contact verification" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:97 -msgid "Odoo is an **access point** and an :abbr:`SMP (Service Metadata Publisher)`, enabling electronic invoicing transactions without the need to send invoices and bills by email or post." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:122 +msgid "Before sending an invoice to a contact using Peppol, make sure the contact is registered as a Peppol participant. To do so, follow these steps:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:100 -msgid "If not done yet, :ref:`install ` the :guilabel:`Peppol` module (`account_peppol`)." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:125 +msgid "Go to :menuselection:`Accounting --> Customers --> Customers` and access the customer's form." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:103 -msgid "Peppol registration is **free** and available in Odoo Community" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:126 +msgid "In the :guilabel:`Accounting tab`, check the following information in the :guilabel:`Customer invoices` section:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:104 -msgid "You can send **Customer Invoices** and **Credit Notes** and receive **Vendor Bills** and **Refunds** via Peppol." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:129 +msgid ":guilabel:`eInvoice format`: Select the relevant format." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:106 -msgid "You can send and receive in one of the following supported document formats: **BIS Billing 3.0, XRechnung CIUS, NLCIUS**." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:130 +msgid "Using the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon, make sure the relevant country-specific Peppol endpoint identifier is selected in the dropdown list, then enter the customer's endpoint identifier, usually a Company Registry or VAT number." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:0 -msgid "The following **countries** are eligible for **Peppol registration in Odoo**:" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:134 +msgid "To verify the contact, enable :ref:`developer mode ` and click :guilabel:`Verify`. Its :guilabel:`Peppol endpoint verification` is marked as :guilabel:`Valid` if the contact is found on the Peppol network." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:0 -msgid "Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus, Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece, Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia, Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania, Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State)" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 +msgid "verify contact registration" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:118 -msgid "Registration" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:142 +msgid "While Odoo prefills the endpoint number based on the information available for a contact, verifying these details with the contact is recommended." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:120 -msgid "Go to :menuselection:`Accounting --> Configuration --> Settings`. If you do not have the Peppol module installed, first tick the :guilabel:`Enable PEPPOL` checkbox and then **manually save**. Click :guilabel:`Start sending via Peppol` to open the registration form." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:148 +msgid "Send invoices" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:125 -msgid "This registration form also pops up if you choose to :guilabel:`Send & Print` an invoice via Peppol without completing the registration process." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:150 +msgid "All posted invoices that are ready to be sent via Peppol can be viewed in the :guilabel:`Invoices` list view in the following ways:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "Peppol registration button" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:153 +msgid "Use the :icon:`oi-settings-adjust` (:guilabel:`adjust settings`) button to add the :guilabel:`Peppol status` column." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:131 -msgid "You can register either as a sender or a receiver. A sender can only send invoices and credit notes on Odoo via Peppol, without ever registering as a Peppol participant on Odoo SMP. If you have an existing Peppol registration elsewhere that you want to keep, but want to send invoices from your Odoo database and receive other documents in another software, register as a **sender**." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:155 +msgid "Apply the :guilabel:`Peppol Ready` filter in the search bar." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:137 -msgid "You can always register as a sender first and register to receive documents later." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:157 +msgid "To send the invoice to the customer via Peppol, click :guilabel:`Send` on the confirmed invoice form. In the :guilabel:`Send` window, enable the :guilabel:`by Peppol` option and click :guilabel:`Send`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:138 -msgid "When registering, you can specify if you would also like to receive documents." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:162 +msgid ":ref:`Multiple invoices ` can also be sent in batches via Peppol." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "Peppol registration form" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:164 +msgid "Set the preferred :ref:`Invoice sending ` method for a customer to :guilabel:`by Peppol` in the :guilabel:`Customer Invoices` section of the customer form's :guilabel:`Accounting` tab." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:143 -msgid "Fill in the following information:" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:168 +msgid "The status is updated to :guilabel:`Done` once the invoices have been successfully delivered to the contact's access point." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:145 -msgid "Check the receiver box if you want to register on Odoo SMP. If you are migrating from another service provider, insert the :guilabel:`Migration key` from the previous provider (the field becomes visible after you tick the checkbox)." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:174 +msgid "Receive vendor bills" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:148 -msgid ":guilabel:`E-Address Scheme`: the Peppol Electronic Address Scheme usually depends on your company's country. Odoo often prefills this with the most commonly used EAS code in your country. For example, the preferred EAS code for most companies in Belgium is `0208`." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:176 +msgid "New documents received via Peppol are checked multiple times a day. Depending on the :ref:`registration settings `, received documents are automatically:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:151 -msgid ":guilabel:`Endpoint`: this is usually a Company Registry number or a VAT number." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:180 +msgid "either imported into the purchase journal set in the :guilabel:`PEPPOL Electronic Invoicing` section, and corresponding vendor bills are created as drafts;" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:152 -msgid ":guilabel:`Phone`: phone number including the country code (e.g., `+32` in Belgium)." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:182 +msgid "or received via the :ref:`Documents app `." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:153 -msgid ":guilabel:`Email`: this is the email Odoo can use to contact you regarding your Peppol registration." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:186 +msgid "To manually trigger the scheduled action used to retrieve incoming Peppol documents, enable :ref:`developer mode `, open the Settings app, go to :menuselection:`Settings --> Technical --> Scheduled actions`, and search for :guilabel:`Peppol: retrieve new documents`. Open the scheduled action, then click :guilabel:`Run Manually`." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:156 -msgid "If you want to explore or demo Peppol, you can choose to register in :guilabel:`Demo` mode. Otherwise, select :guilabel:`Live`." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:194 +msgid "Vendor bills reception in Documents" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:160 -msgid "Selecting :guilabel:`Demo` simulates everything in Odoo. There is no sending, receiving, or partner verification." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:197 +msgid "Make sure the :guilabel:`Documents - Import from Peppol` (`documents_account_peppol`) module is :ref:`installed `." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:162 -msgid "For **advanced users only**, it is possible to run tests on Peppol's test network. The server allows to register on Peppol and send/receive test invoices to/from other participants. To do so, enable the :ref:`developer-mode`, open the **Settings** app, go to :menuselection:`Technical --> System Parameters`, and search for `account_peppol.edi.mode`. Click the parameter and change the :guilabel:`Value` to `test`. Go back to the Peppol setup menu in the **Settings** app. The option :guilabel:`Test` is now available." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:200 +msgid "To receive vendor bills via the :doc:`Documents app <../../../productivity/documents>`, follow these steps:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:0 -msgid "Peppol test mode parameter" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:203 +msgid "In the Documents app, create a specific :ref:`folder ` or enable :ref:`file centralization ` for :guilabel:`Accounting` documents." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:173 -msgid "`Peppol EAS - European Commision `_" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:205 +msgid "Open the Accounting app, go to :menuselection:`Accounting --> Configuration --> Settings`, and scroll to the :guilabel:`PEPPOL Electronic Invoicing` section." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:174 -msgid "`Peppol Endpoint - OpenPeppol eDEC Code Lists `_ (open the \"Participant Identifier Schemes\" as HTML page)" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:207 +msgid "In the :guilabel:`Document Workspace` field, choose the relevant folder." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:177 -msgid "When set up, request a verification code to be sent to you by clicking :guilabel:`Send a registration code by SMS`. A text message containing a code is sent to the phone number provided to finalize the verification process." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:208 +msgid "Use the :guilabel:`Document Tags` field to add tags to incoming Peppol documents for easy identification." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "phone validation" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:212 +msgid "Then, open the Document app, navigate to the appropriate folder, select the relevant vendor bills, and click :guilabel:`Create Vendor Bill`. The corresponding vendor bill is then created." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:184 -msgid "Once you enter the code and click :guilabel:`Register`, your Peppol participant status is updated. If you chose to only send documents, then the status changes to :guilabel:`Can send but not receive`. If you opted to receive documents as well, the status changes to :guilabel:`Can send, pending registration to receive`. In that case, it should be automatically activated within a day." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:218 +msgid "Peppol deregistration from Odoo" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:190 -msgid "Then, set the default journal for receiving vendor bills in the :guilabel:`Incoming Invoices Journal`." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:220 +msgid "Only one Peppol receiver registration can be active for each Peppol endpoint identifier at a time. To stop using Odoo as the Peppol access point, e.g., to switch to another provider or reconfigure the registration for a new database, you must first deregister from Peppol. To do so, go to :menuselection:`Accounting --> Configuration --> Settings`, scroll down to the :guilabel:`PEPPOL Electronic Invoicing` section, and click :icon:`oi-arrow-right` :guilabel:`Advanced Configuration`. Then click :guilabel:`Remove from Peppol` and confirm." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:194 -msgid "To manually trigger the cron that checks the registration status, enable the :ref:`developer-mode`, then go to :menuselection:`Settings --> Technical --> Scheduled Actions`, and search for the :guilabel:`PEPPOL: update participant status` action." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:227 +msgid "Once removed, the Peppol registration is deleted from the database, and documents can no longer be sent or received via Peppol in Odoo." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:198 -msgid "Your receiver application status should be updated soon after you are registered on the Peppol network." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:233 +msgid "Country-specific e-invoicing details" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "receiver application" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:235 +msgid "Refer to the following pages for detailed, country-specific information:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:204 -msgid "All invoices and vendor bills can now be sent directly using the Peppol network." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:237 +msgid ":doc:`Argentina `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:207 -msgid "To update the email that Odoo can use to contact you, modify the email and click :guilabel:`Update contact details`." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:238 +msgid ":doc:`Austria `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:211 -msgid "Configure Peppol services" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:239 +msgid ":doc:`Belgium `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:213 -msgid "Once you are registered on Odoo SMP, the :guilabel:`Configure Peppol Services` button becomes visible to allow you to enable or disable document formats that other participants can send you via Peppol. By default, all document formats supported by Odoo are enabled (depending on the installed modules)." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:240 +msgid ":doc:`Brazil `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:219 -msgid "Contact verification" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:241 +msgid ":doc:`Chile `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:221 -msgid "Before sending an invoice to a contact using the Peppol network, it is necessary to verify that they are also registered as a Peppol participant." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:242 +msgid ":doc:`Colombia `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:224 -msgid "To do so, go to :menuselection:`Accounting --> Customers --> Customers` and open the customer's form. Then go to :menuselection:`Accounting tab --> Electronic Invoicing`, select the correct format, and make sure their :guilabel:`Peppol EAS code` and the :guilabel:`Endpoint` are filled in. Then, click :guilabel:`Verify`. If the contact exists on the network, their Peppol endpoint validity is set to Valid." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:243 +msgid ":doc:`Croatia `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "verify contact registration" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:244 +msgid ":doc:`Ecuador `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:234 -msgid "While Odoo prefills both the EAS code and the Endpoint number based on the information available for a contact, it is better to confirm these details directly with the contact." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:245 +msgid ":doc:`Estonia `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:237 -msgid "It is possible to verify the Peppol participant status of several customers at once. To do so, go to :menuselection:`Accounting --> Customers --> Customers` and switch to the list view. Select the customers you want to verify and then click :menuselection:`Actions --> Verify Peppol`." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:246 +msgid ":doc:`Finland `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:241 -msgid "If the participant is registered on the Peppol network but cannot receive the format you selected for them, the :guilabel:`Peppol endpoint validity` label changes to :guilabel:`Cannot receive this format`." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:247 +msgid ":doc:`Guatemala `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "verify contact ubl format" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:248 +msgid ":doc:`Hungary `" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:249 -msgid "Send invoices" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:251 -msgid "Once ready to send an invoice via the Peppol network, simply click :guilabel:`Send & Print` on the invoice form. To queue multiple invoices, select them in the list view and click :menuselection:`Actions --> Send & Print`; they will be sent in a batch later on. Both :guilabel:`BIS Billing 3.0` and :guilabel:`Send via PEPPOL` checkboxes need to be ticked." -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "Send peppol invoice" +msgid ":doc:`Ireland `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:259 -msgid "Posted invoices that can be sent via Peppol are marked as :guilabel:`Peppol Ready`. To display them, use the :guilabel:`Peppol Ready` filter or access the Accounting dashboard and click :guilabel:`Peppol ready invoices` on the corresponding sales journal." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:250 +msgid ":doc:`Italy `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "Filter Peppol ready invoices" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:251 +msgid ":doc:`Latvia `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:266 -msgid "Once the invoices are sent via Peppol, the status is changed to :guilabel:`Processing`. The status is changed to `Done` after they have been successfully delivered to the contact's Access Point." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:252 +msgid ":doc:`Lithuania `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "Peppol message status" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:253 +msgid ":doc:`Luxembourg `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:274 -msgid "By default, the Peppol status column is hidden on the Invoices list view. You can choose to have it displayed by selecting it from the optional columns, accessible from the top right corner of the Invoices list view." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:254 +msgid ":doc:`Mexico `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:278 -msgid "A cron runs regularly to check the status of these invoices. It is possible to check the status before the cron runs by clicking :guilabel:`Fetch Peppol invoice status` in the corresponding sales journal on the Accounting dashboard." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:255 +msgid ":doc:`Netherlands `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "Fetch invoice Peppol status" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:256 +msgid ":doc:`Norway `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:286 -msgid "Receive vendor bills" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:257 +msgid ":doc:`Peru `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:288 -msgid "Once a day, a cron checks whether any new documents have been sent to you via the Peppol network. These documents are imported, and the corresponding vendor bills are created automatically as drafts." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:258 +msgid ":doc:`Romania `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "peppol receive bills" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:259 +msgid ":doc:`Spain `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:295 -msgid "If you want to retrieve incoming Peppol documents before the cron runs, you can do so from the Accounting dashboard on the main Peppol purchase journal that you set up in the settings. Just click :guilabel:`Fetch from Peppol`." +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:260 +msgid ":doc:`Spain - Basque Country `" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:-1 -msgid "Fetch bills from Peppol" +#: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing.rst:261 +msgid ":doc:`Uruguay `" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing/argentina.rst:5 @@ -3992,7 +4296,7 @@ msgid "Odoo invoicing module makes it easy for businesses to adhere to Finland's msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing/finland.rst:30 -msgid "**Supported formats**: Odoo supports the e-invoicing formats widely used in Finland, including TEAPPSXML, Finvoice, and the standardized XML in :abbr:`UBL (Universal Business Language)` format required for Peppol compliance. This ensures compatibility with Finnish platforms such as Handi for public sector invoicing and eKuitti for enhanced receipt management and e-invoicing." +msgid "**Supported formats**: Odoo supports the standardized XML in :abbr:`UBL (Universal Business Language)` format required for Peppol compliance. This ensures compatibility with regulations for sending invoices to the Finnish government, as well as sending invoices to customers and receiving invoices from vendors." msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/electronic_invoicing/finland.rst:34 @@ -4852,6 +5156,7 @@ msgid "Depending on your business, you may opt for one of the following way to c msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/overview.rst:16 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1475 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:86 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:94 #: ../../content/applications/finance/fiscal_localizations/switzerland.rst:130 @@ -4861,211 +5166,199 @@ msgstr "" msgid "Sales" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:19 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:21 msgid "Sales Order ‣ Invoice" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:21 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:23 msgid "In most companies, salespeople create quotations that become sales order once they are validated. Then, draft invoices are created based on the sales order. You have different options like:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:25 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:27 msgid "Invoice manually: use a button on the sale order to trigger the draft invoice" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:28 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:30 msgid "Invoice before delivery: invoice the full order before triggering the delivery order" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:31 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:33 msgid "Invoice based on delivery order: see next section" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:33 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:35 msgid "Invoice before delivery is usually used by the eCommerce application when the customer pays at the order and we deliver afterwards. (pre-paid)" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:37 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:39 msgid "For most other use cases, it's recommended to invoice manually. It allows the salesperson to trigger the invoice on demand with options: invoice the whole order, invoice a percentage (advance), invoice some lines, invoice a fixed advance." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:42 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:44 msgid "This process is good for both services and physical products." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:48 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:50 +msgid "Invoices can also be generated from sales orders created in the :doc:`Repairs app ` for invoicing after-sales services." +msgstr "" + +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:55 msgid "Sales Order ‣ Delivery Order ‣ Invoice" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:50 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:57 msgid "Retailers and eCommerce usually invoice based on delivery orders, instead of sales order. This approach is suitable for businesses where the quantities you deliver may differs from the ordered quantities: foods (invoice based on actual Kg)." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:55 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:62 msgid "This way, if you deliver a partial order, you only invoice for what you really delivered. If you do back orders (deliver partially and the rest later), the customer will receive two invoices, one for each delivery order." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:61 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:68 msgid ":doc:`/applications/sales/sales/invoicing/invoicing_policy`" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:64 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:71 msgid "eCommerce Order ‣ Invoice" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:66 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:73 msgid "An eCommerce order will also trigger the creation of the order when it is fully paid. If you allow paying orders by check or wire transfer, Odoo only creates an order and the invoice will be triggered once the payment is received." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:72 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:79 msgid "Contracts" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:75 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:82 msgid "Regular Contracts ‣ Invoices" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:77 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:84 msgid "If you use contracts, you can trigger invoice based on time and material spent, expenses or fixed lines of services/products. Every month, the salesperson will trigger invoice based on activities on the contract." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:81 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:88 msgid "Activities can be:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:83 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:90 msgid "fixed products/services, coming from a sale order linked to this contract" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:84 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:91 msgid "materials purchased (that you will re-invoice)" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:85 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:92 msgid "time and material based on timesheets or purchases (subcontracting)" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:86 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:93 msgid "expenses like travel and accommodation that you re-invoice to the customer" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:88 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:95 msgid "You can invoice at the end of the contract or trigger intermediate invoices. This approach is used by services companies that invoice mostly based on time and material. For services companies that invoice on fix price, they use a regular sales order." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:94 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:101 msgid ":doc:`/applications/sales/sales/invoicing/time_materials`" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:95 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:102 msgid ":doc:`/applications/sales/sales/invoicing/expense`" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:96 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:103 msgid ":doc:`/applications/sales/sales/invoicing/milestone`" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:99 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:106 msgid "Recurring Contracts ‣ Invoices" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:101 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:108 msgid "For subscriptions, an invoice is triggered periodically, automatically. The frequency of the invoicing and the services/products invoiced are defined on the contract." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:106 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:113 msgid ":doc:`/applications/sales/subscriptions`" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:109 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:116 msgid "Others" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:112 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:119 msgid "Creating an invoice manually" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:114 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:121 msgid "Users can also create invoices manually without using contracts or a sales order. It's a recommended approach if you do not need to manage the sales process (quotations), or the delivery of the products or services." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:119 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:126 msgid "Even if you generate the invoice from a sales order, you may need to create invoices manually in exceptional use cases:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:122 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:129 msgid "if you need to create a refund" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:124 -msgid "If you need to give a discount" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:126 -msgid "if you need to change an invoice created from a sales order" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:128 -msgid "if you need to invoice something not related to your core business" -msgstr "" - #: ../../content/applications/finance/accounting/customer_invoices/overview.rst:131 -msgid "Specific modules" +msgid "If you need to give a discount" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/overview.rst:133 -msgid "Some specific modules are also able to generate draft invoices:" +msgid "if you need to change an invoice created from a sales order" msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/overview.rst:135 -msgid "**membership**: invoice your members every year" -msgstr "" - -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:137 -msgid "**repairs**: invoice your after-sale services" +msgid "if you need to invoice something not related to your core business" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:140 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:138 msgid "Resequencing of the invoices" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:142 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:140 msgid "It remains possible to resequence the invoices but with some restrictions:" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:144 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:142 msgid "The feature does not work when entries are previous to a lock date." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:145 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:143 msgid "The feature does not work if the sequence is inconsistent with the month of the entry." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:146 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:144 msgid "It does not work if the sequence leads to a duplicate." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:147 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:145 msgid "The order of the invoice remains unchanged." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:148 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:146 msgid "It is useful for people who use a numbering from another software and who want to continue the current year without starting over from the beginning." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:152 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:150 msgid "Invoice digitization with optical character recognition (OCR)" msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:154 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:152 msgid "**Invoice digitization** is the process of automatically encoding traditional paper invoices into invoices forms in your accounting." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:157 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:155 msgid "Odoo uses OCR and artificial intelligence technologies to recognize the content of the documents. Vendor bills and customer invoices forms are automatically created and populated based on scanned invoices." msgstr "" -#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:162 +#: ../../content/applications/finance/accounting/customer_invoices/overview.rst:160 msgid ":doc:`/applications/finance/accounting/vendor_bills/invoice_digitization`" msgstr "" @@ -5311,6 +5604,11 @@ msgstr "" #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:224 #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:234 #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:250 +#: ../../content/applications/finance/esg.rst:210 +#: ../../content/applications/finance/esg.rst:224 +#: ../../content/applications/finance/esg.rst:236 +#: ../../content/applications/finance/esg.rst:255 +#: ../../content/applications/finance/esg.rst:267 msgid "Account" msgstr "" @@ -5554,7 +5852,7 @@ msgid "Pingen (Odoo Snailmail service provider) scans the area to process the ad msgstr "" #: ../../content/applications/finance/accounting/customer_invoices/snailmail.rst:45 -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:85 +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:199 msgid "Pricing" msgstr "" @@ -5726,7 +6024,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:131 #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:200 #: ../../content/applications/finance/fiscal_localizations/jordan.rst:60 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:189 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:208 #: ../../content/applications/finance/fiscal_localizations/peru.rst:128 #: ../../content/applications/finance/fiscal_localizations/peru.rst:300 #: ../../content/applications/finance/fiscal_localizations/saudi_arabia.rst:121 @@ -6023,7 +6321,7 @@ msgstr "" #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:279 #: ../../content/applications/finance/fiscal_localizations/france.rst:391 #: ../../content/applications/finance/fiscal_localizations/france.rst:391 -#: ../../content/applications/finance/fiscal_localizations/india.rst:206 +#: ../../content/applications/finance/fiscal_localizations/india.rst:209 msgid "0" msgstr "" @@ -6112,8 +6410,8 @@ msgstr "" #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:201 #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:242 #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:289 -#: ../../content/applications/finance/fiscal_localizations/india.rst:192 -#: ../../content/applications/finance/fiscal_localizations/india.rst:206 +#: ../../content/applications/finance/fiscal_localizations/india.rst:195 +#: ../../content/applications/finance/fiscal_localizations/india.rst:209 msgid "2" msgstr "" @@ -6262,9 +6560,9 @@ msgstr "" #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:291 #: ../../content/applications/finance/accounting/get_started/avg_price_valuation.rst:293 #: ../../content/applications/finance/fiscal_localizations/france.rst:393 -#: ../../content/applications/finance/fiscal_localizations/india.rst:190 -#: ../../content/applications/finance/fiscal_localizations/india.rst:194 -#: ../../content/applications/finance/fiscal_localizations/india.rst:204 +#: ../../content/applications/finance/fiscal_localizations/india.rst:193 +#: ../../content/applications/finance/fiscal_localizations/india.rst:197 +#: ../../content/applications/finance/fiscal_localizations/india.rst:207 msgid "1" msgstr "" @@ -6604,7 +6902,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:283 #: ../../content/applications/finance/fiscal_localizations/germany.rst:9 #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:173 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:988 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1089 #: ../../content/applications/finance/fiscal_localizations/romania.rst:69 #: ../../content/applications/finance/fiscal_localizations/spain.rst:30 #: ../../content/applications/finance/fiscal_localizations/united_arab_emirates.rst:42 @@ -7128,7 +7426,7 @@ msgid "Accounts Receivable" msgstr "" #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:172 -#: ../../content/applications/finance/fiscal_localizations/india.rst:709 +#: ../../content/applications/finance/fiscal_localizations/india.rst:683 msgid "Invoice 1" msgstr "" @@ -7140,7 +7438,7 @@ msgstr "" #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:252 #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:254 #: ../../content/applications/finance/accounting/taxes.rst:112 -#: ../../content/applications/finance/fiscal_localizations/india.rst:204 +#: ../../content/applications/finance/fiscal_localizations/india.rst:207 msgid "100" msgstr "" @@ -7153,7 +7451,7 @@ msgid "70" msgstr "" #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:176 -#: ../../content/applications/finance/fiscal_localizations/india.rst:714 +#: ../../content/applications/finance/fiscal_localizations/india.rst:688 msgid "Invoice 2" msgstr "" @@ -7175,7 +7473,7 @@ msgid "Payment 2" msgstr "" #: ../../content/applications/finance/accounting/get_started/cheat_sheet.rst:182 -#: ../../content/applications/finance/fiscal_localizations/india.rst:719 +#: ../../content/applications/finance/fiscal_localizations/india.rst:693 msgid "Invoice 3" msgstr "" @@ -7278,7 +7576,7 @@ msgid "It helps create a clear, comprehensive view of the group's financial perf msgstr "" #: ../../content/applications/finance/accounting/get_started/consolidation.rst:12 -msgid "Consolidating companies involves **legally separate entities**, whereas :ref:`branches ` are **subdivisions** of a single legal entity which often share the head office's resources (journals, taxes, accounts, fiscal positions) and are not consolidated in the same way." +msgid "Consolidating companies involves **legally separate entities**, whereas :ref:`branches ` are **subdivisions** of a single legal entity which often share the head office's resources (journals, taxes, accounts, fiscal positions) and are not consolidated in the same way." msgstr "" #: ../../content/applications/finance/accounting/get_started/consolidation.rst:20 @@ -7593,7 +7891,6 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/argentina.rst:260 #: ../../content/applications/finance/fiscal_localizations/chile.rst:282 #: ../../content/applications/finance/fiscal_localizations/france.rst:344 -#: ../../content/applications/finance/fiscal_localizations/india.rst:105 #: ../../content/applications/finance/fiscal_localizations/peru.rst:349 msgid "Journals" msgstr "" @@ -7733,6 +8030,7 @@ msgid "tax unit tax report" msgstr "" #: ../../content/applications/finance/accounting/payments.rst:5 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:531 msgid "Payments" msgstr "" @@ -8023,10 +8321,6 @@ msgstr "" msgid ":guilabel:`Clear Accounts`: All reconciled journal items will have the same matching number, as they are selected from the same account." msgstr "" -#: ../../content/applications/finance/accounting/payments.rst:277 -msgid "Click :guilabel:`Reconcile`." -msgstr "" - #: ../../content/applications/finance/accounting/payments.rst:279 msgid "Invoices and bills are automatically matched to their corresponding payments and marked as :guilabel:`In payment` until they are :doc:`reconciled ` with their corresponding :doc:`bank transactions `." msgstr "" @@ -8131,6 +8425,11 @@ msgstr "" msgid "Once a payment has been registered, the status of the invoice or bill is :guilabel:`In payment`. The next step is :doc:`reconciling ` the payment with the related :doc:`bank transaction ` line to finalize the payment workflow and mark the invoice or bill as :guilabel:`Paid`." msgstr "" +#: ../../content/applications/finance/accounting/payments/batch.rst:3 +#: ../../content/applications/finance/fiscal_localizations/australia.rst:406 +msgid "Batch payments" +msgstr "" + #: ../../content/applications/finance/accounting/payments/batch.rst:5 msgid "Batch payments allow grouping payments from multiple customers or vendors into a single batch and generating a detailed deposit slip or payment file with a batch reference. This reference can be used during :doc:`reconciliation <../bank/reconciliation>` to match bank transactions with the corresponding payments. This feature is particularly useful for submitting :doc:`SEPA Direct Debit payments `, depositing cash payments or :ref:`checks `, or generating outgoing payment files, such as :doc:`SEPA ` or :ref:`NACHA `." msgstr "" @@ -8188,7 +8487,7 @@ msgid "To view existing batch payments, go to :menuselection:`Accounting --> Cus msgstr "" #: ../../content/applications/finance/accounting/payments/batch.rst:51 -msgid "Once the bank transactions :doc:`have been created <../bank/transactions>` in your database, you can :ref:`reconcile them with the batch payment `." +msgid "Once the bank transactions :doc:`have been created <../bank/transactions>` in your database, you can :ref:`reconcile ` them with the batch payment." msgstr "" #: ../../content/applications/finance/accounting/payments/batch.rst:56 @@ -8425,7 +8724,7 @@ msgid "Follow-up on invoices" msgstr "" #: ../../content/applications/finance/accounting/payments/follow_up.rst:5 -msgid "Follow-up messages can be sent to customers when payments are overdue. Odoo helps identify late payments and allows scheduling and sending the appropriate reminders using **follow-up actions** according to the number of overdue days. Follow-ups can be sent through different methods, including email, post, or SMS." +msgid "Follow-up messages can be sent to customers when payments are overdue. Odoo helps identify late payments and allows scheduling and sending the appropriate reminders using **follow-up actions** according to the number of overdue days. Follow-ups can be sent through different methods, including email, WhatsApp message, SMS, or post." msgstr "" #: ../../content/applications/finance/accounting/payments/follow_up.rst:11 @@ -8441,134 +8740,132 @@ msgid "To configure :guilabel:`Follow-up actions`, go to :menuselection:`Account msgstr "" #: ../../content/applications/finance/accounting/payments/follow_up.rst:23 -msgid "To modify a follow-up level, click on the record. From the form view, edit the :guilabel:`Description` or adjust the number of days before a reminder is sent. In the :guilabel:`Notification` tab, select :guilabel:`Actions` such as :guilabel:`Send Email`, :ref:`Send a Letter `, and :ref:`Send SMS Message `." +msgid "To modify a follow-up level, click on the record. From the form view, edit the :guilabel:`Description` or adjust the number of days before a reminder is sent. In the :guilabel:`Notification` tab, select :guilabel:`Actions` such as :guilabel:`Send Email`, :doc:`Send WhatsApp message `, :ref:`Send SMS Message `, and :ref:`Send a Letter `." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:29 -msgid "Sending letters or SMS messages in Odoo requires :doc:`In-App Purchase (IAP) ` credit or tokens." +#: ../../content/applications/finance/accounting/payments/follow_up.rst:30 +msgid "Sending letters and WhatsApp or SMS messages in Odoo requires :doc:`In-App Purchase (IAP) ` credit or tokens." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:32 -msgid "To use a pre-filled template when sending an email or letter, select a :guilabel:`Content Template`. To modify it, click the :icon:`oi-arrow-right` :guilabel:`(internal link arrow)` icon next to the :guilabel:`Content Template` field. If enabled, SMS messages use a specific :guilabel:`Sms Template` field that can be modified by clicking the :icon:`oi-arrow-right` :guilabel:`(internal link arrow)` icon." +#: ../../content/applications/finance/accounting/payments/follow_up.rst:33 +msgid "To use a pre-filled template when sending an email or letter, select a :guilabel:`Content Template`. To modify it, click the :icon:`oi-arrow-right` :guilabel:`(internal link arrow)` icon next to the :guilabel:`Content Template` field. If enabled, WhatsApp and SMS messages use a specific :guilabel:`WhatsApp Template` or :guilabel:`Sms Template` field that can be modified by clicking the :icon:`oi-arrow-right` :guilabel:`(internal link arrow)` icon." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:38 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:39 msgid "Other options can be enabled in the :guilabel:`Options` section within the specific follow-up level:" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:40 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:41 msgid "Automate the reminder with the :guilabel:`Automatic` option." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:41 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:42 msgid ":guilabel:`Attach Invoices` that are overdue in the reminder." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:42 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:43 msgid ":guilabel:`Add followers` on the related customer to receive notifications about any email reply made on the reminder's email." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:45 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:46 msgid "In the :guilabel:`Activity` tab, enable the option to automatically schedule :doc:`activities ` when the follow-up level is triggered. Select the :guilabel:`Responsible` user and the :guilabel:`Activity Type`, and enter a :guilabel:`Summary`." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:49 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:50 msgid "To add a new :guilabel:`Follow-up Level`, click :guilabel:`New` and fill in the fields." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:52 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:53 msgid "Set a negative number of days to send a reminder before the invoice due date." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:57 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:58 msgid "Invoice follow-ups" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:60 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:61 msgid "Reconcile all bank transactions before starting the follow-up process to avoid sending reminders for invoices that have already been paid." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:63 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:64 msgid "To view all overdue invoices, go to :menuselection:`Accounting --> Customers --> Invoices`. In the :guilabel:`Invoices` list view, click into the search bar and filter on :guilabel:`Overdue`." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:69 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:70 msgid "Follow-ups for one customer" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:71 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:72 msgid "For a detailed overview of a customer's invoice follow-up status, go to :menuselection:`Accounting --> Customers --> Customers`. Open the customer's form and click the :guilabel:`Accounting` tab. In the :guilabel:`Invoice follow-ups` section, click on the different levels to view the :guilabel:`Follow-up Status` of each level. If actions are needed, click :guilabel:`Overdue Invoices` to have a detailed list of the overdue invoices." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:77 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:78 msgid "Additional options can be set:" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:79 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:80 msgid ":guilabel:`Reminders`: These are either :guilabel:`Automatic` or :guilabel:`Manual`." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:80 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:81 msgid ":guilabel:`Next reminder`: The date by which the next follow-up actions should be taken is automatically set when follow-ups are processed, but can be manually adjusted if needed." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:82 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:83 msgid ":guilabel:`Responsible`: The user who handles the follow-up actions." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:84 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:85 msgid "To manually send a payment reminder to a customer, click :guilabel:`Send` and select the actions in the :guilabel:`Send and Print` window:" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:87 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:88 msgid ":guilabel:`Print`" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:88 -#: ../../content/applications/finance/fiscal_localizations/brazil.rst:151 -#: ../../content/applications/finance/fiscal_localizations/chile.rst:237 -#: ../../content/applications/finance/fiscal_localizations/chile.rst:1100 -msgid ":guilabel:`Email`" +#: ../../content/applications/finance/accounting/payments/follow_up.rst:90 +msgid ":guilabel:`WhatsApp`" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:89 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:91 msgid ":guilabel:`Sms`" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:90 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:92 msgid ":guilabel:`By post`" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:92 -msgid "Enable the :guilabel:`Attach Invoices` option and change the :guilabel:`Content Template` if needed. Then, click :guilabel:`Send` or :guilabel:`Send & Print` to send the :ref:`follow-up report `." +#: ../../content/applications/finance/accounting/payments/follow_up.rst:94 +msgid "Enable the :guilabel:`Attach Invoices` option, and change the :guilabel:`Content Template`, :guilabel:`WhatsApp Template`, or :guilabel:`Phone` if needed. Then, click :guilabel:`Send` or :guilabel:`Send & Print` to send the :ref:`follow-up report `." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:98 -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:101 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:100 +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:19 +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:217 msgid ":doc:`/applications/essentials/in_app_purchase`" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:101 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:103 msgid "The contact information on the invoice or the contact form is used to send the reminder." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:102 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:104 msgid "The chatter keeps a full record of all follow-up actions." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:107 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:109 msgid "Follow-ups for all customers due for action" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:109 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:111 msgid "After setting up the additional :ref:`follow-up ` options, review which customers have overdue invoices or require follow-up. To do so, go to :menuselection:`Accounting --> Customers --> Customers`. In the :guilabel:`Customers` kanban view, click the search bar and filter by :guilabel:`Overdue Invoices` or :guilabel:`Requires Follow-up`." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:115 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:117 msgid "To take follow-up actions for all relevant customers, switch to the list view and select the customers requiring follow-up. Then, click :icon:`fa-cog` :guilabel:`(Actions)` and select :guilabel:`Process Follow-ups` to send them the :ref:`follow-up report `." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:123 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:125 #: ../../content/applications/finance/accounting/taxes/avatax/avalara_portal.rst:144 #: ../../content/applications/finance/accounting/taxes/eu_distance_selling.rst:52 #: ../../content/applications/finance/fiscal_localizations/argentina.rst:1166 @@ -8583,37 +8880,37 @@ msgstr "" msgid "Reports" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:128 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:130 msgid "Customer statement" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:130 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:132 msgid "To get a comprehensive overview of a customer's account status, click the :guilabel:`Customer Statement` smart button on the customer's form. This statement corresponds to the :ref:`Partner Ledger ` report's portion specific to that customer." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:134 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:136 msgid "To send it to the customer, click :guilabel:`Send`, change the :guilabel:`Email Template` if needed, and click :guilabel:`Print & Send`." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:137 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:139 msgid "To view the customer statements for multiple customers at once, select the customers from the :guilabel:`Customers` list view, click :icon:`fa-cog` :guilabel:`(Actions)`, and select :guilabel:`Open Customer Statements`." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:141 -#: ../../content/applications/finance/accounting/payments/follow_up.rst:157 -#: ../../content/applications/finance/accounting/vendor_bills.rst:162 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:143 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:159 +#: ../../content/applications/finance/accounting/vendor_bills.rst:160 msgid "Click :guilabel:`PDF` or :guilabel:`XLSX` to generate a PDF or XLSX file, respectively." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:146 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:148 msgid "Follow-up report" msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:148 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:150 msgid "To get a complete overview of a customer's due invoices, separating those that are due from those that are overdue, click the :ref:`Customer Statement ` smart button on the customer's form. Then, click :icon:`fa-book` :guilabel:`Report: Customer Statement` and select :guilabel:`Follow-Up Report`." msgstr "" -#: ../../content/applications/finance/accounting/payments/follow_up.rst:153 +#: ../../content/applications/finance/accounting/payments/follow_up.rst:155 msgid "To view the follow-up report for all customers at once, go to :menuselection:`Accounting --> Reporting --> Partner Ledger`. Then, click :icon:`fa-book` :guilabel:`Report:` and select :guilabel:`Follow-Up Report`." msgstr "" @@ -9373,7 +9670,7 @@ msgid "Analytic distribution en masse" msgstr "" #: ../../content/applications/finance/accounting/reporting/analytic_accounting.rst:125 -msgid "To mass-edit analytic accounts in several entries simultaneously, go to :menuselection:`Accounting --> Accounting --> Journal items`, and select the ones that need to be updated. Click the :guilabel:`Analytic Distribution` column and add the required distribution in the :guilabel:`Analytic` column, then click the :icon:`oi-close` :guilabel:`(cross)` and :guilabel:`Confirm`. The analytic distribution is then added to the selected journal items." +msgid "To mass-edit analytic accounts in several entries simultaneously, go to :menuselection:`Accounting --> Accounting --> Journal items`, and select the ones that need to be updated. Click the :guilabel:`Analytic Distribution` column and add the required distribution in the :guilabel:`Analytic` column, then click the :icon:`oi-close` :guilabel:`(cross)` and :guilabel:`Update`. The analytic distribution is then added to the selected journal items." msgstr "" #: ../../content/applications/finance/accounting/reporting/analytic_accounting.rst:134 @@ -9762,7 +10059,7 @@ msgid "The subformula allows you to define how the move lines matching the domai msgstr "" #: ../../content/applications/finance/accounting/reporting/customize.rst:100 -#: ../../content/applications/finance/accounting/reporting/customize.rst:265 +#: ../../content/applications/finance/accounting/reporting/customize.rst:266 msgid "`sum`" msgstr "" @@ -9874,15 +10171,19 @@ msgstr "" msgid "`CUR` is the currency code in capital letters, and `amount` is the amount of the bound expressed in that currency." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:172 -msgid "You can also use the `cross_report` subformula to match an expression found in another report." +#: ../../content/applications/finance/accounting/reporting/customize.rst:173 +msgid "`cross_report(xml_id | report_id)`" +msgstr "" + +#: ../../content/applications/finance/accounting/reporting/customize.rst:173 +msgid "Used to match an expression from another report targeted by the xml_id or the report ID itself." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:175 +#: ../../content/applications/finance/accounting/reporting/customize.rst:176 msgid "Prefix of Account Codes computation engine" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:177 +#: ../../content/applications/finance/accounting/reporting/customize.rst:178 msgid "The :guilabel:`Prefix of Account Codes` computation engine is used to match amounts made on accounts using the prefixes of these accounts' codes as variables in an arithmetic expression." msgstr "" @@ -9902,7 +10203,7 @@ msgstr "" msgid "This formula adds the balances of the move lines made on accounts whose codes start with `21` and `10`, and subtracts the balance of the ones on accounts with the prefix `5`." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:189 +#: ../../content/applications/finance/accounting/reporting/customize.rst:190 msgid "It is also possible to ignore a selection of sub-prefixes." msgstr "" @@ -9914,15 +10215,15 @@ msgstr "" msgid "This formula works the same way as the previous example but ignores the prefixes `101`, `102`, and `57`." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:196 +#: ../../content/applications/finance/accounting/reporting/customize.rst:197 msgid "You can apply 'sub-filtering' on **credits and debits** using the `C` and `D` suffixes. In this case, an account will only be considered if its prefix matches, *and* if the total balance of the move lines made on this account is **credit/debit**." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:201 +#: ../../content/applications/finance/accounting/reporting/customize.rst:202 msgid "Account `210001` has a balance of -42 and account `210002` has a balance of 25. The formula `21D` only matches the account `210002`, and hence returns 25. `210001` is not matched, as its balance is *credit*." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:205 +#: ../../content/applications/finance/accounting/reporting/customize.rst:206 msgid "Prefix exclusions can be mixed with the `C` and `D` suffixes." msgstr "" @@ -9934,7 +10235,7 @@ msgstr "" msgid "This formula adds the balances of the move lines made on accounts whose code starts with `21` *if* it is debit (`D`) and `10` *if* it is credit (`C`), but ignores prefixes `101`, `102`, and subtracts the balance of the ones on accounts with the prefix `5`, ignoring the prefix `57`." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:213 +#: ../../content/applications/finance/accounting/reporting/customize.rst:214 msgid "To match the letter `C` or `D` in a prefix and not use it as a suffix, use an empty exclusion `()`." msgstr "" @@ -9946,7 +10247,7 @@ msgstr "" msgid "This formula matches accounts whose code starts with `21D`, regardless of their balance sign." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:219 +#: ../../content/applications/finance/accounting/reporting/customize.rst:220 msgid "In addition to using code prefixes to include accounts, you can also match them with **account tags**. This is especially useful, for example, if your country lacks a standardized chart of accounts, where the same prefix might be used for different purposes across companies." msgstr "" @@ -9958,7 +10259,7 @@ msgstr "" msgid "This formula matches accounts whose associated tags contain the one with ID *25*." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:227 +#: ../../content/applications/finance/accounting/reporting/customize.rst:228 msgid "If the tag you reference is defined in a data file, an XMLID can be used instead of the ID." msgstr "" @@ -9970,7 +10271,7 @@ msgstr "" msgid "This formula matches accounts whose associated tags include the tag denoted by *my_module.my_tag*." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:234 +#: ../../content/applications/finance/accounting/reporting/customize.rst:235 msgid "You can also use arithmetic expressions with tags, possibly combining them with prefix selections." msgstr "" @@ -9982,7 +10283,7 @@ msgstr "" msgid "The balances of accounts tagged as *my_module.my_tag* will be summed with those of accounts linked to the tag with ID *42* and accounts with the code prefix `10`" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:241 +#: ../../content/applications/finance/accounting/reporting/customize.rst:242 msgid "`C` and `D` suffixes can be used in the same way with tags." msgstr "" @@ -9994,7 +10295,7 @@ msgstr "" msgid "This formula matches accounts with the tag *my_module.my_tag* and a credit balance." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:247 +#: ../../content/applications/finance/accounting/reporting/customize.rst:248 msgid "Prefix exclusion also works with tags." msgstr "" @@ -10006,55 +10307,55 @@ msgstr "" msgid "This formula matches accounts with the tag *my_module.my_tag* and a code not starting with `10`." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:255 +#: ../../content/applications/finance/accounting/reporting/customize.rst:256 msgid "External Value computation engine" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:257 +#: ../../content/applications/finance/accounting/reporting/customize.rst:258 msgid "The :guilabel:`External Value` computation engine is used to refer to **manual** and **carryover values**. Those values are not stored using `account.move.line`, but with `account.report.external.value`. Each of these objects directly points to the expression it impacts, so very little needs to be done about their selection here." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:262 +#: ../../content/applications/finance/accounting/reporting/customize.rst:263 msgid "**Formulas** can be one of the following:" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:265 +#: ../../content/applications/finance/accounting/reporting/customize.rst:266 msgid "If the result must be the sum of all the external values in the period." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:268 +#: ../../content/applications/finance/accounting/reporting/customize.rst:269 msgid "`most_recent`" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:268 +#: ../../content/applications/finance/accounting/reporting/customize.rst:269 msgid "If the result must be the value of the latest external value in the period." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:270 +#: ../../content/applications/finance/accounting/reporting/customize.rst:271 msgid "In addition, **subformulas** can be used in two ways:" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:273 +#: ../../content/applications/finance/accounting/reporting/customize.rst:274 msgid "`rounding=X`" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:273 +#: ../../content/applications/finance/accounting/reporting/customize.rst:274 msgid "Replacing `X` with a number instructs to round the amount to X decimals." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:277 +#: ../../content/applications/finance/accounting/reporting/customize.rst:278 msgid "`editable`" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:276 +#: ../../content/applications/finance/accounting/reporting/customize.rst:277 msgid "Indicates this expression can be edited manually, triggering the display of an icon in the report, allowing the user to perform this action." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:280 +#: ../../content/applications/finance/accounting/reporting/customize.rst:281 msgid "Manual values are created at the `date_to` currently selected in the report." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:282 +#: ../../content/applications/finance/accounting/reporting/customize.rst:283 msgid "Both subformulas can be mixed by separating them with a `;`." msgstr "" @@ -10066,19 +10367,19 @@ msgstr "" msgid "This subformula shows the correct way to mix both behaviors." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:289 +#: ../../content/applications/finance/accounting/reporting/customize.rst:290 msgid "Custom Python Function computation engine" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:291 +#: ../../content/applications/finance/accounting/reporting/customize.rst:292 msgid "The :guilabel:`Custom Python Function` computation engine is a means for developers to introduce custom computation of expressions on a case-by-case basis. The :guilabel:`Formula` is the name of a **python function** to call, and the :guilabel:`Subformula` is a **key** to fetch in the **dictionary** returned by this function. Use this computation engine only if making a custom module." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:298 +#: ../../content/applications/finance/accounting/reporting/customize.rst:299 msgid "Columns" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:300 +#: ../../content/applications/finance/accounting/reporting/customize.rst:301 msgid "Reports can have an **indefinite number** of columns to display. Each column gets its values from the **expressions** declared on the **lines**. The field :guilabel:`expression_label` of the column gives the label of the expressions whose value is displayed. If a line has no **expression** in that field, then nothing is displayed for it in this column. If multiple columns are required, you must use different **expression** labels." msgstr "" @@ -10086,71 +10387,71 @@ msgstr "" msgid "Columns of report." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:309 +#: ../../content/applications/finance/accounting/reporting/customize.rst:310 msgid "When using the **period comparison** feature found under the :guilabel:`Options` tab of an accounting report, all columns are repeated in and for each period." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:315 +#: ../../content/applications/finance/accounting/reporting/customize.rst:316 msgid "Line grouping" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:317 +#: ../../content/applications/finance/accounting/reporting/customize.rst:318 msgid "Non-standard grouping is possible by adding or using existing fields on the *Journal Item* model, provided that the fields are related and non-stored." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:321 +#: ../../content/applications/finance/accounting/reporting/customize.rst:322 msgid "Grouping lines requires the report to have explicit report lines that can be edited. The deferred reports, for example, do not support grouping lines as they use dynamic lines that are generated." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:325 +#: ../../content/applications/finance/accounting/reporting/customize.rst:326 msgid "Create a new field on journal item" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:327 +#: ../../content/applications/finance/accounting/reporting/customize.rst:328 msgid "To create a non-stored, related field in the *Journal Item* model, first go to :menuselection:`Accounting --> Journal Items`, and click the :icon:`fa-bug` :guilabel:`(bug)` icon, then click :guilabel:`Fields`. Click :guilabel:`New` to create a new field, and complete the following fields:" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:332 +#: ../../content/applications/finance/accounting/reporting/customize.rst:333 msgid ":guilabel:`Field Name`: a technical name for the field" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:333 +#: ../../content/applications/finance/accounting/reporting/customize.rst:334 msgid ":guilabel:`Field Label`: the label to be displayed for the field" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:334 +#: ../../content/applications/finance/accounting/reporting/customize.rst:335 msgid ":guilabel:`Field Type`: the type of field that this related field should point to" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:335 +#: ../../content/applications/finance/accounting/reporting/customize.rst:336 msgid ":guilabel:`Stored`: Leave this field unchecked as only non-stored fields can be used to group lines." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:337 +#: ../../content/applications/finance/accounting/reporting/customize.rst:338 msgid ":guilabel:`Related Model`: If the field type is :guilabel:`one2many`, :guilabel:`many2many`, or :guilabel:`many2one`, select the model of the original field to group by." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:339 +#: ../../content/applications/finance/accounting/reporting/customize.rst:340 msgid ":guilabel:`Related Field Definition`: the technical path to the field you want to group by" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:342 +#: ../../content/applications/finance/accounting/reporting/customize.rst:343 msgid "To group by the sales team of the commercial partner, set the related field definition to `move_id.team_id`." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:346 +#: ../../content/applications/finance/accounting/reporting/customize.rst:347 msgid "Group lines" msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:348 +#: ../../content/applications/finance/accounting/reporting/customize.rst:349 msgid "To group lines, go to the :ref:`Lines ` tab of the desired report, click on the line you want to group, and edit the :guilabel:`Group by` field. Enter the technical name (:guilabel:`Field Name`) of the field to use as the grouping key." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:353 +#: ../../content/applications/finance/accounting/reporting/customize.rst:354 msgid "To find a list of all the model's fields and their technical names, go to :menuselection:`Accounting --> Journal Items`, and click the :icon:`fa-bug` :guilabel:`(bug)` icon, then click :guilabel:`Fields`. The technical name of each field is listed in the :guilabel:`Field Name` column." msgstr "" -#: ../../content/applications/finance/accounting/reporting/customize.rst:359 +#: ../../content/applications/finance/accounting/reporting/customize.rst:360 msgid ":ref:`Consolidation via grouping by account code `" msgstr "" @@ -10991,7 +11292,7 @@ msgid "**Default taxes** are automatically set up according to the country selec msgstr "" #: ../../content/applications/finance/accounting/taxes.rst:38 -msgid "Activate sales taxes from the list view" +msgid "Activate taxes from the list view" msgstr "" #: ../../content/applications/finance/accounting/taxes.rst:40 @@ -11088,8 +11389,8 @@ msgstr "" #: ../../content/applications/finance/accounting/taxes.rst:127 #: ../../content/applications/finance/accounting/taxes.rst:127 #: ../../content/applications/finance/accounting/taxes.rst:271 -#: ../../content/applications/finance/fiscal_localizations/india.rst:190 -#: ../../content/applications/finance/fiscal_localizations/india.rst:204 +#: ../../content/applications/finance/fiscal_localizations/india.rst:193 +#: ../../content/applications/finance/fiscal_localizations/india.rst:207 msgid "1,000" msgstr "" @@ -11468,7 +11769,6 @@ msgstr "" #: ../../content/applications/finance/accounting/taxes/B2B_B2C.rst:55 #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:12 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:28 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:12 msgid "Introduction" msgstr "" @@ -11511,6 +11811,7 @@ msgstr "" #: ../../content/applications/finance/accounting/taxes/B2B_B2C.rst:85 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:782 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1443 msgid "eCommerce" msgstr "" @@ -11770,7 +12071,7 @@ msgstr "" #: ../../content/applications/finance/accounting/taxes/avatax.rst:164 #: ../../content/applications/finance/fiscal_localizations/argentina.rst:32 #: ../../content/applications/finance/fiscal_localizations/australia.rst:12 -#: ../../content/applications/finance/fiscal_localizations/austria.rst:14 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:16 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:32 #: ../../content/applications/finance/fiscal_localizations/canada.rst:36 #: ../../content/applications/finance/fiscal_localizations/chile.rst:32 @@ -11786,8 +12087,8 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/jordan.rst:16 #: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:14 #: ../../content/applications/finance/fiscal_localizations/malaysia.rst:23 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:76 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:120 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:27 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:60 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:16 #: ../../content/applications/finance/fiscal_localizations/peru.rst:21 #: ../../content/applications/finance/fiscal_localizations/romania.rst:14 @@ -11804,7 +12105,7 @@ msgstr "" #: ../../content/applications/finance/accounting/taxes/avatax.rst:165 #: ../../content/applications/finance/fiscal_localizations/argentina.rst:33 #: ../../content/applications/finance/fiscal_localizations/australia.rst:13 -#: ../../content/applications/finance/fiscal_localizations/austria.rst:15 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:17 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:33 #: ../../content/applications/finance/fiscal_localizations/canada.rst:37 #: ../../content/applications/finance/fiscal_localizations/chile.rst:33 @@ -11819,8 +12120,8 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/jordan.rst:17 #: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:15 #: ../../content/applications/finance/fiscal_localizations/malaysia.rst:24 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:77 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:121 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:28 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:61 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:17 #: ../../content/applications/finance/fiscal_localizations/peru.rst:22 #: ../../content/applications/finance/fiscal_localizations/romania.rst:15 @@ -11840,7 +12141,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/australia.rst:73 #: ../../content/applications/finance/fiscal_localizations/australia.rst:101 #: ../../content/applications/finance/fiscal_localizations/australia.rst:155 -#: ../../content/applications/finance/fiscal_localizations/austria.rst:16 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:18 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:34 #: ../../content/applications/finance/fiscal_localizations/canada.rst:38 #: ../../content/applications/finance/fiscal_localizations/chile.rst:34 @@ -11856,8 +12157,8 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/jordan.rst:18 #: ../../content/applications/finance/fiscal_localizations/luxembourg.rst:16 #: ../../content/applications/finance/fiscal_localizations/malaysia.rst:25 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:78 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:122 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:29 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:62 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:18 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:80 #: ../../content/applications/finance/fiscal_localizations/peru.rst:23 @@ -13185,6 +13486,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:703 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:391 #: ../../content/applications/finance/fiscal_localizations/italy.rst:123 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:515 #: ../../content/applications/finance/fiscal_localizations/united_kingdom.rst:349 msgid "Vendor bills" msgstr "" @@ -13222,11 +13524,11 @@ msgid "Alternatively, it is possible to create a vendor bill from the Accounting msgstr "" #: ../../content/applications/finance/accounting/vendor_bills.rst:32 -msgid "either click :guilabel:`New` on the :guilabel:`Vendor Bills` journal;" +msgid "either click :guilabel:`New` on the :guilabel:`Purchases` journal;" msgstr "" #: ../../content/applications/finance/accounting/vendor_bills.rst:33 -msgid "or click the :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` icon of the :guilabel:`Vendor Bills` journal, then :guilabel:`Bill` under the :guilabel:`New` section." +msgid "or click the :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` icon of the :guilabel:`Purchases` journal, then :guilabel:`Bill` under the :guilabel:`New` section." msgstr "" #: ../../content/applications/finance/accounting/vendor_bills.rst:39 @@ -13234,138 +13536,144 @@ msgid "Automatically" msgstr "" #: ../../content/applications/finance/accounting/vendor_bills.rst:41 -msgid "Vendor bills can be automatically created through various methods:" -msgstr "" - -#: ../../content/applications/finance/accounting/vendor_bills.rst:43 -msgid "Emailing to an :ref:`email alias ` associated with the purchase journal. If the email does not contain a valid file, an automatic response notifies the sender that no document was received." +msgid "Vendor bills can be automatically created by sending an email to an :ref:`email alias ` associated with the purchase journal, or by :ref:`uploading a PDF `." msgstr "" #: ../../content/applications/finance/accounting/vendor_bills.rst:46 -msgid "Uploading a PDF: To upload a bill, go to :menuselection:`Accounting --> Vendors --> Bills`, then click :guilabel:`Upload`." -msgstr "" - -#: ../../content/applications/finance/accounting/vendor_bills.rst:50 msgid "Once the bill is uploaded, the PDF document appears on the right side of the screen, making it easy to fill in the bill information." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:52 -msgid "Bills can be :doc:`digitized ` for automatic completion." +#: ../../content/applications/finance/accounting/vendor_bills.rst:48 +msgid "Bills can be :doc:`digitized ` for automatic completion and :ref:`matched with purchase orders ` to replace OCR-detected data with the existing purchase order's details." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:53 +#: ../../content/applications/finance/accounting/vendor_bills.rst:52 msgid "Services such as digitizing scanned or PDF vendor bills in Odoo require :doc:`In-App Purchase (IAP) ` credits." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:56 -msgid "To automatically post bills from selected vendors, go to :menuselection:`Accounting --> Vendors --> Vendors` and select the relevant vendor. In the :guilabel:`Accounting` tab, under the :guilabel:`Automation` section, update the :guilabel:`Auto-post bills` field with one of the following options:" +#: ../../content/applications/finance/accounting/vendor_bills.rst:55 +msgid "To automatically post bills from selected vendors, go to :menuselection:`Accounting --> Vendors --> Vendors` and select the relevant vendor. In the :guilabel:`Accounting` tab, under the :guilabel:`General` section, update the :guilabel:`Auto-post bills` field with one of the following options:" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:61 +#: ../../content/applications/finance/accounting/vendor_bills.rst:60 +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:105 msgid ":guilabel:`Always`" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:62 +#: ../../content/applications/finance/accounting/vendor_bills.rst:61 msgid ":guilabel:`Ask after 3 validations without edits`" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:63 +#: ../../content/applications/finance/accounting/vendor_bills.rst:62 +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:110 msgid ":guilabel:`Never`" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:68 +#: ../../content/applications/finance/accounting/vendor_bills.rst:65 +msgid ":ref:`Vendor bills matching with purchase orders `" +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills.rst:71 msgid "Bill completion" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:70 +#: ../../content/applications/finance/accounting/vendor_bills.rst:73 msgid "Whether the bill is created manually or automatically, make sure the following fields are appropriately completed:" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:73 +#: ../../content/applications/finance/accounting/vendor_bills.rst:76 msgid ":guilabel:`Vendor`: Odoo automatically fills in some information based on the information on the vendor's contact record as well as previous purchase orders and bills." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:75 +#: ../../content/applications/finance/accounting/vendor_bills.rst:78 msgid ":guilabel:`Bill Reference`: Add the sales order reference provided by the vendor. This field is used to :ref:`match ` the products when they are received." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:77 +#: ../../content/applications/finance/accounting/vendor_bills.rst:80 msgid ":guilabel:`Auto-Complete`: Select a past bill/purchase order to complete the document automatically. The :guilabel:`Vendor` field should be completed before completing this field." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:79 +#: ../../content/applications/finance/accounting/vendor_bills.rst:82 msgid ":guilabel:`Bill Date`: Select the document's issuance date." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:80 +#: ../../content/applications/finance/accounting/vendor_bills.rst:83 msgid ":guilabel:`Accounting Date`: Update the document's accounting registration date if needed." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:81 +#: ../../content/applications/finance/accounting/vendor_bills.rst:84 msgid ":guilabel:`Payment Reference`: The :guilabel:`Memo` field automatically includes the payment reference once the payment is registered." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:83 +#: ../../content/applications/finance/accounting/vendor_bills.rst:86 msgid ":guilabel:`Recipient Bank`: Indicates the account number to which the payment will be made. This field is required when paying via batch payment files (such as :ref:`NACHA ` and :doc:`SEPA `)." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:86 +#: ../../content/applications/finance/accounting/vendor_bills.rst:89 msgid ":guilabel:`Due Date` or :guilabel:`Payment Terms` must be specified for the bill payment." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:87 +#: ../../content/applications/finance/accounting/vendor_bills.rst:90 msgid ":guilabel:`Journal`: Select which journal should record the bill and in which :doc:`currency `." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:98 -msgid "If the bill line does not correspond to an existing product in the database, click the :icon:`oi-view-list` :guilabel:`(bars)` icon to enter a description for the bill line without linking it to a product." +#: ../../content/applications/finance/accounting/vendor_bills.rst:95 +msgid "To access the product catalog, click :doc:`Catalog `." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills.rst:97 +msgid "Select the products and quantities, then click :guilabel:`Back to Bill` to return to the vendor bill; the selected catalog items will appear in the vendor bill lines." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills.rst:99 +msgid "Update the :guilabel:`Quantity`, :guilabel:`Price`, and :doc:`Taxes ` fields if needed." msgstr "" #: ../../content/applications/finance/accounting/vendor_bills.rst:102 -msgid "To access the product catalog and view all items in an organized display, click :doc:`Catalog `. When the products and quantities are selected, click :guilabel:`Back to Bill` to return to the vendor bill; the selected catalog items will appear in the vendor bill lines." +msgid "If the bill line does not correspond to an existing product in the database, click :guilabel:`Add a line` and enter a description for the bill line without linking it to a product." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:108 +#: ../../content/applications/finance/accounting/vendor_bills.rst:106 msgid "Multiple bills for the same purchase order may be issued if the vendor is on back-order and sends invoices as products are shipped or if the vendor sends partial bills or requests a deposit. In this case, multiple bills may have the same :guilabel:`Bill Reference`." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:115 +#: ../../content/applications/finance/accounting/vendor_bills.rst:113 msgid "Bill confirmation" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:117 +#: ../../content/applications/finance/accounting/vendor_bills.rst:115 msgid "Click :guilabel:`Confirm` when the document is completed. The status changes to :guilabel:`Posted`, and a journal entry is generated based on the vendor bill information. On confirmation, Odoo assigns each vendor bill a unique number from a defined :doc:`sequence `." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:122 +#: ../../content/applications/finance/accounting/vendor_bills.rst:120 msgid "Once confirmed, a vendor bill can no longer be updated. Click :guilabel:`Reset to draft` if changes are required." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:130 +#: ../../content/applications/finance/accounting/vendor_bills.rst:128 msgid "To register a payment, click on :guilabel:`Pay`. In the :guilabel:`Pay` window, select the :guilabel:`Journal`, the :guilabel:`Payment Method`, the :guilabel:`Amount`, and the :guilabel:`Currency`." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:134 +#: ../../content/applications/finance/accounting/vendor_bills.rst:132 msgid "When the :guilabel:`Amount` paid is less than the total remaining amount on the vendor bill, the payment is :ref:`partial `, and the :guilabel:`Payment Difference` field displays the outstanding balance." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:138 +#: ../../content/applications/finance/accounting/vendor_bills.rst:136 msgid "The :guilabel:`Memo` field is filled automatically if the :guilabel:`Payment Reference` has been set correctly on the vendor bill. If the field is empty, select the vendor invoice number as a reference." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:142 +#: ../../content/applications/finance/accounting/vendor_bills.rst:140 msgid "Then click :guilabel:`Create payment`. An :guilabel:`In Payment`/:guilabel:`Partial` banner appears on the bill until it is :doc:`reconciled ` and its status updates to :guilabel:`Paid`." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:153 +#: ../../content/applications/finance/accounting/vendor_bills.rst:151 msgid "Aged payable report" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:155 -msgid "To get an overview of the open vendor bills and their due dates, go to :menuselection:`Accounting --> Reporting --> Aged payable`." +#: ../../content/applications/finance/accounting/vendor_bills.rst:153 +msgid "For an overview of the open vendor bills and their due dates, go to :menuselection:`Accounting --> Reporting --> Aged payable`." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills.rst:158 +#: ../../content/applications/finance/accounting/vendor_bills.rst:156 msgid "Click the :icon:`fa-caret-right` :guilabel:`(right arrow)` icon next to a vendor to view the details of all their outstanding bills, including the due dates and amounts." msgstr "" @@ -13796,107 +14104,235 @@ msgid "Therefore, at the end of December, bills A and B are fully recognized as msgstr "" #: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:3 -msgid "AI-powered document digitization" +msgid "Document digitization" msgstr "" #: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:5 -msgid "**Invoice digitization** is the process of converting paper documents into vendor bill and customer invoice forms in your accounting." +msgid "Document digitization refers to the process of converting paper or digital documents into records in a database. Using :abbr:`OCR (optical character recognition)` and artificial intelligence technologies, Odoo reads the content and automatically creates and fills in the record's details. This process is mainly used for vendor bills (or refunds)." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:8 -msgid "Odoo uses :abbr:`OCR (optical character recognition)` and artificial intelligence technologies to recognize the content of the documents. Vendor bill and customer invoice forms are automatically created and populated based on the scanned invoices." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:11 +msgid "Although less common, this digitization process can also be applied to customer invoices and credit notes. The :ref:`settings ` need to be adjusted accordingly." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:13 +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:16 msgid "`Test Odoo's invoice digitization `_" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:14 +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:17 msgid "`Odoo Tutorials: Vendor Bill Digitization `_" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:20 -msgid "In :menuselection:`Accounting --> Configuration --> Settings --> Digitization`, check the box :guilabel:`Document Digitization` and choose whether :guilabel:`Vendor Bills` and :guilabel:`Customer Invoices` (this includes customer credit notes) should be processed automatically or on demand." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:26 +msgid "Go to :menuselection:`Accounting --> Configuration --> Settings` and navigate to the :guilabel:`Digitization` section. Enable the :guilabel:`Document Digitization` option and choose whether :guilabel:`Vendor Bills` should be processed automatically or on demand." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:25 -msgid "If you enable the :guilabel:`Single Invoice Line Per Tax` option, only one line is created per tax in the new bill, regardless of the number of lines on the invoice." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:31 +msgid "If the :guilabel:`Single Invoice Line Per Tax` option is enabled, only one line is created per tax in the new vendor bill, regardless of the number of lines on it." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:29 -msgid "Invoice upload" +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:37 +msgid "Vendor bills upload" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:32 -msgid "Upload invoices manually" +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:39 +msgid "Vendor bills are :ref:`uploaded manually ` or sent to a :ref:`designated email alias ` to be digitized. They can also be :ref:`automatically posted ` for selected vendors." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:34 -msgid "From the :guilabel:`Accounting Dashboard`, click on the :guilabel:`Upload` button of your vendor bills journal. Alternatively, go to :menuselection:`Accounting --> Customers --> Invoices` or :menuselection:`Accounting --> Vendors --> Bills` and select :guilabel:`Upload`." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:45 +msgid "Once the bill is uploaded, the document preview appears on the right side of the screen." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:42 -msgid "Upload invoices using an email alias" +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:48 +msgid ":doc:`Vendor bills <../vendor_bills>`" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:44 -msgid "You can configure your connected scanner to send scanned documents to an email alias. Emails sent to these aliases are converted into new draft customer invoices or vendor bills." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:53 +msgid "Manual upload" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:47 -msgid "You can modify the email alias of a journal. To do so, go to the :guilabel:`Settings` app. Under :guilabel:`General Settings: Discuss`, enable :guilabel:`Custom Email Servers`, add an :guilabel:`Alias Domain`, and :guilabel:`Save`." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:55 +msgid "In the Accounting dashboard, drag and drop vendor bills into the desired purchase journal or click :guilabel:`Upload` on the purchase journal." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:51 -msgid "The email alias is now available in the :guilabel:`Advanced Settings` tab of the journal. Emails sent to this address will be converted automatically into new invoices or bills." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:61 +msgid "Upload via email alias" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:55 -msgid "If you use the :doc:`Documents ` app, you can automatically send your scanned invoices to the :guilabel:`Finance` workspace (e.g., `inbox-financial@example.odoo.com`)." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:63 +msgid "Vendor bills can be uploaded via an email alias associated with the relevant journal in two ways:" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:59 -msgid "The default email aliases `vendor-bills@` and `customer-invoices@` followed by the :guilabel:`Alias Domain` you set are automatically created for the :guilabel:`Vendor Bills` and :guilabel:`Customer Invoices` journals, respectively. Emails sent to these addresses are converted automatically into new invoices or bills." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:65 +msgid "scanned from a connected scanner configured to send email to an email alias;" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:64 -msgid "To change a default email alias, go to :menuselection:`Accounting --> Configuration --> Accounting: Journals`. Select the journal you want to edit, click on the :guilabel:`Advanced Settings` tab, and edit the `Email Alias`." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:66 +msgid "sent directly to an email alias." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:69 -msgid "Invoice digitization" +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:68 +msgid "Each PDF attached to the email is automatically converted into a new draft vendor bill." msgstr "" #: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:71 -msgid "According to your settings, the document is either processed automatically, or you need to click on :guilabel:`Send for digitization` to do it manually." +msgid "Only PDF and XML formats are processed via an email alias associated with a journal." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:72 +msgid "JPEG files must be processed via :ref:`email alias in the Documents app `." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:75 +msgid "To add an email alias to a journal, follow these steps:" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:74 -msgid "Once the data is extracted from the PDF, you can correct it if necessary by clicking on the respective tags (available in :guilabel:`Edit` mode) and selecting the proper information instead." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:77 +msgid "Make sure an :doc:`alias domain <../../../websites/website/configuration/domain_names>` has been configured." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:78 -msgid "Data recognition with AI" +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:79 +msgid "The default email alias `vendor-bills@` followed by the alias domain is automatically created and available in the :guilabel:`Advanced Settings` tab of the :guilabel:`Vendor Bills` journal." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:80 -msgid "It is essential to review and correct (if needed) the information uploaded during digitization. Then, you have to post the document by clicking on :guilabel:`Confirm`. In this manner, the AI learns, and the system identifies the correct data for future digitizations." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:81 +msgid "To change a default email alias, go to :menuselection:`Accounting --> Configuration --> Journals`, select the corresponding journal, and edit the :guilabel:`Email Alias` in the :guilabel:`Advanced Settings` tab." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:84 +msgid "Configure the connected scanner to send scanned documents to the email alias, if needed." msgstr "" #: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:87 -msgid "The **invoice digitization** is an In-App Purchase (IAP) service that requires prepaid credits to work. Digitizing one document consumes one credit." +msgid "Alternatively, an :ref:`email alias in the Documents app ` can be used to automatically send vendor bills to the :guilabel:`Finance` :ref:`folder ` (e.g., `inbox-financial@example.odoo.com`)." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:94 +msgid "Automatic vendor bill posting" +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:97 +msgid "To use the :guilabel:`Auto-post bills` option, the :guilabel:`Digitize automatically` setting in the :ref:`Document Digitization ` section must be enabled for vendor bills." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:101 +msgid "To automatically post digitized vendor bills for specific vendors, go to :menuselection:`Accounting --> Vendors --> Vendors` and click the desired vendor. In the :guilabel:`Accounting` tab of the contact form, select an :guilabel:`Auto-post bills` option in the :guilabel:`Automation` section:" +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:106 +msgid ":guilabel:`Ask after 3 validations without edits`: When the third uploaded bill is confirmed without any edits, an :guilabel:`Autopost Bills` window appears. The following options can be chosen: :guilabel:`Activate auto-validation`, :guilabel:`Ask me later`, or :guilabel:`Never for this vendor`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:113 +msgid "Since automation is triggered after three validated bills without edits, the contact name must already exist in the database, and each uploaded vendor bill must include a bill date." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:90 -msgid "To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings --> Digitization` and click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> Odoo IAP` and click on :guilabel:`View My Services`." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:119 +msgid "Digitization and data recognition with AI" msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:95 -msgid "Enterprise Odoo users with a valid subscription get free credits to test IAP features before deciding to purchase more credits for the database. This includes demo/training databases, educational databases, and one-app-free databases." +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:121 +msgid "Depending on the :ref:`settings `, documents are either automatically digitized or require manual processing if digitization is set to on-demand only." msgstr "" -#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:100 -msgid "`Our Privacy Policy `_" +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:124 +msgid "To manually digitize an :ref:`uploaded document `, click :guilabel:`Digitize document`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:127 +msgid "Once the document has been digitized, a blue banner appears; click :icon:`oi-arrow-right` :guilabel:`Refresh`. Review and correct any information uploaded during digitization: click on the related field(s) to edit them, or click :guilabel:`Reload AI data` to refresh the data." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:131 +msgid "Then, click :guilabel:`Confirm` to post the document." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:134 +msgid "Once a document has been digitized, the :guilabel:`Vendor` field remains empty if the vendor doesn't exist in the database. To add it, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` in the :guilabel:`Vendor` field; the vendor name appears highlighted in the document preview on the right. Click it to open a new vendor form with the name pre-filled." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:140 +msgid "The following vendor bill fields are recognized by OCR:" +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:142 +msgid ":guilabel:`Vendor`, :guilabel:`Bill Reference`, :guilabel:`Bill Date`, :guilabel:`Payment Reference` (only in the Belgian +++xxx/xxxx/xxxxx+++ format), :guilabel:`Recipient Bank`, :guilabel:`Due Date`, and the currency (in a :doc:`multi-currency <../get_started/multi_currency>` environment and if the currency is activated)." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:146 +msgid "From the :guilabel:`Invoices Lines` tab: :guilabel:`Product` description/label, :guilabel:`Quantity`, unit :guilabel:`Price`, :guilabel:`Taxes` (if the :ref:`tax is activated `; this field is not recognized by OCR for the :doc:`Indian localization <../../fiscal_localizations/india>`), :guilabel:`Untaxed Amount`, and :guilabel:`Total`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:155 +msgid "Purchase order matching" +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:157 +msgid "When a digitized vendor bill is recognized by :abbr:`OCR (optical character recognition)`, Odoo searches the database for a matching purchase order. If found, the vendor bill can be manually matched with the existing open purchase order lines." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:161 +msgid "Once a vendor bill has been :ref:`uploaded ` and :ref:`digitized `, click the :guilabel:`Purchase matching` smart button to access the :guilabel:`Purchase matching` list view, displaying all purchase order lines linked to the vendor assigned to the vendor bill. Then, select the relevant purchase order lines and the draft vendor bill (shown in grey), and click :guilabel:`Match`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:168 +msgid "In the :guilabel:`Purchase Matching` list view, update the :guilabel:`Quantity` and :guilabel:`Price` in the purchase order lines, if necessary." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:171 +msgid "If there is no existing purchase order related to the vendor of the uploaded vendor bill, a new purchase order can be directly created from the vendor bill lines. To do so, follow these steps:" +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:174 +msgid "Once the vendor bill is uploaded, make sure the :guilabel:`Vendor` field is filled in with the correct vendor." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:176 +msgid "Click the :guilabel:`Purchase matching` smart button, select the draft vendor bill in the list (shown in grey), and click :guilabel:`Add to PO`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:178 +msgid "In the :guilabel:`Add to Purchase Order` window, start typing in the :guilabel:`Purchase Order` field and select :guilabel:`Create and edit`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:180 +msgid "In the :guilabel:`Create Purchase Order` window, select the vendor assigned to the vendor bill, then complete all :ref:`required fields ` and click :guilabel:`Confirm`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:183 +msgid "In the :guilabel:`Purchase Matching` list view, select the relevant purchase order lines and the draft vendor bill (shown in grey), and click :guilabel:`Match`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:187 +msgid "If any information required for the purchase order fields is missing, click :guilabel:`Save and Close` in the :guilabel:`Create Purchase Order` window. Then, open the Purchase app to fill in the fields and :ref:`confirm the purchase order `." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:192 +msgid "Electronic vendor bills with embedded XML ensure more accurate and efficient processing." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:193 +msgid "Alternatively, the :ref:`Auto-complete ` feature can transfer information from the purchase order to the vendor bill, without requiring OCR." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:201 +msgid "The document digitization feature is an In-App Purchase (IAP) service requiring prepaid credits. Digitizing one document uses one credit." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:204 +msgid "To buy credits, :ref:`go to the Settings app ` or :menuselection:`Accounting --> Configuration --> Settings`, navigate to the :guilabel:`Digitization` section, and click :guilabel:`Buy credits`." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:209 +msgid "Odoo Enterprise users with a valid subscription get free credits to test IAP features before purchasing more credits for the database. This includes demo/training databases, educational databases, and one-app-free databases." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:212 +msgid "XML files don't require OCR credits because they contain structured data that can be processed directly, without OCR." +msgstr "" + +#: ../../content/applications/finance/accounting/vendor_bills/invoice_digitization.rst:216 +msgid "`Odoo In-App Purchase Privacy Policy `_" msgstr "" #: ../../content/applications/finance/accounting/vendor_bills/sequence.rst:3 @@ -13956,6 +14392,86 @@ msgstr "" msgid "When the range is invalid. For example, if the :guilabel:`Bill Date` doesn't align with the date in the new sequence, such as using a 2024 sequence (BILL/2024/MM/XXXX) for an vendor bill dated in 2025." msgstr "" +#: ../../content/applications/finance/esg.rst:3 +msgid "ESG" +msgstr "" + +#: ../../content/applications/finance/esg.rst:5 +msgid "The ESG (Environment, Social, and Governance) app helps you automate ESG data collection by integrating with apps like Accounting, Fleet, Payroll, and Employees. It pulls data from your operations to build your ESG reports, based on legal and sustainability reporting requirements, while giving you a real-time view of your emissions and other key ESG metrics." +msgstr "" + +#: ../../content/applications/finance/esg.rst:11 +msgid "Carbon footprint" +msgstr "" + +#: ../../content/applications/finance/esg.rst:13 +msgid "The carbon footprint tool automates emissions tracking by collecting data from accounting records (purchases, expenses, etc.) and employee commuting activity, and supports manual inputs. Emissions are updated in real time, allowing for continuous monitoring and reporting. You can:" +msgstr "" + +#: ../../content/applications/finance/esg.rst:17 +msgid "Track your daily environmental impact." +msgstr "" + +#: ../../content/applications/finance/esg.rst:18 +msgid "Evaluate the immediate effect of your reduction actions." +msgstr "" + +#: ../../content/applications/finance/esg.rst:19 +msgid "Prioritize targeted changes." +msgstr "" + +#: ../../content/applications/finance/esg.rst:20 +msgid "Continuously monitor and refine your sustainability strategy." +msgstr "" + +#: ../../content/applications/finance/esg.rst:22 +msgid "Emissions (kgCO₂e) formula" +msgstr "" + +#: ../../content/applications/finance/esg.rst:24 +msgid "`Activity data` × `Emission factor`" +msgstr "" + +#: ../../content/applications/finance/esg.rst:27 +msgid "Activity data sources" +msgstr "" + +#: ../../content/applications/finance/esg.rst:29 +msgid "The following data sources are used:" +msgstr "" + +#: ../../content/applications/finance/esg.rst:31 +msgid ":ref:`Accounting `" +msgstr "" + +#: ../../content/applications/finance/esg.rst:32 +msgid ":ref:`Fleet `" +msgstr "" + +#: ../../content/applications/finance/esg.rst:33 +msgid ":ref:`Manual inputs `" +msgstr "" + +#: ../../content/applications/finance/esg.rst:38 +#: ../../content/applications/finance/fiscal_localizations/australia.rst:42 +#: ../../content/applications/finance/fiscal_localizations/brazil.rst:463 +#: ../../content/applications/finance/fiscal_localizations/ecuador.rst:430 +#: ../../content/applications/finance/fiscal_localizations/france.rst:81 +#: ../../content/applications/finance/fiscal_localizations/germany.rst:6 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:420 +#: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:181 +msgid "Accounting" +msgstr "" + +#: ../../content/applications/finance/esg.rst:40 +msgid "Odoo collects activity data from journal entries posted to expense and asset accounts. These include:" +msgstr "" + +#: ../../content/applications/finance/esg.rst:43 +msgid "Fixed assets" +msgstr "" + +#: ../../content/applications/finance/esg.rst:44 #: ../../content/applications/finance/expenses.rst:5 #: ../../content/applications/finance/fiscal_localizations/united_arab_emirates.rst:108 #: ../../content/applications/finance/fiscal_localizations/united_arab_emirates.rst:111 @@ -13964,6 +14480,361 @@ msgstr "" msgid "Expenses" msgstr "" +#: ../../content/applications/finance/esg.rst:45 +msgid "Other expenses" +msgstr "" + +#: ../../content/applications/finance/esg.rst:46 +msgid "Cost of revenue" +msgstr "" + +#: ../../content/applications/finance/esg.rst:48 +msgid "Only these account types are considered for carbon footprint calculations, in line with the *Bilan Carbone* methodology." +msgstr "" + +#: ../../content/applications/finance/esg.rst:54 +msgid "Fleet" +msgstr "" + +#: ../../content/applications/finance/esg.rst:56 +msgid "Odoo calculates commuting emissions using data from the Fleet and Employees apps." +msgstr "" + +#: ../../content/applications/finance/esg.rst:58 +msgid "Employee commuting emissions formula" +msgstr "" + +#: ../../content/applications/finance/esg.rst:60 +msgid "`Days` × `Home-work distance` × `2` × (`Number of office days` / `7`) × `Vehicle model CO₂ emissions`" +msgstr "" + +#: ../../content/applications/finance/esg.rst:63 +msgid "To ensure accurate calculations:" +msgstr "" + +#: ../../content/applications/finance/esg.rst:65 +msgid "Define the average number of days per week the employees commute to the office by going to :menuselection:`ESG --> Configuration --> Settings` and filling in the :guilabel:`Weekly Office Attendance`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:68 +msgid "Set the emissions of each vehicle model by going to :menuselection:`Fleet --> Configuration --> Models`, selecting a model, and entering its :guilabel:`CO₂ Emissions`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:70 +msgid "Set each employee's home-to-work distance by opening the :guilabel:`Employees` app, selecting an employee, and filling in the employee's :guilabel:`Home-Work Distance`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:74 +msgid "The employee vehicle's :guilabel:`Start Date` and, if applicable, :guilabel:`End Date`, are used to calculate the emissions. Ensure they are set by opening the :guilabel:`Employees` app, selecting an employee, and clicking the :guilabel:`Cars` smart button." +msgstr "" + +#: ../../content/applications/finance/esg.rst:78 +msgid "To access the employee commuting emissions pivot table, go to :menuselection:`ESG --> Collect --> Employee Commuting`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:-1 +msgid "The employee commuting emissions pivot table" +msgstr "" + +#: ../../content/applications/finance/esg.rst:84 +msgid "To add the data to the emitted emissions, click :guilabel:`Add Emissions`, define the :guilabel:`Emissions Period` that should be covered, and click :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:90 +msgid "Manual input" +msgstr "" + +#: ../../content/applications/finance/esg.rst:92 +msgid "You can manually enter emissions for activities that not tracked automatically (e.g., employee lunches, waste, etc.). To do so, go to :menuselection:`ESG --> Collect --> Emitted Emissions` and click :guilabel:`New`, then:" +msgstr "" + +#: ../../content/applications/finance/esg.rst:96 +msgid "Name the activity." +msgstr "" + +#: ../../content/applications/finance/esg.rst:97 +msgid "Select a :guilabel:`Date`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:98 +msgid "Select an :guilabel:`Emission factor`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:99 +msgid "Enter a :guilabel:`Quantity`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:101 +msgid "Once saved, the entry appears under :menuselection:`ESG --> Collect --> Emitted Emissions` and is included in the carbon footprint report." +msgstr "" + +#: ../../content/applications/finance/esg.rst:105 +msgid "Emission factors" +msgstr "" + +#: ../../content/applications/finance/esg.rst:107 +msgid "An emission factor is a coefficient that indicates the rate at which a specific activity emits greenhouse gases into the atmosphere." +msgstr "" + +#: ../../content/applications/finance/esg.rst:111 +msgid "Source database" +msgstr "" + +#: ../../content/applications/finance/esg.rst:113 +msgid "Import the data from a certified emission factors database by going to :menuselection:`ESG --> Configuration --> Source Databases`. Click :guilabel:`Download` on the `ADEME `_ database to import its emission factors and sources." +msgstr "" + +#: ../../content/applications/finance/esg.rst:118 +msgid "Main components of an emission factor" +msgstr "" + +#: ../../content/applications/finance/esg.rst:121 +msgid "Source" +msgstr "" + +#: ../../content/applications/finance/esg.rst:123 +msgid "Each emission factor is assigned to a scope, following the GHG Protocol:" +msgstr "" + +#: ../../content/applications/finance/esg.rst:125 +msgid "Scope 1 – Direct emissions (e.g., fuel burned on-site or in company vehicles)" +msgstr "" + +#: ../../content/applications/finance/esg.rst:126 +msgid "Scope 2 – Indirect emissions from purchased energy (e.g., electricity or heat)" +msgstr "" + +#: ../../content/applications/finance/esg.rst:127 +msgid "Scope 3 – All other indirect emissions across the value chain (e.g., purchased goods, travel, waste)" +msgstr "" + +#: ../../content/applications/finance/esg.rst:130 +msgid "Scopes can be structured hierarchically (parent-child) for more detailed categorization, such as \"Scope 3: Others Indirect > Purchased Goods > Electronics\"." +msgstr "" + +#: ../../content/applications/finance/esg.rst:134 +msgid "Uncertainty" +msgstr "" + +#: ../../content/applications/finance/esg.rst:136 +msgid "Uncertainty represents the potential margin of error in an emission factor. It reflects how precise or reliable the factor is when estimating emissions for a given activity, based on the quality of data, assumptions used, and calculation methodology." +msgstr "" + +#: ../../content/applications/finance/esg.rst:140 +msgid "It helps you assess the confidence level of the emissions data used in the reporting." +msgstr "" + +#: ../../content/applications/finance/esg.rst:143 +msgid "Compute method" +msgstr "" + +#: ../../content/applications/finance/esg.rst:145 +msgid "The compute method determines whether emissions are calculated using physical quantities (e.g., kg, liters, units) or monetary values (e.g., € spent). In physical mode, the system uses the quantity from the transaction (e.g., 10 units × :abbr:`EF (emission factor)` per unit). In monetary mode, it uses the transaction amount (e.g., €500 × :abbr:`EF (emission factor)` per €)." +msgstr "" + +#: ../../content/applications/finance/esg.rst:151 +msgid "Gas emissions lines" +msgstr "" + +#: ../../content/applications/finance/esg.rst:153 +msgid "Each emission factor can include multiple gas emission lines, representing the different greenhouse gases involved in the activity. The ESG app includes the six main gases from the Kyoto Protocol — CO₂, CH₄, N₂O, HFCs, PFCs, SF₆ — each with a predefined Global Warming Potential (GWP) used to convert them into a common unit: CO₂-equivalent (kgCO₂e)." +msgstr "" + +#: ../../content/applications/finance/esg.rst:159 +msgid "Add more specific gases by going to :menuselection:`ESG --> Configuration --> Gases`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:161 +msgid "Each gas line can be linked to an activity type such as production, transport, or use, allowing for detailed breakdowns in your emissions reporting." +msgstr "" + +#: ../../content/applications/finance/esg.rst:164 +msgid "The final emission factor value is the sum of all these gases’ emissions converted into CO₂-equivalents." +msgstr "" + +#: ../../content/applications/finance/esg.rst:168 +msgid "Assignation rules" +msgstr "" + +#: ../../content/applications/finance/esg.rst:170 +msgid "Assignation rules allow emission factors to be automatically applied to relevant activity data based on specific criteria: the product, partner, and/or account involved in the transaction." +msgstr "" + +#: ../../content/applications/finance/esg.rst:174 +msgid "You have assigned an emission factor to the *Zenith Pro Computer* product and later receive a vendor bill for 150 units; the system automatically applies the assigned emission factor, multiplying the emission factor's emissions (kgCO₂e) by 150." +msgstr "" + +#: ../../content/applications/finance/esg.rst:178 +msgid "To define assignation rules on emissions factors, go to :menuselection:`ESG --> Configuration --> Emission Factors` and select an emission factor. Under the :guilabel:`Assignations` tab, click :guilabel:`Add a line`, and select a record for one or more of the following attributes: :guilabel:`Product`, :guilabel:`Partner`, and :guilabel:`Account`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:183 +msgid "All attributes have to match for the rule to be applied." +msgstr "" + +#: ../../content/applications/finance/esg.rst:186 +msgid "Ensure the unit of measure set next to the product's :guilabel:`Cost` matches the emission factor's :guilabel:`Unit of Measure`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:-1 +msgid "A product's unit of measure" +msgstr "" + +#: ../../content/applications/finance/esg.rst:192 +msgid "If the field is not displayed, go to :menuselection:`Accounting --> Configuration --> Settings` and enable the :guilabel:`Units of Measure & Packagings` option." +msgstr "" + +#: ../../content/applications/finance/esg.rst:196 +msgid "Accounting journal entries with a missing emission factor can be found by clicking :guilabel:`Emissions to define` under the :guilabel:`Collect Emissions` card on the dashboard." +msgstr "" + +#: ../../content/applications/finance/esg.rst:200 +msgid "Rules priority" +msgstr "" + +#: ../../content/applications/finance/esg.rst:202 +msgid "When multiple assignation rules match, Odoo prioritizes the most specific rule based on the following criteria:" +msgstr "" + +#: ../../content/applications/finance/esg.rst:205 +msgid "Attribute specificity: Odoo first evaluates rules by the most precise attribute, following this priority hierarchy (from most to least specific):" +msgstr "" + +#: ../../content/applications/finance/esg.rst:208 +#: ../../content/applications/finance/esg.rst:226 +#: ../../content/applications/finance/esg.rst:238 +#: ../../content/applications/finance/esg.rst:257 +#: ../../content/applications/finance/esg.rst:269 +#: ../../content/applications/finance/fiscal_localizations/peru.rst:387 +#: ../../content/applications/finance/fiscal_localizations/romania.rst:113 +msgid "Product" +msgstr "" + +#: ../../content/applications/finance/esg.rst:212 +msgid "Attribute count: if multiple rules share the same level of attribute specificity, Odoo then considers the number of attributes in the rule. The rule with more attributes defined will take priority." +msgstr "" + +#: ../../content/applications/finance/esg.rst:217 +msgid "**Example 1**" +msgstr "" + +#: ../../content/applications/finance/esg.rst:219 +#: ../../content/applications/finance/esg.rst:250 +msgid "*Emission factor #1 assignation rule*" +msgstr "" + +#: ../../content/applications/finance/esg.rst:227 +#: ../../content/applications/finance/esg.rst:239 +#: ../../content/applications/finance/esg.rst:258 +#: ../../content/applications/finance/esg.rst:270 +msgid "*Any Account*" +msgstr "" + +#: ../../content/applications/finance/esg.rst:228 +#: ../../content/applications/finance/esg.rst:259 +msgid "*Any Partner*" +msgstr "" + +#: ../../content/applications/finance/esg.rst:229 +#: ../../content/applications/finance/esg.rst:260 +#: ../../content/applications/finance/esg.rst:272 +msgid "**Zenith Pro Computer**" +msgstr "" + +#: ../../content/applications/finance/esg.rst:231 +#: ../../content/applications/finance/esg.rst:262 +msgid "*Emission factor #2 assignation rule*" +msgstr "" + +#: ../../content/applications/finance/esg.rst:240 +#: ../../content/applications/finance/esg.rst:271 +msgid "**Digital Den**" +msgstr "" + +#: ../../content/applications/finance/esg.rst:241 +msgid "*Any Product*" +msgstr "" + +#: ../../content/applications/finance/esg.rst:243 +msgid "Given the assignation rules above, all products purchased from **Digital Den** will be assigned emission factor **#2**, except the **Zenith Pro Computer** product, which will be assigned emission factor **#1**." +msgstr "" + +#: ../../content/applications/finance/esg.rst:248 +msgid "**Example 2**" +msgstr "" + +#: ../../content/applications/finance/esg.rst:274 +msgid "Given the assignation rules above, any purchased **Zenith Pro Computer** will be assigned emission factor **#1**, except if purchased from the **Digital Den**, which will be assigned emission factor **#2**." +msgstr "" + +#: ../../content/applications/finance/esg.rst:279 +msgid "Apply retroactively" +msgstr "" + +#: ../../content/applications/finance/esg.rst:281 +msgid "Once your emission factors are configured with assignation rules, you can also apply them retroactively to past activity data." +msgstr "" + +#: ../../content/applications/finance/esg.rst:284 +msgid "To do so, go to :menuselection:`ESG --> Configuration --> Emission Factors`, select an emission factor, and click :guilabel:`Assign`. Select an :guilabel:`Application Period`, and, if desired, enable the :guilabel:`Replace existing assignations` option." +msgstr "" + +#: ../../content/applications/finance/esg.rst:289 +msgid "Apply emission factors in bulk by selecting multiple emission factors in :icon:`oi-view-list` list view and clicking :icon:`fa-cog` (:guilabel:`Actions`) :menuselection:`--> Assign Emission Factors`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:294 +msgid "Sex parity and pay gap" +msgstr "" + +#: ../../content/applications/finance/esg.rst:296 +msgid "Sex parity tracks the distribution of sexes across the workforce, such as comparing women and men in technical vs. administrative roles, permanent vs. temporary contracts, different office locations, or management vs. non-management positions." +msgstr "" + +#: ../../content/applications/finance/esg.rst:300 +msgid "These insights, based on employee data, are essential for CSRD reporting under ESRS S1 and will also support future VSME standards." +msgstr "" + +#: ../../content/applications/finance/esg.rst:303 +msgid "To view a company's sex parity and pay gap measures, set the sex of each employee by opening the :guilabel:`Employees` app and selecting an employee. Under the :guilabel:`Private Information` tab, select the employee's :guilabel:`Gender`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:307 +msgid "The pay gap is calculated using the wages set on the employees' Payroll contracts for the same jobs." +msgstr "" + +#: ../../content/applications/finance/esg.rst:309 +msgid "Pay gap formula" +msgstr "" + +#: ../../content/applications/finance/esg.rst:311 +msgid "((`Average male salary` – `Average female salary`) / `Average male salary`) × `100`" +msgstr "" + +#: ../../content/applications/finance/esg.rst:313 +msgid "Access the measures by clicking :menuselection:`ESG --> Measure --> Sex Parity / Pay Gap`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:316 +msgid "Use the different :ref:`Group By ` options to break down the data by :guilabel:`Leadership Level`, :guilabel:`Department`, :guilabel:`Job Position`, :guilabel:`Contract Type`, or :guilabel:`Country`." +msgstr "" + +#: ../../content/applications/finance/esg.rst:0 +msgid "The sex parity graph filtering options" +msgstr "" + +#: ../../content/applications/finance/esg.rst:324 +msgid "Initiatives" +msgstr "" + +#: ../../content/applications/finance/esg.rst:326 +msgid "Go to :menuselection:`ESG --> Act --> Initiatives` to access all the :doc:`Project <../services/project>` features, and start taking action on your impact. You can estimate CO₂ savings for each task, track progress, and assign team members with deadlines." +msgstr "" + +#: ../../content/applications/finance/esg.rst:331 +msgid "Estimated CO₂ reductions do not immediately lower your carbon footprint. The real impact shows only when these reductions are reflected in your operations." +msgstr "" + #: ../../content/applications/finance/expenses.rst:7 msgid "Odoo **Expenses** streamlines the management of expenses. After an employee submits their expenses in Odoo, they are reviewed by management and accounting teams. Once approved, payments can then be processed, and disbursed back to the employee for reimbursement." msgstr "" @@ -14859,8 +15730,8 @@ msgid ":doc:`Posting expenses in accounting <../expenses/post_expenses>`" msgstr "" #: ../../content/applications/finance/expenses/reinvoice_expenses.rst:33 -#: ../../content/applications/finance/fiscal_localizations/india.rst:59 -#: ../../content/applications/finance/fiscal_localizations/india.rst:243 +#: ../../content/applications/finance/fiscal_localizations/india.rst:90 +#: ../../content/applications/finance/fiscal_localizations/india.rst:246 msgid "Setup" msgstr "" @@ -15437,7 +16308,6 @@ msgid "Argentina" msgstr "" #: ../../content/applications/finance/fiscal_localizations/argentina.rst:6 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:19 msgid "Webinars" msgstr "" @@ -15536,7 +16406,6 @@ msgid "Allows registering withholdings during the payment of an invoice." msgstr "" #: ../../content/applications/finance/fiscal_localizations/argentina.rst:58 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:142 #: ../../content/applications/finance/fiscal_localizations/peru.rst:105 msgid "Configure your company" msgstr "" @@ -16826,10 +17695,10 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:204 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:121 #: ../../content/applications/finance/fiscal_localizations/egypt.rst:172 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:195 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:251 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:695 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:808 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:190 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:348 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1294 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1691 #: ../../content/applications/finance/fiscal_localizations/peru.rst:823 #: ../../content/applications/finance/fiscal_localizations/peru.rst:996 msgid "Products" @@ -16941,7 +17810,7 @@ msgid "l10n_ar Sales Journal Configuration." msgstr "" #: ../../content/applications/finance/fiscal_localizations/argentina.rst:1159 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:716 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1316 msgid "Invoicing flow" msgstr "" @@ -17003,6 +17872,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:34 #: ../../content/applications/finance/fiscal_localizations/france.rst:8 #: ../../content/applications/finance/fiscal_localizations/jordan.rst:8 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:19 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:8 #: ../../content/applications/finance/fiscal_localizations/peru.rst:13 #: ../../content/applications/finance/fiscal_localizations/vietnam.rst:10 @@ -17070,15 +17940,6 @@ msgstr "" msgid "Synchronizes all pay runs from :ref:`Employment Hero ` with Odoo's journal entries." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/australia.rst:42 -#: ../../content/applications/finance/fiscal_localizations/brazil.rst:463 -#: ../../content/applications/finance/fiscal_localizations/ecuador.rst:430 -#: ../../content/applications/finance/fiscal_localizations/france.rst:81 -#: ../../content/applications/finance/fiscal_localizations/germany.rst:6 -#: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:181 -msgid "Accounting" -msgstr "" - #: ../../content/applications/finance/fiscal_localizations/australia.rst:45 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:50 msgid "Taxes and GST" @@ -17773,216 +18634,229 @@ msgstr "" msgid "Austria" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:8 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:10 msgid ":ref:`Install ` the following modules to get all the features of the Austrian localization." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:17 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:19 msgid ":guilabel:`Austria - Accounting`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:18 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:20 msgid "`l10n_at`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:19 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:21 #: ../../content/applications/finance/fiscal_localizations/romania.rst:19 msgid "Default :ref:`fiscal localization package `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:20 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:22 msgid ":guilabel:`Austria - Accounting Reports`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:21 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:23 msgid "`l10n_at_reports`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:22 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:24 msgid "Adds localized versions of financial reports" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:23 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:25 msgid ":guilabel:`Austrian SAF-T Export`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:24 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:26 msgid "`l10n_at_saft`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:25 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:27 msgid "Adds the SAF-T export." msgstr "" #: ../../content/applications/finance/fiscal_localizations/austria.rst:28 +msgid ":guilabel:`Austria - Security Regulation for Point of Sale`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:29 +msgid "`l10n_at_pos`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:30 +msgid "Adds RKSV compliance for POS." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:33 msgid ":doc:`Documentation on e-invoicing’s legality and compliance in Austria <../accounting/customer_invoices/electronic_invoicing/austria>`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:34 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:41 msgid "The following localized reports are available:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:36 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:43 msgid "Balance sheet according to `§ 224 UGB `_" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:37 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:44 msgid "Profit and loss according to `§ 231 UGB `_ (Gesamtkostenverfahren)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:40 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:47 msgid ":doc:`Accounting reporting documentation <../accounting/reporting>`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:43 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:52 msgid "SAF-T (Standard Audit File for Tax)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:45 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:54 msgid "The Austrian tax office may request a SAF-T. The Austrian SAF-T Export module allows exporting the report in XML format." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:51 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:62 msgid "This section explains how to configure the database to ensure all the information required by the SAF-T is available. If anything is missing, a warning message listing which information is needed will be displayed during the export." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:56 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:69 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:190 #: ../../content/applications/finance/fiscal_localizations/chile.rst:67 #: ../../content/applications/finance/fiscal_localizations/colombia.rst:78 #: ../../content/applications/finance/fiscal_localizations/italy.rst:41 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:48 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:43 #: ../../content/applications/finance/fiscal_localizations/saudi_arabia.rst:38 msgid "Company information" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:58 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:71 msgid "Open the database :guilabel:`Settings`. Under the :guilabel:`Companies` section, click :guilabel:`Update Info` and ensure the following fields are correctly filled in:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:61 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:74 msgid ":guilabel:`Address`, by providing at least the following information:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:63 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:76 #: ../../content/applications/finance/fiscal_localizations/chile.rst:75 msgid ":guilabel:`Street`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:64 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:77 #: ../../content/applications/finance/fiscal_localizations/chile.rst:76 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:234 msgid ":guilabel:`City`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:65 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:78 #: ../../content/applications/finance/fiscal_localizations/chile.rst:78 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:236 msgid ":guilabel:`ZIP`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:66 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:79 #: ../../content/applications/finance/fiscal_localizations/chile.rst:79 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:185 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:180 msgid ":guilabel:`Country`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:68 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:81 #: ../../content/applications/finance/fiscal_localizations/brazil.rst:150 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:64 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:187 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:59 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:182 msgid ":guilabel:`Phone`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:69 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:82 msgid ":guilabel:`Company ID` by providing your company's tax ID" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:70 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:83 msgid ":guilabel:`Tax ID` by providing, if you have one, your :abbr:`UID-Nummer (Umsatzsteueridentifikationsnummer)` (including the country prefix)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:74 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:89 msgid "Contact person" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:76 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:91 msgid "At least one **contact person** must be linked to your company in the :guilabel:`Contacts` app, and:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:78 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:93 msgid "Ensure the contact type is set to :guilabel:`Individual`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:79 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:94 msgid "Select your company in the :guilabel:`Company name` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:80 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:95 msgid "Provide at least one phone number using the :guilabel:`Phone` or :guilabel:`Mobile` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:83 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:100 msgid "Customer and supplier information" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:85 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:102 msgid "Using the :guilabel:`Contacts` app, fill in the :guilabel:`Address` of any partner that appears in your invoices, vendor bills, or payments." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:88 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:105 msgid "For partners that are companies, fill in the VAT number (including the country prefix) in the :guilabel:`Tax ID` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:92 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:111 #: ../../content/applications/finance/fiscal_localizations/chile.rst:87 msgid "Accounting settings" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:94 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:113 msgid "Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Austrian localization` section, fill in the following fields:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:97 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:116 msgid ":guilabel:`ÖNACE-Code`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:98 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:117 msgid ":guilabel:`Profit Assessment Method`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:101 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:120 msgid "`ÖNACE information on the Austrian Economic Chambers website `_" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:105 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:126 msgid "Chart of accounts mapping" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:107 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:128 msgid "The Austrian SAF-T specifications define a chart of accounts (COA). All relevant accounts for the SAF-T export must be annotated with a fitting account from this COA." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:110 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:131 msgid "The needed mapping information is supplied by adding tags to the accounts. For example, adding the `1000` tag to an account maps it (virtually) to the SAF-T COA account with the code `1000`. Any number can be used as long as there is an account in the SAF-T COA with that code." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:114 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:135 msgid "The :guilabel:`Austria - Accounting` module adds a tag for each SAF-T COA account. Furthermore, it automatically maps many accounts from the default Austrian COA." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:117 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:138 msgid "You can try exporting the SAF-T report to check if there are unmapped accounts (or mapped to multiple SAF-T accounts). A warning will be displayed if there is any issue with your configuration or the mapping. Clicking :guilabel:`View Problematic Accounts` lets you view them." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:122 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:143 msgid ":doc:`Chart of accounts documentation <../accounting/get_started/chart_of_accounts>`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:125 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:148 msgid "Exporting the SAF-T report" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/austria.rst:127 +#: ../../content/applications/finance/fiscal_localizations/austria.rst:150 msgid "To export the SAF-T report, go to :menuselection:`Accounting --> Reports --> General Ledger`. Click the right side of the :guilabel:`PDF` button and select :guilabel:`SAF-T`." msgstr "" @@ -17990,6 +18864,171 @@ msgstr "" msgid "The SAF-T button to export the file in XML format" msgstr "" +#: ../../content/applications/finance/fiscal_localizations/austria.rst:159 +#: ../../content/applications/finance/fiscal_localizations/germany.rst:234 +msgid "Point of Sale" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:164 +msgid "RKSV (Registrierkassensicherheitsverordnung)" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:166 +msgid "The :abbr:`RKSV (Registrierkassensicherheitsverordnung)` is an Austrian regulation designed to secure cash registers and prevent tax fraud. It requires businesses to use tamper-proof electronic cash register systems, including :doc:`point of sale ` systems." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:171 +msgid "These systems must be equipped with a **Signature Creation Unit (SCU)**, which is responsible for signing each transaction. This ensures that the transaction data cannot be altered. Additionally, the regulation mandates periodic transaction data exports for audit purposes. Odoo provides a compliant solution through `fiskaly `_, a *cloud-based solution*." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:181 +msgid ":ref:`Install ` the **Austria - Security Regulation for Point of Sale** (`l10n_at_pos`) module." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:185 +msgid "If this module is not listed, :ref:`update the app list `." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:192 +msgid "Open the Settings app, navigate to the :guilabel:`Companies` section, and click :icon:`oi-arrow-right` :guilabel:`Update Info` to make sure the :ref:`information ` is up-to-date and correctly filled in." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:196 +msgid "To link your company to Fiskaly and use it in Odoo, open the :guilabel:`Fiskaly` tab and enable :guilabel:`Managed by Odoo` :icon:`fa-toggle-on`, which activates automatic integration management." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:199 +msgid "If a Fiskaly account already exists with its own credentials, disable the toggle and configure the existing :guilabel:`Fiskaly credentials` manually." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:203 +msgid "For testing, ensure that :guilabel:`Test Fiskaly` :icon:`fa-toggle-on` is enabled to run the integration without impacting the production server. Since test mode is enabled by default, disable :guilabel:`Test Fiskaly` :icon:`fa-toggle-off` to switch to production mode." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:0 +msgid "Management toggle" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:211 +msgid "Once the credentials have been authenticated, the Fiskaly management option (by Odoo or custom) and the mode (test or production) can no longer be modified." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:214 +msgid "Click :guilabel:`Generate Credentials` to create a new organization in the Fiskaly system and generate the necessary credentials to run the service. Next, click :guilabel:`Authenticate Keys` to validate those credentials." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:221 +msgid "Link a Fiskaly organization to FinanzOnline" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:223 +msgid "To link the Fiskaly organization with the Austrian Ministry of Finance, FinanzOnline credentials must be provided. To do so, fill in the following information in your company's :guilabel:`Fiskaly` tab:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:227 +msgid ":guilabel:`Participant Identifier`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:228 +msgid ":guilabel:`User Identifier`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:229 +msgid ":guilabel:`User Pin`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:232 +msgid "FinanzOnline credentials can be accessed through an existing account or by `creating a new one `_ if it has not yet been set up." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:236 +msgid "Random credentials can be used in **test mode**, but valid credentials are required in **production mode**." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:239 +msgid "Click :guilabel:`Authenticate FON` to link your Fiskaly organization to the Austrian Ministry of Finance and start regular :doc:`point of sale ` operations." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:245 +msgid "Digitally signatured receipts" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:247 +msgid "To ensure the integrity and authenticity of the receipts, the system automatically signs them using the :abbr:`SCU (Signature Creation Unit)` in a background process. The receipt then displays an encrypted signature as a QR code containing the receipt number and information about the SCU used to sign it." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:253 +msgid "If the :abbr:`SCU (Signature Creation Unit)` is unavailable, receipts may not include a QR code; in such cases:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:256 +msgid "Make sure the receipt includes a :guilabel:`Sicherheitseinrichtung ausgefallen` message, indicating that the system is linked to Fiskaly services, but the SCU is temporarily unavailable." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:259 +msgid "If this message is missing from the receipt, it indicates no connection to Fiskaly services." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:261 +msgid "Orders that remain unsigned due to SCU unavailability can be signed manually. To do so, follow these steps:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:264 +msgid "Go to :menuselection:`Point of Sale --> Orders --> Orders`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:265 +msgid "To identify unsigned orders, click the :icon:`oi-settings-adjust` :guilabel:`(adjust settings)` icon in the :guilabel:`Orders` list view to reveal the :guilabel:`Receipt Signed?` column." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:268 +msgid "Select the unsigned orders, click :icon:`fa-cog` :guilabel:`Actions`, and select :guilabel:`Sign Order`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:274 +msgid "DEP7 export" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:276 +msgid "The exported :abbr:`DEP7 (Digitale Schnittstelle der Finanzverwaltung für Kassensysteme)` file allows authorities to verify transactions and ensure compliance with anti-fraud measures. Businesses must periodically generate it for audit purposes and submit it to the Austrian tax authorities upon request." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:281 +msgid "To generate it, go to :menuselection:`Point of Sale --> Reporting --> DEP7 Reports`, and, in the :guilabel:`DEP7 Reports`, fill in the following mandatory fields:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:284 +msgid ":guilabel:`Start Datetime`: Exports data with dates on or after the start date." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:285 +msgid ":guilabel:`End Datetime`: Exports data with dates on or before the end date." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:286 +msgid ":guilabel:`Point of Sale`: Specify from which point of sale(s) data must be exported." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:288 +msgid "Then, click :guilabel:`Print` to download the PDF file with DEP7 data." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:-1 +msgid "DEP7 Reports" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:296 +msgid "Monthly / Yearly closing receipts" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:298 +msgid "To print monthly/yearly closing receipts, :ref:`start a session ` from the **POS dashboard** and click :guilabel:`Open Register` on the related point of sale. Click the :icon:`oi-view-list` :guilabel:`(list view)` icon in the top-right corner and select :guilabel:`Montly/Yearly Receipts`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/austria.rst:303 +msgid "The last month is selected by default in the :guilabel:`Print closing receipts` window. To change it, select :guilabel:`Monthly` or :guilabel:`Yearly`, then click the :icon:`fa-calendar-o` :guilabel:`(calendar)` icon to select the desired month/year." +msgstr "" + #: ../../content/applications/finance/fiscal_localizations/belgium.rst:3 msgid "Belgium" msgstr "" @@ -18162,40 +19201,39 @@ msgid "Restaurant expenses" msgstr "" #: ../../content/applications/finance/fiscal_localizations/belgium.rst:143 -msgid "In Belgium, 31% of **restaurant** expenses are non-deductible. Create a new **disallowed expenses category** and set both :guilabel:`Related Account(s)` and :guilabel:`Current Rate`." +msgid "In Belgium, 69% of **restaurant** expenses are deductible. Create a new **disallowed expenses category** and set both :guilabel:`Related Account(s)` and :guilabel:`Current Rate`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:-1 -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:-1 -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:-1 -msgid "Disallowed expenses categories" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:152 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:149 msgid "Car expenses: vehicle split" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:154 -msgid "In Belgium, the deductible percentage varies from car to car and, therefore, should be indicated for each vehicle. To do so, open :menuselection:`Fleet` and select a vehicle. In the :guilabel:`Tax info` tab, go to the :guilabel:`Disallowed Expenses Rate` section and click on :guilabel:`Add a line`. Add a :guilabel:`Start Date` and a :guilabel:`%`. The amounts go in the same account for all car expenses." +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:151 +msgid "In Belgium, the deductible percentage varies from car to car and, therefore, should be indicated for each vehicle. To do so, open :menuselection:`Fleet` and select a vehicle. In the :guilabel:`Tax info` tab, go to the :guilabel:`Deductibility Rates` section and click on :guilabel:`Add a line`. Add a :guilabel:`Start Date` and a :guilabel:`%`. The amounts go in the same account for all car expenses." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:160 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:157 msgid "When you create a bill for car expenses, you can link each expense to a specific car by filling the :guilabel:`Vehicle` column, so the right percentage is applied." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:166 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:-1 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:-1 +msgid "Disallowed expenses categories" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:163 msgid "The :guilabel:`vehicle split` option available in the disallowed expenses report allows you to see the rate and disallowed amount for each car." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:175 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:172 msgid "Fee form 281.50 and form 325" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:180 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:177 msgid "Fee form 281.50" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:182 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:179 msgid "Annually, a **281.50 fee form** must be reported to the fiscal authorities. To do so, the tag `281.50` must be added on the **contact form** of the entities concerned by the **281.50** fee. To add the tag, open :menuselection:`Contacts`, select the person or company you want to create a **281.50 fee form** for, and add the `281.50` tag in the :guilabel:`Tags` field." msgstr "" @@ -18203,19 +19241,19 @@ msgstr "" msgid "add the tag 281.50 on a contact form" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:191 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:188 msgid "Make sure the **street, zip code, country**, and **VAT number** are also informed on the **Contact form**." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:194 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:191 msgid "Then, depending on the nature of the expense, add the corresponding `281.50` tag on the impact accounts. To do so, go to :menuselection:`Accounting --> Configuration --> Accounting: Chart of Accounts`, and click on :guilabel:`Setup` to add the corresponding `281.50` tag on the impacted accounts, i.e., :guilabel:`281.50 - Commissions`, depending on the nature of the expense." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:202 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:199 msgid "Form 325" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:204 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:201 msgid "You can create a **325 form** by going to :menuselection:`Accounting --> Reporting --> Belgium: Create 325 form`. A new page pops up: select the right options and click :guilabel:`Generate 325 form`. To open an already generated **325 form**, go to :menuselection:`Accounting --> Reporting --> Belgium: Open 325 forms`." msgstr "" @@ -18223,15 +19261,15 @@ msgstr "" msgid "Add the tag 281-50 on a contact form" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:215 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:212 msgid "CODA and SODA statements" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:220 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:217 msgid "CODA" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:222 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:219 msgid "**CODA** is an electronic XML format used to import Belgian bank statements. You can download CODA files from your bank and import them directly into Odoo by clicking :guilabel:`Import file` from your :guilabel:`Bank` journal on your dashboard." msgstr "" @@ -18239,19 +19277,19 @@ msgstr "" msgid "Import CODA files" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:230 -msgid ":ref:`Import bank files `" +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:227 +msgid ":ref:`Import bank files `" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:235 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:232 msgid "SODA" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:237 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:234 msgid "**SODA** is an electronic XML format used to import accounting entries related to salaries. SODA files can be imported into the journal you use to record salaries by going to your Accounting **dashboard** and clicking :guilabel:`Upload` in the related journal card form." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:241 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:238 msgid "Once your **SODA** files are imported, the entries are created automatically in your salary journal." msgstr "" @@ -18259,101 +19297,101 @@ msgstr "" msgid "Import SODA files" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:249 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:246 msgid "CodaBox" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:251 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:248 msgid "**CodaBox** is a service that allows Belgian companies and accounting firms to access bank information and statements. Odoo provides a way to import such statements automatically." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:257 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:254 msgid "To configure and use Codabox, first :ref:`install ` the :guilabel:`CodaBox` module." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:262 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:259 msgid "Configure the Connection" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:266 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:263 msgid "For companies" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:269 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:266 msgid "Make sure the :doc:`company settings ` are correctly configured, i.e., the country is set to :guilabel:`Belgium` and the :guilabel:`Tax ID` or :guilabel:`Company ID` field is filled." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:273 -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:302 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:270 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:299 msgid "Go to :menuselection:`Accounting --> Configuration --> Settings`, then go to the :guilabel:`CodaBox & SODA` section." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:275 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:272 msgid "Click on :guilabel:`Manage Connection` to open the connection wizard, which shows the :guilabel:`Company VAT/ID` number that will be used for the connection." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:277 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:274 msgid "If this is your **first connection**, click on :guilabel:`Create connection`. The wizard confirms that the connection has been created on **Odoo's side**. Follow the steps to validate the connection on **CodaBox's side** too." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:281 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:278 msgid "If this is **not your first connection**, the :guilabel:`Password` provided by Odoo during the first connection will be requested to create a new connection." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:285 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:282 msgid "This :guilabel:`Password` is unique to Odoo and must be stored securely on your side." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:288 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:285 msgid "For accounting firms" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:290 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:287 msgid "Accounting firms must manage their clients on separate databases and configure them individually to avoid mixing up their data. The connection must be made by an accounting firm with valid CodaBox Connect credentials. In the following instructions, we will refer to your client's company as *Company* and to your accounting firm as *Accounting Firm*." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:297 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:294 msgid "Make sure the :doc:`company settings ` are correctly configured, i.e., the country is set to :guilabel:`Belgium`, the :guilabel:`Tax ID` or :guilabel:`Company ID` and :guilabel:`Accounting Firm` fields are filled, as well as the :guilabel:`Tax ID` of the :guilabel:`Accounting Firm`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:304 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:301 msgid "Click on :guilabel:`Manage Connection` to open the connection wizard, which shows the :guilabel:`Accounting Firm VAT` number and the :guilabel:`Company VAT/ID` number that will be used for the connection." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:307 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:304 msgid "If this is your **first connection**, click on :guilabel:`Create connection`. The wizard confirms that the connection has been created on **Odoo's side**. Follow the steps to validate the connection on **CodaBox's side**, too." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:311 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:308 msgid "If this is **not your first connection**, the :guilabel:`Accounting Firm Password` provided by Odoo during the first connection will be requested to create a new connection." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:315 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:312 msgid "This :guilabel:`Accounting Firm Password` is unique to Odoo and must be stored securely on your side." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:318 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:315 msgid "The :guilabel:`Status` should have now switched to :guilabel:`Connected`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:321 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:318 msgid "Configure the journals" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:325 -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:357 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:322 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:354 msgid "For CODA files" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:327 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:324 msgid ":doc:`Create a new bank journal <../accounting/bank>`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:328 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:325 msgid "Set the right IBAN in the :guilabel:`Account Number` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:329 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:326 msgid "Select :guilabel:`CodaBox synchronization` as the :guilabel:`Bank Feed`." msgstr "" @@ -18361,24 +19399,24 @@ msgstr "" msgid "Configuration of a CODA journal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:336 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:333 msgid "When working with bank transactions that use different currencies, it is recommended to create multiple journals with the same bank account but different currencies." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:339 -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:363 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:336 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:360 msgid "For SODA files" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:341 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:338 msgid "Create a new miscellaneous journal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:342 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:339 msgid "Go to :menuselection:`Accounting --> Configuration --> Settings`, then go to the :guilabel:`CodaBox` section." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:344 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:341 msgid "Select the journal you just created in the SODA journal field." msgstr "" @@ -18386,251 +19424,320 @@ msgstr "" msgid "Configuration of a SODA journal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:351 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:348 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:492 msgid "Synchronization" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:353 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:350 msgid "Once the connection is established, Odoo can be synchronized with CodaBox." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:359 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:356 msgid "CODA files are automatically imported from CodaBox every 12 hours. You do not have to do anything. However, if you wish, it can also be done manually, by clicking on :guilabel:`Fetch from CodaBox` in the Accounting Dashboard." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:365 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:362 msgid "SODA files are automatically imported from CodaBox once a day as a draft. You do not have to do anything. However, if you wish, it can also be done manually by clicking on :guilabel:`Fetch from CodaBox` in the Accounting Dashboard." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:369 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:366 msgid "By default, if an account in the SODA file is not mapped to an account in Odoo, the Suspense Account (499000) is used, and a note is added to the created journal entry." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:373 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:370 msgid "You can access the mapping between the SODA and Odoo accounts by going to :menuselection:`Accounting --> Configuration --> Settings` and clicking on the :guilabel:`Open SODA Mapping` button in the :guilabel:`CodaBox` section." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:379 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:376 msgid "Potential issues" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:381 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:378 msgid "**CodaBox is not configured. Please check your configuration.**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:383 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:380 msgid "Either the :guilabel:`Company VAT` or the :guilabel:`Accounting Firm VAT` is not set." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:385 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:382 msgid "**No connection exists with these accounting firms and company VAT numbers.** **Please check your configuration.**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:388 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:385 msgid "This can happen when checking the connection status, and the :guilabel:`Accounting Firm VAT` and :guilabel:`Company VAT` combination still needs to be registered. This may happen if you have changed the :guilabel:`Company VAT` after the connection was established. For security reasons, you have to :ref:`recreate a connection ` for this :guilabel:`Company VAT`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:394 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:391 msgid "**It seems that your CodaBox connection is not valid anymore. Please connect again.**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:396 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:393 msgid "This can happen if you revoke Odoo's access to your CodaBox account or still need to complete the configuration process. In this case, you must revoke the connection and create a new one." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:399 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:396 msgid "**The provided password is not valid for this accounting firm.** **You must reuse the password you received from Odoo during your first connection.**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:402 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:399 msgid "The password you provided is different from the one you received from Odoo during your first connection. You must use the password you received from Odoo during your first connection to create a new connection for this accounting firm. If you have lost your password, you must first revoke the Odoo connection on CodaBox's side (i.e., on your myCodaBox portal). Then, you can revoke the connection on Odoo's side and :ref:`create a new one `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:409 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:406 msgid "**It seems that the company or accounting firm VAT number you provided is not valid.** **Please check your configuration.**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:412 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:409 msgid "Either the :guilabel:`Company VAT` or the :guilabel:`Accounting Firm VAT` is not in a valid Belgian format." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:415 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:412 msgid "**It seems that the accounting firm VAT number you provided does not exist in CodaBox.** **Please check your configuration.**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:418 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:415 msgid "The :guilabel:`Accounting Firm VAT` number you provided is not registered in CodaBox. You may not have a valid CodaBox license linked to this VAT number." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:421 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:418 msgid "**It seems you have already created a connection to CodaBox with this accounting firm.** **To create a new connection, you must first revoke the old one on myCodaBox portal.**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:424 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:421 msgid "You must go to your myCodaBox portal and revoke Odoo's access to your CodaBox account. Then, you can :ref:`create a new connection ` on Odoo's side." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:429 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:426 msgid "To revoke the connection between Odoo and CodaBox, go to :menuselection:`Accounting --> Configuration --> Settings`, scroll down to the :guilabel:`CodaBox` section, click on :guilabel:`Manage Connection`, then click on :guilabel:`Revoke`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:435 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:153 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:263 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:312 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:434 +msgid "Codaclean" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:436 +msgid "**Codaclean** is a service that allows Belgian companies and accounting firms to access bank information and statements. Odoo provides a way to import such statements and their transactions automatically." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:446 +msgid "Make sure to :ref:`install ` the :guilabel:`Codaclean` (`l10n_be_codaclean`) module." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:453 +msgid "Connection with Odoo" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:455 +msgid "To connect Odoo with Codaclean, follow these steps:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:457 +msgid "Open the Settings app, navigate to the :ref:`Companies ` section, and click :icon:`oi-arrow-right` :guilabel:`Manage Companies` to make sure the company's :guilabel:`Country` is set to :guilabel:`Belgium`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:460 +msgid "Go to :menuselection:`Accounting --> Configuration --> Settings` and scroll to the :guilabel:`Codaclean` section." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:462 +msgid "Click :guilabel:`Manage Connection` to open the connection wizard, enter the Codaclean :guilabel:`Username` and :guilabel:`Password` and click :guilabel:`Connect`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:465 +msgid "The :guilabel:`Status` is updated to :guilabel:`Connected`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:468 +msgid "Once the connection is established, the :guilabel:`Manage Connection` wizard provides two options:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:470 +msgid "Update Codaclean credentials: Enter the new :guilabel:`Username` and :guilabel:`Password`, then click :guilabel:`Change Credentials`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:472 +msgid "Remove Codaclean connection: Click :guilabel:`Disconnect`; no :guilabel:`Username` or :guilabel:`Password` is required." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:478 +msgid "Journal creation" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:480 +msgid "A specific bank journal must be created for Codaclean synchronization. To do so, :doc:`create a new bank journal <../accounting/bank>`, make sure to enter the correct IBAN in the :guilabel:`Bank Account Number` field, and select :guilabel:`Codaclean Syncronization` in the :guilabel:`Bank Feeds` field." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:486 +msgid "For bank transactions in different currencies, it is recommended to create a separate journal for each currency, using the same bank account." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:494 +msgid "Once the connection is established, Odoo is synchronized with Codaclean, and new CODA files received via Codaclean are checked every twelve hours." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:498 +msgid "To manually check for new CODA files, go to the Accounting Dashboard and click :guilabel:`Fetch from Codaclean` on the relevant :ref:`journal ` ." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:502 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:148 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:362 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:425 msgid "Electronic invoicing" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:437 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:504 msgid "Odoo supports the **Peppol BIS Billing 3.0 (UBL)** electronic invoicing format. To enable it for a customer, go to :menuselection:`Accounting --> Customers --> Customers`, open their contact form, and under the :guilabel:`Accounting` tab, select the :guilabel:`Peppol BIS Billing 3.0` format." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:442 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:509 #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:302 msgid ":doc:`../accounting/customer_invoices/electronic_invoicing`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:447 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:514 #: ../../content/applications/finance/fiscal_localizations/canada.rst:257 #: ../../content/applications/finance/fiscal_localizations/united_states.rst:400 msgid "Cash discount" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:449 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:516 msgid "In Belgium, if an early payment discount is offered on an invoice, the tax is calculated based on the discounted total amount, whether the customer benefits from the discount or not." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:452 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:519 msgid "To apply the right tax amount and report it correctly in your VAT return, set the tax reduction as :guilabel:`Always (upon invoice)`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:456 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:523 #: ../../content/applications/finance/fiscal_localizations/canada.rst:263 #: ../../content/applications/finance/fiscal_localizations/united_states.rst:406 msgid ":doc:`../accounting/customer_invoices/cash_discounts`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:461 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:528 msgid "Fiscal certification: POS restaurant" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:463 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:530 msgid "In Belgium, the owner of a cooking business such as a restaurant or food truck is required by law to use a government-certified **Cash Register System** for their receipts. This applies if their yearly earnings (excluding VAT, drinks, and take-away food) exceed 25,000 euros." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:467 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:534 msgid "This government-certified system entails the use of a :ref:`certified POS system `, along with a device called a :ref:`Fiscal Data Module ` (or **black box**) and a :ref:`VAT Signing Card `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:472 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:539 msgid "Do not forget to register as *foodservice industry manager* on the `Federal Public Service Finance registration form `_." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:478 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:545 msgid "Certified POS system" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:480 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:547 msgid "The Odoo POS system is certified for databases hosted on **Odoo Online**, **Odoo.sh**, and **On-Premise**." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:484 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:551 msgid ":doc:`/administration/supported_versions`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:486 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:553 msgid "A `certified POS system `_ must adhere to rigorous government regulations, which means it operates differently from a non-certified POS." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:490 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:557 msgid "On a certified POS, you cannot:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:492 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:559 msgid "Set up and use the **global discounts** feature (the `pos_discount` module is blacklisted and cannot be activated)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:494 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:561 msgid "Set up and use the **loyalty programs** feature (the `pos_loyalty` module is blacklisted and cannot be activated)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:496 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:563 msgid "Reprint receipts (the `pos_reprint` module is blacklisted and cannot be activated)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:497 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:564 msgid "Modify prices in order lines." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:498 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:565 msgid "Modify or delete order lines in POS orders." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:499 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:566 msgid "Sell products without a valid VAT number." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:500 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:567 msgid "Use a POS that is not connected to an IoT box." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:502 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:569 msgid "The :doc:`cash rounding <../../sales/point_of_sale/pricing/cash_rounding>` feature must be activated and set to a :guilabel:`Rounding Precision` of `0,05` and a :guilabel:`Rounding Method` set as :guilabel:`Half-Up`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:505 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:572 msgid "Taxes must be set as included in the price. To set it up, go to :menuselection:`Point of Sale --> Configuration --> Settings`, and from the :guilabel:`Accounting` section, open the :guilabel:`Default Sales Tax` form by clicking the arrow next to the default sales tax field. There, click :guilabel:`Advanced Options` and enable :guilabel:`Included in Price`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:509 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:576 msgid "At the start of a POS session, users must click :guilabel:`Work in` to clock in. Doing so allows the registration of POS orders. If users are not clocked in, they cannot make POS orders. Likewise, they must click :guilabel:`Work Out` to clock out at the end of the session." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:514 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:581 msgid "If you configure a POS to work with a :abbr:`FDM (Fiscal Data Module)`, you cannot use it again without it." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:520 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:587 msgid "Fiscal Data Module (FDM)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:522 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:589 msgid "An FDM, or **black box**, is a government-certified device that works together with the Point of Sale application and saves your POS orders information. Concretely, a **hash** (:dfn:`unique code`) is generated for each POS order and added to its receipt. This allows the government to verify that all revenue is declared." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:528 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:595 msgid "Only the FDM from **Boîtenoire.be** with the `FDM certificate number BMC04 `_ is supported by Odoo. `Contact the manufacturer (GCV BMC) `_ to order one." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:536 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:603 msgid "Before setting up your database to work with an FDM, ensure you have the following hardware:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:538 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:605 msgid "a **Boîtenoire.be** (certificate number BMC04) FDM;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:539 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:606 msgid "an RS-232 serial null modem cable per FDM;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:540 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:607 msgid "an RS-232 serial-to-USB adapter per FDM;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:541 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:608 msgid "an :ref:`IoT Box ` (one IoT box per FDM); and" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:542 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:609 msgid "a receipt printer." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:547 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:614 msgid "Black box module" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:549 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:616 msgid "As a pre-requisite, :ref:`activate ` the `Belgian Registered Cash Register` module (technical name: `pos_blackbox_be`)." msgstr "" @@ -18638,7 +19745,7 @@ msgstr "" msgid "black box modules for belgian fiscal certification" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:555 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:622 msgid "Once the module is activated, add your VAT number to your company information. To set it up, go to :menuselection:`Settings --> Companies --> Update Info`, and fill in the :guilabel:`VAT` field. Then, enter a national registration number for every staff member who operates the POS system. To do so, go to the :guilabel:`Employees` app and open an employee form. There, go to :menuselection:`HR settings tab --> Attendance/Point of Sale`, and fill in the :guilabel:`INSZ or BIS number` field." msgstr "" @@ -18646,35 +19753,35 @@ msgstr "" msgid "ISNZ or BIS number field on employee form" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:565 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:632 msgid "To input your information, click on your avatar, go to :menuselection:`My Profile --> Preference tab`, and enter your INSZ or BIS number in the designated field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:569 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:636 msgid "You must configure the :abbr:`FDM (Fiscal Data Module)` directly in the production database. Utilizing it in a testing environment may result in incorrect data being stored within the FDM." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:575 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:642 msgid "IoT Box" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:577 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:644 msgid "In order to use an :abbr:`FDM (Fiscal Data Module)`, you need a registered IoT Box. To register your IoT box, you must contact us through our `support contact form `_ and provide the following information:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:581 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:648 msgid "your VAT number;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:582 -msgid "your company's name, address, and legal structure; and" +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:649 +msgid "your company's name, address, and legal structure;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:583 -msgid "the Mac address of your IoT Box." +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:650 +msgid "the identifier of your IoT Box." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:585 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:652 msgid "Once your IoT box is certified, :doc:`connect <../../general/iot/connect>` it to your database. To verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the :guilabel:`IOT Device` section, which should display the FDM." msgstr "" @@ -18682,19 +19789,19 @@ msgstr "" msgid "Hardware status page on a registered IoT Box" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:592 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:659 msgid "Then, add the IoT to your POS. To do so, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale`, select your POS, scroll down to the :guilabel:`Connected Device` section, and enable :guilabel:`IoT Box`. Lastly, add the FMD in the :guilabel:`Fiscal Data Module` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:597 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:664 msgid "To be able to use an FDM, you must at least connect one :guilabel:`Receipt Printer`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:602 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:669 msgid "VAT signing card" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/belgium.rst:604 +#: ../../content/applications/finance/fiscal_localizations/belgium.rst:671 msgid "When you open a POS session and make your initial transaction, you are prompted to enter the PIN provided with your :abbr:`VSC (VAT signing card)`. The card is delivered by the :abbr:`FPS (Service Public Federal Finances)` upon `registration `_." msgstr "" @@ -18864,6 +19971,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/ecuador.rst:91 #: ../../content/applications/finance/fiscal_localizations/france.rst:48 #: ../../content/applications/finance/fiscal_localizations/jordan.rst:38 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:111 #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:38 msgid "Localization overview" msgstr "" @@ -18930,7 +20038,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/brazil.rst:739 #: ../../content/applications/finance/fiscal_localizations/chile.rst:236 #: ../../content/applications/finance/fiscal_localizations/chile.rst:1099 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:53 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:48 #: ../../content/applications/finance/fiscal_localizations/vietnam.rst:42 msgid ":guilabel:`Name`" msgstr "" @@ -18940,13 +20048,13 @@ msgid ":guilabel:`Address`: add :guilabel:`City`, :guilabel:`State`, :guilabel:` msgstr "" #: ../../content/applications/finance/fiscal_localizations/brazil.rst:141 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:57 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:52 #: ../../content/applications/finance/fiscal_localizations/vietnam.rst:46 msgid "In the :guilabel:`Street` field, enter the street name, number, and any additional address information." msgstr "" #: ../../content/applications/finance/fiscal_localizations/brazil.rst:143 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:59 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:54 #: ../../content/applications/finance/fiscal_localizations/vietnam.rst:48 msgid "In the :guilabel:`Street 2` field, enter the neighborhood." msgstr "" @@ -19472,7 +20580,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:598 #: ../../content/applications/finance/fiscal_localizations/colombia.rst:395 #: ../../content/applications/finance/fiscal_localizations/kenya.rst:367 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:346 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:497 msgid "Credit notes" msgstr "" @@ -19503,7 +20611,7 @@ msgid "Only the products included in the original invoice can be included in the msgstr "" #: ../../content/applications/finance/fiscal_localizations/brazil.rst:554 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:263 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:258 #: ../../content/applications/finance/fiscal_localizations/vietnam.rst:221 msgid "Invoice cancellation" msgstr "" @@ -19646,6 +20754,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/brazil.rst:703 #: ../../content/applications/finance/fiscal_localizations/france.rst:597 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1339 msgid "Point of sale" msgstr "" @@ -19662,9 +20771,9 @@ msgid ":guilabel:`Next number`: the next NFC-e number in the sequence to be issu msgstr "" #: ../../content/applications/finance/fiscal_localizations/brazil.rst:717 -#: ../../content/applications/finance/fiscal_localizations/india.rst:115 -#: ../../content/applications/finance/fiscal_localizations/india.rst:288 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:218 +#: ../../content/applications/finance/fiscal_localizations/india.rst:133 +#: ../../content/applications/finance/fiscal_localizations/india.rst:287 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:213 msgid "Workflow" msgstr "" @@ -20434,6 +21543,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/germany.rst:271 #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:101 #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:186 +#: ../../content/applications/finance/fiscal_localizations/india.rst:44 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:86 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:230 msgid ":guilabel:`Company Name`" @@ -20445,7 +21555,7 @@ msgid ":guilabel:`Address`:" msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:77 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:186 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:181 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:235 msgid ":guilabel:`State`" msgstr "" @@ -20663,7 +21773,7 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:220 #: ../../content/applications/finance/fiscal_localizations/colombia.rst:293 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:560 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:782 #: ../../content/applications/finance/fiscal_localizations/peru.rst:283 msgid "Multicurrency" msgstr "" @@ -21005,8 +22115,8 @@ msgid "Crossed referenced document(s)." msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:512 -#: ../../content/applications/finance/fiscal_localizations/india.rst:137 -#: ../../content/applications/finance/fiscal_localizations/india.rst:318 +#: ../../content/applications/finance/fiscal_localizations/india.rst:153 +#: ../../content/applications/finance/fiscal_localizations/india.rst:301 msgid "Invoice PDF report" msgstr "" @@ -21377,7 +22487,7 @@ msgid "Odoo automatically updates the *DTE Status* every night using a scheduled msgstr "" #: ../../content/applications/finance/fiscal_localizations/chile.rst:801 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:735 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1606 msgid "Delivery guide" msgstr "" @@ -22147,9 +23257,9 @@ msgstr "" #: ../../content/applications/finance/fiscal_localizations/colombia.rst:191 #: ../../content/applications/finance/fiscal_localizations/france.rst:406 #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:182 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:181 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:177 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:650 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:176 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:188 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1260 #: ../../content/applications/finance/fiscal_localizations/philippines.rst:42 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:225 msgid "Contacts" @@ -24389,7 +25499,7 @@ msgid ":doc:`Install ` the :guilabel:`France msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:104 -msgid ":ref:`Register ` with Peppol, as invoices are sent from Odoo to Chorus Pro via the :ref:`Peppol ` network." +msgid ":ref:`Register ` with Peppol, as invoices are sent from Odoo to Chorus Pro via the :ref:`Peppol ` network." msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:106 @@ -24409,39 +25519,39 @@ msgid "To submit invoices to Chorus Pro, configure the relevant customers' conta msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:122 -msgid "Ensure the :guilabel:`Country` field is completed, then select :guilabel:`VAT` as the :guilabel:`Identification Number` and enter the corresponding number." +msgid "Verify the :guilabel:`Country` and :guilabel:`VAT` fields are filled out." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/france.rst:124 +#: ../../content/applications/finance/fiscal_localizations/france.rst:123 msgid "In the :guilabel:`Sales & Purchase` tab, ensure the :guilabel:`SIRET` field is completed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/france.rst:125 +#: ../../content/applications/finance/fiscal_localizations/france.rst:124 msgid "In the :guilabel:`Accounting` tab, fill in the following fields in the :guilabel:`Customer Invoices` section:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/france.rst:128 +#: ../../content/applications/finance/fiscal_localizations/france.rst:127 msgid ":guilabel:`eInvoice format`: Select :guilabel:`BIS Billing 3.0`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/france.rst:129 +#: ../../content/applications/finance/fiscal_localizations/france.rst:128 msgid "Make sure :guilabel:`France SIRET` is selected in the next field, then type `11000201100044`, the reference used by Chorus Pro." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/france.rst:135 +#: ../../content/applications/finance/fiscal_localizations/france.rst:134 msgid "Sending invoices to Chorus Pro" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/france.rst:137 +#: ../../content/applications/finance/fiscal_localizations/france.rst:136 msgid "To send invoices to Chorus Pro, follow these steps:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/france.rst:139 +#: ../../content/applications/finance/fiscal_localizations/france.rst:138 msgid "Go to :menuselection:`Accounting --> Customers --> Invoices` and open or create the invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/france.rst:140 -msgid "Make sure the following fields are filled in the :guilabel:`Other Info` tab:" +#: ../../content/applications/finance/fiscal_localizations/france.rst:139 +msgid "In the :guilabel:`Other Info` tab, make sure the following fields are filled in the :guilabel:`Chorus Pro` section:" msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:142 @@ -24461,7 +25571,7 @@ msgid "Confirm the invoice." msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:147 -msgid "Click :guilabel:`Send` and, in the :guilabel:`Print & Send` window, enable :guilabel:`By Peppol`." +msgid "Click :guilabel:`Send` and, in the :guilabel:`Send` window, enable :guilabel:`By Peppol`." msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:148 @@ -24474,7 +25584,7 @@ msgid "Once the invoice is sent, the Peppol status of the invoice is updated to msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:153 -msgid ":ref:`Peppol `" +msgid ":ref:`Peppol `" msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:158 @@ -25096,8 +26206,8 @@ msgid "**75%**" msgstr "" #: ../../content/applications/finance/fiscal_localizations/france.rst:397 -#: ../../content/applications/finance/fiscal_localizations/india.rst:188 -#: ../../content/applications/finance/fiscal_localizations/india.rst:202 +#: ../../content/applications/finance/fiscal_localizations/india.rst:191 +#: ../../content/applications/finance/fiscal_localizations/india.rst:205 msgid "**Total**" msgstr "" @@ -25574,7 +26684,7 @@ msgid "If you do not have the DATEV Belegtransfer software installed on your com msgstr "" #: ../../content/applications/finance/fiscal_localizations/germany.rst:62 -msgid "The DATEV ATCH ZIP file includes the files (reports) linked to an Odoo invoice or bill. For customer invoices, the file must have been generated by using the :guilabel:`Print & Send` button. For vendor bills, the file must have been received via an email alias or uploaded by using the :guilabel:`Upload` button." +msgid "The DATEV ATCH ZIP file includes the files (reports) linked to an Odoo invoice or bill. For customer invoices, the file must have been generated by using the :guilabel:`Send` button. For vendor bills, the file must have been received via an email alias or uploaded by using the :guilabel:`Upload` button." msgstr "" #: ../../content/applications/finance/fiscal_localizations/germany.rst:67 @@ -25798,10 +26908,6 @@ msgstr "" msgid "In the event of an infringement, you can expect a fine and a court order demanding the implementation of specific measures." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/germany.rst:234 -msgid "Point of Sale" -msgstr "" - #: ../../content/applications/finance/fiscal_localizations/germany.rst:237 msgid "Technical security system" msgstr "" @@ -26074,7 +27180,9 @@ msgid "Odoo automatically installs the base module **Guatemala - Accounting** wh msgstr "" #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:96 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:141 +#: ../../content/applications/finance/fiscal_localizations/india.rst:39 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:136 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:145 #: ../../content/applications/finance/fiscal_localizations/romania.rst:49 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:81 #: ../../content/applications/finance/fiscal_localizations/vietnam.rst:37 @@ -26082,12 +27190,14 @@ msgid "Company" msgstr "" #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:98 +#: ../../content/applications/finance/fiscal_localizations/india.rst:41 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:83 msgid "To configure your company information, open the **Settings** app, scroll down to the :guilabel:`Companies` section, click :guilabel:`Update Info`, and configure the following:" msgstr "" #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:102 #: ../../content/applications/finance/fiscal_localizations/guatemala.rst:187 +#: ../../content/applications/finance/fiscal_localizations/india.rst:45 #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:87 msgid ":guilabel:`Address`, including the :guilabel:`Street`, :guilabel:`City`, :guilabel:`State`, :guilabel:`ZIP`, and :guilabel:`Country`" msgstr "" @@ -26538,7 +27648,7 @@ msgid ":guilabel:`Indian E-waybill`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/india.rst:26 -msgid "`l10n_in_edi_ewaybill`" +msgid "`l10n_in_ewaybill`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/india.rst:27 @@ -26558,74 +27668,90 @@ msgid ":ref:`E-waybill creation from the Inventory app `" msgstr "" #: ../../content/applications/finance/fiscal_localizations/india.rst:31 -msgid ":guilabel:`Indian - Check GST Number Status`" +msgid ":guilabel:`Indian - Accounting Reports`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/india.rst:32 -msgid "`l10n_in_gstin_status`" +msgid "`l10n_in_reports`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/india.rst:33 -msgid ":ref:`Indian Check GST Number Status `" +msgid "Adds the :ref:`Indian GST Return filing ` and the :ref:`Indian Tax reports `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:34 -msgid ":guilabel:`Indian - GSTR India eFiling`" +#: ../../content/applications/finance/fiscal_localizations/india.rst:47 +msgid ":guilabel:`PAN`: essential for determining the type of taxpayer." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:35 -msgid "`l10n_in_reports_gstr`" +#: ../../content/applications/finance/fiscal_localizations/india.rst:48 +msgid ":guilabel:`GSTIN`: necessary for generating e-Invoices, E-waybills and filing GST returns." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:36 -msgid ":ref:`Indian GST Return filing `" +#: ../../content/applications/finance/fiscal_localizations/india.rst:53 +msgid "Indian Configuration" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:37 -msgid ":guilabel:`Indian - Accounting Reports`" +#: ../../content/applications/finance/fiscal_localizations/india.rst:55 +msgid "The **Indian Integration** section provides essential taxation and compliance features to simplify financial operations. To enable these features, navigate to :menuselection:`Accounting --> Configuration --> Settings` and scroll down to the :guilabel:`Indian Integration` section." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:38 -msgid "`l10n_in_reports`" +#: ../../content/applications/finance/fiscal_localizations/india.rst:-1 +msgid "Indian Integration Section" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:39 -msgid ":ref:`Indian tax reports `" +#: ../../content/applications/finance/fiscal_localizations/india.rst:62 +msgid ":guilabel:`TDS/TCS`: Activate this to enable :ref:`TDS/TCS ` functionality along with account-based TDS/TCS section suggestions." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:-1 -msgid "Indian localization modules" +#: ../../content/applications/finance/fiscal_localizations/india.rst:64 +msgid ":guilabel:`Registered Under GST`: Select this if your business is registered under GST to access GST-related features, including e-invoice, e-waybill, GST e-filing, fetch vendor e-invoiced document and check GST number status." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:47 -msgid "Indian Configuration" +#: ../../content/applications/finance/fiscal_localizations/india.rst:67 +msgid ":guilabel:`E-Invoicing`: Connects to the :ref:`e-invoice ` :abbr:`NIC (National Informatics Center)` portal to submit invoices." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/india.rst:69 +msgid ":guilabel:`E-Way bill`: Connects to the :ref:`e-waybill ` :abbr:`NIC (National Informatics Center)` portal to generate e-waybills." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/india.rst:71 +msgid ":guilabel:`GST E-Filing & Matching`: Enable the feature to facilitate :ref:`GST return filing ` and connect with the GST portal to submit GSTR-1 and retrieve GSTR-2B." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/india.rst:73 +msgid ":guilabel:`Check GST Number Status`: Enable to verify :ref:`GSTIN Status `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:49 -msgid "In :menuselection:`Settings --> Users & Companies --> Companies`, add your :guilabel:`PAN` and :guilabel:`GSTIN`. The PAN is essential for determining the type of taxpayer, while GSTIN is required for generating e-Invoices and E-waybills." +#: ../../content/applications/finance/fiscal_localizations/india.rst:74 +msgid ":guilabel:`Fetch Vendor E-Invoiced Document`: Helps in creating draft vendor bills using e-invoice data submitted by vendors on GST portal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:54 +#: ../../content/applications/finance/fiscal_localizations/india.rst:78 +msgid "Check the :guilabel:`Production Environment` checkbox to start using Indian services in the production environment. If you want to use the testing environment then keep the checkbox unchecked." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/india.rst:85 msgid "e-Invoice system" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:56 +#: ../../content/applications/finance/fiscal_localizations/india.rst:87 msgid "Odoo is compliant with the **Indian Goods and Services Tax (GST) e-Invoice system** requirements." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:64 +#: ../../content/applications/finance/fiscal_localizations/india.rst:95 msgid "NIC e-Invoice registration" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:66 +#: ../../content/applications/finance/fiscal_localizations/india.rst:97 msgid "You must register on the :abbr:`NIC (National Informatics Centre)` e-Invoice portal to get your **API credentials**. You need these credentials to :ref:`configure your Odoo Accounting app `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:70 +#: ../../content/applications/finance/fiscal_localizations/india.rst:101 msgid "Log in to the `NIC e-Invoice portal `_ by clicking :guilabel:`Login` and entering your :guilabel:`Username` and :guilabel:`Password`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:74 +#: ../../content/applications/finance/fiscal_localizations/india.rst:105 msgid "If you are already registered on the NIC portal, you can use the same login credentials." msgstr "" @@ -26633,15 +27759,15 @@ msgstr "" msgid "Register Odoo ERP system on e-invoice web portal" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:79 +#: ../../content/applications/finance/fiscal_localizations/india.rst:110 msgid "From the dashboard, go to :menuselection:`API Registration --> User Credentials --> Create API User`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:81 +#: ../../content/applications/finance/fiscal_localizations/india.rst:112 msgid "After that, you should receive an :abbr:`OTP (one-time password)` code on your registered mobile number. Enter the OTP code and click :guilabel:`Verify OTP`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:83 +#: ../../content/applications/finance/fiscal_localizations/india.rst:114 msgid "Select :guilabel:`Through GSP` for the API interface, set :guilabel:`Tera Software Limited` as GSP, and type in a :guilabel:`Username` and :guilabel:`Password` for your API. Once it is done, click :guilabel:`Submit`." msgstr "" @@ -26649,213 +27775,183 @@ msgstr "" msgid "Submit API specific Username and Password" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:93 -#: ../../content/applications/finance/fiscal_localizations/india.rst:276 -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:136 +#: ../../content/applications/finance/fiscal_localizations/india.rst:124 +#: ../../content/applications/finance/fiscal_localizations/india.rst:279 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:131 #: ../../content/applications/finance/payment_providers/paypal.rst:42 msgid "Configuration in Odoo" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:95 -msgid "To enable the e-Invoice service in Odoo, go to :menuselection:`Accounting --> Configuration --> Settings --> Indian Electronic Invoicing`, and enter the :guilabel:`Username` and :guilabel:`Password` previously set for the API." +#: ../../content/applications/finance/fiscal_localizations/india.rst:126 +msgid "To enable the e-Invoice service in Odoo, :ref:`activate ` the :guilabel:`E-Invoicing` feature and enter the :guilabel:`Username` and :guilabel:`Password` previously set for the API." msgstr "" +#: ../../content/applications/finance/fiscal_localizations/india.rst:138 #: ../../content/applications/finance/fiscal_localizations/india.rst:-1 -msgid "Setup e-invoice service" +msgid "Generate e-Invoice" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:107 -msgid "To automatically send e-Invoices to the NIC e-Invoice portal, you must first configure your *sales* journal by going to :menuselection:`Accounting --> Configuration --> Journals`, opening your *sales* journal, and in the :guilabel:`Advanced Settings` tab, under :guilabel:`Electronic Data Interchange`, enable :guilabel:`E-Invoice (IN)` and save." +#: ../../content/applications/finance/fiscal_localizations/india.rst:140 +msgid "Once an invoice is confirmed, click the :guilabel:`Send` button to open the wizard. Select :guilabel:`E-Invoicing`, then click the :guilabel:`Generate` button. Odoo will upload the JSON-signed file of the invoice to the NIC e-Invoice portal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:120 -#: ../../content/applications/finance/fiscal_localizations/india.rst:304 -#: ../../content/applications/finance/fiscal_localizations/peru.rst:431 -msgid "Invoice validation" +#: ../../content/applications/finance/fiscal_localizations/india.rst:148 +msgid "You can find the JSON-signed file and check the e-Invoicing status in the chatter." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:122 -msgid "Once an invoice is validated, a confirmation message is displayed at the top. Odoo automatically uploads the JSON-signed file of validated invoices to the NIC e-Invoice portal after some time. If you want to process the invoice immediately, click :guilabel:`Process now`." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:-1 -msgid "Indian e-invoicing confirmation message" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:130 -#: ../../content/applications/finance/fiscal_localizations/india.rst:313 -msgid "You can find the JSON-signed file in the attached files in the chatter." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:131 -msgid "You can check the document's :abbr:`EDI (electronic data interchange)` status under the :guilabel:`EDI Document` tab or the :guilabel:`Electronic invoicing` field of the invoice." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:139 -msgid "Once an invoice is validated and submitted, the invoice PDF report can be printed. The report includes the :abbr:`IRN (Invoice Reference Number)`, :guilabel:`Ack. No` (acknowledgment number) and :guilabel:`Ack. Date` (acknowledgment date), and QR code. These certify that the invoice is a valid fiscal document." +#: ../../content/applications/finance/fiscal_localizations/india.rst:155 +msgid "Once an invoice is validated and submitted, the invoice PDF report can be printed. The report includes the :abbr:`IRN (Invoice Reference Number)`, :guilabel:`Acknowledgement` (number and date) and QR code. These certify that the invoice is a valid fiscal document." msgstr "" #: ../../content/applications/finance/fiscal_localizations/india.rst:-1 msgid "IRN and QR code" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:150 +#: ../../content/applications/finance/fiscal_localizations/india.rst:165 msgid "e-Invoice cancellation" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:152 -msgid "If you want to cancel an e-Invoice, go to the :guilabel:`Other info` tab of the invoice and fill out the :guilabel:`Cancel reason` and :guilabel:`Cancel remarks` fields. Then, click :guilabel:`Request EDI cancellation`. The status of the :guilabel:`Electronic invoicing` field changes to :guilabel:`To Cancel`." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:158 -msgid "Doing so cancels both the :ref:`e-Invoice ` and the :ref:`E-Way bill `." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:-1 -msgid "cancel reason and remarks" +#: ../../content/applications/finance/fiscal_localizations/india.rst:167 +msgid "To cancel an e-Invoice, click the :guilabel:`Request Cancel` button on the related invoice. In the :guilabel:`Cancel E-Invoice` window, fill out the :guilabel:`Cancel Reason` and :guilabel:`Cancel Remarks`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:165 -msgid "If you want to abort the cancellation before processing the invoice, then click :guilabel:`Call Off EDI Cancellation`." +#: ../../content/applications/finance/fiscal_localizations/india.rst:172 +msgid "You can find the e-Invoicing status in the chatter." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:167 -msgid "Once you request to cancel the e-Invoice, Odoo automatically submits the JSON-signed file to the NIC e-Invoice portal. You can click :guilabel:`Process now` if you want to process the invoice immediately." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:174 +#: ../../content/applications/finance/fiscal_localizations/india.rst:177 msgid "Management of negative lines in e-Invoices" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:176 +#: ../../content/applications/finance/fiscal_localizations/india.rst:179 msgid "Negative lines are typically used to represent discounts or adjustments associated with specific products or global discounts. The government portal prohibits the submission of data with negative lines, which means they need to be converted based on the HSN code and GST rate. This is done automatically by Odoo." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:183 +#: ../../content/applications/finance/fiscal_localizations/india.rst:186 msgid "Consider the following example:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:186 -#: ../../content/applications/finance/fiscal_localizations/india.rst:200 +#: ../../content/applications/finance/fiscal_localizations/india.rst:189 +#: ../../content/applications/finance/fiscal_localizations/india.rst:203 msgid "**Product Details**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:188 -#: ../../content/applications/finance/fiscal_localizations/india.rst:202 +#: ../../content/applications/finance/fiscal_localizations/india.rst:191 +#: ../../content/applications/finance/fiscal_localizations/india.rst:205 msgid "**Product Name**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:188 -#: ../../content/applications/finance/fiscal_localizations/india.rst:202 +#: ../../content/applications/finance/fiscal_localizations/india.rst:191 +#: ../../content/applications/finance/fiscal_localizations/india.rst:205 msgid "**HSN Code**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:188 -#: ../../content/applications/finance/fiscal_localizations/india.rst:202 +#: ../../content/applications/finance/fiscal_localizations/india.rst:191 +#: ../../content/applications/finance/fiscal_localizations/india.rst:205 msgid "**Tax Excluded**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:188 -#: ../../content/applications/finance/fiscal_localizations/india.rst:202 +#: ../../content/applications/finance/fiscal_localizations/india.rst:191 +#: ../../content/applications/finance/fiscal_localizations/india.rst:205 msgid "**Quantity**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:188 -#: ../../content/applications/finance/fiscal_localizations/india.rst:202 +#: ../../content/applications/finance/fiscal_localizations/india.rst:191 +#: ../../content/applications/finance/fiscal_localizations/india.rst:205 msgid "**GST Rate**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:190 -#: ../../content/applications/finance/fiscal_localizations/india.rst:204 +#: ../../content/applications/finance/fiscal_localizations/india.rst:193 +#: ../../content/applications/finance/fiscal_localizations/india.rst:207 msgid "Product A" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:190 -#: ../../content/applications/finance/fiscal_localizations/india.rst:194 -#: ../../content/applications/finance/fiscal_localizations/india.rst:204 +#: ../../content/applications/finance/fiscal_localizations/india.rst:193 +#: ../../content/applications/finance/fiscal_localizations/india.rst:197 +#: ../../content/applications/finance/fiscal_localizations/india.rst:207 msgid "123456" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:190 -#: ../../content/applications/finance/fiscal_localizations/india.rst:194 -#: ../../content/applications/finance/fiscal_localizations/india.rst:204 +#: ../../content/applications/finance/fiscal_localizations/india.rst:193 +#: ../../content/applications/finance/fiscal_localizations/india.rst:197 +#: ../../content/applications/finance/fiscal_localizations/india.rst:207 msgid "18%" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:190 +#: ../../content/applications/finance/fiscal_localizations/india.rst:193 msgid "1,180" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:192 -#: ../../content/applications/finance/fiscal_localizations/india.rst:206 +#: ../../content/applications/finance/fiscal_localizations/india.rst:195 +#: ../../content/applications/finance/fiscal_localizations/india.rst:209 msgid "Product B" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:192 -#: ../../content/applications/finance/fiscal_localizations/india.rst:206 +#: ../../content/applications/finance/fiscal_localizations/india.rst:195 +#: ../../content/applications/finance/fiscal_localizations/india.rst:209 msgid "239345" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:192 -#: ../../content/applications/finance/fiscal_localizations/india.rst:206 +#: ../../content/applications/finance/fiscal_localizations/india.rst:195 +#: ../../content/applications/finance/fiscal_localizations/india.rst:209 msgid "1,500" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:192 -#: ../../content/applications/finance/fiscal_localizations/india.rst:206 +#: ../../content/applications/finance/fiscal_localizations/india.rst:195 +#: ../../content/applications/finance/fiscal_localizations/india.rst:209 msgid "5%" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:192 -#: ../../content/applications/finance/fiscal_localizations/india.rst:206 +#: ../../content/applications/finance/fiscal_localizations/india.rst:195 +#: ../../content/applications/finance/fiscal_localizations/india.rst:209 msgid "3,150" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:194 +#: ../../content/applications/finance/fiscal_localizations/india.rst:197 msgid "Discount on Product A" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:194 +#: ../../content/applications/finance/fiscal_localizations/india.rst:197 msgid "-100" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:194 +#: ../../content/applications/finance/fiscal_localizations/india.rst:197 msgid "-118" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:197 +#: ../../content/applications/finance/fiscal_localizations/india.rst:200 msgid "Here's the transformed representation:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:202 +#: ../../content/applications/finance/fiscal_localizations/india.rst:205 msgid "**Discount**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:204 +#: ../../content/applications/finance/fiscal_localizations/india.rst:207 msgid "1,062" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:209 +#: ../../content/applications/finance/fiscal_localizations/india.rst:212 msgid "In this conversion, negative lines have been transformed into positive discounts, maintaining accurate calculations based on the HSN Code and GST rate. This ensures a more straightforward and standardized representation in the E-invoice records." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:216 +#: ../../content/applications/finance/fiscal_localizations/india.rst:219 msgid "GST e-Invoice verification" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:218 +#: ../../content/applications/finance/fiscal_localizations/india.rst:221 msgid "After submitting an e-Invoice, you can verify if the invoice is signed from the GST e-Invoice system website itself." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:221 +#: ../../content/applications/finance/fiscal_localizations/india.rst:224 msgid "Download the JSON file from the attached files. It can be found in the chatter of the related invoice;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:223 +#: ../../content/applications/finance/fiscal_localizations/india.rst:226 msgid "Open the `NIC e-Invoice portal `_ and go to :menuselection:`Search --> Verify Signed Invoice`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:225 +#: ../../content/applications/finance/fiscal_localizations/india.rst:228 msgid "Select the JSON file and submit it;" msgstr "" @@ -26863,7 +27959,7 @@ msgstr "" msgid "select the JSON file for verify invoice" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:230 +#: ../../content/applications/finance/fiscal_localizations/india.rst:233 msgid "If the file is signed, a confirmation message is displayed." msgstr "" @@ -26871,35 +27967,35 @@ msgstr "" msgid "verified e-invoice" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:238 +#: ../../content/applications/finance/fiscal_localizations/india.rst:241 msgid "E-Way bill" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:245 +#: ../../content/applications/finance/fiscal_localizations/india.rst:248 msgid "Odoo is compliant with the **Indian Goods and Services Tax (GST) E-waybill system** requirements." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:250 +#: ../../content/applications/finance/fiscal_localizations/india.rst:253 msgid "API registration on NIC E-Way bill" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:252 +#: ../../content/applications/finance/fiscal_localizations/india.rst:255 msgid "You must register on the :abbr:`NIC (National Informatics Centre)` E-Way bill portal to create your **API credentials**. You need these credentials to :ref:`configure your Odoo Accounting app `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:256 +#: ../../content/applications/finance/fiscal_localizations/india.rst:259 msgid "Log in to the `NIC E-Way bill portal `_ by clicking :guilabel:`Login` and entering your :guilabel:`Username` and :guilabel:`Password`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:258 +#: ../../content/applications/finance/fiscal_localizations/india.rst:261 msgid "From your dashboard, go to :menuselection:`Registration --> For GSP`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:259 +#: ../../content/applications/finance/fiscal_localizations/india.rst:262 msgid "Click :guilabel:`Send OTP`. Once you have received the code on your registered mobile number, enter it and click :guilabel:`Verify OTP`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:261 +#: ../../content/applications/finance/fiscal_localizations/india.rst:264 msgid "Check if :guilabel:`Tera Software Limited` is already on the registered GSP/ERP list. If so, use the username and password used to log in to the NIC portal. Otherwise, follow the next steps;" msgstr "" @@ -26907,7 +28003,7 @@ msgstr "" msgid "E-Way bill list of registered GSP/ERP" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:267 +#: ../../content/applications/finance/fiscal_localizations/india.rst:270 msgid "Select :guilabel:`Add/New`, select :guilabel:`Tera Software Limited` as your GSP Name, create a :guilabel:`Username` and a :guilabel:`Password` for your API, and click :guilabel:`Add`." msgstr "" @@ -26915,39 +28011,23 @@ msgstr "" msgid "Submit GSP API registration details" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:278 -msgid "To set up the E-Way bill service, go to :menuselection:`Accounting --> Configuration --> Settings --> Indian Electronic WayBill --> Setup E-Way bill`, and enter your :guilabel:`Username` and :guilabel:`Password`." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:-1 -msgid "E-way bill setup odoo" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:293 -msgid "Send an E-Way bill" +#: ../../content/applications/finance/fiscal_localizations/india.rst:281 +msgid "To enable the E-Way bill service in Odoo, :ref:`activate ` the :guilabel:`E-Way bill` feature and enter the :guilabel:`Username` and :guilabel:`Password`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:295 -msgid "To send an E-Way bill, confirm the customer invoice/vendor bill and click :guilabel:`Send E-Way bill`." +#: ../../content/applications/finance/fiscal_localizations/india.rst:292 +msgid "Generate E-Way bill" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:-1 -msgid "Send E-waybill button on invoices" +#: ../../content/applications/finance/fiscal_localizations/india.rst:294 +msgid "To generate an E-Way bill, confirm the customer invoice/vendor bill and click :guilabel:`Create e-Waybill`. Enter the necessary details and click :guilabel:`Generate e-Waybill` to proceed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:306 -msgid "Once an invoice/bill has been issued and sent via :guilabel:`Send E-Way bill`, a confirmation message is displayed." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:-1 -msgid "Indian e-Way bill confirmation message" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:314 -msgid "Odoo automatically uploads the JSON-signed file to the government portal after some time. Click :guilabel:`Process now` if you want to process the invoice/bill immediately." +#: ../../content/applications/finance/fiscal_localizations/india.rst:298 +msgid "You can find the JSON-signed file in the attached files in the chatter." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:320 +#: ../../content/applications/finance/fiscal_localizations/india.rst:303 msgid "You can print the invoice PDF report once you have submitted the E-Way bill. The report includes the **E-Way bill number** and the **E-Way bill validity date**." msgstr "" @@ -26955,87 +28035,79 @@ msgstr "" msgid "E-way bill acknowledgment number and date" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:329 +#: ../../content/applications/finance/fiscal_localizations/india.rst:312 msgid "E-Way bill cancellation" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:331 -msgid "If you want to cancel an E-Way bill, go to the :guilabel:`E-Way bill` tab of the related invoice/bill and fill out the :guilabel:`Cancel reason` and :guilabel:`Cancel remarks` fields. Then, click :guilabel:`Request EDI Cancellation`." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:336 -msgid "Doing so cancels both the :ref:`e-Invoice ` (if applicable) and the :ref:`E-Way bill `." +#: ../../content/applications/finance/fiscal_localizations/india.rst:314 +msgid "To cancel an E-Way bill, click :guilabel:`e-Waybill` on the related invoice/bill, then :guilabel:`Cancel e-Waybill`. In the :guilabel:`Cancel Ewaybill` window, fill out the :guilabel:`Cancel Reason` and :guilabel:`Cancel Remarks`." msgstr "" #: ../../content/applications/finance/fiscal_localizations/india.rst:-1 msgid "Cancel reason and remarks" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:343 -msgid "If you want to abort the cancellation before processing the invoice, click :guilabel:`Call Off EDI Cancellation`." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:345 -msgid "Once you request to cancel the E-Way bill, Odoo automatically submits the JSON-signed file to the government portal. You can click :guilabel:`Process Now` if you want to process the invoice immediately." +#: ../../content/applications/finance/fiscal_localizations/india.rst:322 +msgid "Once you request to cancel the E-Way bill, Odoo automatically submits the JSON-signed file to the government portal. You can check the JSON file in the chatter." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:352 +#: ../../content/applications/finance/fiscal_localizations/india.rst:328 msgid "E-waybill creation from receipts and delivery orders" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:355 +#: ../../content/applications/finance/fiscal_localizations/india.rst:331 msgid "Make sure the **E-Way bill Stock** module is :ref:`installed ` and the :ref:`E-Way bill setup ` is complete." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:358 +#: ../../content/applications/finance/fiscal_localizations/india.rst:334 msgid "To create E-Way bills from :doc:`receipts and deliveries ` in the Inventory app, follow these steps:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:362 +#: ../../content/applications/finance/fiscal_localizations/india.rst:338 msgid "Go to :menuselection:`Inventory --> Operations --> Deliveries` or :menuselection:`Inventory --> Operations --> Receipts` and select an existing delivery order/receipt or create a new one." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:365 +#: ../../content/applications/finance/fiscal_localizations/india.rst:341 msgid "Click :guilabel:`Create E-waybill/Challan`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:368 +#: ../../content/applications/finance/fiscal_localizations/india.rst:344 msgid "To create an E-way bill:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:370 +#: ../../content/applications/finance/fiscal_localizations/india.rst:346 msgid "A delivery order must be in the :guilabel:`Done` state (i.e., validated)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:371 +#: ../../content/applications/finance/fiscal_localizations/india.rst:347 msgid "A receipt must have the :guilabel:`Ready` or :guilabel:`Done` state." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:373 +#: ../../content/applications/finance/fiscal_localizations/india.rst:349 msgid "Click :guilabel:`Generate e-Waybill` to validate the E-Way bill and send it to the NIC E-Way bill portal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:377 +#: ../../content/applications/finance/fiscal_localizations/india.rst:353 msgid "To use the E-Way bill as a challan for goods deliveries without sending it to the NIC E-Waybill portal, click :guilabel:`Use as Challan`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:380 +#: ../../content/applications/finance/fiscal_localizations/india.rst:356 msgid "To print the E-waybill or the challan, click the :icon:`fa-cog` :guilabel:`(gear)` icon and select :icon:`fa-print` :guilabel:`Ewaybill / Delivery Challan`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:386 +#: ../../content/applications/finance/fiscal_localizations/india.rst:362 msgid "Indian Check GSTIN Status" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:388 -msgid "The :guilabel:`Indian - Check GST Number Status` module allows you to verify the status of a :abbr:`GSTIN (Goods and Services Tax Identification Number)` directly from Odoo." +#: ../../content/applications/finance/fiscal_localizations/india.rst:364 +msgid "The :guilabel:`Indian - Check GST Number Status` allows you to verify the status of a :abbr:`GSTIN (Goods and Services Tax Identification Number)` directly from Odoo." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:391 +#: ../../content/applications/finance/fiscal_localizations/india.rst:367 msgid "To verify the status of a contact's GST number, access the customer's/vendor's form and click :guilabel:`Check GSTIN Status` next to the :guilabel:`GSTIN` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:394 +#: ../../content/applications/finance/fiscal_localizations/india.rst:370 msgid "To verify the status of a GST number entered on an invoice/bill, access the invoice/bill and click the :icon:`fa-refresh` (:guilabel:`refresh`) button next to the :guilabel:`GST Status` field." msgstr "" @@ -27043,23 +28115,23 @@ msgstr "" msgid "Check GSTIN status of an invoice" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:400 +#: ../../content/applications/finance/fiscal_localizations/india.rst:376 msgid "A notification is displayed to confirm the status update and the GSTIN status and verification date are logged in the contact's chatter." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:406 +#: ../../content/applications/finance/fiscal_localizations/india.rst:382 msgid "Indian GST Return filing" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:411 +#: ../../content/applications/finance/fiscal_localizations/india.rst:387 msgid "Enable API access" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:413 +#: ../../content/applications/finance/fiscal_localizations/india.rst:389 msgid "To file GST Returns in Odoo, you must first enable API access on the GST portal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:415 +#: ../../content/applications/finance/fiscal_localizations/india.rst:391 msgid "Log into the `GST portal `_ by entering your :guilabel:`Username` and :guilabel:`Password`, and go to :guilabel:`My Profile` on your **profile menu**;" msgstr "" @@ -27067,7 +28139,7 @@ msgstr "" msgid "Click On the My Profile from profile" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:422 +#: ../../content/applications/finance/fiscal_localizations/india.rst:398 msgid "Select :guilabel:`Manage API Access`, and click :guilabel:`Yes` to enable API access;" msgstr "" @@ -27075,47 +28147,43 @@ msgstr "" msgid "Click Yes" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:428 +#: ../../content/applications/finance/fiscal_localizations/india.rst:404 msgid "It is recommended to set the :guilabel:`Duration` to :guilabel:`30 days` to avoid the need for frequent token reauthentication." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:431 +#: ../../content/applications/finance/fiscal_localizations/india.rst:407 msgid "Doing so enables a :guilabel:`Duration` drop-down menu. Select the :guilabel:`Duration` of your preference, and click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:437 +#: ../../content/applications/finance/fiscal_localizations/india.rst:413 msgid "Indian GST Service In Odoo" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:439 -msgid "Once you have enabled the :ref:`API access ` on the GST portal, you can set up the :guilabel:`Indian GST Service` in Odoo." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/india.rst:442 -msgid "Go to :menuselection:`Accounting --> Configuration --> Settings --> Indian GST Service` and enter the :guilabel:`GST Username`. Click :guilabel:`Send OTP`, enter the code, and finally, :guilabel:`Validate`." +#: ../../content/applications/finance/fiscal_localizations/india.rst:415 +msgid "Once you have enabled the :ref:`API access ` on the GST portal, :ref:`activate ` the :guilabel:`GST E-Filing & Matching Feature` to start using GST Service. Then, in the :guilabel:`Registered Under GST` section, fill in the required :guilabel:`GST Username`." msgstr "" #: ../../content/applications/finance/fiscal_localizations/india.rst:0 msgid "Please enter your GST portal Username as Username" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:452 +#: ../../content/applications/finance/fiscal_localizations/india.rst:426 msgid "File-in GST Return" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:454 -msgid "When the :guilabel:`Indian GST Service` is configured, you can file your GST return. Go to :menuselection:`Accounting --> Reporting --> India --> GST Return periods` and create a new **GST Return Period** if it does not exist. GST Return file-in is done in **three steps** in Odoo:" +#: ../../content/applications/finance/fiscal_localizations/india.rst:428 +msgid "When the :guilabel:`GST E-Filing & Matching Feature` is enabled, you can file your GST return. Go to :menuselection:`Accounting --> Reporting --> India --> GST Return periods` and create a new **GST Return Period** if it does not exist. GST Return file-in is done in **three steps** in Odoo:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:459 +#: ../../content/applications/finance/fiscal_localizations/india.rst:433 msgid "**Tax Return Periodicity** can be :doc:`configured <../accounting/reporting/tax_returns>` according to the user's needs." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:466 +#: ../../content/applications/finance/fiscal_localizations/india.rst:440 msgid "Send GSTR-1" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:468 +#: ../../content/applications/finance/fiscal_localizations/india.rst:442 msgid "Click :guilabel:`GSTR-1 Report` to verify the :ref:`GSTR-1 ` report before uploading it to the **GST portal**." msgstr "" @@ -27123,27 +28191,27 @@ msgstr "" msgid "GSTR-1 verify" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:475 +#: ../../content/applications/finance/fiscal_localizations/india.rst:449 msgid "The system performs basic validations to ensure compliance with the GST portal's requirements. Possible issues include:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:478 +#: ../../content/applications/finance/fiscal_localizations/india.rst:452 msgid "**Incorrect Tax Application:** The tax type does not match the :guilabel:`Fiscal Position` (:guilabel:`CGST/SGST` applied instead of :guilabel:`IGST` for interstate transactions, or :guilabel:`IGST` applied instead of :guilabel:`CGST/SGST` for intrastate transactions)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:481 +#: ../../content/applications/finance/fiscal_localizations/india.rst:455 msgid "**Missing HSN Code:** No HSN Code is defined for the product." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:482 +#: ../../content/applications/finance/fiscal_localizations/india.rst:456 msgid "**Invalid HSN Code for Services:** The HSN Code for a service does not start with \"99\" or is incorrect." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:484 +#: ../../content/applications/finance/fiscal_localizations/india.rst:458 msgid "**Non-compliant UQC:** The Unit Quantity Code (UQC) does not meet Indian GST standards." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:486 +#: ../../content/applications/finance/fiscal_localizations/india.rst:460 msgid "If any validation fails, the system alerts users with a warning, highlighting the discrepancies and providing a direct link to the affected lines." msgstr "" @@ -27151,7 +28219,7 @@ msgstr "" msgid "GSTR-1 validation warning" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:492 +#: ../../content/applications/finance/fiscal_localizations/india.rst:466 msgid "Click :guilabel:`Generate` to view the report in **Spreadsheet view**." msgstr "" @@ -27163,7 +28231,7 @@ msgstr "" msgid "GSTR-1 Spreadsheet View" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:500 +#: ../../content/applications/finance/fiscal_localizations/india.rst:474 msgid "If the **GSTR-1** report is correct, then click :guilabel:`Push to GSTN` to send it to the **GST portal**. The status of the :guilabel:`GSTR-1` report changes to :guilabel:`Sending`." msgstr "" @@ -27171,7 +28239,7 @@ msgstr "" msgid "GSTR-1 in the Sending Status" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:506 +#: ../../content/applications/finance/fiscal_localizations/india.rst:480 msgid "After a few seconds, the status of the **GSTR-1** report changes to :guilabel:`Waiting for Status`. It means that the **GSTR-1** report has been sent to the :guilabel:`GST Portal` and is being verified on the :guilabel:`GST Portal`;" msgstr "" @@ -27179,11 +28247,11 @@ msgstr "" msgid "GSTR-1 in the Waiting for Status" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:513 +#: ../../content/applications/finance/fiscal_localizations/india.rst:487 msgid "Once more, after a few seconds, the status either changes to :guilabel:`Sent` or :guilabel:`Error in Invoice`. The status :guilabel:`Error in Invoice` indicates that some of the invoices are not correctly filled out to be validated by the **GST portal**;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:517 +#: ../../content/applications/finance/fiscal_localizations/india.rst:491 msgid "If the state of the **GSTR-1** is :guilabel:`Sent`, it means your **GSTR-1** report is ready to be filed on the **GST portal**." msgstr "" @@ -27191,7 +28259,7 @@ msgstr "" msgid "GSTR-1 Sent" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:523 +#: ../../content/applications/finance/fiscal_localizations/india.rst:497 msgid "If the state of the **GSTR-1** is :guilabel:`Error in Invoice`, invoices can be checked for errors in the chatter. Once issues have been resolved, the user can click :guilabel:`Push to GSTN` to submit the file again on the **GST portal**." msgstr "" @@ -27199,7 +28267,7 @@ msgstr "" msgid "GSTR-1 Error in Invoice" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:530 +#: ../../content/applications/finance/fiscal_localizations/india.rst:504 msgid "Click :guilabel:`Mark as Filed` after filing the **GSTR-1** report on the **GST portal**. The status of the report changes to :guilabel:`Filed` in **Odoo**." msgstr "" @@ -27207,15 +28275,15 @@ msgstr "" msgid "GSTR-1 in the Filed Status" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:539 +#: ../../content/applications/finance/fiscal_localizations/india.rst:513 msgid "Receive GSTR-2B" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:541 +#: ../../content/applications/finance/fiscal_localizations/india.rst:515 msgid "Users can retrieve the **GSTR-2B Report** from the **GST portal**. This automatically reconciles the **GSTR-2B** report with your Odoo bills;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:544 +#: ../../content/applications/finance/fiscal_localizations/india.rst:518 msgid "Click :guilabel:`Fetch GSTR-2B Summary` to retrieve the **GSTR-2B** summary. After a few seconds, the status of the report changes to :guilabel:`Waiting for Reception`. This means Odoo is trying to receive the **GSTR-2B** report from the **GST portal**;" msgstr "" @@ -27224,15 +28292,15 @@ msgstr "" msgid "GSTR-2B in Waiting for Reception" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:551 +#: ../../content/applications/finance/fiscal_localizations/india.rst:525 msgid "Once more, after a few seconds, the status of the **GSTR-2B** changes to the :guilabel:`Being Processed`. It means Odoo is reconciling the **GSTR-2B** report with your Odoo bills;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:557 +#: ../../content/applications/finance/fiscal_localizations/india.rst:531 msgid "Once it is done, the status of the **GSTR-2B** report changes to either :guilabel:`Matched` or :guilabel:`Partially Matched`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:560 +#: ../../content/applications/finance/fiscal_localizations/india.rst:534 msgid "If the status is :guilabel:`Matched`:" msgstr "" @@ -27240,7 +28308,7 @@ msgstr "" msgid "GSTR-2B Matched" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:565 +#: ../../content/applications/finance/fiscal_localizations/india.rst:539 msgid "If the status is :guilabel:`Partially Matched`, you can review and modify the bills by clicking :guilabel:`View Reconciled Bills`. This will display categorized discrepancies, such as bills missing in Odoo or GSTR-2. After making the necessary corrections, click :guilabel:`re-match` to update the reconciliation and ensure accuracy before finalizing the report." msgstr "" @@ -27248,20 +28316,20 @@ msgstr "" msgid "GSTR-2B Partially Matched" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:577 -#: ../../content/applications/finance/fiscal_localizations/india.rst:622 +#: ../../content/applications/finance/fiscal_localizations/india.rst:551 +#: ../../content/applications/finance/fiscal_localizations/india.rst:596 msgid "GSTR-3 report" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:579 +#: ../../content/applications/finance/fiscal_localizations/india.rst:553 msgid "The :ref:`GSTR-3 ` report is a monthly summary of **sales** and **purchases**. This return is auto-generated by extracting information from **GSTR-1** and **GSTR-2**." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:582 +#: ../../content/applications/finance/fiscal_localizations/india.rst:556 msgid "Users can compare the **GSTR-3** report with the **GSTR-3** report available on the **GST portal** to verify if they match by clicking :guilabel:`GSTR-3 Report`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:585 +#: ../../content/applications/finance/fiscal_localizations/india.rst:559 msgid "Once the **GSTR-3** report has been verified by the user and the tax amount on the **GST portal** has been paid. Once paid, the report can be **closed** by clicking :guilabel:`Closing Entry`;" msgstr "" @@ -27269,7 +28337,7 @@ msgstr "" msgid "GSTR-3" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:591 +#: ../../content/applications/finance/fiscal_localizations/india.rst:565 msgid "In :guilabel:`Closing Entry`, add the tax amount paid on the **GST portal** using challan, and click :guilabel:`POST` to post the :guilabel:`Closing Entry`;" msgstr "" @@ -27277,7 +28345,7 @@ msgstr "" msgid "GSTR-3 Post Entry" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:597 +#: ../../content/applications/finance/fiscal_localizations/india.rst:571 msgid "Once posted, the **GSTR-3** report status changes to :guilabel:`Filed`." msgstr "" @@ -27285,15 +28353,15 @@ msgstr "" msgid "GSTR-3 Filed" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:605 +#: ../../content/applications/finance/fiscal_localizations/india.rst:579 msgid "Tax reports" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:610 +#: ../../content/applications/finance/fiscal_localizations/india.rst:584 msgid "GSTR-1 report" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:612 +#: ../../content/applications/finance/fiscal_localizations/india.rst:586 msgid "The :guilabel:`GSTR-1` report is divided into sections. It displays the :guilabel:`Base` amount, :abbr:`CGST (Central Goods and Services Tax)`, :abbr:`SGST (State Goods and Service Tax)`, :abbr:`IGST (Integrated Goods and Services Tax)`, and :guilabel:`CESS` for each section." msgstr "" @@ -27301,23 +28369,23 @@ msgstr "" msgid "GSTR-1 Report" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:624 +#: ../../content/applications/finance/fiscal_localizations/india.rst:598 msgid "The :guilabel:`GSTR-3` report contains different sections:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:626 +#: ../../content/applications/finance/fiscal_localizations/india.rst:600 msgid "Details of inward and outward supply subject to a **reverse charge**;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:627 +#: ../../content/applications/finance/fiscal_localizations/india.rst:601 msgid "Eligible :abbr:`ITC (Income Tax Credit)`;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:628 +#: ../../content/applications/finance/fiscal_localizations/india.rst:602 msgid "Values of **exempt**, **Nil-rated**, and **non-GST** inward supply;" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:629 +#: ../../content/applications/finance/fiscal_localizations/india.rst:603 msgid "Details of inter-state supplies made to **unregistered** persons." msgstr "" @@ -27325,11 +28393,11 @@ msgstr "" msgid "GSTR-3 Report" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:635 +#: ../../content/applications/finance/fiscal_localizations/india.rst:609 msgid "Profit and Loss (IN) report" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:637 +#: ../../content/applications/finance/fiscal_localizations/india.rst:611 msgid "This is a :guilabel:`Profit and Loss` report that displays the balances for **Opening Stock** and **Closing Stock**. It helps users using Continental accounting to accurately determine the cost of goods (i.e :guilabel:`Opening Stock` + purchases during the period - :guilabel:`Closing Stock`)." msgstr "" @@ -27337,35 +28405,35 @@ msgstr "" msgid "Profit and Loss report" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:647 +#: ../../content/applications/finance/fiscal_localizations/india.rst:621 msgid "TDS/TCS threshold alert" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:649 +#: ../../content/applications/finance/fiscal_localizations/india.rst:623 msgid ":abbr:`TDS (tax deducted at source)` and :abbr:`TCS (tax collected at source)` are tax provisions under Indian law, triggered when transaction amounts exceed specified thresholds. This alert notifies users when the value of invoices or bills surpasses these limits, prompting the application of the appropriate TDS/TCS." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:654 +#: ../../content/applications/finance/fiscal_localizations/india.rst:628 msgid "To configure Odoo to advise you on when to apply TDS/TCS, set the :guilabel:`TDS/TCS section` field on the corresponding account in the chart of accounts. Odoo will display a banner suggesting the TDS/TCS section under which tax might be applicable when recording an invoice or bill." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:661 -msgid "Navigate to :menuselection:`Accounting --> Configuration --> Settings`." +#: ../../content/applications/finance/fiscal_localizations/india.rst:635 +msgid "Navigate to :menuselection:`Accounting --> Configuration --> Settings`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:662 -msgid "In the :guilabel:`Indian Integration` section, enable the :guilabel:`TDS and TCS` feature." +#: ../../content/applications/finance/fiscal_localizations/india.rst:636 +msgid "In the :guilabel:`Indian Integration` section, enable the :guilabel:`TDS` or :guilabel:`TCS` feature as required." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:663 +#: ../../content/applications/finance/fiscal_localizations/india.rst:638 msgid "Navigate to :menuselection:`Accounting --> Configuration --> Chart of Accounts`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:664 +#: ../../content/applications/finance/fiscal_localizations/india.rst:639 msgid "Click :guilabel:`View` on the desired account, and set the :guilabel:`TDS/TCS Section` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:667 +#: ../../content/applications/finance/fiscal_localizations/india.rst:642 msgid "The TDS/TCS sections are pre-configured with threshold limits. If you need to modify these limits, go to :menuselection:`Accounting --> Configuration --> Taxes`. In the :guilabel:`Advanced Options` tab, click on the :icon:`fa-arrow-right` :guilabel:`(internal link)` icon of the :guilabel:`Section` field." msgstr "" @@ -27373,11 +28441,11 @@ msgstr "" msgid "TDS/TCS section modify" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:676 +#: ../../content/applications/finance/fiscal_localizations/india.rst:651 msgid "Applying TCS/TDS on invoices and bills" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:678 +#: ../../content/applications/finance/fiscal_localizations/india.rst:653 msgid "Based on the account used on the customer invoice or vendor bill, Odoo checks the TCS/TDS threshold limit. If the limit specified in the :guilabel:`TCS/TDS Section` of the account is exceeded, Odoo displays an alert that suggests applying the appropriate TCS/TDS. The alert will disappear once the TCS/TDS is applied." msgstr "" @@ -27385,7 +28453,7 @@ msgstr "" msgid "TCS advice" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:686 +#: ../../content/applications/finance/fiscal_localizations/india.rst:661 msgid "**TCS** is directly applicable in the tax on the invoice lines. To apply **TDS**, click the :guilabel:`TDS Entry` smart button on the vendor bill/payment. The popup window allows specifying the TDS details. Confirm the entry to apply the TDS." msgstr "" @@ -27393,96 +28461,96 @@ msgstr "" msgid "TDS application" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:693 +#: ../../content/applications/finance/fiscal_localizations/india.rst:668 msgid "In Odoo, the aggregate total is calculated for partners sharing the same PAN number, across all company branches." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:702 +#: ../../content/applications/finance/fiscal_localizations/india.rst:676 msgid "**Branch**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:703 +#: ../../content/applications/finance/fiscal_localizations/india.rst:677 msgid "**Customer**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:704 +#: ../../content/applications/finance/fiscal_localizations/india.rst:678 msgid "**Invoice**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:705 +#: ../../content/applications/finance/fiscal_localizations/india.rst:679 msgid "**Transaction Amount (₹)**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:706 +#: ../../content/applications/finance/fiscal_localizations/india.rst:680 msgid "**PAN Number**" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:707 -#: ../../content/applications/finance/fiscal_localizations/india.rst:712 -#: ../../content/applications/finance/fiscal_localizations/india.rst:717 +#: ../../content/applications/finance/fiscal_localizations/india.rst:681 +#: ../../content/applications/finance/fiscal_localizations/india.rst:686 +#: ../../content/applications/finance/fiscal_localizations/india.rst:691 msgid "IN - MH" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:708 -#: ../../content/applications/finance/fiscal_localizations/india.rst:713 -#: ../../content/applications/finance/fiscal_localizations/india.rst:723 +#: ../../content/applications/finance/fiscal_localizations/india.rst:682 +#: ../../content/applications/finance/fiscal_localizations/india.rst:687 +#: ../../content/applications/finance/fiscal_localizations/india.rst:697 msgid "XYZ Enterprise - GJ" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:710 +#: ../../content/applications/finance/fiscal_localizations/india.rst:684 msgid "₹50,000" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:711 -#: ../../content/applications/finance/fiscal_localizations/india.rst:716 -#: ../../content/applications/finance/fiscal_localizations/india.rst:721 -#: ../../content/applications/finance/fiscal_localizations/india.rst:726 -#: ../../content/applications/finance/fiscal_localizations/india.rst:731 +#: ../../content/applications/finance/fiscal_localizations/india.rst:685 +#: ../../content/applications/finance/fiscal_localizations/india.rst:690 +#: ../../content/applications/finance/fiscal_localizations/india.rst:695 +#: ../../content/applications/finance/fiscal_localizations/india.rst:700 +#: ../../content/applications/finance/fiscal_localizations/india.rst:705 msgid "ABCPX1234E" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:715 +#: ../../content/applications/finance/fiscal_localizations/india.rst:689 msgid "₹30,000" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:718 -#: ../../content/applications/finance/fiscal_localizations/india.rst:728 +#: ../../content/applications/finance/fiscal_localizations/india.rst:692 +#: ../../content/applications/finance/fiscal_localizations/india.rst:702 msgid "XYZ Enterprise - MH" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:720 +#: ../../content/applications/finance/fiscal_localizations/india.rst:694 msgid "₹40,000" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:722 +#: ../../content/applications/finance/fiscal_localizations/india.rst:696 msgid "IN - DL" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:724 +#: ../../content/applications/finance/fiscal_localizations/india.rst:698 msgid "Invoice 4" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:725 +#: ../../content/applications/finance/fiscal_localizations/india.rst:699 msgid "₹20,000" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:727 +#: ../../content/applications/finance/fiscal_localizations/india.rst:701 msgid "IN - GJ" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:729 +#: ../../content/applications/finance/fiscal_localizations/india.rst:703 msgid "Invoice 5" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:730 +#: ../../content/applications/finance/fiscal_localizations/india.rst:704 msgid "₹60,000" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:733 +#: ../../content/applications/finance/fiscal_localizations/india.rst:707 msgid "**Aggregate total** = 50,000 + 30,000 + 40,000 + 20,000 + 60,000 = ₹200,000" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/india.rst:734 +#: ../../content/applications/finance/fiscal_localizations/india.rst:708 msgid "The aggregate total for all customers (XYZ Enterprise - GJ, MH, DL) sharing the PAN number ABCPX1234E across all branches is ₹200,000." msgstr "" @@ -27519,6 +28587,8 @@ msgid "You need to set the checkbox *ID PKP* to generate e-fakturs for a custome msgstr "" #: ../../content/applications/finance/fiscal_localizations/indonesia.rst:34 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:445 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1485 msgid "Usage" msgstr "" @@ -28427,195 +29497,179 @@ msgid "The specific :guilabel:`Scissione dei Pagamenti` fiscal position is avail msgstr "" #: ../../content/applications/finance/fiscal_localizations/italy.rst:596 -msgid "Digital qualified signature" +msgid "Qualified electronic signature" msgstr "" #: ../../content/applications/finance/fiscal_localizations/italy.rst:598 -msgid "For invoices and bills intended for the :abbr:`PA (Public Administration)`, a **Digital Qualified Signature** is required for all files sent through the :abbr:`SdI (Sistema di Interscambio)`. The XML file must be certified using a certificate that is either:" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/italy.rst:602 -msgid "a **smart card**;" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/italy.rst:603 -msgid "a **USB token**;" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/italy.rst:604 -msgid "an :abbr:`HSM (Hardware Security Module)`." +msgid "Invoices and bills intended for the :abbr:`PA (Public Administration)` must include a **qualified electronic signature** when submitted through the :abbr:`SdI (Sistema di Interscambio)`. This signature is automatically applied in the :abbr:`XAdES (XML Advanced Electronic Signature)` format when the invoice's partner has a 6-digit long :guilabel:`Destination Code` (which indicates a :abbr:`PA (Public Administration)` business)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:607 -msgid "Odoo **cannot** digitally sign documents for you. When a 6-digit long :guilabel:`Codice Destinatario` is detected, then the :abbr:`EDI (Electronic Data Interchange)` process stops, and the invoice is set on the :guilabel:`Requires user signature` state. You can download the document in XML, sign it with any :guilabel:`Digital Qualified Signature` provider's external program and send it through the :abbr:`AdE (Agenzia Delle Entrate)` portal." +#: ../../content/applications/finance/fiscal_localizations/italy.rst:605 +msgid "When such an invoice is transmitted to the Tax Agency, the generated `.xml` file is signed on the Odoo servers, returned to the database, and attached to the invoice automatically." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:614 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:609 msgid "Acceptance or Refusal" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:617 -msgid "As Odoo does not handle sending signed invoices to :abbr:`PA (Public Administration)` businesses, these states cannot be directly triggered by Odoo. When you upload the invoice on the :abbr:`AdE (Agenzia Delle Entrate)` portal, Odoo receives notifications about it, putting the correct :guilabel:`SdI State` on the invoice." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/italy.rst:622 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:611 msgid "After receiving the invoice through the :abbr:`SdI (Sistema di Interscambio)`, the :abbr:`PA (Public Administration)` business has 15 days to accept the invoice. If it does, then the process ends here. If the :abbr:`PA (Public Administration)` business refuses the invoice, it is still considered valid once it is accepted by the :abbr:`SdI (Sistema di Interscambio)`. You then have to issue a credit note to compensate and send it to the :abbr:`SdI (Sistema di Interscambio)`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:629 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:618 msgid "Expired Terms" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:631 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:620 msgid "If the :abbr:`PA (Public Administration)` business doesn't reply within 15 days, you need to contact the :abbr:`PA (Public Administration)` business directly, sending them both the invoice and the received deadline notification by email. You can make an arrangement with them and manually set the correct :guilabel:`SdI State` on your invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:637 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:626 msgid "Point of Sale fiscal printers" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:639 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:628 msgid "Fiscal regulations mandate using certified RT devices, such as RT printers or RT servers, to ensure compliant sales receipts and secure communication with the Tax Authority. These devices automatically transmit fiscal data daily. RT printers, designed for individual POS terminals, handle transactions, print receipts, and report to the authorities, ensuring data integrity and compliance." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:645 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:634 #: ../../content/applications/finance/fiscal_localizations/saudi_arabia.rst:56 msgid "Simulation mode" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:648 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:637 msgid "Since the simulation mode sends data to the authorities, it should only be enabled at the very start of the printer's configuration process. Once the printer is switched to the production mode, it cannot be reverted to the simulation mode." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:652 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:641 msgid "To test the fiscal printer setup with Odoo, configure the fiscal printer in the simulation mode as follows:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:655 -#: ../../content/applications/finance/fiscal_localizations/italy.rst:684 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:644 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:673 msgid "Make sure the fiscal printer is set to its default state: printer on, start-up cycle complete, and no transaction in progress." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:657 -#: ../../content/applications/finance/fiscal_localizations/italy.rst:686 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:646 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:675 msgid "Type `3333`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:658 -#: ../../content/applications/finance/fiscal_localizations/italy.rst:687 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:647 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:676 msgid "Press :guilabel:`Chiave`. The screen displays :guilabel:`Scelta Funzione`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:659 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:648 msgid "Type `14`. The screen displays :guilabel:`Apprendimento`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:660 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:649 msgid "Type `62`. The screen displays :guilabel:`Simulazione`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:661 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:650 msgid "To turn the :guilabel:`no` into a :guilabel:`si`, press :guilabel:`X`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:662 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:651 msgid "To confirm, press :guilabel:`Contante`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:663 -#: ../../content/applications/finance/fiscal_localizations/italy.rst:692 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:652 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:681 msgid "Press :guilabel:`Chiave`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:665 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:654 msgid "To configure the printer for production, repeat the steps above." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:668 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:657 msgid "To test the printer configuration, the physical device must first be obtained and registered with the relevant authorities." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:672 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:661 msgid "Setting up the printer to work with Odoo" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:674 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:663 msgid "Fiscal printers are meant to work only in the local network. This means the printer and the device running :doc:`Odoo Point of Sale ` must be connected to the same network." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:678 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:667 msgid "Fiscal printers are typically configured to use HTTP by default. To ensure compatibility with Odoo, the settings must be updated to enable HTTPS support on the printer. This can be done using either the EpsonFPWizard configuration software or the keyboard connected to the printer." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:682 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:671 msgid "To set up the fiscal printer using the keyboard, follow these steps:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:688 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:677 msgid "Type `34`. The screen displays :guilabel:`Web Server`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:689 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:678 msgid "Press :guilabel:`Contante` 3 times until the screen displays :guilabel:`Web Server: SSL`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:690 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:679 msgid "To turn the value `0` into a `1`, press :guilabel:`X`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:691 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:680 msgid "To confirm, press :guilabel:`Contante` 3 times." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:694 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:683 msgid "Then, log in to the printer with the device that runs :doc:`Odoo Point of Sale ` so it recognizes the printer's certificate." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:697 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:686 msgid "To approve and install the printer's certificate, follow these steps:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:699 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:688 msgid "Access the printer by opening a web browser and entering `https://` in the address bar. A :guilabel:`Warning: Potential Security Risk Ahead` security message appears." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:701 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:690 msgid "Click :guilabel:`Advanced` to show the certificate approval options." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:702 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:691 msgid "Click :guilabel:`Proceed` to validate the certificate." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:704 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:693 msgid "Then, to ensure :doc:`Odoo Point of Sale ` is configured with the fiscal printer, go to :menuselection:`Point of Sale --> Configuration --> Settings`. In the :guilabel:`Connected Devices` section, add the IP address in the :guilabel:`Italian Fiscal Printer IP address` and enable :guilabel:`Use HTTPS`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:710 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:699 msgid "Ri.Ba. (Ricevuta Bancaria)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:712 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:701 msgid ":abbr:`Ri.Ba. (Ricevuta Bancaria)` is a payment method widely used in Italy where vendors request payments through their bank, which forwards the request to the customer's own bank and takes responsibility for the collection. This enables payment automation and reduces risks for the vendor." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:716 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:705 msgid "The vendor generally uploads a fixed-format text file with the list of payments to the bank's web portal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:720 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:709 msgid "Ri.Ba. are exclusively for **domestic payments** in Italy. For recurring international payments, please use `SEPA Direct Debt (SDD) <../accounting/payments/batch_sdd>`_" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:726 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:715 msgid "Check that the `l10n_it_riba` module is :ref:`installed `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:727 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:716 msgid "Go to :menuselection:`Settings --> Users & Companies --> Companies` and select the company that will use Ri.Ba." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:729 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:718 msgid "Fill out the required :guilabel:`SIA Code`." msgstr "" @@ -28623,43 +29677,43 @@ msgstr "" msgid "The company's SIA code" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:735 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:724 msgid "The :guilabel:`SIA Code` identifies businesses within the Italian banking network and is used to receive money through specific payment methods. It consists of one letter and four digits (e.g., T1234) and can usually be found on the bank's portal or obtained by contacting the bank." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:739 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:728 msgid "Ensure the Company's bank account has an Italian IBAN." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:742 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:731 msgid "How to configure :doc:`Bank Accounts <../accounting/bank>`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:745 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:734 msgid "Accept Ri.Ba. for your invoices" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:747 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:736 msgid "Payments of type :abbr:`Ri.Ba. (Ricevuta Bancaria)` can be registered from the :guilabel:`Invoices` (:menuselection:`Accounting --> Customers --> Invoices`)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:751 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:740 msgid "Make sure that your invoice involves a Partner that has a bank account with an Italian IBAN." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:753 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:742 msgid "Then, all Payments must be grouped in a **Batch Payment**." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:756 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:745 msgid ":doc:`Batch Payments <../accounting/payments>`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:757 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:746 msgid ":doc:`Create a Batch Payment <../accounting/payments/batch>`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/italy.rst:759 +#: ../../content/applications/finance/fiscal_localizations/italy.rst:748 msgid "Once you press the :guilabel:`Validate` button for the Batch Payment, the :abbr:`Ri.Ba. (Ricevuta Bancaria)` file is generated and attached to the Batch Payment, so you can download it and upload it through your bank's web portal." msgstr "" @@ -28828,11 +29882,6 @@ msgstr "" msgid ":guilabel:`Registered in the special sales tax`: for businesses subject to special sales tax regulations. One tax computed as a percentage and one fixed tax per invoice line are required per invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/jordan.rst:135 -#: ../../content/applications/finance/fiscal_localizations/vietnam.rst:130 -msgid "Click :guilabel:`Save`." -msgstr "" - #: ../../content/applications/finance/fiscal_localizations/jordan.rst:138 msgid "If the :guilabel:`Electronic Invoicing (Jordan)` section is missing from the :guilabel:`Settings`, make sure the :guilabel:`Jordan E-Invoicing` module is :ref:`installed `." msgstr "" @@ -28962,6 +30011,7 @@ msgid "Ensure that the :guilabel:`Reason` for generating a debit/credit note ali msgstr "" #: ../../content/applications/finance/fiscal_localizations/jordan.rst:246 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:804 msgid "Discounts" msgstr "" @@ -29708,76 +30758,64 @@ msgstr "" msgid "This module includes the features required for integration with MyInvois under IRBM." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:39 -msgid ":guilabel:`Malaysia - E-invoicing Extended Features`" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:40 -msgid "`l10n_my_edi_extended`" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:41 -msgid "This module improves the MyInvois E-invoicing feature by adding proper support for self billing, rendering the MyInvois QR code in the invoice PDF file and allows better management of foreign customer TIN." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:50 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:45 msgid "To configure your company information, go to the :guilabel:`Contacts` app, search for your company, and select it. Then configure the following fields:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:54 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:49 #: ../../content/applications/finance/fiscal_localizations/vietnam.rst:43 msgid ":guilabel:`Address`, including the :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`, and :guilabel:`Country`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:61 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:56 msgid ":guilabel:`Tax ID`: Tax identification number" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:62 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:57 msgid ":guilabel:`SST`: Malaysian Sales and Service Tax Number, if applicable" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:63 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:58 msgid ":guilabel:`TTx`: Malaysian Tourism Tax Number, if applicable" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:67 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:62 msgid "E-invoicing integration with MyInvois" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:69 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:64 msgid "The MyInvois Portal is a platform provided by the :abbr:`IRBM (Inland Revenue Board of Malaysia)` that facilitates the implementation of e-invoices for Malaysian taxpayers. Odoo supports integration with MyInvois to submit the invoices generated in Odoo." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:74 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:69 msgid "The :guilabel:`Malaysia - E-invoicing module` must be installed to submit invoices to MyInvois." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:79 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:74 msgid "Set-up" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:84 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:79 msgid "MyInvois registration" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:86 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:81 msgid "To send electronic invoices to MyInvois, you first need to register and log in to the MyInvois portal to grant Odoo the **right to invoice** as an intermediary for your company." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:90 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:85 msgid "If this is the first time you log into the MyInvois portal, click :guilabel:`User Manual` on MyTax_ to learn more about the registration process. Both the **pre-production** (:dfn:`testing environment to try the functions before using the actual (production) environment`) and **production** (:dfn:`actual environment to submit e-invoices with accurate information`) environments are supported." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:96 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:91 msgid "Log into MyTax_. Choose the :guilabel:`ID Type` and the corresponding :guilabel:`identification number` used to register for the digital certificate." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:98 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:93 msgid "From the dashboard, click the :icon:`fa-angle-down` :guilabel:`(angle-down)` icon in the top-right corner and select :guilabel:`View Taxpayer Profile`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:100 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:95 msgid "In the :guilabel:`Representatives` section, click :guilabel:`Add Intermediary` in the top-right corner." msgstr "" @@ -29785,59 +30823,59 @@ msgstr "" msgid "MyInvois add intermediary" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:106 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:101 msgid "Add `ODOO S.A.` as an intermediary using the following information:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:108 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:103 msgid ":guilabel:`TIN`: `C57800417080`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:109 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:104 msgid ":guilabel:`BRN`: `BE0477472701`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:110 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:105 msgid ":guilabel:`Name`:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:112 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:107 msgid ":guilabel:`Production`: `ODOO S.A.`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:113 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:108 msgid ":guilabel:`Pre-production`: `OXXX_XXXXA.`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:115 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:110 msgid "Grant the following permissions by clicking the :icon:`fa-toggle-on` :guilabel:`(toggle-on)` icon:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:118 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:113 msgid ":guilabel:`Representation From`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:119 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:114 msgid ":guilabel:`Document - Submit`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:120 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:115 msgid ":guilabel:`Document - Cancel`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:121 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:116 msgid ":guilabel:`Document - Request Rejection`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:124 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:119 msgid "Access can be revoked in the future if needed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:125 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:120 msgid "Odoo, as an intermediary, does not store invoices sent on behalf of the client on the proxy server." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:128 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:123 msgid "Click :guilabel:`Save`. The status for `ODOO S.A.` is then :guilabel:`Active`." msgstr "" @@ -29845,67 +30883,67 @@ msgstr "" msgid "MyInvois status active" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:143 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:138 msgid "Open the Settings app, navigate to the :guilabel:`Companies` section, and click :guilabel:`Update Info`. Make sure the :guilabel:`Tax ID` is entered and complete the following fields in the :guilabel:`E-invoicing` section:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:147 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:142 msgid ":guilabel:`Identification`: Select the :guilabel:`ID Type` and enter the associated :guilabel:`Identification number` used to register for the digital certificate." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:149 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:144 msgid ":guilabel:`Ind. Classification`: Input the 5-digit numeric code that represents the nature and activity of the business." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:155 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:150 msgid "Go to :menuselection:`Accounting --> Configuration --> Settings`. In the :guilabel:`Malaysian Electronic Invoicing` section, select the relevant :guilabel:`MyInvois mode` based on the environment used for the company's MyInvois registration." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:159 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:154 msgid "Make sure to allow Odoo to process e-invoices by checking the box, then click :guilabel:`Register`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:162 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:157 msgid "To change the :abbr:`TIN (tax identification number)` reference, click :guilabel:`Unregister`, change the company's information and make sure the number registered on MyInvois matches, then :guilabel:`Register` again." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:167 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:162 msgid "For taxpayers with a :abbr:`TIN (tax identification number)` starting with \"IG\" and a :abbr:`ROB (registration of business)` number, combine the TIN and ROB in the **TIN:ROB** format for the :guilabel:`Tax ID` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:171 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:166 msgid "To register, go to :menuselection:`Accounting --> Configuration --> Settings`, and in the :guilabel:`Malaysian Electronic Invoicing` section, click :guilabel:`Register`. Once the registration is complete, the **:ROB** can be removed from the :guilabel:`Tax ID`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:175 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:170 msgid "Additionally, remember to log into `MyTax account `_ and set the :guilabel:`Type of Role` as :guilabel:`Business Owner`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:183 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:178 msgid "Access the contact's form and fill in the following fields:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:188 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:183 msgid ":guilabel:`Tax ID`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:189 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:184 msgid ":guilabel:`Identification`: the :guilabel:`ID Type` and the corresponding :guilabel:`Identification number` of the contact registered on MyTax." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:197 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:192 msgid "All products to be included in e-invoices require a Malaysian classification code. To add it, access the :guilabel:`Product` form and in the :guilabel:`General Information` tab, fill in the :guilabel:`Malaysian classification code` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:202 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:197 msgid "Malaysian tax type" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:204 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:199 msgid "To configure a tax's :guilabel:`Malaysian Tax Type` field, go to :menuselection:`Accounting --> Configuration --> Accounting --> Taxes` and open the relevant tax in the :guilabel:`Taxes` list view." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:208 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:203 msgid "When an invoice or bill includes a tax with the :guilabel:`Malaysian Tax Type` set to **Tax Exempt**, a :guilabel:`Tax Exemption Reason` must be specified in the :guilabel:`MyInvois` tab before the document is sent." msgstr "" @@ -29913,127 +30951,127 @@ msgstr "" msgid "MyInvois tax exemption reason" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:223 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:218 msgid "Send invoices to MyInvois" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:225 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:220 msgid "Invoices can be sent to MyInvois once they have been confirmed. To do so, click :guilabel:`Send to MyInvois`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:229 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:224 msgid "Send bills to MyInvois" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:231 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:226 msgid "Sending a bill to MyInvois is necessary when issuing an e-Invoice on behalf of a supplier. Once a bill is confirmed, click :guilabel:`Send To MyInvois`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:235 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:230 msgid "In `MyInvois `_, these vendor bills are categorized as :guilabel:`Self-billed Invoice`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:238 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:233 msgid "If a :guilabel:`Bill Reference` field is empty, Odoo's vendor bill number is used as the MyInvois number. If a reference is entered in the :guilabel:`Bill Reference` field, that reference is used instead." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:245 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:240 msgid "MyInvois status" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:247 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:242 msgid "The current MyInvois status of an invoice or bill is shown in the :guilabel:`MyInvois State` field within the :guilabel:`MyInvois` tab." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:250 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:245 msgid ":guilabel:`Validation in Progress`: the validation is being processed by MyInvois. A blue :guilabel:`Processing` banner is also displayed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:252 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:247 msgid ":guilabel:`Valid`: it is validated by MyInvois. The :guilabel:`Submission UID`, :guilabel:`MyInvois` and :guilabel:`Validation Time` are automatically updated with information from MyInvois." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:257 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:252 msgid "Odoo :doc:`automatically checks and updates <../../sales/subscriptions/scheduled_actions>` the status every hour. To update it manually at any time, click :guilabel:`Update MyInvois Status`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:265 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:260 msgid "Sent invoices can be canceled within 72 hours from :guilabel:`Validation time`. In this case, open the invoice and click :guilabel:`Request Cancel`. In the :guilabel:`Cancel document` window, include the cancellation :guilabel:`Reason`, then click :guilabel:`Update Invoice`. The :guilabel:`MyInvois State` is updated to :guilabel:`cancelled`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:271 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:266 msgid "Send credit notes to MyInvois" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:273 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:268 msgid "Before sending a credit note, the original invoice must be successfully submitted to MyInvois. Otherwise, the credit note's :guilabel:`MyInvois State` is updated to :guilabel:`Invalid`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:276 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:271 msgid "While Odoo uses a single :guilabel:`credit note` document, MyInvois categorizes these into two types: :guilabel:`credit note` and :guilabel:`refund note`, depending on how they are reconciled." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:279 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:274 msgid ":guilabel:`MyInvois Credit Note`: This is created when an Odoo credit note is reconciled with the original invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:281 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:276 msgid ":guilabel:`MyInvois Refund Note`: This is created when an Odoo credit note is reconciled with a full payment instead of the original invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:285 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:280 msgid "If a credit note is reconciled with only a partial payment before being sent, it is still categorized as a :guilabel:`credit note` in MyInvois." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:291 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:286 msgid "To issue both a credit note and a refund note for the same original invoice:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:290 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:285 msgid "Create two separate credit notes in Odoo from the original invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:291 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:286 msgid "For a MyInvois :guilabel:`Refund Note`: Register a payment before sending it." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:292 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:287 msgid "For a MyInvois :guilabel:`Credit Note`: Do not register a payment before sending it." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:295 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:290 msgid "The same logic applies to credit notes created from bills: if reconciled with a full payment, the credit note becomes a :guilabel:`Self-billed Refund Note`; otherwise, it becomes a :guilabel:`Self-billed Credit Note`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:300 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:295 msgid "Send debit notes to MyInvois" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:302 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:297 msgid ":ref:`Issue a debit note from an existing bill or invoice ` and click :guilabel:`Send To MyInvois`. In MyInvois, it appears then as a :guilabel:`Debit Note` if issued from an invoice or a :guilabel:`Self-billed Debit Note` from a vendor bill." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:307 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:302 msgid "Access invoices via QR code" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:309 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:304 msgid "When a document is successfully submitted to MyInvois, a QR code is added to its PDF version. Scanning this code links directly to the validated document in MyInvois." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:312 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:307 msgid "To download the PDF from an invoice or bill:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:314 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:309 msgid "Click the :icon:`fa-cog` :guilabel:`(gear)` icon" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:315 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:310 msgid "Select :guilabel:`Download`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:316 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:311 msgid "Choose either :guilabel:`PDF` or :guilabel:`PDF without Payment`" msgstr "" @@ -30041,19 +31079,19 @@ msgstr "" msgid "MyInvois QR code" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:324 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:319 #: ../../content/applications/finance/fiscal_localizations/singapore.rst:60 #: ../../content/applications/finance/fiscal_localizations/united_kingdom.rst:248 msgid "Employment Hero payroll" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:326 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:321 #: ../../content/applications/finance/fiscal_localizations/singapore.rst:62 #: ../../content/applications/finance/fiscal_localizations/united_kingdom.rst:250 msgid "If your business is already up and running with :doc:`Employment Hero <../../hr/payroll/payroll_localizations/employment_hero>`, you can use our connector as an alternative payroll solution." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:331 +#: ../../content/applications/finance/fiscal_localizations/malaysia.rst:326 msgid "To :ref:`configure the Employment Hero API ` for **Malaysia**, use the following value as :guilabel:`Payroll URL`: `https://apimy.yourpayroll.io/`." msgstr "" @@ -30062,604 +31100,778 @@ msgid "Mexico" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:21 -msgid "A video on the Mexican localization is also available. This video covers how to implement this localization from scratch, including how to set up the configurations, how to complete common workflows, and provides an in-depth look at several specific use cases, as well." +msgid "The following modules are automatically installed with the Mexican localization:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:25 -msgid "`Video webinar of a complete demo `_." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:30 +msgid ":guilabel:`Mexico - Accounting`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:30 -msgid "The Odoo Mexican localization modules allow for the signing of electronic invoices, according to the specifications of the |SAT| for `version 4.0 of the CFDI `_, a legal requirement, as of January 1, 2022. These modules also add relevant accounting reports (such as: the |DIOT|, enables foreign trade, and the creation of delivery guides)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:31 +msgid "`l10n_mx`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:32 +msgid "The default :doc:`fiscal localization package <../fiscal_localizations>` adds accounting characteristics for the Mexican localization, such as: the most common taxes and the chart of accounts — based on `the SAT account grouping code `_." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:36 +msgid ":guilabel:`EDI for Mexico`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:37 -msgid "In order to electronically sign any documents in Odoo, ensure the *Sign* application is installed." +msgid "`l10n_mx_edi`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:41 -msgid ":doc:`Documentation on e-invoicing's legality and compliance in Mexico <../accounting/customer_invoices/electronic_invoicing/mexico>`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:38 +msgid "Includes all the technical and functional requirements to generate and validate :doc:`electronics documents <../accounting/customer_invoices/electronic_invoicing>` — based on the technical documentation published by the |SAT|. This allows you to send invoices (with or without addedums) and payment complements to the government." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:42 +msgid ":guilabel:`Odoo Mexican Localization Reports`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:43 +msgid "`l10n_mx_reports`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:44 +msgid "Adapts reports for Mexico's electronic accounting: chart of accounts, trial balance, and |DIOT|." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:46 +msgid ":guilabel:`Mexico - Month 13 Trial Balance`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:47 +msgid "`l10n_mx_reports_closing`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:48 -#: ../../content/applications/finance/fiscal_localizations/united_states.rst:564 -msgid "Requirements" +msgid "Necessary to create the closing entry (also known as the *month 13 move*)." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:49 +msgid ":guilabel:`Odoo Mexican XML Polizas Export`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:50 -msgid "It is necessary to meet the following requirements before configuring the Mexican localization modules in Odoo:" +msgid "`l10n_mx_xml_polizas`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:55 -msgid "Be registered in the |SAT|, with a valid |RFC|." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:51 +msgid "Allows the export of XML files of journal entries for a compulsory audit." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:56 -msgid "Have a `Certificate of Digital Seal `_ (CSD)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:53 +msgid "The following modules are optional. It's recommended to :ref:`install ` them *only* if meeting a specific requirement for the business." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:58 -msgid "Choose a PAC (Proveedor Autorizado de Certificación / Authorized Certification Provider). Currently, Odoo works with the following |PAC|\\s: `Solución Factible `_, `Quadrum (formerly Finkok) `_ and `SW Sapien - Smarter Web `_." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:63 +msgid ":guilabel:`EDI for Mexico (Advanced Features)`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:62 -msgid "Have knowledge and experience with billing, sales, and accounting in Odoo. This documentation **only** contains the necessary information needed to use Odoo." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:64 +msgid "`l10n_mx_edi_extended`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:65 +msgid "Adds the external trade complement to invoices (a legal requirement for selling products to foreign countries)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:66 -msgid "Installing modules" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:67 +msgid ":guilabel:`Mexico - Electronic Delivery Guide`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:68 -msgid ":ref:`Install ` the following modules to get all the features of the Mexican localization. The :doc:`Accounting <../accounting>` and *Contacts* modules are required to be installed for this configuration:" +msgid "`l10n_mx_edi_stock`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:69 +msgid "Lets you create a *Carta Porte*: A bill of lading that proves to the government you are sending goods between A & B with a signed electronic document." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:71 +msgid ":guilabel:`Odoo Mexico Localization for Stock/Landing`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:72 +msgid "`l10n_mx_edi_landing`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:73 +msgid "Allows managing customs numbers related to landed costs in electronic documents." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:74 +msgid ":guilabel:`CFDI 4.0 fields for sale orders`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:75 +msgid "`l10n_mx_edi_sale`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:76 +msgid "Adds extra fields to the :doc:`Sales <../../sales/sales>` module to comply with the Mexican Electronic Invoicing" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:78 +msgid ":guilabel:`Mexican Localization for the Point of Sale`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:79 -msgid ":guilabel:`Mexico - Accounting`" +msgid "`l10n_mx_edi_pos`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:80 -msgid "`l10n_mx`" +msgid "Adds extra fields to the :doc:`Point of Sale <../../sales/point_of_sale>` module to comply with the Mexican Electronic Invoicing" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:81 -msgid "The default :doc:`fiscal localization package <../fiscal_localizations>`, adds accounting characteristics for the Mexican localization, such as: the most common taxes and the chart of accounts – based on `the SAT account grouping code `_." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:82 +msgid ":guilabel:`Mexican Localization for eCommerce`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:85 -msgid ":guilabel:`EDI for Mexico`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:83 +msgid "`l10n_mx_edi_website_sale`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:84 +msgid "Adds extra fields to the :doc:`eCommerce <../../websites/ecommerce>` module to comply with the Mexican electronic invoicing requirements" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:86 -msgid "`l10n_mx_edi`" +msgid ":guilabel:`Employees - Mexico`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:87 -msgid "Includes all the technical and functional requirements to generate and validate :doc:`Electronics Documents <../accounting/customer_invoices/electronic_invoicing>` — based on the technical documentation published by the |SAT|. This allows you to send invoices (with or without addedums) and payment complements to the government." +msgid "`l10n_mx_hr`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:88 +msgid "Adds extra fields to the :doc:`Employees <../../hr/employees>` module to comply with local information for employees." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:90 +msgid ":guilabel:`Mexico - Payroll with Accounting`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:91 -msgid ":guilabel:`EDI v4.0 for Mexico`" +msgid "`l10n_mx_hr_payroll_account`" msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:92 -msgid "`l10n_mx_edi_40`" +msgid "Adds the required rules and parameters to manage local payroll calculation with the :doc:`Payroll <../../hr/payroll>` app." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:93 -msgid "Necessary to create XML documents with the correct specifications of the CFDI 4.0." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:98 +msgid "Video tutorials" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:94 -msgid ":guilabel:`Odoo Mexican Localization Reports`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:100 +msgid "Videos on the Mexican localization are also available. Basic workflows and most topics covered on this page are also available in video format, please check out the following:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:95 -msgid "`l10n_mx_reports`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:103 +msgid "`Odoo Smart Tutorial - Mexican localization `_" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:96 -msgid "Adapts reports for Mexico's Electronic Accounting: Chart of Accounts, Trial Balance, and |DIOT|." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:105 +msgid "`Basic configurations and Youtube playlist `_" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:98 -msgid ":guilabel:`Mexico - Localization Reports for Closing`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:113 +msgid "The Odoo Mexican localization modules allow for the signing of electronic invoices, according to the specifications of the |SAT| for `version 4.0 of the CFDI `_, a legal requirement, as of January 1, 2022. These modules also add relevant accounting reports including the |DIOT|, enable foreign trade, and enable the creation of delivery guides." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:99 -msgid "`l10n_mx_reports_closing`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:120 +msgid "In order to electronically sign any documents in Odoo, the Sign application must be installed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:100 -msgid "Necessary to create the Closing Entry (Also known as the *month 13th move*)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:123 +msgid ":doc:`Documentation on e-invoicing's legality and compliance in Mexico <../accounting/customer_invoices/electronic_invoicing/mexico>`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:101 -msgid ":guilabel:`Odoo Mexican XML Polizas Export`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:129 +#: ../../content/applications/finance/fiscal_localizations/united_states.rst:564 +msgid "Requirements" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:102 -msgid "`l10n_mx_xml_polizas`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:131 +msgid "It is necessary to meet the following requirements before configuring the Mexican localization modules in Odoo:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:103 -msgid "Allows the export of XML files of Journal Entries for a compulsory audit." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:134 +msgid "Be registered in the |SAT| with a valid |RFC|." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:104 -msgid ":guilabel:`Odoo Mexican XML Polizas Export Edi bridge`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:135 +msgid "Have a `Certificado de Sello Digital / Digital Seal Certificate `_ (CSD)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:105 -msgid "`l10n_mx_xml_polizas_edi`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:137 +msgid "Choose a |PAC|. Currently, Odoo works with the following |PAC|\\s: `Solución Factible `_, `Quadrum `_, and `SW Sapien - Smarter Web `_." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:106 -msgid "Complements the module `l10n_mx_xml_polizas`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:147 +msgid "After installing the correct modules, the next step is to verify that the company is configured with the correct data. To do so, go to :menuselection:`Settings --> Users & Companies --> Companies`, and select the company to configure." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:109 -msgid "When installing a database from scratch and selecting :guilabel:`Mexico` as the country, Odoo automatically installs the following modules: :guilabel:`Mexico - Accounting`, :guilabel:`EDI for Mexico`, and :guilabel:`EDI v4.0 for Mexico`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:151 +msgid "Enter the full :guilabel:`Address` in the resulting form, including: :guilabel:`ZIP` code, :guilabel:`State`, :guilabel:`Country`, and |RFC| (:guilabel:`Tax ID` number)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:113 -msgid "The following modules are optional. It's recommended to install them *only* if meeting a specific requirement. Make sure that they are needed for the business." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:154 +msgid "According to the requirements of the |CFDI| 4.0, the name of the main company contact **must** match the business name registered in the |SAT|, without the legal entity abbreviation. This is the same for the :guilabel:`ZIP` code." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:123 -msgid ":guilabel:`EDI for Mexico (Advanced Features)`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:159 +msgid "From a legal point of view, Mexican companies **must** use the local currency (MXN). To use another currency, let MXN be the default currency and use a :doc:`pricelist <../../sales/sales/products_prices/prices/pricing>` instead." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:124 -msgid "`l10n_mx_edi_extended`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:163 +msgid "Next, go to :menuselection:`Accounting --> Settings`, and scroll to the :guilabel:`MX Electronic invoicing` section. Under :guilabel:`Service Tax Administration (SAT)`, select the :guilabel:`Fiscal Regime` that applies to the company from the drop-down list, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:125 -msgid "Adds the external trade complement to invoices: A legal requirement for selling products to foreign countries." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:168 +msgid "In order to test the Mexican localization, configure the company with a real address within Mexico (including all fields). Add `EKU9003173C9` as the :guilabel:`Tax ID` and `ESCUELA KEMPER URGATE` as the :guilabel:`Company Name`. For the :guilabel:`Fiscal Regime`, use :guilabel:`General de Ley Personas Morales`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:127 -msgid ":guilabel:`EDI v4.0 for Mexico (COMEX)`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:176 +msgid "When using branches, all the invoicing information will be taken from the main company except for the zip. Unless the |RFC| is set on the branch, then the information will be taken directly from the branch." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:128 -msgid "`l10n_mx_edi_extended_40`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:180 +msgid "Branches enable users to establish multiple brands within the same parent company. Additionally, when different fiscal regimes are required for invoicing purposes, it is necessary to create a branch for each regime. By default, the regime is inherited from the parent company. However, if the regime is explicitly set on the branch, Odoo will adopt the regime applicable to that branch." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:129 -msgid "Adapts the module `l10n_mx_edi_extended` for CFDI 4.0." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:191 +msgid ":ref:`Install ` the **Contacts** application to access contact records." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:130 -msgid ":guilabel:`Mexico - Electronic Delivery Guide`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:193 +msgid "To create a contact that can be invoiced, go to the :menuselection:`Contacts` app and click :guilabel:`New`. Then, enter the contact name, full :guilabel:`Address` including the :guilabel:`ZIP` code, :guilabel:`State`, :guilabel:`Country`, and |RFC| (:guilabel:`Tax ID`)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:131 -msgid "`l10n_mx_edi_stock`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:198 +msgid "As with the company itself, all contacts must have their correct business name registered in the |SAT|. The :guilabel:`Fiscal Regime` must also be added in the :guilabel:`Sales & Purchase` tab." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:132 -msgid "Lets you create a *Carta Porte*: A bill of lading that proves to the government you are sending goods between A & B with a signed electronic document." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:202 +msgid "Having a |RFC| (:guilabel:`Tax ID`) set but no :guilabel:`Country` configured may result in incorrect invoices." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:134 -msgid ":guilabel:`Electronic Delivery Guide for Mexico CFDI 4.0`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:210 +msgid "In order to properly sign invoices, set the :ref:`Factor Type ` and :ref:`Tax Object ` fields on sales taxes." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:135 -msgid "`l10n_mx_edi_stock_40`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:214 +msgid "RESICO ISR withholdings and some |IEPS| taxes are created automatically, but the feature is not active by default. To enable it, go to :menuselection:`Accounting --> Configuration --> Taxes`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:136 -msgid "Adapts the module `l10n_mx_edi_stock` for CFDI 4.0" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:220 +msgid "Factor type" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:137 -msgid ":guilabel:`Odoo Mexico Localization for Stock/Landing`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:222 +msgid "Both the **Factor Type** and **SAT Tax Type** fields are pre-loaded in the default taxes." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:138 -msgid "`l10n_mx_edi_landing`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:224 +msgid "For new taxes, set these fields in :menuselection:`Accounting --> Configuration --> Taxes` and click :guilabel:`New`. Set the :guilabel:`Tax Type` to :guilabel:`Sales`. In the :guilabel:`Advanced Options` tab, fill :guilabel:`SAT Tax Type` and :guilabel:`Factor Type` fields." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:139 -msgid "Allows managing customs numbers related to landed costs in electronic documents." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:228 +msgid "Odoo supports four groups of :guilabel:`SAT Tax Types`: :guilabel:`IVA`, :guilabel:`ISR`, :guilabel:`IEPS`, and :guilabel:`Local Taxes`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:231 +msgid "If the factor type is :guilabel:`Quota`, standard calculation methods cannot be used. Instead, set the tax calculation computation to :guilabel:`Custom Formula`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:144 -msgid "After installing the correct modules, the next step is to verify that your company is configured with the correct data. To do so, go to :menuselection:`Settings --> General Settings --> Companies`, and select :guilabel:`Update Info` under your company name." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:235 +msgid "result = quantity * 6.455\n" +"\n" +"" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:148 -msgid "Enter the full :guilabel:`Address` in the resulting form, including: :guilabel:`ZIP` code, :guilabel:`State`, :guilabel:`Country`, and |RFC| (:guilabel:`VAT` number)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:238 +msgid "*quantity* = the number of items in the transaction" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:151 -msgid "According to the requirements of the CFDI 4.0, the name of the main company contact **must** coincide with your business name registered in the |SAT|, without the legal entity abbreviation." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:239 +msgid "*6.455* = the quota value (a fixed amount per unit)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Main company contact requirements for a correct invoicing." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:240 +msgid "Only per-unit quotas are supported, not quotas based on other factors" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:158 -msgid "From a legal point of view, a Mexican company **must** use the local currency (MXN). Therefore, Odoo does not provide features to manage an alternative configuration. If you want to manage another currency, let MXN be the default currency and use a :doc:`pricelist <../../sales/sales/products_prices/prices/pricing>`, instead." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:243 +msgid "Mexico manages two different kinds of 0% VAT to accommodate two scenarios:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:163 -msgid "Next, go to :menuselection:`Settings --> Accounting --> Electronic Invoicing (MX) --> Fiscal Regime`, then select the regime that applies to your company from the drop-down list, and click :guilabel:`Save`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:245 +msgid "For *0% VAT*, set the :guilabel:`Factor Type` to :guilabel:`Tasa`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Fiscal regime configuration in the Accounting settings." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:246 +msgid "For *VAT Exempt*, set the :guilabel:`Factor Type` to :guilabel:`Exento`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:171 -msgid "If you want to test the Mexican localization, the company can be configured with a real address within Mexico (including all fields), and add `EKU9003173C9` as the :guilabel:`VAT` and `ESCUELA KEMPER URGATE` as the :guilabel:`Company Name`. For the :guilabel:`Fiscal Regime`, use :guilabel:`General de Ley Personas Morales`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:249 +msgid "Local taxes are generated in a separate node in the XML file, these do not get validated by the |PAC|." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:179 -msgid "To create a contact that can be invoiced, go to :menuselection:`Contacts --> Create`. Then, enter the contact name, full :guilabel:`Address` including: :guilabel:`ZIP` code, :guilabel:`State`, :guilabel:`Country`, and |RFC| (:guilabel:`VAT` number)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:253 +msgid "Quotas and custom formulas require the :guilabel:`Define Taxes as Python Code` module. See :doc:`Taxes <../accounting/taxes>`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:184 -msgid "As with your own company, all of your contacts needs to have their correct business name registered in the |SAT|. This also applies to the :guilabel:`Fiscal Regime`, which needs to be added in the :guilabel:`MX EDI` tab." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:259 +msgid "Tax object" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:191 -msgid "Some additional configurations for factor type and tax objects need to be added to the sales taxes in order to properly sign invoices." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:261 +msgid "One requirement of the CFDI 4.0 is that the resulting XML file handles the breakdown of taxes of the operation in accordance with the regulation. There are eight different possible values that are added in the XML file:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:195 -msgid "Factor type" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:265 +msgid "`01`: No tax Object: This value is added automatically if the invoice line doesn't contain any taxes." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:197 -msgid "The *Factor Type* field is pre-loaded in the default taxes. If new taxes are created, you need to make sure to configure this field. To do so, go to :menuselection:`Accounting --> Configuration --> Taxes`, then enable the :guilabel:`Factor Type` field in the :guilabel:`Advanced Options` tab for all records, with the :guilabel:`Tax Type` set as :guilabel:`Sales`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:267 +msgid "`02`: Tax Object: This is the default configuration of any invoice line that contains taxes." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Factor Type Sales tax type configuration." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:268 +msgid "`03`: Tax Object and doesn't require breakdown: This can only be added manually." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:206 -msgid "Mexico manages two different kinds of 0% VAT to accommodate two scenarios:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:269 +msgid "`04`: Tax Object and doesn't have tax: This can only be added manually." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:208 -msgid "*0% VAT* set the :guilabel:`Factor Type` as :guilabel:`Tasa`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:270 +msgid "`05`: Tax Object, VAT for PODEBI: This can only be added manually." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:209 -msgid "*VAT Exempt* set the :guilabel:`Factor Type` as :guilabel:`Exento`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:271 +msgid "`06`: VAT Object, No VAT forwarded: This object will be selected when there is an ISR withholding and no VAT tax." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:212 -msgid "Tax object" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:273 +msgid "`07`: No VAT forwarded, |IEPS| breakdown: This object will be selected when there is an ISR withholding, |IEPS| tax and no VAT tax." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:214 -msgid "One requirement of the CFDI 4.0 is that the resulting XML file needs (or does not need) to break down the taxes of the operation. There are three different possible values that are added in the XML file:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:275 +msgid "`08`: No VAT forwarded, |IEPS| breakdown: This object can only be added manually." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:218 -msgid "`01`: Not subject to tax - this value is added automatically if your invoice line doesn't contain any taxes." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:278 +msgid "Using either 01, 03, 04, or 05 will remove the tax node from the XML file." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:220 -msgid "`02`: Subject to tax - this is the default configuration of any invoice line that contains taxes." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:281 +msgid "The :guilabel:`IEPS breakdown` status affects the behavior of the tax objects due to the missing |IEPS| when the breakdown does not happen." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:221 -msgid "`03`: Subject to tax and not forced to break down - this value can be triggered on-demand for certain customers to replace the value 02." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:287 +msgid "Local taxes" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:224 -msgid "To use the `03` value, navigate to :menuselection:`Contacts --> your customer's invoice --> MX EDI tab`, and activate the :guilabel:`No Tax Breakdown` checkbox." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:289 +msgid "Local taxes (e.g., *ISH*, *Cedullar*) require a separate XML node and may not follow standard tax logic." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "No Tax Breakdown option on the MX EDI tab of the customer's invoice." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:292 +msgid "When configuring a local tax, its name appears in the local tax complement. The rate is treated as a withholding if negative, or carried forward if positive." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:231 -msgid "The :guilabel:`No Tax Breakdown` value applies **only** to specific fiscal regimes and/or taxes. Consult your accountant first to see if it is needed for your business before making any modification." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:298 +msgid "IEPS breakdown" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:300 +msgid "By default Odoo hides the |IEPS| in the invoices so that the subtotal on which the VAT is calculated includes the amount of |IEPS|, this is to ensure that Fiscal Regimes that don't require it, don't recieve it." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:304 +msgid "It is possible to make the |IEPS| visible in the XML by selecting the :guilabel:`IEPS Breakdown` checkbox inside each contact on the :guilabel:`Sales & Purchase` tab." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:308 +msgid "When using either :ref:`eCommerce invoicing ` or the :ref:`Self invoicing portal `, the customer will have the option to decide whether or not to have the |IEPS| breakdown." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:236 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:315 msgid "Other tax configurations" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:238 -msgid "When registering a payment, Odoo will carry out the movement of taxes from the *Cash Basis Transition Account* to the account set in the :guilabel:`Definition` tab. For such movement, a tax base account will be used: (`Base Imponible de Impuestos en Base a Flujo de Efectivo`) in the journal entry when reclassifying taxes. **Do not delete this account**." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:317 +msgid "The Mexican Localization uses :doc:`cash basis taxes <../../finance/accounting/taxes/cash_basis>`. When registering a payment, Odoo carries out the movement of taxes from the *Cash Basis Transition Account* to the account set in the :guilabel:`Definition` tab of the tax record set on the invoice or bill line. For such movement, a tax base account is used: (:guilabel:`899.01.99 Base Imponible de Impuestos en Base a Flujo de Efectivo`) in the journal entry when reclassifying taxes. **Do not delete this account**." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:243 -msgid "If you create a new tax in :menuselection:`Accounting --> Configuration --> Taxes`, you need to add the correct :guilabel:`Tax Grids` for it (`IVA`, `ISR` or `IEPS`). Odoo **only** supports these three groups of taxes." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:327 +msgid "Withholdings" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:329 +msgid "By default, Odoo includes withholdings with special distributions to allocate VAT." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:331 +msgid "When registering an invoice, add the withholding and its corresponding VAT. Both must be included on the vendor bill to ensure correct accounting. Using :doc:`fiscal positions <../accounting/taxes/fiscal_positions>` is recommended so the cash-basis entry properly splits the distribution." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:337 +msgid "For a lease vendor bill of `10000 MXN`, the `10.67%` lease withholding corresponds to a `16% VAT 2/3 H`. Both taxes must be applied together to reflect the correct accounting." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Tax accounts available for Odoo." +msgid "Cash Basis entry with VAT split between paid and due." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:253 -msgid "To configure products, go to :menuselection:`Accounting --> Customers --> Products`, then select a product to configure, or :guilabel:`Create` a new one. In the :guilabel:`Accounting` tab, and in the :guilabel:`UNSPSC Product Category` field, select the category that represents the product. The process can be done manually, or through :doc:`a bulk import <../../essentials/export_import_data>`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:344 +msgid "Withholdings |CFDI| is not currently supported. Consult with an accountant the proper distribution." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:259 -msgid "All products need to have an |SAT| code associated with them in order to prevent validation errors." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:350 +msgid "To configure products, go to :menuselection:`Accounting --> Customers --> Products`. Open an existing product or click :guilabel:`New`. In the :guilabel:`Accounting` tab, set the :guilabel:`UNSPSC Product Category`. Products and categories can be set manually, or through :doc:`a bulk import <../../essentials/export_import_data>`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:356 +msgid "All products need to have a |SAT| code associated with them in order to prevent validation errors." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:266 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:367 msgid "PAC credentials" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:268 -msgid "After you have processed your `Private Key (CSD) `_ with the |SAT|, you **must** register directly with the :ref:`PAC ` of your choice before you start creating invoices from Odoo." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:369 +msgid "After processing your `Private Key (CSD) `_ with the |SAT|, you **must** register directly with the :ref:`PAC ` of your choice before you start creating invoices from Odoo." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:273 -msgid "Once you've created your account with any of these providers, go to :menuselection:`Settings --> Accounting --> Electronic Invoicing (MX)`. Under the :guilabel:`MX PAC` section, enter the name of your |PAC| with your credentials (:guilabel:`PAC username` and :guilabel:`PAC password`)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:374 +msgid "Once you've created your account with any of these providers, go to :menuselection:`Accounting --> Configuration --> Settings` and navigate to the :guilabel:`MX Electronic invoicing` section. Under the :guilabel:`Authorized Certification Provider (PAC)` section, enter the name of your |PAC| with your credentials (:guilabel:`PAC username` and :guilabel:`PAC password`)." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 msgid "Configuring PAC credentials from the Accounting settings." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:281 -msgid "If you do not have credentials, but want to test the electronic invoicing, you can activate the :guilabel:`MX PAC test environment` checkbox, and select :guilabel:`Solucion Factible` as the |PAC|. You do not need to add a username or password for a test environment." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:383 +msgid "To test the electronic invoicing without credentials, activate the :guilabel:`MX PAC test environment` checkbox, and select :guilabel:`Solucion Factible` as the :guilabel:`PAC`. It is not required to add a username or password for a test environment." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:286 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:390 msgid ".cer and .key certificates" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:288 -msgid "The `digital certificates of the company `_ must be uploaded within the :guilabel:`MX Certificates` section. To do so, navigate to :menuselection:`Settings --> Accounting --> Electronic Invoicing (MX)`. Under the :guilabel:`MX Certificates` section, select :guilabel:`Add a line`, and a window will open. Click :guilabel:`Create`, and from there, upload your digital :guilabel:`Certificate` (:file:`.cer` file), your :guilabel:`Certificate Key` (:file:`.key` file), and your :guilabel:`Certificate Password`. To finish, click on :guilabel:`Save & Close`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:392 +msgid "The `digital certificates of the company `_ must be uploaded within the :guilabel:`Certificates` section. To do so, navigate to :menuselection:`Settings --> General Settings --> Certificates and Keys`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Certificate and key upload inputs." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:397 +msgid "Under :guilabel:`Manage your certificates`, click the :icon:`fa-right-arrow` :guilabel:`Keys` link to access the :guilabel:`Keys` list view. Click :guilabel:`Create`, upload the digital :guilabel:`Key file` (:file:`.key` file), add a :guilabel:`Name` to the key, and enter the :guilabel:`Private key password`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:301 -msgid "If you still do not have one of the contracted |PAC|\\s and you want to test electronic invoicing, you can use the following |SAT| test certificates:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:402 +msgid "From :menuselection:`Settings --> General Settings --> Certificates and Keys`, select :guilabel:`Certificates` to access the :guilabel:`Certificate` list view. Click :guilabel:`Create`, upload the digital :guilabel:`Certificate` (:file:`.cer` file), add a :guilabel:`Name` to the certificate, and select the :guilabel:`Private Key` created on the previous step from the drop-down menu." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:304 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:409 +msgid "The :guilabel:`Certificate Password` and :guilabel:`Public Key` fields on :guilabel:`Certificate` records are optional." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:413 +msgid "In order to test the electronic invoicing, the following |SAT| test certificates are provided:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:415 msgid ":download:`Certificate `" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:305 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:416 msgid ":download:`Certificate Key `" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:306 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:417 msgid "**Password**: ``12345678a``" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:309 -#: ../../content/applications/finance/fiscal_localizations/uruguay.rst:288 -msgid "Workflows" -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:314 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:427 msgid "The invoicing process in Odoo is based on `Annex 20 `_ version 4.0 of electronic invoicing of the |SAT|." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:321 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:436 msgid "To start invoicing from Odoo, a customer invoice must be created using the :doc:`standard invoicing flow <../accounting/customer_invoices>`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:324 -msgid "While the document is in draft mode, changes can be made to it (the correct :guilabel:`Payment Way` or :guilabel:`Usage` that the customer might require can be added, for example.)" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:439 +msgid "While the document is in draft mode, changes can be made to it, some fields take values previously set on the sale order or the contact." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:327 -msgid "After you :guilabel:`Confirm` the customer invoice, a blue message appears stating: :guilabel:`The invoice will be processed asynchronously by the following E-invoicing service: CFDI (4.0)`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:442 +msgid "The fields that need to be reviewed are:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:330 -msgid "Pressing the :guilabel:`Process Now` button sends the document to the government so it can be signed. After receiving the signed document back from the government, the :guilabel:`Fiscal Folio` field appears on the document, and the XML file is attached in the chatter." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:444 +msgid "CFDI to public." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:335 -msgid "If you click :guilabel:`Retry` in the :guilabel:`SAT status` field on the invoice, you can confirm if the XML file is valid in the |SAT|." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:446 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1483 +msgid "Payment Policy" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:338 -msgid "If you are in a testing environment, you will always receive the message :guilabel:`Not Found`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:447 +msgid "Payment Method (If Payment Policy is not set as |PPD|)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:340 -msgid "To send the signed invoice to your client by mail, you can send both the XML and PDF files together, directly from Odoo, by clicking the :guilabel:`Send & Print` button. You can also download the PDF file to your computer, by clicking the :guilabel:`Print` button, and selecting the desired print option." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:450 +msgid ":guilabel:`Usage`, :guilabel:`Payment Policy` and :guilabel:`Payment Method` can be previously set on a sale order and/or can be set on the contact for every invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:348 -msgid "While an invoice is a document type \"I\" (Ingreso), a credit note is a document type \"E\" (Egreso)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:453 +msgid "The payment policy is a selectable field on the invoice and can be manually set to the required policy, however if no policy is selected, Odoo will compute an automatic policy based on the following general rules:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:350 -msgid "The only addition to the :doc:`standard flow for credit notes <../accounting/customer_invoices/credit_notes>` is that, as a requirement of the |SAT|, there has to be a relation between a credit note and an invoice through the fiscal folio." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:457 +msgid "The value will be set to |PUE| if the due date in which the payment is expected is within the current month, in case the date is outside the current month, the policy will be set to |PPD| instead." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:354 -msgid "Because of this requirement, the field :guilabel:`CFDI Origin` adds this relation with a `01|`, followed by the fiscal folio of the original invoice." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:462 +msgid "If the payment policy is not selected and |PPD| policy is expected, either select an invoice :guilabel:`Due Date` on a different month than the current one, or choose :guilabel:`Payment terms` that imply changing the due month (i.e., :guilabel:`30 Days`, or :guilabel:`15 Days`, as long as they fall on the next month)." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:467 +msgid "After clicking on :guilabel:`Confirm` in the customer invoice, click on the :guilabel:`Send` button to process the invoice with the government. Make sure that the :guilabel:`CFDI` checkbox is marked." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Example CFDI Origin number." +msgid "CFDI Checkbox" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:473 +msgid "After receiving the signed document back from the government, the :guilabel:`Fiscal Folio` field appears on the document, and the XML file appears both in the |CFDI| tab and attached in the chatter." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:477 +msgid "If an email address is configured on the customer contact record, marking the :guilabel:`by Email` and :guilabel:`CFDI` checkboxes sends both the XML and PDF files together." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:480 +msgid "To download the PDF file locally, click the :guilabel:`Print` button." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:483 +msgid "When clicking :guilabel:`Update SAT`, the :guilabel:`SAT status` field on the invoice will confirm if the XML file is **Validated** in the |SAT|." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:486 +msgid "On a testing environment, the message :guilabel:`Not Found` will always come up." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:489 +msgid "If the partner does not contain the :guilabel:`Country` or :guilabel:`Zip` the invoicing is assumed as a |CFDI| to public and the invoicing will be addressed to the generic customer. If however, these fields are left empty and the user unticks the :guilabel:`CFDI to public` checkbox, a pop-up will appear blocking the operation." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:499 +msgid "While an invoice is a document type \"I\" (Ingreso), a credit note is a document type \"E\" (Egreso)." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:501 +msgid "The only addition to the :doc:`standard flow for credit notes <../accounting/customer_invoices/credit_notes>` is that, as a requirement of the |SAT|, there has to be a relation between a credit note and an invoice through the fiscal folio." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:505 +msgid "Because of this requirement, the field :guilabel:`CFDI Origin` adds this relation with a `01|`, followed by the fiscal folio of the original invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:361 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:509 msgid "For the :guilabel:`CFDI Origin` field to be automatically added, use the :guilabel:`Add Credit Note` button from the invoice, instead of creating it manually." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:365 -msgid "Payment complements" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:517 +msgid "Vendor bills have to have a fiscal folio for reports and payments to work correctly, if the vendor bill was created by the purchase app or added manually, just add the XML file of the invoice on the chatter **As a log note** and the fiscal folio will be updated accordingly, keep in mind that the bill **Must be in draft state** for the update to happen." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:368 -msgid "Payment policy" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:523 +msgid "When clicking :guilabel:`Update SAT`, the :guilabel:`SAT status` field on the invoice will confirm if the XML file is **Validated** in the |SAT|, this is also true for vendor bills." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:370 -msgid "One addition of the Mexican localization is the :guilabel:`Payment Policy` field. According to the SAT documentation, there are two types of payments:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:526 +msgid "See also :doc:`../accounting/vendor_bills`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:373 -msgid "`PUE` (Pago en una Sola Exhibición/Payment in a Single Exhibition)" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:536 +msgid "Payment policy" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:374 -msgid "`PPD` (Pago en Parcialidades o Diferido/Payment in Installements or Deferred)" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:538 +msgid "One addition of the Mexican localization is the :guilabel:`Payment Policy` field. `According to the SAT documentation `_, there are two types of payments:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:377 -msgid ":doc:`../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:542 +msgid ":guilabel:`PUE` (Pago en una Sola Exhibición/Payment in a Single Exhibition)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:379 -msgid "The difference lies in the *Due Date* or *Payment Terms* of the invoice." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:543 +msgid ":guilabel:`PPD` (Pago en Parcialidades o Diferido/Payment in Installements or Deferred)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:381 -msgid "To configure |PUE| invoices, navigate to :menuselection:`Accounting --> Customers --> Invoices`, and either select an invoice :guilabel:`Due Date` within the same month, or choose a payment term that does not imply changing the due month (immediate payment, 15 days, 21 days, all falling within the current month)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:546 +msgid "Payment Complements are only generated if the policy of the invoice is set to |PPD|, please note that it is a requirement to set the :guilabel:`Payment Method` to something different than **99 - Por definir**." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 msgid "Example of an invoice with the PUE requirements." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:390 -msgid "Some :guilabel:`Payment Terms` are already installed by default, and can be managed from :menuselection:`Accounting --> Configuration --> Payment Terms`." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:393 -msgid "To configure |PPD| invoices, navigate to :menuselection:`Accounting --> Customers --> Invoices`, and select an invoice with a :guilabel:`Due Date` after the first day of the following month. This also applies if your :guilabel:`Payment Term` is due in the following month." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:553 +msgid "If the invoice has a due date outside the current month, it will default to |PPD|." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 msgid "Example of an invoice with the PPD requirements." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:401 -msgid "Because the |PPD| policy implies that an invoice is not going to get paid at the moment, the correct :guilabel:`Payment Way` for the |PPD| invoices is :guilabel:`99 - Por Definir` (To define)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:561 +msgid "Payment flow" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:406 -msgid "Payment flow" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:563 +msgid "In both cases, the payment process in Odoo :doc:`is the same <../accounting/payments>`, the main difference being payments related to |PPD| invoices, by law, need to be sent to the government as a document type \"P\" (Pago)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:408 -msgid "In both cases, the payment process in Odoo :doc:`is the same <../accounting/customer_invoices>`, the main difference being payments related to |PPD| invoices trigger the creation of a document type \"P\" (Pago)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:567 +msgid "If a payment is related to a |PUE| invoice, it can be registered through the payment popup, and be associated with the corresponding invoice. To do so, navigate to :menuselection:`Accounting --> Customers --> Invoices`, and select an invoice. Then, click the :guilabel:`Pay` button to open the payment popup, set the :guilabel:`Payment Way` and any other fields, and click :guilabel:`Create Payment`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:412 -msgid "If a payment is related to a |PUE| invoice, it can be registered with the wizard, and be associated with the corresponding invoice. To do so, navigate to :menuselection:`Accounting --> Customers --> Invoices`, and select an invoice. Then, click the :guilabel:`Register Payment` button. The invoice status changes to :guilabel:`In Payment`, since the payment is effectively validated when it is bank reconciled." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:574 +msgid ":doc:`../accounting/payments`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:419 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:575 msgid ":doc:`../accounting/bank/reconciliation`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:421 -msgid "While this process is the same for PPD invoices, the addition of the creating an :doc:`electronic document <../accounting/customer_invoices/electronic_invoicing>` means some additional requirements are needed to correctly send the document to the |SAT|." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:577 +msgid "While this process is the same for PPD invoices, the addition of creating an :doc:`electronic document <../accounting/customer_invoices/electronic_invoicing>` means some additional requirements are needed to correctly send the document to the |SAT|." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:425 -msgid "From an invoice, you need to confirm the specific :guilabel:`Payment Way` where you received the payment. Because of this, the :guilabel:`Payment Way` field **cannot** be set as `99 - Por Definir (To Define)`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:581 +msgid "From a legal perspective, PPD invoices **must** include the specific :guilabel:`Payment Way` that the payment was received. Because of this, the :guilabel:`Payment Way` field **cannot** be set as :guilabel:`To Define`, thus the field will become invisible when selecting it." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:429 -msgid "If you are going to add a bank account number in the :guilabel:`Accounting` tab of a customer's contact card, it must have a valid account number." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:586 +msgid "If a bank account number is required, add it in the :guilabel:`Accounting` tab of a customer's contact record." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:433 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:588 msgid "The exact configurations are in the `Anexo 20 of the SAT `_. Usually, the :guilabel:`Bank Account` needs to be 10 or 18 digits for transfers, 16 for credit or debit cards." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:437 -msgid "If a payment is related to a signed invoice with the :guilabel:`Payment Policy` `PPD`, Odoo generates the corresponding payment complement automatically, once you click :guilabel:`Process Now`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:593 +msgid "If a fully-reconciled payment is related to an invoice with a :guilabel:`Fiscal Folio`, the :guilabel:`Update Payments` appears. Click the :guilabel:`Update Payments` button to send the **payment complement** XML file to the government automatically and display it in the |CFDI| tab in both the invoice and the payment." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "CFDI (4.0) E-invoicing service process payment now message." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:599 +msgid "While it is a bad fiscal practice, the |PUE| payments can also be sent to the government, however it is required to click :guilabel:`Force CFDI` in the :guilabel:`CFDI` tab for this." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:445 -msgid "A payment in MXN **cannot** be used to pay multiple invoices in USD. Instead, the payment should be separated into multiple payments, using the :guilabel:`Register Payment` button on the corresponding invoices." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:602 +msgid "Similar to an invoice or credit note, the PDF and XML can be sent to the final customer. To do so, click the :icon:`fa-cog` :guilabel:`(gear)` icon to open the actions drop-down menu and select :guilabel:`Send receipt by email` from the payment view." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:450 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:606 +msgid "Regardless of whether the payment was created with or without reconciliation, it is possible to download the payment PDF from the :guilabel:`CFDI` tab on the invoice by clicking the :guilabel:`print` button." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 +msgid "Example of the print button on the CFDI tab." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:616 msgid "Invoice cancellations" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:452 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:618 msgid "It is possible to cancel the EDI documents sent to the |SAT|. According to the `Reforma Fiscal 2022 `_, since January 1st, 2022, there are two requirements for this:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:456 -msgid "With all cancellation requests, you **must** specify a *cancellation reason*." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:622 +msgid "All cancellation requests require a *cancellation reason*." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:457 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:623 msgid "After 24 hours from the invoice creation, the client must be asked to approve the cancellation. If there is no response within 72 hours, the cancellation is processed automatically." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:460 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:626 +msgid "Invoice cancellations are updated automatically on Odoo but can take some time, to check the status of the cancellation just press the :guilabel:`Update SAT` button." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:629 msgid "Invoice cancellations can be made for one of the following reasons:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:462 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:631 msgid "01 - Invoice issued with errors (with related document)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:463 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:632 msgid "02 - Invoice issued with errors (no replacement)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:464 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:633 msgid "03 - The operation was not carried out" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:465 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:634 msgid "04 - Nominative operation related to the global invoice" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:467 -msgid "To initiate a cancellation, go to :menuselection:`Accounting --> Customers --> Invoices`, select the posted invoice to cancel, and click :guilabel:`Request Cancel`. Then, refer to the :ref:`localizations/mexico/01-invoice-cancellation` or :ref:`localizations/mexico/02-03-04-invoice-cancellation` sections, depending on the cancellation reason." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:636 +msgid "To initiate a cancellation, go to :menuselection:`Accounting --> Customers --> Invoices`, select the posted invoice to cancel, and click :guilabel:`Request Cancel`. Then, refer to the :ref:`l10n/mx/01-invoice-cancellation` or :ref:`l10n/mx/02-03-04-invoice-cancellation` sections, depending on the cancellation reason." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:474 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:642 msgid "Alternatively, request a cancellation from the :guilabel:`CFDI` tab by clicking :guilabel:`Cancel` on the line item." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:480 -msgid "Cancellation reason 01 - Invoice issued with errors (with related document)" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:646 +msgid "If a cancellation is requested on a locked period, the CFDI will be cancelled but not the accounting entry." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:482 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:648 +msgid "If the client rejects the cancellation, the invoice cancellation line item is removed from the :guilabel:`CFDI` tab." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:654 +msgid "Cancellation reason 01" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:656 msgid "In the :guilabel:`Request CFDI Cancellation` pop-up window, select :guilabel:`01 - Invoice issued with errors (with related document)` from the :guilabel:`Reason` field and click :guilabel:`Create Replacement Invoice` to create a new draft invoice. This new draft invoice replaces the previous invoice, along with the related |CFDI|." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:486 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:660 msgid ":guilabel:`Confirm` the draft and :guilabel:`Send & Print` the invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:487 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:661 msgid "Return to the initial invoice (i.e., the invoice from which you first requested the cancellation). Notice the :guilabel:`Substituted By` field appears with a reference to the new replacement invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:490 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:664 msgid "Click :guilabel:`Request Cancel`. In the :guilabel:`Request CFDI Cancellation` pop-up window, the :guilabel:`01 - Invoice issued with errors (with related document)` option is automatically selected in the :guilabel:`Reason` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:493 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:667 msgid "Click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:495 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:669 msgid "The invoice cancellation is then generated with a reason line item in the :guilabel:`CFDI` tab." msgstr "" @@ -30667,465 +31879,962 @@ msgstr "" msgid "Canceled invoice line item in the CFDI tab." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:501 -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:520 -msgid "If the client rejects the cancellation, the invoice cancellation line item is removed from the :guilabel:`CFDI` tab." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:503 -msgid "When using the *01 - Invoice issued with errors (with related document)* cancellation reason, the `04|` prefix may appear in the :guilabel:`Fiscal Folio` field. This is an internal prefix used by Odoo to complete the cancellation and **does not** mean that the cancellation reason was *04 - Nominative operation related to the global invoice*." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:675 +msgid "When using the :guilabel:`01 - Invoice issued with errors (with related document)` cancellation reason, the `04|` prefix appears in the :guilabel:`Fiscal Folio` field. This is an internal prefix used by Odoo to complete the cancellation and **does not** mean that the cancellation reason was :guilabel:`04 - Nominative operation related to the global invoice`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:511 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:683 msgid "Cancellation reasons 02, 03, and 04" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:513 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:685 msgid "In the :guilabel:`Request CFDI Cancellation` pop-up window, select the desired cancellation :guilabel:`Reason` and :guilabel:`Confirm` the cancellation." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:516 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:688 msgid "Upon doing so, the invoice cancellation is generated with a reason line item in the :guilabel:`CFDI` tab." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:524 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:692 +msgid "If the :guilabel:`SAT Status` goes back to **Validated** it could be due to one of these three reasons:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:695 +msgid "The invoice is labeled as *No Cancelable* in the `SAT Website `_. due to the fact that it has a valid related document: Either another invoice linked with the :guilabel:`CFDI Origin` field or a Payment Complemement. If so, you need to cancel any other related document first." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:699 +msgid "The cancellation request is still being processed by the |SAT|. If so, wait a few minutes and try again." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:701 +msgid "The final customer needs to reject or accept the cancellation request in their `Buzón Tributario `_. This can take up to 72 hours and, in case that the cancellation requests gets rejected, you will need to repeat the process again." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:707 +msgid "`Tool to validate Mexican Electronic Documents (CFDI) status `_" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:710 +msgid "For the cancellation reasons **02**, **03** and **04**, the :guilabel:`Create Replacement Invoice` button is replaced by a :guilabel:`Confirm` button that requests the cancellation immediately." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:713 +msgid "Both the current :guilabel:`State` and :guilabel:`Cancellation Reason` can be found in the :guilabel:`CFDI` tab." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 +msgid "Old invoice with CFDI Origin." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:722 msgid "Payment cancellations" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:526 -msgid "It is also possible to cancel *Payment Complements*. For this, go to the payment, via :menuselection:`Accounting --> Customers --> Payments`, and select :guilabel:`Request EDI Cancellation`. As with invoices, a blue button will appear. Click :guilabel:`Process now`, and the document will be sent to the |SAT|. After a few seconds, you can click :guilabel:`Retry` to confirm the current |SAT| status." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:724 +msgid "To cancel :ref:`payment complements `, go to the :guilabel:`CFDI` tab of the related invoice and click :guilabel:`Cancel` on the line of the payment complement." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:532 -msgid "Finally, the payment status is moved to :guilabel:`Cancelled`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:727 +msgid "Like with invoices, go to the payment and click :guilabel:`Update SAT` in order to change the :guilabel:`SAT Status` and :guilabel:`Status` to :guilabel:`Cancelled`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:535 -msgid "Just like invoices, when you create a new *Payment Complement*, you can add the relation of the original document, by adding a `04|` plus the fiscal folio in the :guilabel:`CFDI Origin` field." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:731 +msgid "Just like invoices, when creating a new payment complement, it is possible to add the relation of the original document, by adding a `04|` plus the fiscal folio in the :guilabel:`CFDI Origin` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:539 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:735 +msgid "This action cancels the invoice and marks the :guilabel:`Reason` as :guilabel:`01 - Invoice issued with errors (with related document)`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:741 msgid "Invoicing special use cases" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:542 -msgid "CFDI to public" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:746 +msgid "CFDI relations" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:748 +msgid "Sometimes it is needed to relate the current document to previously signed CFDIs, to do so just fill the :guilabel:`CFDI Origin` field on the invoice indicating a relation, there are 7 possible values:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:751 +msgid "01: Nota de crédito" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:752 +msgid "02: Nota de débito de los documentos relacionados" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:753 +msgid "03: Devolución de mercancía sobre facturas o traslados previos" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:754 +msgid "04: Sustitución de los CFDI previos" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:755 +msgid "05: Traslados de mercancias facturados previamente" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:544 -msgid "If the customer you are selling goods or services to does not require an invoice, a *CFDI to Public* has to be created." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:756 +msgid "06: Factura generada por los traslados previos" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:547 -msgid "If you use the :guilabel:`Customer` name `PUBLICO EN GENERAL`, an error will be triggered. This is a main change in the CFDI 4.0 that requires invoices with that specific name to need additional fields, which Odoo does not currently support. So, for a *CFDI to Public* to be created, you need to add any name to your customer that is **not** `PUBLICO EN GENERAL`. (For example: `CLIENTE FINAL`)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:757 +msgid "07: CFDI por aplicación de anticipo" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:552 -msgid "In addition to this, it is required that the :guilabel:`ZIP` code of your company is added, the generic |RFC| is set as `XAXX010101000`, and the :guilabel:`Fiscal Regime` of your customer must be set as: `Sin obligaciones fiscales`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:760 +msgid "The format is: Origin Type|UUID1, UUID2, ...., UUIDn where more than one Origin Type can be added." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:764 +msgid "Here is an example with two relations:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:771 +msgid "The first section has relation type **04** with **1 UUID**" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:772 +msgid "The second section has relation type **07** with **2 UUIDs**" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:774 +msgid "Additionally any combination is also visible on the signed PDF." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "CFDI to Public Customer field configuration." +msgid "Example of the PDF with 3 relations." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:562 -msgid "The main currency in Mexico is MXN. While this is mandatory for all Mexican companies, it is possible to send and receive invoices (and payments) in different currencies. To enable the use of :doc:`multicurrency <../accounting/get_started/multi_currency>`, navigate to the :menuselection:`Accounting --> Settings --> Currencies`, and set :guilabel:`Mexican Bank` as the :guilabel:`Service` in the :guilabel:`Automatic Currency Rates` section. Then, set the :guilabel:`Interval` field to the frequency you wish to update the exchange rates." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:784 +msgid "The :guilabel:`Main Currency` in Mexico is MXN. While this is mandatory for all Mexican companies, it is possible to send and receive invoices (and payments) in different currencies. To enable the use of :doc:`multicurrency <../accounting/get_started/multi_currency>`, navigate to the :menuselection:`Accounting --> Configuration --> Currencies`, and set :guilabel:`[MX] Bank of Mexico` as the :guilabel:`Service` in the :guilabel:`Automatic Currency Rates` section. Then, set the :guilabel:`Interval` field to the frequency you wish to update the exchange rates." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:569 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:791 msgid "This way, the XML file of the document will have the correct exchange rate, and the total amount, in both the foreign currency and in MXN." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:572 -msgid "It is highly recommended to use :doc:`a bank account for each currency <../accounting/bank/foreign_currency>`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:794 +msgid "It is highly recommended to use separate :doc:`bank accounts for each currency <../accounting/bank/foreign_currency>`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:576 -msgid "The only currencies that automatically update their exchange rate daily are: USD, EUR, GBP, and JPY." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:798 +msgid "The only currencies that automatically update their exchange rate daily are: USD, EUR, GBP, JPY and CNY." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Multi-currency configuration in the Accounting settings." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:806 +msgid "By law, electronic documents sent to the government cannot have negative lines, as this can trigger errors. Therefore, when using :doc:`Gift Cards <../../sales/sales/products_prices/ewallets_giftcards>` or :doc:`Loyalty Programs <../../sales/sales/products_prices/loyalty_discount>`, the subsequent negative lines will be translated in the XML as if they were regular :doc:`Discounts <../../sales/sales/products_prices/prices/pricing/>`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:813 +msgid "In order to set this up, navigate to :menuselection:`Sales --> Products --> Products` and create a product `Discounts`, make sure that it has a valid :guilabel:`Tax` (usually :guilabel:`IVA` at `16%`)." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:583 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:817 +msgid "After this, create and sign the invoice via |CFDI|, and add the `Discounts` product at the bottom. In the XML the discount should be subtracted from the first invoice line available, Odoo will try to subtract from each line the total amount in order until all the discount has been applied." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:822 +msgid "A `Discount` and `UNSPSC Product Category` for each product variant related to :guilabel:`Gift Cards` or :guilabel:`Loyalty Programs` have to be created." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:828 msgid "Down payments" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:585 -msgid "There can be cases where you receive a payment in advance from a customer that needs to be applied to an invoice later. In order to do this in Odoo, it is required to properly link invoices to each other with the :guilabel:`CFDI Origin` field. To do so, it is necessary to have the :doc:`Sales <../../sales>` app installed." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:830 +msgid "A common practice in Mexico is the usage of :doc:`down payments <../../sales/sales/invoicing/down_payment>`. It's usage primarily consists of cases where you receive a payment for a good or service where either the product or the price (or both) hasn't been determinated at the moment." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:835 +msgid "The |SAT| allows two diferent ways to handle this process: both of them involve linking all invoices to each other with the :guilabel:`CFDI Origin` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:591 -msgid "`The official documentation for registration of down payments in Mexico `_." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:839 +msgid "For this process, the :doc:`Sales <../../sales>` app must be installed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:594 -msgid "First, navigate to the :menuselection:`Sales` app to create a product `Anticipo` and configure it. The :guilabel:`Product Type` must be :guilabel:`Service`, and use the :guilabel:`UNSPSC Category` must be: `84111506 Servicios de facturación`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:842 +msgid "`The official documentation for registration of down payments in Mexico `_." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:598 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:848 +msgid "First, navigate to :menuselection:`Sales --> Products --> Products` to create a product `Anticipo` and configure it. The :guilabel:`Product Type` must be :guilabel:`Service`, and use the :guilabel:`UNSPSC Category` :guilabel:`84111506 Servicios de facturación`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:852 msgid "Then, go to :menuselection:`Sales --> Settings --> Invoicing --> Down Payments`, and add the *Anticipo* product as the default." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:601 -msgid "Create a sales order with the total amount, and create a down payment (either using a percentage or fixed amount). Then, sign the document, and :guilabel:`Register the Payment`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:858 +msgid "Method A" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:604 -msgid "When the time comes for the customer to get the final invoice, create it again from the same sales order. In the :guilabel:`Create Invoices` wizard, select :guilabel:`Regular Invoice`, and uncheck :guilabel:`Deduct down payments`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:860 +msgid "This method consists of creating a down payment invoice, creating a invoice for the total amount, and finally, creating a credit note for the total of the down payment." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:608 -msgid "Then, copy the :guilabel:`Fiscal Folio` from the first invoice, and paste it into the :guilabel:`CDFI Origin` of the second invoice, adding the prefix `07|` before the value. Then, sign the document." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:863 +msgid "First, create a sales order with the total amount, and create a down payment from it (either using a percentage or fixed amount). Then, sign the document via CFDI, and register the payment." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:612 -msgid "After this, create a credit note for the first invoice. Copy the :guilabel:`Fiscal Folio` from the second invoice, and paste it in the :guilabel:`CFDI Origin` of the credit note, adding the prefix `07|`. Then, sign the document." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:866 +msgid "When the time comes for the customer to get the final invoice, create it again from the same sales order. In the :guilabel:`Create Invoice` popup, select :guilabel:`Regular Invoice`. Make sure to delete the line that contains the product *Anticipo*." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:616 -msgid "With this, all electronic documents are linked to each other. The final step is to fully pay the new invoice. At the bottom of the new invoice, you can find the credit note in the :guilabel:`Outstanding credits` - add it as payment. Finally, register the remaining amount with the :guilabel:`Register Payment` wizard." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:871 +msgid "When using down payments with the Mexican localization, make sure that the :guilabel:`Invoicing Policy` of the products are :guilabel:`Ordered quantities`. Otherwise a customer credit note will be created." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:622 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:875 +msgid "Then, copy the :guilabel:`Fiscal Folio` from the down payment invoice, and paste it into the :guilabel:`CDFI Origin` of the final invoice, adding the prefix `07|` before the value and sign the document via |CFDI|." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:879 +msgid "Finally, create a credit note for the first invoice. Copy the :guilabel:`Fiscal Folio` from the final invoice, and paste it in the :guilabel:`CFDI Origin` of the credit note, adding the prefix `07|`. Then, sign the document via |CFDI|." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:883 +msgid "With this, all electronic documents are linked to each other. The final step is to fully pay the new invoice. At the bottom of the new invoice, you can find the credit note in the :guilabel:`Outstanding credits` - add it as payment. Finally, register the remaining amount with the :guilabel:`Pay` popup." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:888 +msgid "In the sales order, all three documents should appear as \"In Payment\"." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:891 +msgid "Method B" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:893 +msgid "Another, simpler way to fulfill |SAT| requirements involves creating only the down payment invoice, and a second invoice for the remnant. This method involves the fact that negative lines are treated as discounts." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:897 +msgid "For this, follow the same process as :ref:`Method A `, up until the creation of the final invoice. Do not delete the line that contains the *Anticipo* and instead rename the other products :guilabel:`Description` to include the text `CFDI por remanente de un anticipo`. Don't forget to add the :guilabel:`Fiscal Folio` of the down payment invoice in the :guilabel:`CDFI Origin` of the final invoice, adding the prefix `07|`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:903 +msgid "Finally, sign the final invoice via |CFDI|." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:908 +msgid "Addendas and complements" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:910 +msgid "Addendas and complements can be included in the XML. To add one, go to :menuselection:`Accounting --> Configuration --> Addendas & Complementos (MX)` and :guilabel:`New` to enter the code to be injected. Additional fields beyond standard Odoo may be required." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:915 +msgid "This section might require techincal knowledge as well as technical debt, it is recommended to ask your account manager for the best technical assistance." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:918 +msgid "Once the desired nodes are created, they can be selected on each contact to make them appear on every invoice addressed to that contact. By default all the selected nodes will be added automatically on every invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:922 +msgid "It is also possible to just select the nodes as needed on every invoice by selecting the :guilabel:`Other info` tab and then selecting the desired nodes from :guilabel:`Addendas & Complementos`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:927 +msgid "It is possible to add more than one per contact or per invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:932 +msgid "XML reader" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:934 +msgid "In certain occasions, such as when you are creating invoices in another software or in the |SAT| directly, you would want to upload the invoices in Odoo. The XML Reader allows you to retrieve the data from an XML file. To do this, navigate to :menuselection:`Accounting --> Customers --> Invoices` and, in the list view, click the :guilabel:`Upload` button to select any number of XML files, and draft invoices will be automatically created. This can work also by dragging the files from your computer and dropping them in the view." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:941 +msgid "The draft invoices will retrieve the :guilabel:`Customer information` (if it doesn't exist, new ones will be created), the :guilabel:`Product Lines` (only if products with the same name already exist) and will calculate all taxes and additional fields exclusive to the Mexican Localization. The import information will appear in the chatter." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:947 +msgid "Depending on where the invoice was created, XML files could have different values from the total calculated in Odoo. **Always** double-check any document uploaded this way." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:950 +msgid ":guilabel:`Customer Invoices` created this way will be able to create **payment complements** and to be canceled at any time. If you use the :guilabel:`Print` button, the PDF document will have all the corresponding information." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:954 +msgid "This can be done for :guilabel:`Vendor Bills` too." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:957 +msgid "To retrieve the :guilabel:`Fiscal Folio`, drag and drop XML files as a log note in the chatter for previously created draft invoices." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:963 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1484 +msgid "CFDI to public" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:965 +msgid "The Mexican government requires that any goods or services that are sold must be backed up by an invoice. If the customer does not require an invoice or has no |RFC|, a *CFDI to Public* has to be created also known as a \"nominative\" invoice." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:969 +msgid "A contact must be created and it must have a particular name." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:971 +msgid "If the :guilabel:`CFDI to Public` checkbox in either a sales order or an invoice is checked, the final XML will override the data in the invoice contact and will add the following characteristics:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:974 +msgid "|RFC|: **XAXX010101000** if it is a national customer or **XEXX010101000** if it is a foreign customer" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:976 +msgid ":guilabel:`ZIP` code: The same code of the company" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:977 +msgid ":guilabel:`Usage`: S01 - Without Fiscal Effects" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 +msgid "CFDI to Public Checkbox" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:982 +msgid "If the final customer doesn't share any details, create a generic :guilabel:`Customer`. The name cannot be `PUBLICO EN GENERAL` or an error will be triggered (it can be, for example, `CLIENTE FINAL`)." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:987 +msgid "By default sending the invoice is not allowed if the partner does not have either the *Country* or *Zip code* set, however this is not required if the :guilabel:`CFDI to public` checkbox is active." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:992 +msgid "`Regla 2.7.1.21 Expedición de comprobantes en operaciones con el público en general `_." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:998 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1416 +msgid "Global invoice" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1000 +msgid "If by the end of a certain period of time (that can vary from daily to bimonthly, depending of your company's legal needs and preferences) and the customer still has sales that weren't marked as regular invoices or individual *CFDI to Public* invoices, the |SAT| allows for the creation of a single invoice that can contain all operations, known as a *global invoice*." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1006 +msgid "For this process, the :doc:`Sales <../../sales/sales>` app must be installed." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1009 +msgid "`Guía de llenado del CFDI global `_" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1013 +msgid "Sales flow" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1015 +msgid "First, it is necessary to create a special :guilabel:`Journal` created in :menuselection:`Accounting --> Configuration --> Journals` with the purpose of keeping a separate sequence." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1018 +msgid "Then, make sure that all the sales orders that need to be signed have the following configurations:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1020 +msgid ":guilabel:`CFDI to Public` checkbox enabled" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1021 +msgid ":guilabel:`Invoice Status` marked as :guilabel:`To Invoice`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1023 +msgid "After this, go to :menuselection:`Sales --> To Invoice --> Orders to Invoice`, select all relevant sales orders and press :guilabel:`Create Invoices`. Make sure to disable the :guilabel:`Consolidated Billing` checkbox and click :guilabel:`Create Draft Invoice`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1027 +msgid "Odoo will redirect to a list of invoices. Select all of them and in the :icon:`fa-gear` :guilabel:`Actions` drop-down menu select :guilabel:`Post entries`. Select all posted invoices again and go back to the :icon:`fa-gear` :guilabel:`Actions` drop-down menu to select :guilabel:`Create Global Invoice`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1032 +msgid "In the wizard, select the :guilabel:`Periodicity` indicated by a professional accountant and press :guilabel:`Create`. All invoices should be signed under the same XML file, with the same :guilabel:`Fiscal Folio`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1037 +msgid "Click :guilabel:`Show` in the :guilabel:`CFDI` tab to display a list with all related invoices." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1038 +msgid "Click :guilabel:`Cancel` in the :guilabel:`CFDI` tab to cancel the global invoice in both the |SAT| and Odoo." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1042 +msgid "Global invoices created this way won't have a **PDF** in them as their information is already within Odoo and is not to be seen by a customer." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1048 +msgid "Electronic accounting (reporting)" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1050 +msgid "For Mexico, `Electronic Accounting `_ refers to the obligation to keep accounting records and entries through electronic means, and to enter accounting information on a monthly basis, through the |SAT| website." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1055 +msgid "It consists of three main XML files:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1057 +msgid "The updated list of the chart of accounts that is currently in use" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1058 +msgid "A monthly trial balance, plus a closing entry report, also known as: *Trial Balance Month 13*" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1059 +msgid "An export of the journal entries in the general ledger (optional except in the case of a compulsory audit)" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1062 +msgid "The resulting XML files follow the requirements of the `Anexo Técnico de Contabilidad Electrónica 1.3 `_." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1065 +msgid "In addition to this, it is possible to generate the `DIOT `_: a report of vendors' journal entries that involve IVA taxes that can be exported in a TXT file." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1071 +msgid "In order to use these reports, the following modules must be installed:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1073 +msgid ":guilabel:`Odoo Mexican Localization Reports` `l10n_mx_reports`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1074 +msgid ":guilabel:`Mexico - Month 13 Trial Balance` `l10n_mx_reports_closing`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1075 +msgid ":guilabel:`Odoo Mexican XML Polizas Export` `l10n_mx_xml_polizas`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1077 +msgid "The *chart of accounts* and the *Trial Balance Month 13* reports can be found in :menuselection:`Accounting --> Reporting --> Trial Balance`. The *DIOT* report can be found in :menuselection:`Accounting --> Reporting --> Tax Report`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1082 +msgid "The specific characteristics and obligations of the reports that you send might change according to your fiscal regime. Always contact your accountant before sending any documents to the government." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1091 +msgid "The :doc:`chart of accounts <../accounting/get_started/chart_of_accounts>` in Mexico follows a specific pattern based on |SAT|'s' `Código agrupador de cuentas `_." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1095 +msgid "It is possible to create any account, as long as it respects |SAT|'s encoding group: the pattern is `NNN.YY.ZZ` or `NNN.YY.ZZZ`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1099 +msgid "Some examples are `102.01.99` or `401.01.001`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1101 +msgid "When a new account is created in :menuselection:`Accounting --> Configuration --> Chart of Accounts`, with the |SAT| encoding group pattern, the correct grouping code appears in :guilabel:`Tags`, and the account appears in the *COA* report." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1105 +msgid "Once all accounts are created, make sure the correct :guilabel:`Tags` are added as these mark the nature of the account." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1109 +msgid "It is not advised use any pattern that ends a section with a 0 (such as `100.01.01`, `301.00.003` or `604.77.00`). This triggers errors in the report. By default Odoo will mark the accounts as yellow if the numbering will cause issue later on, this is to prevent reports from providing inaccurate data." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1114 +msgid "Once everything is set up, go to :menuselection:`Accounting --> Reporting --> Trial Balance`, and click the :guilabel:`COA SAT (XML)` button to generate an XML file containing all of the accounts. This XML file is ready to upload to the |SAT| website." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1123 +msgid "The trial balance reports the initial balance, credit, and total balance of your accounts, provided that you added their correct :ref:`encoding group `." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1126 +msgid "To generate an XML file of the trial balance, go to :menuselection:`Accounting --> Reporting --> Trial Balance`, select the date, and click the :icon:`fa-cog` :guilabel:`(action menu)`, then select :guilabel:`SAT (XML)`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 +msgid "Trial balance report." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1134 +msgid "Odoo does not generate the *Balanza de Comprobación Complementaria*." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1139 +msgid "Month 13" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1141 +msgid "An additional report is the *Month 13*: a closing balance sheet that shows any adjustments or movements made in the accounting to close the year." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1144 +msgid "To generate this XML document, navigate to :menuselection:`Accounting --> Accounting --> Journal Entries`, and create a new document. Here, add all amounts to modify, and balance the debit and/or credit of each one." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1148 +msgid "After this is done, go to the :guilabel:`Other Info` tab and check the :guilabel:`Month 13 Closing` field. If needed, go to :menuselection:`Accounting --> Reporting --> Trial Balance` and select the date :guilabel:`Month 13`, where it is possible to see the the total amount of the year, plus all the additions of the journal entry. To generate the XML file, click the :icon:`fa-cog` :guilabel:`(action menu)`, then select :guilabel:`SAT (XML)`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1159 +msgid "By law, all transactions in Mexico must be recorded digitally. Since Odoo automatically creates all the underlying journal entries of all invoices and payments, simply exporting the general ledger complies with |SAT|'s audits and/or tax refunds." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1164 +msgid "The report can be filtered by period or by journal, depending on the need." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1166 +msgid "To create the XML, go to :menuselection:`Accounting --> Reporting --> General Ledger`, click :icon:`fa-cog` :guilabel:`(action menu)`, then click :guilabel:`XML (Polizas)`. Then, select among four :guilabel:`Export` types:" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1170 +msgid ":guilabel:`Tax audit`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1171 +msgid ":guilabel:`Audit certification`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1172 +msgid ":guilabel:`Return of goods`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1173 +msgid ":guilabel:`Compensation`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1175 +msgid "For :guilabel:`Tax audit` or :guilabel:`Audit certification`, add the :guilabel:`Order Number` provided by the |SAT|. For :guilabel:`Return of goods` or :guilabel:`Compensation`, add the :guilabel:`Process Number`, also provided by the |SAT|." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1180 +msgid "To see this report without sending it, use `ABC6987654/99` for the :guilabel:`Order Number` or `AB123451234512` for the :guilabel:`Process Number`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1186 +msgid "DIOT report" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1188 +msgid "The DIOT (Declaración Informativa de Operaciones con Terceros / *Informative Declaration of Operations with Third Parties*) is an additional obligation with the |SAT|, where the current status of creditable and non-creditable payments, withholdings, import taxes, and refunds of VAT from your vendor bills are provided to the |SAT|." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1194 +msgid "Since July 2025 the new 2025 version of the report is available." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1196 +msgid "Unlike other reports, the |DIOT| is uploaded to a website provided by the |SAT| that contains the A-29 form. In Odoo, you can download the records of your transactions as a TXT file that can be uploaded to the form, avoiding direct capture of this data." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1200 +msgid "The transactions file contains the total amount of the payments registered in vendor bills, broken down into the corresponding types of IVA. The :guilabel:`VAT`, :guilabel:`Country` and :guilabel:`Type of operation` fields are mandatory for all vendors." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1204 +msgid "To download the |DIOT| report as a TXT file, go to :menuselection:`Accounting --> Reports --> Tax Return`. Select the desired month, click :icon:`fa-cog` :guilabel:`(action menu)`, and select :guilabel:`DIOT (TXT)`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1208 +msgid "In case new taxes are created on the database, there are two types of tags, the tags containing **tax** must go into the tax distribution and the ones with the base name go on the base of the tax. All lines of a VAT tax **must** containing at least one tax grid." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 +msgid "DIOT (TXT) download button." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1216 +msgid "It is required to fill in the :guilabel:`Type of Operation` field in the :guilabel:`Accounting` tab of each vendor to prevent validation errors. Make sure that foreign customers have their :guilabel:`Country` set." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 +msgid "DIOT information on a vendor contact." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1223 +msgid "Selecting :guilabel:`87 - Global Operations` will cause the final TXT file to merge all vendors that are part of the global operations under one generic VAT: *XAXX010101000*." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1229 msgid "External trade" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:624 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1231 msgid "The external trade is a complement to a regular invoice that adds certain values in both the XML and PDF, to invoices with a foreign customer according to `SAT regulations `_, such as:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:628 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1235 msgid "The specific address of the receiver and the sender" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:629 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1236 msgid "The addition of a :guilabel:`Tariff Fraction` that identifies the type of product" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:630 -msgid "The correct :guilabel:`Incoterm` (International Commercial Terms), among others (*certificate of origin* and *special units of measure*)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1237 +msgid "The correct :doc:`../accounting/customer_invoices/incoterms` (International Commercial Terms)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:633 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1238 +msgid "And more, such as the *certificate of origin* and *special units of measure*" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1240 msgid "This allows the correct identification of exporters and importers, in addition to expanding the description of the merchandise sold." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:636 -msgid "Since January 1, 2018, external trade is a requirement for taxpayers, who carry export operations of type A1. While the current CFDI is 4.0, the external trade is currently on version 1.1" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1243 +msgid "Since January 1, 2018, external trade is a requirement for taxpayers who carry export operations of type A1. While the current CFDI is 4.0, the external trade is currently on version 2.0." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:639 -msgid "In order to use this feature, the modules :guilabel:`l10n_mx_edi_extended` and :guilabel:`l10n_mx_edi_extended_40` have to be installed." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1247 +msgid "In order to use this feature, the :guilabel:`EDI for Mexico (Advanced Features)` `l10n_mx_edi_extended` module must be installed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:643 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1251 msgid "Before installing, make sure your business needs to use this feature. Consult your accountant first, if needed, before installing any modules." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:652 -msgid "To configure your company contact for external trade, navigate to :menuselection:`Accounting --> Customers --> Customers`, and select your :guilabel:`Company`. While the CFDI 4.0 requirements ask you to add a valid :guilabel:`ZIP` code in your contact, the external trade complement adds the requirement that your :guilabel:`City` and the :guilabel:`State` must also be valid. All three fields must coincide with the `Official SAT Catalog `_, or you will receive an error." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1254 +msgid "The :guilabel:`CFDI to public` checkbox must be ticked when creating foreign invoices." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:659 -msgid "Add the :guilabel:`City` and :guilabel:`State` in the company's *contact*, not in the company itself. You can find your company's contact in :menuselection:`Accounting --> Customers --> Customers`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1262 +msgid "To configure your company contact for external trade, navigate to :menuselection:`Accounting --> Customers --> Customers`, remove the default :guilabel:`Customer Invoices` filter, and select your :guilabel:`Company` name. While the CFDI 4.0 requirements require adding a valid :guilabel:`ZIP` code in the company contact record, the external trade complement adds the requirement that the :guilabel:`City` and the :guilabel:`State` must also be valid. All three fields must coincide with the `Official SAT Catalog for Carta Porte `_, or it will produce an error." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:663 -msgid "The fields :guilabel:`Locality` and :guilabel:`Colony Code` are optional and can be added in the company directly in :menuselection:`Settings --> General Settings --> Companies`. These two fields have to coincide with the data in the |SAT|." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1272 +msgid "Add the :guilabel:`City` and :guilabel:`State` in the company's *contact record*, not in the company record itself." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Optional external trade company fields." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1275 +msgid "On the contact record, the optional fields :guilabel:`Locality` and :guilabel:`Colony Code` can also be filled. These two fields also have to coincide with the data in the |SAT|." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:670 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1278 msgid "To configure the contact data for a foreign receiving client, navigate to :menuselection:`Accounting --> Customers --> Customers`, and select the foreign client's contact. The contact must have the following fields completed to avoid errors:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:674 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1282 msgid "The entire company :guilabel:`Address`, including a valid :guilabel:`ZIP` code and the foreign :guilabel:`Country`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:676 -msgid "The format of the foreign :guilabel:`VAT` (tax identification number, for example: Colombia `123456789-1`)" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1284 +msgid "The foreign :guilabel:`RFC` (tax identification number), in the correct format (for example: Colombia `123456789-1`)" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:678 -msgid "In the :guilabel:`MX EDI` tab, you need to address if the customer receives goods for a period of time temporarily (:guilabel:`Temporary`) or permanently (:guilabel:`Definitive`)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1286 +msgid "In the :guilabel:`Sales & Purchase` tab, to activate the :guilabel:`Needs external trade?` checkbox." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:682 -msgid "If the new contact was created by duplicating another existing contact from Mexico, make sure to delete any carried over information from the :guilabel:`Fiscal Regime` field. In addition, do not enable the :guilabel:`No Tax Breakdown` option. Selecting this option hides mandatory fields that are required for external trade contact configuration." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Required external trade customer fields." -msgstr "" - -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:691 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1290 msgid "In the resulting XML and PDF files, the :guilabel:`VAT` is automatically replaced by the generic VAT for abroad transactions: `XEXX010101000`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:697 -msgid "All products involved with external trade have four fields that are required, two of them exclusive to external trade." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1296 +msgid "All products involved with external trade have four additional fields that are required, two of which are exclusive to external trade." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:700 -msgid "The :guilabel:`Internal Reference` of the product is in the :guilabel:`General Information` tab." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1299 +msgid "The :guilabel:`Reference` of the product must be set in the :guilabel:`General Information` tab." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:701 -msgid "The :guilabel:`Weight` of the product must be more than `0`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1300 +msgid "The :guilabel:`Weight` of the product in the :guilabel:`Inventory` tab must be more than `0`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:702 -msgid "The `correct `_ :guilabel:`Tariff Fraction` of the product in the :guilabel:`Accounting` tab." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1301 +msgid "The `correct `_ :guilabel:`Tariff Fraction` of the product must be set in the :guilabel:`Accounting` tab for external trade." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:704 -msgid "The :guilabel:`UMT Aduana` corresponds to the :guilabel:`Tariff Fraction`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1303 +msgid "The :guilabel:`UMT Aduana` in the :guilabel:`Accounting` tab must be set and correspond to the :guilabel:`Tariff Fraction` for external trade." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 msgid "Required external trade product fields." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:710 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1310 msgid "If the UoM code of the :guilabel:`Tariff Fraction` is `01`, the correct :guilabel:`UMT Aduana` is `kg`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:712 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1312 msgid "If the UoM code of the :guilabel:`Tariff Fraction` is `06`, the correct :guilabel:`UMT Aduana` is `Units`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:718 -msgid "Before creating an invoice, it is important to take into account that external trade invoices require to convert the amounts of your product into USD. Therefore, :doc:`multicurrency <../accounting/get_started/multi_currency>` **must** be enabled and *USD* **must** be activated in the :guilabel:`Currencies` section. The correct :guilabel:`Service` to run is :guilabel:`Mexican Bank`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1318 +msgid "Before creating an invoice, it is important to take into account that external trade invoices require converting product prices into a foreign currency such as USD. Therefore, :doc:`multicurrency <../accounting/get_started/multi_currency>` **must** be enabled with the foreign currency activated in the :guilabel:`Currencies` section. The correct :guilabel:`Service` to run is :guilabel:`[MX] Bank of Mexico`. To convert product prices, create a :doc:`pricelist <../../sales/sales/products_prices/prices/pricing>` in the foreign currency." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:724 -msgid "Then, with the correct exchange rate set up in :menuselection:`Accounting --> Settings --> Currency`, the only fields left are :guilabel:`Incoterm` and the optional :guilabel:`Certificate Source` in the :guilabel:`Other Info` tab." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1325 +msgid "Then, with the correct exchange rate set up in :menuselection:`Accounting --> Settings --> Currency`, set the :guilabel:`Incoterm` and the optional :guilabel:`Certificate Source` fields in the invoice's :guilabel:`Other Info` tab." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "External trade Other Info tab of a product." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1330 +msgid "While not mandatory, the information will be more complete if :guilabel:`CFDI to public` is also active." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:731 -msgid "Finally, sign the invoice with the same process as a regular invoice, and click the :guilabel:`Process Now` button." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1333 +msgid "Finally, confirm the invoice with the same process as a regular invoice, and click the :guilabel:`Send` button to sign it via CFDI." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:737 -msgid "A `Carta Porte `_ is a bill of lading: a document that states the type, quantity, and destination of goods being carried." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1341 +msgid "The :doc:`Point of sale <../../sales/point_of_sale>` adaptation of the Mexican Localization enables the creation of invoices that comply with the |SAT| requirements directly in the **POS session**, with the added benefit of creating receipt tickets that allow *self-invoicing* in a special portal and creating global invoices." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:740 -msgid "On December 1st, 2021, version 2.0 of this CFDI was implemented for all transportation providers, intermediaries, and owners of goods. Odoo is able to generate a document type \"T\" (Traslado), which, unlike other documents, is created in a delivery order instead of an invoice or payment." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1349 +msgid "Point of sale flow" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:744 -msgid "Odoo can create XML and PDF files with (or without) ground transport, and can process materials that are treated as *Dangerous Hazards*." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1351 +msgid "Other than the standard :doc:`Point of Sale configuration <../../sales/point_of_sale/configuration>`, the only requirement for the Mexican localization is the additional fact that each payment method needs to be configured with a correct :guilabel:`Payment Way`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:747 -msgid "In order to use this feature, the modules :guilabel:`l10n_mx_edi_extended`, :guilabel:`l10n_mx_edi_extended_40`, :guilabel:`l10n_mx_edi_stock` and :guilabel:`l10n_mx_edi_stock_40` have to be installed." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1357 +msgid "By default Odoo creates preconfigured payment methods for cash, credit card, and debit card." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:751 -msgid "In addition to this, it is necessary to have the :doc:`Inventory <../../inventory_and_mrp/inventory>` and :doc:`Sales <../../sales/sales>` apps installed, as well." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1359 +msgid "While selling on the **Point of Sale**, click the :guilabel:`Customer` button to either create or select a customer. Here it is possible to review customer invoicing information (such as the |RFC| or :guilabel:`Fiscal Regime`) and even modify it directly inside the session." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:755 -msgid "Odoo does not support Carta Porte type document type \"I\" (Ingreso), air, or marine transport. Consult your accountant first if this feature is needed before doing any modifications." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1363 +msgid "After selecting a customer, tick the :icon:`fa-file-text-o` :guilabel:`Invoice` checkbox. This opens a menu to select the :guilabel:`Usage` and to define if it is an invoice to the public. Click confirm, select the payment method, and then click validate to complete the order. The PDF is then downloaded and it is possible to send the invoice via mail to the final customer alongside the receipt." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:761 -msgid "Odoo manages two different types of CFDI:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1370 +msgid "To create invoices from orders, go to the :guilabel:`Orders` menu, select the order, click :guilabel:`Load Order`, and tick the :icon:`fa-file-text-o` :guilabel:`Invoice` checkbox. This opens the same menu for the :guilabel:`Usage` and :guilabel:`CFDI to Public`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:763 -msgid "**No Federal Highways**: Is used when the *Distance to Destination* is `less than 30 KM `_." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 +msgid "Invoice Configuration for Point of Sale." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:765 -msgid "**Federal Transport**: Is used when the *Distance to Destination* exceeds 30 KM." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1377 +msgid "To sign a credit note automatically, tick the :icon:`fa-file-text-o` :guilabel:`Invoice` checkbox when processing a :ref:`refund `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:767 -msgid "Other than the standard requirements of regular invoicing (The |RFC| of the customer, the UNSPSC code, etc.), if you are using *No Federal Highways*, no external configuration is needed." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1381 +msgid "Credit notes for returned products will contain the relation type :guilabel:`03 - Devolución de mercancía sobre facturas o traslados previos`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:770 -msgid "For *Federal Transport*, several configurations have to be added to contacts, vehicle setups, and products. Those configurations are added to the XML and PDF files." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1385 +msgid "In the Mexican localization, positive and negative lines in a **POS** session cannot be mixed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:774 -msgid "Contacts and vehicles" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1387 +msgid "If a |SAT| validation error occurs customer will get a :doc:`Pro-Forma invoice <../../sales/sales/invoicing/proforma>` instead." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:776 -msgid "Like the external trade feature, the :guilabel:`Address` in both the company and the final customer must be complete. The :guilabel:`ZIP` code, :guilabel:`City`, and :guilabel:`State` must coincide with the `Official SAT Catalog for Carta Porte _`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1393 +msgid "Self-invoicing portal" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:781 -msgid "The field, :guilabel:`Locality`, is optional for both addresses." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1395 +msgid "If the final customer is not sure if they want to have their invoice generated at the exact moment of the sale, it is possible to give them the option of creating a receipt with either a QR code or a URL. To do so, follow these steps:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Delivery guide contact configuration." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1399 +msgid "Go to :menuselection:`Point of Sale --> Configuration`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:787 -msgid "The origin address used for the delivery guide is set in :menuselection:`Inventory --> Configuration --> Warehouses Management --> Warehouses`. While this is set as the company address by default, you can change it according to your correct warehouse address." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1400 +msgid "Select the :guilabel:`Point of Sale`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:791 -msgid "Another addition to this feature is the :guilabel:`Vehicle Setups` menu found in :menuselection:`Inventory --> Settings --> Mexico`. This menu lets you add all the information related to the vehicle used for the delivery order." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1401 +msgid "Scroll to the :guilabel:`Bills & Receipts` section." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:795 -msgid "All fields are mandatory to create a correct delivery guide." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1402 +msgid "Enable :guilabel:`Self-service invoicing`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:798 -msgid "The fields, :guilabel:`Vehicle Plate Number` and :guilabel:`Number Plate`, must contain between 5 to 7 characters." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1403 +msgid "Set the :guilabel:`Print` field to :guilabel:`QR code`, :guilabel:`URL`, or :guilabel:`QR code + URL`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:801 -msgid "In the :guilabel:`Intermediaries` section, you must add the operator of the vehicle. The only mandatory fields for this contact are the :guilabel:`VAT` and :guilabel:`Operator Licence`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1406 +msgid "Customers who scan this QR code or follow the URL will access to a menu where they can add their fiscal information, including the *Usage* and *Fiscal Regime* once they enter the five digit code that is also provided on the receipt." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Delivery guide vehicle configuration." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1411 +msgid ":doc:`../../sales/point_of_sale/receipts_invoices`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:810 -msgid "Similar to regular invoicing, all products must have a :guilabel:`UNSPSC category`. In addition to this, there are two extra configurations for products involved in delivery guides:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1418 +msgid "As with regular sales orders, global invoices can also be created from a POS session." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:813 -msgid "The :guilabel:`Product Type` must be set as :guilabel:`Storable Product` for stock movements to be created." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1420 +msgid "For this, make sure not to select a customer or the invoice option in the payment menu and go to :menuselection:`Point of Sale --> Orders --> Orders`. There, select all the orders to invoice, click :icon:`fa-cog` :guilabel:`Actions` and select :guilabel:`Create Global Invoice`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:815 -msgid "In the :guilabel:`Inventory` tab, the field :guilabel:`Weight` should have more than `0`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1424 +msgid "Like with sales orders, choose the correct :guilabel:`Periodicity` and press :guilabel:`Create`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:818 -msgid "Creating a delivery guide of a product with the value `0` will trigger an error. As the :guilabel:`Weight` has been already stored in the delivery order, it is needed to return the products, and create the delivery order (and delivery guide) again with the correct amounts." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1426 +msgid "This attaches an XML file to each of the selected orders. The XML files can be downloaded by going to the :guilabel:`CFDI` tab. If needed, it is possible to cancel the invoice from the same tab." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Delivery guide product configuration." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1429 +msgid "If eventually any of the orders that are part of the global invoice need to be addressed to a customer, it is still possible to send an invoice by entering a new POS session, clicking the :icon:`fa-bars` :guilabel:`(drop-down menu)`, then click :guilabel:`Orders`. Change the :guilabel:`All active orders` filter to :guilabel:`Paid`, select the order, and click the :icon:`fa-file-text-o` :guilabel:`Invoice` button." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:826 -msgid "Sales and inventory flow" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1436 +msgid "Global invoices, just as regular invoices, can only be grouped by physical address. That is determined by the address set on the POS invoice journal, so when attempting to invoice two addresses a warning will come up to warn the user of the error." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:828 -msgid "To create a delivery guide, first, you need to create and confirm a sales order from :menuselection:`Sales --> Sales Order`. This generates a :guilabel:`Delivery` smart button. Click it, and :guilabel:`Validate` the transfer." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1445 +msgid "The eCommerce adaptation of the Mexican Localization provides and extra step to create invoices that comply with the |SAT| requirements on :doc:`eCommerce <../../websites/ecommerce>` by retrieving the customer data after the **Checkout** and even allowing for the signature of **automatic invoices** after the payment is processed, as well as sending customers the files via email and granting them access to retrieve their PDF file from their own customer portal." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:832 -msgid "After the status is set to :guilabel:`Done`, you can edit the transfer, and select the :guilabel:`Transport Type` (either :guilabel:`No Federal Highways` or :guilabel:`Federal Transport`)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1454 +msgid "eCommerce flow" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:836 -msgid "If your delivery guide has the type :guilabel:`No Federal Highways`, you can save the transfer, and then click :guilabel:`Generate Delivery Guide`. The resulting XML can be found in the chatter." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1456 +msgid "During the regular checkout process, a new :guilabel:`Invoicing Info` step appears, where it is possible to request an invoice or not. If :guilabel:`No` is selected, a **CFDI to Public** is created,. If :guilabel:`Yes` is selected, the :guilabel:`RFC`, :guilabel:`Fiscal Regime`, and :guilabel:`Usage` are required in order to get all information in the sales order, where its status will change to :guilabel:`To Invoice`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:840 -msgid "Other than the :guilabel:`UNSPSC` in all products, delivery guides that use :guilabel:`No Federal Highways` do not require any special configuration to be sent to the government." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1462 +msgid "Additionally the customer can decide whether or not to request :ref:`IEPS Breakdown `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:843 -msgid "If your delivery guide has the type, :guilabel:`Federal Transport`, the tab :guilabel:`MX EDI` appears. There, enter a value in :guilabel:`Distance to Destination (KM)` bigger than `0`, and select the :guilabel:`Vehicle Setup` used for this delivery." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1466 +msgid "Make sure to add a :guilabel:`UNSPSC code` to the :ref:`shipping product `." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Delivery guide MX EDI tab configuration." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1469 +msgid "If the :guilabel:`Automatic Invoicing` is enabled in :menuselection:`Settings --> Website --> Invoicing`, the electronic document will be signed automatically." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:851 -msgid "Dangerous hazards" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1477 +msgid "The **Sales** app contains fields that make invoicing easier, while the fields themselves do not change the sales behavior, they are directly copied when creating an invoice." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:853 -msgid "Certain values in the :guilabel:`UNSPSC Category` are considered in the `official SAT catalog `_ as *dangerous hazards*. These categories need additional considerations when creating a delivery guide with :guilabel:`Federal Transport`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1480 +msgid "The copied fields are:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:858 -msgid "First, select your product from :menuselection:`Inventory --> Products --> Products`. Then, in the :guilabel:`Accounting` tab, the fields :guilabel:`Hazardous Material Designation Code (MX)` and :guilabel:`Hazardous Packaging (MX)` must be filled with the correct code from the |SAT| catalog." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1482 +msgid "Payment Way" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Delivery guide hazardous material product required fields." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1487 +msgid "Additionally, it is possible to get a preview of the invoice for validation purposes with the customer by installing the :doc:`pro-forma module <../../sales/sales/invoicing/proforma>`. This module adds the mentioned fields to the sale order as well as:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:865 -msgid "In :menuselection:`Inventory --> Settings --> Mexico --> Vehicle Setup`, the data from the :guilabel:`Environment Insurer` and :guilabel:`Environment Insurance Policy` has to be filed, as well. After this, continue with the regular process to create a delivery guide." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1491 +msgid "Product code" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Delivery Guide environment insurer required fields." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1492 +msgid "Unit code" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:873 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1493 +msgid "Fiscal regime" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1498 +msgid "Subscriptions" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1500 +msgid "While handling subscriptions, all the sales fields are used to create the recurrent invoices. These are automatically signed and sent via email with the PDF and XML attached with no additional manual actions required." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1505 +msgid "All invoices generated by the subscription app will always be automatically signed with no exceptions." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1511 +msgid "Inventory" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1516 msgid "Customs numbers" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:875 -msgid "A *customs declaration* (Pedimento Aduanero) is a fiscal document that certifies that all contributions to the fiscal entity (the |SAT|) has been paid for, including the import/export of goods." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1518 +msgid "A *customs declaration* (Pedimento Aduanero) is a fiscal document that certifies that all contributions to the fiscal entity (the |SAT|) have been paid for, including the import/export of goods." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:879 -msgid "According to the `Annex 20 `_ of CFDI 4.0, in documents where the invoiced goods come from a first-hand import operation, the field, :guilabel:`Customs Number`, needs to be added to all lines of products involved with the operation." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1522 +msgid "According to the `Annex 20 `_ of CFDI 4.0, in documents where the invoiced goods come from a first-hand import operation, the :guilabel:`Customs Number` field, needs to be added to all lines of products involved with the operation." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:883 -msgid "To do so, the module :guilabel:`l10n_mx_edi_landing` must be installed, in addition to the :doc:`Inventory <../../inventory_and_mrp/inventory>`, :doc:`Purchase <../../inventory_and_mrp/purchase>` and :doc:`Sales <../../sales/sales>` apps." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1528 +msgid "To do so, the :guilabel:`Odoo Mexico Localization for Stock/Landing` `l10n_mx_edi_landing` module must be installed, in addition to the :doc:`Inventory <../../inventory_and_mrp/inventory>`, :doc:`Purchase <../../inventory_and_mrp/purchase>`, and :doc:`Sales <../../sales/sales>` apps." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:888 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1533 msgid "Do not confuse this feature with external trade. The customs numbers are directly related to importing goods, while the external trade complement is related to exporting. Consult your accountant first if this feature is needed before doing any modifications." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:895 -msgid "In order to track the correct customs number for a specific invoice, Odoo uses :doc:`landed costs <../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs>`. Go to :menuselection:`Inventory --> Configuration --> Settings --> Valuation`. Make sure that :guilabel:`Landed Costs` is activated." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1540 +msgid "In order to track the correct customs number for a specific invoice, Odoo uses :doc:`landed costs <../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs>`. Go to :menuselection:`Inventory --> Configuration --> Settings`, and in the :guilabel:`Valuation` section, make sure that :guilabel:`Landed Costs` is activated." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:900 -msgid "Begin by creating a *service*-type product called, `Pedimento`. In the :guilabel:`Purchase` tab, activate :guilabel:`Is a Landed Cost`, and select a :guilabel:`Default Split Method`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1545 +msgid "Begin by creating a **service-type** product called, `Pedimento`. In the :guilabel:`Purchase` tab, activate :guilabel:`Is a Landed Cost`, and select a :guilabel:`Default Split Method`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:903 -msgid "Then, configure the *storable products* that hold the customs numbers. To do so, create the storable products, and make sure the :guilabel:`Product Category` has the following configuration." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1548 +msgid "Then, configure the **goods-type** products that hold the customs numbers. To do so, create the products, and make sure the :guilabel:`Product Category` has the following configuration:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:906 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1551 msgid ":guilabel:`Costing Method`: Either :guilabel:`FIFO` or :guilabel:`AVCO`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:907 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1552 msgid ":guilabel:`Inventory Valuation`: :guilabel:`Automated`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:908 -msgid ":guilabel:`Stock Valuation Account`: :guilabel:`115.01.01 Inventario`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1553 +msgid ":guilabel:`Stock Valuation Account`: :guilabel:`115.01.01 Inventory`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:909 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1554 msgid ":guilabel:`Stock Journal`: :guilabel:`Inventory Valuation`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:910 -msgid ":guilabel:`Stock Input Account`: :guilabel:`115.05.01 Mercancías en tránsito`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1555 +msgid ":guilabel:`Stock Input Account`: :guilabel:`115.05.01 Goods in transit`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1556 +msgid ":guilabel:`Stock Output Account`: :guilabel:`115.05.01 Goods in transit`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:911 -msgid ":guilabel:`Stock Output Account`: :guilabel:`115.05.01 Mercancías en tránsito`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1559 +msgid "Setting the :guilabel:`Inventory Valuation` to :guilabel:`Automated` requires first enabling the feature. Go to :menuselection:`Accounting --> Configuration --> Settings`, and in the :guilabel:`Stock Valuation` section, enable :guilabel:`Automatic Accounting`." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 @@ -31136,228 +32845,260 @@ msgstr "" msgid "Storable product category configuration." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:920 +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1570 msgid "Purchase and sales flow" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:922 -msgid "After you configure your product, follow the standard :doc:`purchase flow <../../inventory_and_mrp/purchase>`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1572 +msgid "After configuring the product, follow the standard :doc:`purchase flow <../../inventory_and_mrp/purchase>`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:925 -msgid "Create a purchase order from :menuselection:`Purchase --> Orders --> Purchase Order`. Then, confirm the order to display a :guilabel:`Receipt` smart button. Click on the :guilabel:`Receipt` smart button to :guilabel:`Validate` the receipt." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1575 +msgid "Create a purchase order from :menuselection:`Purchase --> Orders --> Purchase Order`. Then, confirm the order to display a :guilabel:`Receipt` smart button. Click on the :guilabel:`Receipt` smart button and :guilabel:`Validate` the receipt." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:929 -msgid "Go to :menuselection:`Inventory --> Operations --> Landed Costs`, and create a new record. Add the transfer that you just created, and both: the product `Pedimento` and :guilabel:`Customs number`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1579 +msgid "Go to :menuselection:`Inventory --> Operations --> Landed Costs`, and create a new record. In the :guilabel:`Transfer`, add the receipt that was just validated, add the :guilabel:`Customs number` and in the :guilabel:`Additional Costs` tab, add the :guilabel:`Pedimento` product." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:932 -msgid "Optionally, you can add a cost amount. After this, validate the landed cost. Once :guilabel:`Posted`, all products related to that receipt have the customs number assigned." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1583 +msgid "Optionally, it is possible to add a cost amount. After this, :guilabel:`Validate` the landed cost. Once :guilabel:`Posted`, all products related to that receipt have the customs number assigned." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:936 -msgid "You can only add the *Pedimentos* number **once**, so be careful when associating the correct number with the transfer(s)." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1587 +msgid "The :guilabel:`Pedimento Number` field is not editable once it is set, so be careful when associating the correct number with the transfer(s)." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 msgid "Customs number on a landed costs Inventory record." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:942 -msgid "Now, create a sales order, and confirm it. This should trigger a :guilabel:`Delivery` smart button. Validate it." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1593 +msgid "Next, create a sales order and confirm it. Click on the :guilabel:`Delivery` smart button that appears, and :guilabel:`Validate` the delivery order." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:945 -msgid "Finally, create an invoice from the sales order, and confirm it. The invoice line related to your product has a customs number in it. This number should match the customs number added in the *Landed Costs* record you created earlier." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1596 +msgid "Finally, :ref:`create an invoice from the sales order `, and confirm it. The invoice line related to the product has a customs number on it. This number matches the customs number added in the landed cost record created earlier." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 msgid "Customs number on confirmed sales order product." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:953 -msgid "Electronic accounting" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1608 +msgid "A `Carta Porte `_ is a bill of lading: a document that states the type, quantity, and destination of goods being carried." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:955 -msgid "For Mexico, `Electronic Accounting `_ refers to the obligation to keep accounting records and entries through electronic means, and to enter accounting information on a monthly basis, through the |SAT| website." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1611 +msgid "On July 17th, 2024, version 3.1 of this |CFDI| was implemented for all transportation providers, intermediaries, and owners of goods. Odoo is able to generate a document type \"T\" (Traslado), which, unlike other documents, is created in a delivery order instead of an invoice or payment." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:960 -msgid "It consists of three main XML files:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1615 +msgid "Odoo can create XML and PDF files with (or without) ground transport, and can process materials that are treated as *Dangerous Hazards*." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:962 -msgid "The updated list of the chart of accounts that you are currently using." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1618 +msgid "In order to print the PDF, the delivery order must be signed by the government and then it can be printed using the :guilabel:`Print Carta Porte` button on the delivery order." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:963 -msgid "A monthly trial balance, plus a closing entry report, also known as: *Trial Balance Month 13*." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1621 +msgid "The PDF file contains a QR code to verify the CCP code for the authorities." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:964 -msgid "Either optional, or for a compulsory audit, an export of the journal entries in your general ledger." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1623 +msgid "In order to transport goods between warehouses, the logistic route must contain a **Delivery** type of operation, see :doc:`Inter-warehouse replenishment <../../inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses>`" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:967 -msgid "The resulting XML files follow the requirements of the `Anexo Técnico de Contabilidad Electrónica 1.3 `_." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1628 +msgid "In order to use this feature, the :guilabel:`Mexico - Electronic Delivery Guide` `l10n_mx_edi_stock` module must be installed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:970 -msgid "In addition to this, you can generate the `DIOT `_: A report of vendor's journal entries that involve IVA taxes that can be exported in a :file:`.txt` file." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1631 +msgid "Additionally, it is necessary to have the :doc:`Inventory <../../inventory_and_mrp/inventory>` and :doc:`Sales <../../sales/sales>` apps installed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:975 -msgid "In order to use these reports, the modules :guilabel:`l10n_mx_reports`, :guilabel:`l10n_mx_reports_closing`, :guilabel:`l10n_mx_xml_polizas` and :guilabel:`l10n_mx_xml_polizas_edi` have to be installed, as well as the :doc:`Accounting <../accounting/get_started>`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1635 +msgid "Odoo does not support Carta Porte type document type \"I\" (Ingreso), air, train or marine transport." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:981 -msgid "The specific characteristics and obligations of the reports that you send might change according to your fiscal regime. Always contact your accountant before sending any documents to the government." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1638 +msgid "Consult your accountant first if this feature is needed before doing any modifications." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:990 -msgid "The :doc:`chart of accounts <../accounting/get_started/chart_of_accounts>` in México follows a specific pattern based on |SAT|'s' `Código agrupador de cuentas `_." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1643 +msgid "Odoo manages two different types of CFDI type \"T\". Both can be created from either :doc:`incoming shipments or delivery orders <../../inventory_and_mrp/inventory/shipping_receiving/daily_operations>`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:994 -msgid "You can create any account, as long as it respects |SAT|'s encoding group: the pattern is `NNN.YY.ZZ` or `NNN.YY.ZZZ`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1647 +msgid ":guilabel:`No Federal Highways` is used when the :guilabel:`Distance to Destination` is `less than 30 km `_." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:998 -msgid "Some examples are `102.01.99` or `401.01.001`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1650 +msgid ":guilabel:`Federal Transport` is used when the :guilabel:`Distance to Destination` exceeds 30 km." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1000 -msgid "When a new account is created in :menuselection:`Accounting --> Configuration --> Chart of Accounts`, with the |SAT| encoding group pattern, the correct grouping code appears in :guilabel:`Tags`, and your account appears in the *COA* report." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1652 +msgid "Other than the standard requirements of regular invoicing (the |RFC| of the customer, the UNSPSC code, etc.), if you are using *No Federal Highways*, no external configuration is needed." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1004 -msgid "Once you create all your accounts, make sure the correct :guilabel:`Tags` are added." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1655 +msgid "For *Federal Transport*, several configurations have to be added to contacts, vehicle setups, and products. Those configurations are then included in the XML and PDF files." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1007 -msgid "You cannot use any pattern that ends a section with a 0 (such as `100.01.01`, `301.00.003` or `604.77.00`). This triggers errors in the report." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1659 +msgid "Contacts and vehicles" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1010 -msgid "Once everything is set up, go to :menuselection:`Accounting --> Reporting --> Trial Balance`, click the :icon:`fa-caret-down` (:guilabel:`down arrow`) next to the :guilabel:`PDF` button, and select :guilabel:`COA SAT (XML)`. This generates an XML file with your accounts, which you can upload directly to the |SAT| website." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1661 +msgid "Like the external trade feature, the :guilabel:`Address` in both the company and the final customer must be complete. The :guilabel:`ZIP` code, :guilabel:`City`, and :guilabel:`State` must coincide with the `Official SAT Catalog for Carta Porte `_." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1018 -msgid "The trial balance reports the initial balance, credit, and total balance of your accounts, provided that you added their correct :ref:`encoding group `." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1667 +msgid "The field, :guilabel:`Locality`, is optional for both addresses." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1021 -msgid "To generate this report in an XML format, go to :menuselection:`Accounting --> Reporting --> Trial Balance`. Select the month you want to download in the calendar, then click the :icon:`fa-caret-down` (:guilabel:`down arrow`) next to the :guilabel:`PDF` button, and select :guilabel:`SAT (XML)`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1670 +msgid "The origin address used for the delivery guide is set in :menuselection:`Inventory --> Configuration --> Warehouses`. While this is set as the company address by default, you can change it to your correct warehouse address." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1674 +msgid "Another addition to this feature is the :guilabel:`Vehicle Setups` menu found in :menuselection:`Inventory --> Settings --> Vehicle Setups`. This menu lets you add all the information related to the vehicle used for the delivery order." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1678 +msgid "All fields are mandatory to create a correct delivery guide." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1681 +msgid "The fields, :guilabel:`Vehicle Plate Number` and :guilabel:`Number Plate`, must contain between 5 and 7 characters." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1684 +msgid "In the :guilabel:`Intermediaries` section, add the operator of the vehicle. The only mandatory fields for this contact are the :guilabel:`VAT` and :guilabel:`Operator Licence`." msgstr "" #: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Trial balance report." +msgid "Delivery guide vehicle configuration." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1030 -msgid "Odoo does not generate the *Balanza de Comprobación Complementaria*." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1693 +msgid "Similar to regular invoicing, all products must have a :guilabel:`UNSPSC category`. In addition to this, there are two extra configurations for products involved in delivery guides:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1033 -msgid "Month 13 trial balance" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1696 +msgid "The :guilabel:`Product Type` must be set as :guilabel:`Storable Product` for stock movements to be created." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1035 -msgid "The *Month 13* report is a closing balance sheet that shows any adjustments or movements made in the accounting to close the year." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1698 +msgid "In the :guilabel:`Inventory` tab, the field :guilabel:`Weight` must be more than `0`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1038 -msgid "To generate it, proceed as follows:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1701 +msgid "Creating a delivery guide of a product with the value `0` will trigger an error. As the :guilabel:`Weight` has been already stored in the delivery order, it is needed to return the products and create the delivery order (and delivery guide) again with the correct amounts." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1040 -msgid "Go to :menuselection:`Accounting --> Accounting --> Journal Entries` and create a new entry for all the amounts to be changed, balancing the debit and/or credit of each one." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1706 +msgid "Sales and inventory flow" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1042 -msgid "In the :guilabel:`Other Info` tab, enable the :guilabel:`Month 13 Closing` option." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1708 +msgid "To create a delivery guide, first, first create and confirm a sales order from :menuselection:`Sales --> Sales Order`. Click the :guilabel:`Delivery` smart button that is generated, and :guilabel:`Validate` the transfer." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1043 -msgid "Go to :menuselection:`Accounting --> Reporting --> Trial Balance`, click the calendar, and select :guilabel:`Month 13`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1712 +msgid "After the status is set to :guilabel:`Done`, you can edit the transfer, and select the :guilabel:`Transport Type` in the :guilabel:`Additional Info` tab." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1045 -msgid "Click the :icon:`fa-caret-down` (:guilabel:`down arrow`) next to the :guilabel:`PDF` button, and select :guilabel:`SAT (XML)`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1715 +msgid "If using the :guilabel:`No Federal Highways` :guilabel:`Transport Type`, save the transfer, and then click :guilabel:`Generate Delivery Guide`. The resulting XML can be found in the chatter." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "Trial Balance Month 13 report." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1719 +msgid "Other than the :guilabel:`UNSPSC` on all products, delivery guides that use :guilabel:`No Federal Highways` do not require any special configuration to be sent to the government." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1054 -msgid "By law, all transactions in Mexico must be recorded digitally. Since Odoo automatically creates all the underlying journal entries of your invoicing and payments, you can export your journal entries to comply with |SAT|'s audits and/or tax refunds." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1722 +msgid "If using the :guilabel:`Federal Transport` :guilabel:`Transport Type`, the tab :guilabel:`MX EDI` appears. There, enter a value in :guilabel:`Distance to Destination (KM)` greater than `0`, and select the :guilabel:`Vehicle Setup` used for this delivery." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1059 -msgid "You can filter by period, or by journal, according to your current needs." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1726 +msgid "Finally, add a :guilabel:`Gross Vehicle Weight` and click :guilabel:`Generate Delivery Guide`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1061 -msgid "To create the XML, go to :menuselection:`Accounting --> Reporting --> General Ledger`, click the :icon:`fa-caret-down` (:guilabel:`down arrow`) next to the :guilabel:`PDF` button, and select :guilabel:`XML (Polizas)`. In the :guilabel:`XML Polizas Export Options` window, choose between four different :guilabel:`Export` types:" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1729 +msgid "Delivery Guides can also be created from :guilabel:`Receipts`, either from the Inventory app or by the standard flow of the Purchase app." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1066 -msgid ":guilabel:`Tax audit`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1733 +msgid "Dangerous hazards" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1067 -msgid ":guilabel:`Audit certification`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1735 +msgid "Certain values in the :guilabel:`UNSPSC Category` are considered in the `official SAT catalog `_ as *dangerous hazards*. These categories need additional considerations when creating a delivery guide with :guilabel:`Federal Transport`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1068 -msgid ":guilabel:`Return of goods`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1740 +msgid "First, select the product from :menuselection:`Inventory --> Products --> Products`. Then, in the :guilabel:`Accounting` tab, fill the :guilabel:`Hazardous Material Designation Code` and :guilabel:`Hazardous Packaging` fields with the correct code from the |SAT| catalog." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1069 -msgid ":guilabel:`Compensation`" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 +msgid "Delivery guide hazardous material product required fields." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1071 -msgid "For :guilabel:`Tax audit` or :guilabel:`Audit certification`, you need to write the :guilabel:`Order Number` provided by the |SAT|. For :guilabel:`Return of goods`, or :guilabel:`Compensation`, you need to write your :guilabel:`Process Number`, also provided by the |SAT|." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1748 +msgid "There exists the possibility that a :guilabel:`UNSPSC Category` may or may not be a dangerous hazard (for example *01010101*). If it is not dangerous, enter `0` in the :guilabel:`Hazardous Material Designation Code` field." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1077 -msgid "If you want to see this report without sending it, use `ABC6987654/99` for :guilabel:`Order Number` and `AB123451234512` for :guilabel:`Process Number`." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1752 +msgid "In :menuselection:`Inventory --> Settings --> Vehicle Setup`, complete the :guilabel:`Environment Insurer` and :guilabel:`Environment Insurance Policy` well. After this, continue with the regular process to create a delivery guide." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1081 -msgid "DIOT report" +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1757 +msgid "Imports and Exports" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1083 -msgid "The DIOT (Declaración Informativa de Operaciones con Terceros / *Informative Declaration of Operations with Third Parties*) is an additional obligation with the |SAT|, where the current status of creditable and non-creditable payments, withholdings, and refunds of VAT from your vendor bills, are provided to the |SAT|." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1759 +msgid "If your Carta Porte is for international operations (for exports), some additional fields need to be taken into account." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1088 -msgid "Unlike other reports, the |DIOT| is uploaded to a software provided by the |SAT| that contains the A-29 form. In Odoo, you can download the records of your transactions as a :file:`.txt` file that can be uploaded to the form, avoiding direct capture of this data." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1762 +msgid "First, make sure that all relevant :guilabel:`Products` have the following configuration:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1092 -msgid "The transactions file contains the total amount of your payments registered in vendor bills, broken down into the corresponding types of IVA. The :guilabel:`VAT` and :guilabel:`Country` is mandatory for all vendors." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1764 +msgid ":guilabel:`UNSPSC Category` cannot be :guilabel:`01010101 Does not exist in the catalog`." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1096 -msgid "To generate the |DIOT| report, go to :menuselection:`Accounting --> Reporting --> Tax Reports`. Select the month you want to download in the calendar, then click the :icon:`fa-caret-down` (:guilabel:`down arrow`) next to the :guilabel:`PDF` button to select :guilabel:`Report: DIOT (MX)` and download the :file:`.txt` file." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1765 +msgid ":guilabel:`Tariff Fraction` and :guilabel:`UMT Aduana` must be set, similar to the :ref:`external trade ` flow." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:-1 -msgid "A Vendor Bill that is In Payment." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1767 +msgid ":guilabel:`Material Type` must be set." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1105 -msgid "You need to fill the :guilabel:`L10N Mx Type of Operation` field in the :guilabel:`Accounting` tab of each one of your vendors to prevent validation errors. Make sure that your foreign customers have their country set up for :guilabel:`L10N Mx Nationality` to appear automatically." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1769 +msgid "Then, when creating a :guilabel:`Delivery Guide` from a delivery or receipt, fill the following fields:" msgstr "" -#: ../../content/applications/finance/fiscal_localizations/mexico.rst:0 -msgid "DIOT information on a vendor contact." +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1772 +msgid ":guilabel:`Customs Regimes`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1773 +msgid ":guilabel:`Customs Document Type`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1774 +msgid ":guilabel:`Customs Document Identification`" +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1776 +msgid "Then, when creating a :guilabel:`Delivery Guide` for a receipt where the :guilabel:`Customs Document Type` is :guilabel:`Pedimento`, two new fields appear: :guilabel:`Pedimento Number` and :guilabel:`Importer`." +msgstr "" + +#: ../../content/applications/finance/fiscal_localizations/mexico.rst:1781 +msgid "The field :guilabel:`Pedimento Number` should follow the pattern `xx xx xxxx xxxxxxx`. For example, `15 48 3009 0001235` with **Two** spaces between text." msgstr "" #: ../../content/applications/finance/fiscal_localizations/netherlands.rst:3 @@ -31571,7 +33312,7 @@ msgid "Remittance Advice." msgstr "" #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:188 -msgid "Odoo allows :ref:`electronic invoicing ` settings to be configured per contact." +msgid "Odoo allows :ref:`electronic invoicing ` settings to be configured per contact." msgstr "" #: ../../content/applications/finance/fiscal_localizations/new_zealand.rst:-1 @@ -32276,11 +34017,6 @@ msgstr "" msgid "Partner identification type." msgstr "" -#: ../../content/applications/finance/fiscal_localizations/peru.rst:387 -#: ../../content/applications/finance/fiscal_localizations/romania.rst:113 -msgid "Product" -msgstr "" - #: ../../content/applications/finance/fiscal_localizations/peru.rst:389 msgid "Additional to the basic information in your products, for the Peruvian localization, the UNSPC Code on the product is a required value to be configured." msgstr "" @@ -32321,6 +34057,10 @@ msgstr "" msgid "Tax affectation reason in invoice line." msgstr "" +#: ../../content/applications/finance/fiscal_localizations/peru.rst:431 +msgid "Invoice validation" +msgstr "" + #: ../../content/applications/finance/fiscal_localizations/peru.rst:433 msgid "Once you check all the information in your invoice is correct, you can proceed to validate it. This action registers the account move and triggers the Electronic invoice workflow to send it to the OSE and the SUNAT. The following message is displayed at the top of the invoice:" msgstr "" @@ -36560,6 +38300,10 @@ msgstr "" msgid ":guilabel:`Use Documents?`: Activate this option if this journal will use documents from the list of document types in Odoo." msgstr "" +#: ../../content/applications/finance/fiscal_localizations/uruguay.rst:288 +msgid "Workflows" +msgstr "" + #: ../../content/applications/finance/fiscal_localizations/uruguay.rst:290 msgid "Once you have configured your database, you can create your documents." msgstr "" diff --git a/locale/sources/general.pot b/locale/sources/general.pot index 76d0760a0a..c2060f8db7 100644 --- a/locale/sources/general.pot +++ b/locale/sources/general.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -137,7 +137,7 @@ msgid ":doc:`Multi-company `" msgstr "" #: ../../content/applications/general/companies.rst:17 -#: ../../content/applications/general/companies.rst:95 +#: ../../content/applications/general/companies.rst:97 #: ../../content/applications/general/companies/multi_company.rst:33 #: ../../content/applications/general/integrations/barcodelookup.rst:15 #: ../../content/applications/general/integrations/mail_plugins/outlook.rst:10 @@ -229,7 +229,6 @@ msgstr "" #: ../../content/applications/general/companies.rst:57 #: ../../content/applications/general/users.rst:5 -#: ../../content/applications/general/users/access_rights.rst:32 msgid "Users" msgstr "" @@ -249,112 +248,112 @@ msgstr "" msgid "Configure the :ref:`default layout ` for all company documents." msgstr "" -#: ../../content/applications/general/companies.rst:75 +#: ../../content/applications/general/companies.rst:77 msgid "Branches" msgstr "" -#: ../../content/applications/general/companies.rst:77 +#: ../../content/applications/general/companies.rst:79 msgid "Branches represent subdivisions within a company, such as regional offices or departments, that operate under a common parent company. They support hierarchical company structures through :ref:`configurable settings `, enabling :ref:`comprehensive or branch-specific views ` with flexible :ref:`access control `, :ref:`entity-specific or shared record visibility `, and customizable :ref:`reporting `." msgstr "" -#: ../../content/applications/general/companies.rst:86 +#: ../../content/applications/general/companies.rst:88 msgid "Independent subsidiaries should be created as additional companies, not branches." msgstr "" -#: ../../content/applications/general/companies.rst:89 +#: ../../content/applications/general/companies.rst:91 msgid ":doc:`Multi-company `" msgstr "" -#: ../../content/applications/general/companies.rst:90 +#: ../../content/applications/general/companies.rst:92 msgid ":ref:`Branch accounting `" msgstr "" -#: ../../content/applications/general/companies.rst:97 +#: ../../content/applications/general/companies.rst:99 msgid "Each branch is linked to its parent company but may contain different or specific information, such as its address or logo. A branch can be a parent company of branches at a lower level to create a multi-level architecture." msgstr "" -#: ../../content/applications/general/companies.rst:102 +#: ../../content/applications/general/companies.rst:104 msgid "Clarify the company's structure and hierarchy before creating companies and branches in Odoo. A company defined as a parent cannot be converted into a branch later, as doing so may result in :doc:`access rights ` issues." msgstr "" -#: ../../content/applications/general/companies.rst:105 +#: ../../content/applications/general/companies.rst:107 msgid "Always create the parent company first." msgstr "" -#: ../../content/applications/general/companies.rst:107 +#: ../../content/applications/general/companies.rst:109 msgid "To create a branch, follow these steps in the Settings app:" msgstr "" -#: ../../content/applications/general/companies.rst:109 +#: ../../content/applications/general/companies.rst:111 msgid "Navigate to the :guilabel:`Companies` section, click :icon:`oi-arrow-right` :guilabel:`Manage Companies`, or go to :menuselection:`Settings --> Users & Companies --> Companies`." msgstr "" -#: ../../content/applications/general/companies.rst:111 +#: ../../content/applications/general/companies.rst:113 msgid "In the :guilabel:`Companies` list view, open the desired parent company form." msgstr "" -#: ../../content/applications/general/companies.rst:112 +#: ../../content/applications/general/companies.rst:114 msgid "In the :guilabel:`Branches` tab, click :guilabel:`Add a line` and fill in the :ref:`General Information ` fields in the :guilabel:`Create Branches` window." msgstr "" -#: ../../content/applications/general/companies.rst:115 +#: ../../content/applications/general/companies.rst:117 msgid "To create branches from a branch and create a multi-level architecture, click :guilabel:`Add a line` in the new branch's :guilabel:`Branches` tab." msgstr "" -#: ../../content/applications/general/companies.rst:119 +#: ../../content/applications/general/companies.rst:121 msgid "Activate the :ref:`developer mode ` to set :doc:`social media accounts <../marketing/social_marketing>` and company-specific :doc:`email ` system parameters." msgstr "" -#: ../../content/applications/general/companies.rst:124 +#: ../../content/applications/general/companies.rst:126 msgid "Adding a branch to a company enables :doc:`multi-company ` functions." msgstr "" -#: ../../content/applications/general/companies.rst:129 +#: ../../content/applications/general/companies.rst:131 msgid "Comprehensive or branch-specific view" msgstr "" -#: ../../content/applications/general/companies.rst:132 +#: ../../content/applications/general/companies.rst:134 msgid "Selecting the parent company automatically links all its branches, while selecting a branch connects to that branch only. To switch between them, use the :ref:`company selector `." msgstr "" -#: ../../content/applications/general/companies.rst:136 +#: ../../content/applications/general/companies.rst:138 msgid "All configurations, except for :ref:`accounting ` settings inherited from the parent company, must be set individually per branch. This allows for branch-specific setups such as :doc:`loyalty programs <../sales/point_of_sale/pricing/loyalty>`, :doc:`price lists <../sales/point_of_sale/pricing/pricelists>`, or :doc:`inventory locations <../inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations>`." msgstr "" -#: ../../content/applications/general/companies.rst:145 +#: ../../content/applications/general/companies.rst:147 #: ../../content/applications/general/companies/multi_company.rst:66 msgid "User access" msgstr "" -#: ../../content/applications/general/companies.rst:147 +#: ../../content/applications/general/companies.rst:149 msgid "Like in a multi-company environment, parent companies and branches support flexible :ref:`user access ` control and :doc:`access rights `. User access can be granted or restricted at the parent company level, the branch level, or both. For example, a user can be limited to a specific branch, while an administrator with access to the parent company can manage all associated branches." msgstr "" -#: ../../content/applications/general/companies.rst:156 +#: ../../content/applications/general/companies.rst:158 msgid "Shared records" msgstr "" -#: ../../content/applications/general/companies.rst:158 +#: ../../content/applications/general/companies.rst:160 msgid "In Odoo, some records are, by default, either specific to a single entity or shared across the parent company and all its branches." msgstr "" -#: ../../content/applications/general/companies.rst:161 +#: ../../content/applications/general/companies.rst:163 msgid "When creating a quotation, invoice, or vendor bill, the active company or branch is automatically selected and displayed in the :guilabel:`Company` field. If the active company is the parent company or one of its branches, then records specifically linked to that entity are accessible only within that entity and will only be visible when the company or branch is selected using the :ref:`company selector `." msgstr "" -#: ../../content/applications/general/companies.rst:167 +#: ../../content/applications/general/companies.rst:169 msgid "In contrast, some records, such as :ref:`products or contacts `, are not tied to any particular entity and are shared by default across the parent company and all its branches. However, they can be restricted to a single entity by setting the appropriate value in the :guilabel:`Company` field, if needed." msgstr "" -#: ../../content/applications/general/companies.rst:173 +#: ../../content/applications/general/companies.rst:175 msgid ":ref:`Branches accounting `" msgstr "" -#: ../../content/applications/general/companies.rst:178 +#: ../../content/applications/general/companies.rst:180 msgid "Reporting" msgstr "" -#: ../../content/applications/general/companies.rst:180 +#: ../../content/applications/general/companies.rst:182 msgid "All :doc:`reports <../finance/accounting/reporting>` can be generated for the parent company alone or with its branches, based on :ref:`user access `." msgstr "" @@ -5012,87 +5011,91 @@ msgstr "" msgid "Paste the token into the :guilabel:`Server Token` field and click :guilabel:`Connect`." msgstr "" -#: ../../content/applications/general/iot/connect.rst:85 +#: ../../content/applications/general/iot/connect.rst:83 +msgid "Once the IoT box is connected to a database, its green LED remains constantly lit." +msgstr "" + +#: ../../content/applications/general/iot/connect.rst:88 msgid "IoT system form" msgstr "" -#: ../../content/applications/general/iot/connect.rst:87 +#: ../../content/applications/general/iot/connect.rst:90 msgid "Once the IoT system is connected to the Odoo database, it is displayed as a card in the IoT app. Click the IP address on the card to access the :ref:`IoT box's ` or :ref:`Windows virtual IoT's ` homepage. Click the card to access the list of :doc:`devices ` connected to the IoT system." msgstr "" -#: ../../content/applications/general/iot/connect.rst:93 +#: ../../content/applications/general/iot/connect.rst:96 msgid ":ref:`Enable the developer mode ` to access the IoT system's :guilabel:`Technical Information`, such as its :guilabel:`Identifier`, :guilabel:`Domain address`, and :guilabel:`Image version`." msgstr "" -#: ../../content/applications/general/iot/connect.rst:98 +#: ../../content/applications/general/iot/connect.rst:101 msgid "By default, drivers are automatically :ref:`updated ` every time the IoT system is restarted. To disable automatic updates, uncheck the :guilabel:`Automatic drivers update` option." msgstr "" -#: ../../content/applications/general/iot/connect.rst:105 +#: ../../content/applications/general/iot/connect.rst:108 msgid "Troubleshooting" msgstr "" -#: ../../content/applications/general/iot/connect.rst:108 +#: ../../content/applications/general/iot/connect.rst:111 msgid "The pairing code does not appear or does not work" msgstr "" -#: ../../content/applications/general/iot/connect.rst:110 +#: ../../content/applications/general/iot/connect.rst:113 msgid "The :ref:`pairing code ` might not be displayed or printed under the following circumstances:" msgstr "" -#: ../../content/applications/general/iot/connect.rst:113 +#: ../../content/applications/general/iot/connect.rst:116 msgid "The IoT system is not connected to the Internet." msgstr "" -#: ../../content/applications/general/iot/connect.rst:114 +#: ../../content/applications/general/iot/connect.rst:117 msgid "The IoT system is already connected to an Odoo database." msgstr "" -#: ../../content/applications/general/iot/connect.rst:115 +#: ../../content/applications/general/iot/connect.rst:118 msgid "The :ref:`pairing code ` display time has expired. Reboot the IoT box or :ref:`restart the Windows virtual IoT service ` to display the pairing code again." msgstr "" -#: ../../content/applications/general/iot/connect.rst:118 +#: ../../content/applications/general/iot/connect.rst:121 msgid "The IoT system's image version is too old and needs to be :ref:`updated `." msgstr "" -#: ../../content/applications/general/iot/connect.rst:122 +#: ../../content/applications/general/iot/connect.rst:125 msgid "The IoT system is connected but does not appear in the database" msgstr "" -#: ../../content/applications/general/iot/connect.rst:124 +#: ../../content/applications/general/iot/connect.rst:127 msgid "The IoT system might take a few minutes to restart when it connects to a database. If it still does not appear after a few minutes:" msgstr "" -#: ../../content/applications/general/iot/connect.rst:127 +#: ../../content/applications/general/iot/connect.rst:130 msgid "Verify that the IoT system can reach the database and the server does not use a multi-database environment." msgstr "" -#: ../../content/applications/general/iot/connect.rst:129 +#: ../../content/applications/general/iot/connect.rst:132 msgid "Reboot the IoT box or :ref:`restart the Windows virtual IoT service `." msgstr "" -#: ../../content/applications/general/iot/connect.rst:132 +#: ../../content/applications/general/iot/connect.rst:135 msgid "The IoT box is connected to the Odoo database but cannot be reached" msgstr "" -#: ../../content/applications/general/iot/connect.rst:134 +#: ../../content/applications/general/iot/connect.rst:137 msgid "Verify that the IoT system and the computer running the Odoo database are connected to the same network." msgstr "" -#: ../../content/applications/general/iot/connect.rst:138 +#: ../../content/applications/general/iot/connect.rst:141 msgid "The Windows virtual IoT's homepage cannot be accessed from another device" msgstr "" -#: ../../content/applications/general/iot/connect.rst:140 +#: ../../content/applications/general/iot/connect.rst:143 msgid "Check the :ref:`iot/windows-iot/firewall`." msgstr "" -#: ../../content/applications/general/iot/connect.rst:143 +#: ../../content/applications/general/iot/connect.rst:146 msgid "The IoT system is disconnected from the database after an Odoo upgrade" msgstr "" -#: ../../content/applications/general/iot/connect.rst:145 +#: ../../content/applications/general/iot/connect.rst:148 msgid ":ref:`Update the IoT system's image ` by flashing the IoT box's card or :ref:`uninstalling the Windows virtual IoT program ` and :ref:`reinstalling ` the latest package for Windows **matching your database's version**." msgstr "" @@ -5191,7 +5194,7 @@ msgid "On the :guilabel:`Work Order` screen, a status graphic indicates whether msgstr "" #: ../../content/applications/general/iot/devices/camera.rst:82 -#: ../../content/applications/general/iot/devices/footswitch.rst:52 +#: ../../content/applications/general/iot/devices/footswitch.rst:50 #: ../../content/applications/general/iot/devices/measurement_tool.rst:92 msgid ":ref:`workcenter_iot`" msgstr "" @@ -5220,24 +5223,24 @@ msgstr "" msgid "Footswitch recognized on the IoT box." msgstr "" -#: ../../content/applications/general/iot/devices/footswitch.rst:27 +#: ../../content/applications/general/iot/devices/footswitch.rst:26 msgid "Link a footswitch to a work center in the Odoo Manufacturing app" msgstr "" -#: ../../content/applications/general/iot/devices/footswitch.rst:29 -msgid "To link a footswitch to an action, it first needs to be configured on a work center. Navigate to :menuselection:`Manufacturing app --> Configuration --> Work Centers`. From here, go to the desired :guilabel:`Work Center` in which the footswitch will be used, and add the device in the :guilabel:`IoT Triggers` tab, under the :guilabel:`Device` column, by selecting :guilabel:`Add a Line`. Doing so means the footswitch can be linked to an option in the :guilabel:`Action` column drop-down, and optionally, a key can be added to trigger it. An example of an :guilabel:`Action` in the *Manufacturing app* could be the :guilabel:`Validate` or :guilabel:`Mark as Done` buttons on a manufacturing work order." +#: ../../content/applications/general/iot/devices/footswitch.rst:28 +msgid "To link a footswitch to an action, it first needs to be configured on a work center. Navigate to :menuselection:`Manufacturing --> Configuration --> Work Centers`. From here, go to the desired :guilabel:`Work Center` in which the footswitch will be used, and add the device in the :guilabel:`IoT Triggers` tab, under the :guilabel:`Device` column, by selecting :guilabel:`Add a Line`. Doing so means the footswitch can be linked to an option in the :guilabel:`Action` column drop-down, and optionally, a key can be added to trigger it. An example of an :guilabel:`Action` in the *Manufacturing app* could be the :guilabel:`Validate` or :guilabel:`Mark as Done` buttons on a manufacturing work order." msgstr "" -#: ../../content/applications/general/iot/devices/footswitch.rst:-1 -msgid "Footswitch trigger setup on the Odoo database." +#: ../../content/applications/general/iot/devices/footswitch.rst:38 +msgid "Triggers are executed in the order they appear, with the first one taking priority. To reorder the triggers, click the :icon:`oi-draggable` :guilabel:`(draggable)` icon to the left of each trigger, and drag it to the desired position." msgstr "" #: ../../content/applications/general/iot/devices/footswitch.rst:43 -msgid "It should be noted that the first listed trigger is chosen first. So, the order matters, and these triggers can be dragged into any order. In the picture above, using the footswitch automatically skips the part of the process that's currently being worked on." +msgid "To identify the key assigned to each pedal, connect the footswitch to any computer and press the pedals as if typing. Usually, the pedals are mapped by default to the keyboard keys `a`, `b`, and `c`." msgstr "" -#: ../../content/applications/general/iot/devices/footswitch.rst:48 -msgid "On the :guilabel:`Work Order` screen, a status graphic indicates whether the database is correctly connected to the footswitch." +#: ../../content/applications/general/iot/devices/footswitch.rst:46 +msgid "The :guilabel:`Work Order` list includes a status indicator that shows whether the database is successfully connected to the footswitch." msgstr "" #: ../../content/applications/general/iot/devices/measurement_tool.rst:3 @@ -5449,7 +5452,7 @@ msgid "A list of reports currently linked to a printer in the IoT app." msgstr "" #: ../../content/applications/general/iot/devices/printer.rst:113 -msgid ":doc:`POS Order Printing <../../../sales/point_of_sale/restaurant/kitchen_printing>`" +msgid ":ref:`POS Order Printing `" msgstr "" #: ../../content/applications/general/iot/devices/printer.rst:116 @@ -6054,7 +6057,7 @@ msgid "Press **>0<** again to :guilabel:`SAVE`; the scale restarts." msgstr "" #: ../../content/applications/general/iot/devices/scale.rst:56 -msgid "Reboot the IoT box or :ref:`restart the Windows virtual IoT service `. The scale should then appear as `Toledo 8217`, as opposed to the previous display, where it appeared as `Adam Equipment Serial`." +msgid "Reboot the IoT box or :ref:`restart the Windows virtual IoT service `. The scale should then appear as `Toledo 8217`." msgstr "" #: ../../content/applications/general/iot/devices/screen.rst:3 @@ -6675,6 +6678,26 @@ msgstr "" msgid "Once the IoT box is :doc:`connected to the Odoo database `, its homepage can be accessed from Odoo by opening the IoT app and clicking the URL displayed on the IoT box's card." msgstr "" +#: ../../content/applications/general/iot/iot_box.rst:99 +msgid "LED status" +msgstr "" + +#: ../../content/applications/general/iot/iot_box.rst:101 +msgid "The IoT box features two LEDs, located to the right of the SD card slot, which show its status and help with troubleshooting when no display is connected. The LEDs can be interpreted as follows:" +msgstr "" + +#: ../../content/applications/general/iot/iot_box.rst:104 +msgid "**Red LED lit**: The IoT box has no Internet connection. Ensure the Ethernet cable is properly connected or :ref:`connect the IoT box via Wi-Fi `." +msgstr "" + +#: ../../content/applications/general/iot/iot_box.rst:106 +msgid "**Green LED flashing**: The IoT box is awaiting :doc:`connection to a database `." +msgstr "" + +#: ../../content/applications/general/iot/iot_box.rst:107 +msgid "**Green LED constantly lit**: The IoT box is connected to a database; no further action is required." +msgstr "" + #: ../../content/applications/general/iot/windows_iot.rst:5 msgid "To start using the Windows virtual IoT:" msgstr "" @@ -7308,10 +7331,14 @@ msgid "Once complete, click :guilabel:`Save` to save the changes, and implement msgstr "" #: ../../content/applications/general/users/access_rights.rst:34 +msgid "Manage user permissions" +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:36 msgid "The access rights for :ref:`individual users ` are set when the user is added to the database, but they can be adjusted at any point in the user's profile." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:37 +#: ../../content/applications/general/users/access_rights.rst:39 msgid "To make changes to a user's rights, click on the desired user to edit their profile." msgstr "" @@ -7319,15 +7346,15 @@ msgstr "" msgid "Users menu in the Users & Companies section of the Settings app of Odoo." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:42 +#: ../../content/applications/general/users/access_rights.rst:44 msgid "On the user's profile page, in the :guilabel:`Access Rights` tab, scroll down to view the current permissions." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:45 +#: ../../content/applications/general/users/access_rights.rst:47 msgid "For each app, use the drop-down menu to select what level of permission this user should have. The options vary for each section, yet the most common are: :guilabel:`Blank/None`, :guilabel:`User: Own Documents`, :guilabel:`User: All Documents`, or :guilabel:`Administrator`." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:49 +#: ../../content/applications/general/users/access_rights.rst:51 msgid "The :guilabel:`Administration` field in the :guilabel:`Access Rights` tab has the following options: :guilabel:`Settings` or :guilabel:`Access Rights`." msgstr "" @@ -7335,15 +7362,79 @@ msgstr "" msgid "The Sales apps drop-down menu to set the user's level of permissions." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:58 +#: ../../content/applications/general/users/access_rights.rst:60 +msgid "Manage specific permissions" +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:62 +msgid "While access rights are typically assigned in bundles under specific roles, they can also be set as explicit permissions." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:66 +msgid "For example, giving a user the :guilabel:`Administrator` permission for **Timesheets** gives them full access to that app. That user, while holding full access, can *still* have their ability to manage *their own* timesheets restricted — such as in the case of a salaried payroll administrator who does not need to track time." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:71 +msgid "To manage specific permissions, :ref:`developer mode ` must be enabled." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:73 +msgid "After that, navigate to the :menuselection:`Settings` app. Then click :guilabel:`Manage Users`, select a user, and go to the :guilabel:`Technical Access Rights` tab. From here, :guilabel:`Groups` can be edited, and specific access rights can be managed across the various sections. If no changes are made to these groups, then their permissions will mirror the selections made in the :guilabel:`Access Rights` tab." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:79 +msgid ":guilabel:`Selected groups`: a list of detailed access rights, set by choices made in the :guilabel:`Access Rights` tab." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:81 +msgid ":guilabel:`Groups added automatically`: *implied* permissions that are *inherited* with the explicit permissions already granted to the user. The values here will match the values listed under a given *Group*'s form located under the :menuselection:`Users & Companies --> Groups` menu, in the :guilabel:`Inherited` tab." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:-1 +msgid "The technical access rights tab opened up for a user profile." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:90 +msgid "When the *Sales Administrator* permission set is assigned to a user, then the *Canned Responses Administrator* permissions are inherited automatically. These assignments are reflected across the values listed in the :guilabel:`Selected Groups` and :guilabel:`Groups added automatically` tables, respectively." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:95 +msgid "To add a permission to this user profile, click :guilabel:`Add a line` in the :guilabel:`Selected groups` table, and then add permissions to this user profile. To remove a permission, click the :icon:`fa-times` :guilabel:`(cancel)` at the end of that permission's row." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:100 +msgid "Removing permissions from the :guilabel:`Selected Groups` list can impact what permissions are listed in the :guilabel:`Groups added automatically` list, since selected permission groups inform what permission groups are added automatically." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:104 +msgid "Clicking on the permission itself will open a group management form. Learn more about :ref:`managing groups `." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:107 +msgid "Any permission in the :guilabel:`Groups added automatically` section are implied or required by the permission shown in the :guilabel:`Selected groups` section. These cannot be removed, but more users can be given these permissions by clicking on the permission itself, and then adding the user to that permission's group." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:113 +msgid "Any permission in green is already provided by another permission (for example, setting the :guilabel:`Website` app's permission to :guilabel:`Editor and Designer` will also give that user the :guilabel:`Restricted Editor` permission)." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:116 +msgid "Any permissions in red are conflicting and cannot be active at the same time." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:117 +msgid "Any permissions in *italics* is implied by a :guilabel:`Selected group` (these are usually found in the :guilabel:`Groups added automatically`)." +msgstr "" + +#: ../../content/applications/general/users/access_rights.rst:123 msgid "Create and modify groups" msgstr "" -#: ../../content/applications/general/users/access_rights.rst:60 +#: ../../content/applications/general/users/access_rights.rst:125 msgid "*Groups* are app-specific sets of permissions that are used to manage common access rights for a large amount of users. Administrators can modify the existing groups in Odoo, or create new ones to define rules for models within an application." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:64 +#: ../../content/applications/general/users/access_rights.rst:129 msgid "To access groups, first activate Odoo's :ref:`developer mode `, then go to :menuselection:`Settings app --> Users & Companies --> Groups`." msgstr "" @@ -7351,23 +7442,23 @@ msgstr "" msgid "Groups menu in the Users & Companies section of the Settings app of Odoo." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:70 +#: ../../content/applications/general/users/access_rights.rst:135 msgid "To create a new group from the :guilabel:`Groups` page, click :guilabel:`Create`. Then, from the blank group form, select an :guilabel:`Application`, and complete the group form (detailed below)." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:73 +#: ../../content/applications/general/users/access_rights.rst:138 msgid "To modify existing groups, click on an existing group from the list displayed on the :guilabel:`Groups` page, and edit the contents of the form." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:76 +#: ../../content/applications/general/users/access_rights.rst:141 msgid "Enter a :guilabel:`Name` for the group and tick the checkbox next to :guilabel:`Share Group`, if this group was created to set access rights for sharing data with some users." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:80 +#: ../../content/applications/general/users/access_rights.rst:145 msgid "Always test the settings being changed to ensure they are being applied to the correct users." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:82 +#: ../../content/applications/general/users/access_rights.rst:147 msgid "The group form contains multiple tabs for managing all elements of the group. In each tab, click :guilabel:`Add a line` to add a new row for users or rules, and click the :icon:`fa-times` :guilabel:`(cancel)` icon to remove a row." msgstr "" @@ -7375,55 +7466,55 @@ msgstr "" msgid "Tabs in the Groups form to modify the settings of the group." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:89 +#: ../../content/applications/general/users/access_rights.rst:154 msgid ":guilabel:`Users` tab: lists the current users in the group. Users listed in black have administrative rights. Users without administrative access appear in blue. Click :guilabel:`Add a line` to add users to this group." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:92 +#: ../../content/applications/general/users/access_rights.rst:157 msgid ":guilabel:`Inherited` tab: Inherited means that users added to this group are automatically added to the groups listed on this tab. Click :guilabel:`Add a line` to add inherited groups." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:96 +#: ../../content/applications/general/users/access_rights.rst:161 msgid "For example, if the group *Sales/Administrator* lists the group *Website/Restricted Editor* in its :guilabel:`Inherited` tab, then any users added to the *Sales/Administrator* group automatically receive access to the *Website/Restricted Editor* group, as well." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:100 +#: ../../content/applications/general/users/access_rights.rst:165 msgid ":guilabel:`Menus` tab: defines which models the group can have access to. Click :guilabel:`Add a line` to add a specific menu." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:102 +#: ../../content/applications/general/users/access_rights.rst:167 msgid ":guilabel:`Views` tab: lists which views in Odoo the group has access to. Click :guilabel:`Add a line` to add a view to the group." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:104 +#: ../../content/applications/general/users/access_rights.rst:169 msgid ":guilabel:`Access Rights` tab: lists the first level of rights (models) that this group has. The :guilabel:`Name` column represents the name for the current group's access to the model selected in the :guilabel:`Model` column." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:108 +#: ../../content/applications/general/users/access_rights.rst:173 msgid "To link a new access right to a group, click :guilabel:`Add a line`. Select the appropriate model from the :guilabel:`Model` drop-down, then enter a name for the access right in the :guilabel:`Name` column. For each model, enable the following options as appropriate:" msgstr "" -#: ../../content/applications/general/users/access_rights.rst:112 +#: ../../content/applications/general/users/access_rights.rst:177 msgid ":guilabel:`Read`: Users can see the object's existing values." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:113 +#: ../../content/applications/general/users/access_rights.rst:178 msgid ":guilabel:`Write`: Users can edit the object's existing values." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:114 +#: ../../content/applications/general/users/access_rights.rst:179 msgid ":guilabel:`Create`: Users can create new values for the object." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:115 +#: ../../content/applications/general/users/access_rights.rst:180 msgid ":guilabel:`Delete`: Users can delete values for the object." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:118 +#: ../../content/applications/general/users/access_rights.rst:183 msgid "While there are no conventions for naming access rights, it is advisable to choose a name that identifies its purpose." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:121 +#: ../../content/applications/general/users/access_rights.rst:186 msgid "For example, the access that purchase managers have to the :guilabel:`Contact` model could be named `res.partner.purchase.manager`. This consists of the technical name of the model, followed by a name identifying the group of users in question." msgstr "" @@ -7431,83 +7522,83 @@ msgstr "" msgid "Name of access rights to a model." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:128 +#: ../../content/applications/general/users/access_rights.rst:193 msgid "To find the model's technical name from the current view, first enter a placeholder text in the :guilabel:`Name` field, then click the :guilabel:`Model` name, then the :icon:`fa-arrow-right` :guilabel:`(Internal link)` icon." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:132 +#: ../../content/applications/general/users/access_rights.rst:197 msgid ":guilabel:`Record Rules`: lists the second layer of editing and visibility rights. :guilabel:`Record Rules` overwrite, or refine, the group's access rights. Click :guilabel:`Add a line` to add a record rule to this group. For each rule, choose values for the following options:" msgstr "" -#: ../../content/applications/general/users/access_rights.rst:136 +#: ../../content/applications/general/users/access_rights.rst:201 msgid ":guilabel:`Apply for Read`." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:137 +#: ../../content/applications/general/users/access_rights.rst:202 msgid ":guilabel:`Apply for Write`." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:138 +#: ../../content/applications/general/users/access_rights.rst:203 msgid ":guilabel:`Apply for Create`." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:139 +#: ../../content/applications/general/users/access_rights.rst:204 msgid ":guilabel:`Apply for Delete`." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:142 +#: ../../content/applications/general/users/access_rights.rst:207 msgid "Record rules are written using a *domain*, or conditions that filter data. A domain expression is a list of such conditions. For example:" msgstr "" -#: ../../content/applications/general/users/access_rights.rst:145 +#: ../../content/applications/general/users/access_rights.rst:210 msgid "`[('mrp_production_ids', 'in', user.partner_id.commercial_partner_id.production_ids.ids)]`" msgstr "" -#: ../../content/applications/general/users/access_rights.rst:147 +#: ../../content/applications/general/users/access_rights.rst:212 msgid "This record rule is to enable MRP consumption warnings for subcontractors." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:149 +#: ../../content/applications/general/users/access_rights.rst:214 msgid "Odoo has a library of preconfigured record rules for ease of use. Users without knowledge of domains (and domain expressions) should consult an Odoo Business Analyst, or the Odoo Support Team, before making changes." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:156 +#: ../../content/applications/general/users/access_rights.rst:221 msgid "Superuser mode" msgstr "" -#: ../../content/applications/general/users/access_rights.rst:158 +#: ../../content/applications/general/users/access_rights.rst:223 msgid "*Superuser mode* allows the user to bypass record rules and access rights. To activate *Superuser mode*, first, activate :ref:`developer mode `. Then, navigate to the *debug* menu, represented by a :icon:`fa-bug` :guilabel:`(debug)` icon, located in the top banner." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:162 +#: ../../content/applications/general/users/access_rights.rst:227 msgid "Finally, towards the bottom of the menu, click :guilabel:`Become Superuser`." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:165 +#: ../../content/applications/general/users/access_rights.rst:230 msgid "Only users with *Settings* access for the *Administration* section of the *Access Rights* (in their user profile) are allowed to log in to *Superuser mode*." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:169 +#: ../../content/applications/general/users/access_rights.rst:234 msgid "*Superuser mode* allows for circumvention of record rules and access rights, and therefore, should be exercised with extreme caution." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:172 +#: ../../content/applications/general/users/access_rights.rst:237 msgid "Upon exiting *Superuser mode*, users may be locked out of the database, due to changes that were made. This can cause *impotent admin*, or an administrator without the ability to change access rights/settings." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:176 +#: ../../content/applications/general/users/access_rights.rst:241 msgid "In this case contact Odoo Support here: `new help ticket `_. The support team is able to restore access using a support login." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:179 +#: ../../content/applications/general/users/access_rights.rst:244 msgid "To leave *Superuser mode*, log out of the account, by navigating to the upper-right corner, and clicking on the :guilabel:`OdooBot` username. Then, select the :guilabel:`Log out` option." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:183 +#: ../../content/applications/general/users/access_rights.rst:248 msgid "An alternative way to activate *Superuser mode* is to login as a superuser. To do that, navigate to the login screen, and enter the appropriate :guilabel:`Email` and :guilabel:`Password`." msgstr "" -#: ../../content/applications/general/users/access_rights.rst:186 +#: ../../content/applications/general/users/access_rights.rst:251 msgid "Instead of clicking :guilabel:`Login`, click :guilabel:`Log in as superuser`." msgstr "" diff --git a/locale/sources/hr.pot b/locale/sources/hr.pot index f4152ffc04..e227b514c3 100644 --- a/locale/sources/hr.pot +++ b/locale/sources/hr.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1451,7 +1451,7 @@ msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:428 #: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:862 #: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1365 -#: ../../content/applications/hr/time_off.rst:527 +#: ../../content/applications/hr/time_off.rst:528 msgid "Overview" msgstr "" @@ -2401,8 +2401,9 @@ msgid "An Attendances app record form, filled out for Doris Cole for April 23, 2 msgstr "" #: ../../content/applications/hr/employees.rst:5 -#: ../../content/applications/hr/employees.rst:59 +#: ../../content/applications/hr/employees.rst:64 #: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:35 +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:89 msgid "Employees" msgstr "" @@ -2410,7 +2411,7 @@ msgstr "" msgid "Odoo **Employees** centralizes :doc:`personnel files `, employment :doc:`contracts `, and :doc:`departmental hierarchies ` in one system. Properly configuring its settings ensures the dashboard shows each employee's real-time attendance and work location—data that drives payroll accuracy, capacity planning, and compliance reporting." msgstr "" -#: ../../content/applications/hr/employees.rst:53 +#: ../../content/applications/hr/employees.rst:58 #: ../../content/applications/hr/fleet/new_vehicle.rst:16 #: ../../content/applications/hr/lunch.rst:19 #: ../../content/applications/hr/payroll.rst:15 @@ -2418,47 +2419,47 @@ msgstr "" msgid "Settings" msgstr "" -#: ../../content/applications/hr/employees.rst:55 +#: ../../content/applications/hr/employees.rst:60 msgid "To view and configure the available settings, navigate to :menuselection:`Employees app --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/hr/employees.rst:61 +#: ../../content/applications/hr/employees.rst:66 msgid ":guilabel:`Presence Display`: select how the employee's availability status is calculated." msgstr "" -#: ../../content/applications/hr/employees.rst:63 +#: ../../content/applications/hr/employees.rst:68 msgid ":guilabel:`Based on attendances`: marked available when :ref:`checked into ` the **Attendances** app." msgstr "" -#: ../../content/applications/hr/employees.rst:65 +#: ../../content/applications/hr/employees.rst:70 msgid ":guilabel:`Based on user status in system`: marked available when the :doc:`employee logs in to Odoo `." msgstr "" -#: ../../content/applications/hr/employees.rst:68 +#: ../../content/applications/hr/employees.rst:73 msgid ":guilabel:`Advanced Presence Control`: when enabled, presence status can be calculated from operational signals rather than check-ins or logins:" msgstr "" -#: ../../content/applications/hr/employees.rst:71 +#: ../../content/applications/hr/employees.rst:76 msgid ":guilabel:`Based on number of emails sent`: an employee is marked present if they send at least # emails per hour; otherwise, they are marked absent. Enter the minimum number of emails that must be sent in the :guilabel:`Sent Emails` field." msgstr "" -#: ../../content/applications/hr/employees.rst:74 +#: ../../content/applications/hr/employees.rst:79 msgid ":guilabel:`Based on IP Address`: an employee is marked present only when connected from one of the specified corporate IP addresses. Enter the IP addresses in the :guilabel:`IP Addresses` field, separating each address with a comma." msgstr "" -#: ../../content/applications/hr/employees.rst:78 +#: ../../content/applications/hr/employees.rst:83 msgid ":guilabel:`Skills Management`: enable this option to display the :ref:`resumé tab ` on employee profiles. This allows for the display of :ref:`work experience `, :ref:`skills `, and :doc:`certifications `." msgstr "" -#: ../../content/applications/hr/employees.rst:81 +#: ../../content/applications/hr/employees.rst:86 msgid ":guilabel:`Remote Work`: enable this option to allow for a detailed schedule to appear on the employee form, in the :ref:`Work Information ` tab. When enabled, the specific location can be set for each working day for the employee. The corresponding icon is displayed in the upper-right corner of the employee card, indicating their location by icon, and status by color." msgstr "" -#: ../../content/applications/hr/employees.rst:88 +#: ../../content/applications/hr/employees.rst:93 msgid "A green :icon:`fa-home` :guilabel:`(home)` icon indicates the employee is working from home that day. A :icon:`fa-building` :guilabel:`(building)` icon means the employee is scheduled to work at the office." msgstr "" -#: ../../content/applications/hr/employees.rst:92 +#: ../../content/applications/hr/employees.rst:97 msgid "The *color* of the icon indicates the employee's status, with green indicating present, yellow indicating absent, and gray indicating it is outside of the employee's working hours." msgstr "" @@ -2466,23 +2467,23 @@ msgstr "" msgid "Two employee Kanban cards displaying their working location and status." msgstr "" -#: ../../content/applications/hr/employees.rst:99 +#: ../../content/applications/hr/employees.rst:104 msgid "Work organization" msgstr "" -#: ../../content/applications/hr/employees.rst:101 +#: ../../content/applications/hr/employees.rst:106 msgid "Using the drop-down menu, select the default :guilabel:`Company Working Hours`. The default options are :guilabel:`Standard 40 hours/week`, :guilabel:`Appointment Resource Default Calendar`, and :guilabel:`Standard 32 hours/week (4 work days, friday free)`." msgstr "" -#: ../../content/applications/hr/employees.rst:105 +#: ../../content/applications/hr/employees.rst:110 msgid "The available working hours listed are the same as the configured :ref:`working schedules ` in the **Payroll** app. Working hours can be created and modified from both the **Payroll** and **Employees** apps." msgstr "" -#: ../../content/applications/hr/employees.rst:110 +#: ../../content/applications/hr/employees.rst:115 msgid "Employee update rights" msgstr "" -#: ../../content/applications/hr/employees.rst:112 +#: ../../content/applications/hr/employees.rst:117 msgid "Enable the :guilabel:`Employee Editing` option to allow employees to edit their own data on their employee record." msgstr "" @@ -2824,7 +2825,7 @@ msgstr "" #: ../../content/applications/hr/employees/departments.rst:67 #: ../../content/applications/hr/fleet/accidents.rst:141 -#: ../../content/applications/hr/recruitment.rst:183 +#: ../../content/applications/hr/recruitment.rst:158 msgid "Kanban view" msgstr "" @@ -3315,99 +3316,99 @@ msgstr "" msgid "To add a new location, type in the location name, then click :guilabel:`Create (new location)` to add the location, or :guilabel:`Create and edit...` to add the location, assign a :guilabel:`Work Address`, and a :guilabel:`Cover Image`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:262 +#: ../../content/applications/hr/employees/new_employee.rst:264 msgid "APPROVERS" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:264 +#: ../../content/applications/hr/employees/new_employee.rst:266 msgid "To see this section, the user must have either :guilabel:`Administrator` or :guilabel:`Officer: Manage all employees` rights set for the **Employees** application. For the category to appear, the respective app **must** be installed. For example, if the **Time Off** app is not installed, the :guilabel:`Time Off` approver field does not appear. Only one selection can be made for each field." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:270 +#: ../../content/applications/hr/employees/new_employee.rst:272 msgid "The users that appear in the drop-down menu for the :guilabel:`Approvers` section **must** have *Administrator* rights set for the corresponding human resources role." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:273 +#: ../../content/applications/hr/employees/new_employee.rst:275 msgid "To check who has these rights, go to :menuselection:`Settings app` and click :icon:`oi-arrow-right` :guilabel:`Manage Users` in the :guilabel:`Users` section. Then, click on an employee, then click into the :guilabel:`Access Rights` tab. Scroll to the :guilabel:`HUMAN RESOURCES` and check the various settings." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:278 +#: ../../content/applications/hr/employees/new_employee.rst:280 msgid "In order for the user to appear as an approver for :guilabel:`Expenses`, they **must** have either :guilabel:`Team Approver`, :guilabel:`All Approver`, or :guilabel:`Administrator` set for the :guilabel:`Expenses` role." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:281 +#: ../../content/applications/hr/employees/new_employee.rst:283 msgid "In order for the user to appear as an approver for :guilabel:`Time Off`, they **must** have either :guilabel:`Officer:Manage all Requests` or :guilabel:`Administrator` set for the :guilabel:`Time Off` role." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:284 +#: ../../content/applications/hr/employees/new_employee.rst:286 msgid "In order for the user to appear as an approver for :guilabel:`Timesheets`, they **must** have either :guilabel:`Officer:Manage all contracts` or :guilabel:`Administrator` set for the :guilabel:`Payroll` role." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:287 +#: ../../content/applications/hr/employees/new_employee.rst:289 msgid "In order for the user to appear as an approver for :guilabel:`Attendances`, they **must** have :guilabel:`Administrator` set for the :guilabel:`Payroll` role." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:290 +#: ../../content/applications/hr/employees/new_employee.rst:292 msgid ":guilabel:`Expense`: using the drop-down menus, select the user responsible for approving all expenses for the employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:292 +#: ../../content/applications/hr/employees/new_employee.rst:294 msgid ":guilabel:`Time Off`: using the drop-down menus, select the user responsible for approving all time off requests from this employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:294 +#: ../../content/applications/hr/employees/new_employee.rst:296 msgid ":guilabel:`Timesheet`: using the drop-down menus, select the user responsible for approving all the employee's timesheet entries." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:296 +#: ../../content/applications/hr/employees/new_employee.rst:298 msgid ":guilabel:`Attendance`: using the drop-down menus, select the user responsible for approving all attendance entries for the employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:300 +#: ../../content/applications/hr/employees/new_employee.rst:302 msgid "REMOTE WORK" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:302 +#: ../../content/applications/hr/employees/new_employee.rst:304 msgid "This section **only** appears if the *Remote Work* setting is enabled in the configuration menu." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:304 +#: ../../content/applications/hr/employees/new_employee.rst:306 msgid "Use the drop-down menu to select the default location the employee works, for each day of the week. The default options are :guilabel:`Home`, :guilabel:`Office`, or :guilabel:`Other`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:307 +#: ../../content/applications/hr/employees/new_employee.rst:309 msgid "A new location can be typed into the field, then click either :guilabel:`Create (new location)` to add the location, or :guilabel:`Create and edit...` to add the new location and edit the form." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:310 +#: ../../content/applications/hr/employees/new_employee.rst:312 msgid "After edits are done, click :guilabel:`Save & Close`, and the new location is added, and populates the field." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:313 +#: ../../content/applications/hr/employees/new_employee.rst:315 msgid "Leave the field blank (:guilabel:`Unspecified`) for non-working days, such as Saturday and Sunday." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:316 +#: ../../content/applications/hr/employees/new_employee.rst:318 msgid "It is also possible to add or modify work locations by navigating to :menuselection:`Employees app --> Configuration --> Work Locations`. To modify a location, click on an existing location, then make any changes on the form." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:320 +#: ../../content/applications/hr/employees/new_employee.rst:322 msgid "Click :guilabel:`New` to create a new location, then enter the following information on the form. All fields are **required**." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:323 +#: ../../content/applications/hr/employees/new_employee.rst:325 msgid ":guilabel:`Work Location`: enter the name for the location. This can be as general or as specific, as needed, such as `Home` or `Building 1, Second Floor`, respectfully." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:325 +#: ../../content/applications/hr/employees/new_employee.rst:327 msgid ":guilabel:`Work Address`: using the drop-down menu, select the address for the location." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:326 +#: ../../content/applications/hr/employees/new_employee.rst:328 msgid ":guilabel:`Cover Image`: click on the icon to select it for the :guilabel:`Cover Image`. Options are a :icon:`fa-home` :guilabel:`(home)` icon, an :icon:`fa-building-o` :guilabel:`(building)` icon, and a :icon:`fa-map-marker` :guilabel:`(map marker)` icon." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:329 +#: ../../content/applications/hr/employees/new_employee.rst:331 msgid ":guilabel:`Company`: using the drop-down menu, select the company the location applies to. The current company populates this field, by default. This field **only** appears in a multi-company database." msgstr "" @@ -3415,115 +3416,115 @@ msgstr "" msgid "A new work location form with all fields filled out." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:339 +#: ../../content/applications/hr/employees/new_employee.rst:341 msgid "SCHEDULE" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:341 +#: ../../content/applications/hr/employees/new_employee.rst:343 msgid "This section defines when the employee is expected to work." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:343 +#: ../../content/applications/hr/employees/new_employee.rst:345 msgid ":guilabel:`Working Hours`: using the drop-down menu, select the hours the employee is expected to work. By default, a :guilabel:`Standard 40 hour/week` working schedule is available. If the **Timesheets** app is installed, an :guilabel:`Appointment Resource Default Calendar` option is also available." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:348 +#: ../../content/applications/hr/employees/new_employee.rst:350 msgid "To view and modify the specific daily working hours, click the :icon:`oi-arrow-right` :guilabel:`(Internal link)` arrow at the end of the :guilabel:`Working Hours` line. Working hours can be modified or deleted here." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:353 +#: ../../content/applications/hr/employees/new_employee.rst:355 msgid ":guilabel:`Working Hours` are related to a company's working schedules, and an Employee **cannot** have working hours that are outside of a company's working schedule." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:356 +#: ../../content/applications/hr/employees/new_employee.rst:358 msgid "Each individual working schedule is company-specific. For multi-company databases, each company **must** have its own working hours set." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:359 +#: ../../content/applications/hr/employees/new_employee.rst:361 msgid "If an employee's working hours are not configured as a working schedule for the company, new working schedules can be added, or existing working schedules can be modified." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:362 +#: ../../content/applications/hr/employees/new_employee.rst:364 msgid "Working hours can be modified in the **Payroll** application, where they are referred to as :guilabel:`Working Schedules`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:365 +#: ../../content/applications/hr/employees/new_employee.rst:367 msgid "For more information on how to create or modify :guilabel:`Working Schedules` in the **Payroll** application, refer to the :doc:`../../hr/payroll` documentation." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:368 +#: ../../content/applications/hr/employees/new_employee.rst:370 msgid "After the new working time is created, or an existing one is modified, the :guilabel:`Working Hours` can be selected on the employee form." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:371 +#: ../../content/applications/hr/employees/new_employee.rst:373 msgid ":guilabel:`Timezone`: using the drop-down menu, select the timezone for the employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:374 +#: ../../content/applications/hr/employees/new_employee.rst:376 msgid "PLANNING" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:376 +#: ../../content/applications/hr/employees/new_employee.rst:378 msgid "This section is **only** visible if the **Planning** app is installed, as this section affects what the employee can be assigned in the **Planning** app." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:379 +#: ../../content/applications/hr/employees/new_employee.rst:381 msgid ":guilabel:`Roles`: using the drop-down menu, select all the roles the employee can perform. There are no preconfigured roles available, so all roles must be :ref:`configured in the Planning app `. There is no limit to the number of roles assigned to an employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:382 +#: ../../content/applications/hr/employees/new_employee.rst:384 msgid ":guilabel:`Default Role`: using the drop-down menu, select the default role the employee will typically perform. If the :guilabel:`Default Role` is selected before the :guilabel:`Roles` field is configured, the selected role is automatically added to the list of :guilabel:`Roles`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:389 +#: ../../content/applications/hr/employees/new_employee.rst:391 msgid "Private information tab" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:391 +#: ../../content/applications/hr/employees/new_employee.rst:393 msgid "No information in the :guilabel:`Private Information` tab is required to create an employee, however, some information in this section may be necessary for the company's payroll department." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:394 +#: ../../content/applications/hr/employees/new_employee.rst:396 msgid "In order to properly process payslips and ensure all deductions are accounted for, it is recommended to check with the accounting department and payroll department to ensure all required fields are populated." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:398 +#: ../../content/applications/hr/employees/new_employee.rst:400 msgid "Enter the various information in the following sections and fields of the :guilabel:`Private Information` tab. Fields are entered either using a drop-down menu, ticking a checkbox, or typing in the information." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:403 +#: ../../content/applications/hr/employees/new_employee.rst:405 msgid "Depending on the localization setting, other fields may be present. For example, for the United States, a :guilabel:`SSN No` (Social Security Number) field is present." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:407 +#: ../../content/applications/hr/employees/new_employee.rst:411 msgid "PRIVATE CONTACT" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:409 +#: ../../content/applications/hr/employees/new_employee.rst:413 msgid ":guilabel:`Private Address`: enter the employee's private home address." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:410 +#: ../../content/applications/hr/employees/new_employee.rst:414 msgid ":guilabel:`Private Email`: enter the employee's personal email address." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:411 +#: ../../content/applications/hr/employees/new_employee.rst:415 msgid ":guilabel:`Private Phone`: enter the employee's personal phone number." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:412 +#: ../../content/applications/hr/employees/new_employee.rst:416 msgid ":guilabel:`Bank Account`: enter the bank account number for the employee, and click :guilabel:`Create and edit..`. A :guilabel:`Create Bank Account` form loads with the bank account number populating the :guilabel:`Account Number` field. Next, select the :guilabel:`Bank` using the drop-down menu." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:417 +#: ../../content/applications/hr/employees/new_employee.rst:421 msgid "If the bank is not already configured, click :guilabel:`Create and edit...` and a blank :guilabel:`Create Bank` form loads, with the bank name populating the :guilabel:`Bank` field. Next, enter the :guilabel:`Bank Identifier Code`, also referred to as a BIC or SWIFT code. Then enter the :guilabel:`Bank Address`, :guilabel:`Phone`, and :guilabel:`Email`. Once the form is complete, click :guilabel:`Save & Close`, and the new bank populates the :guilabel:`Bank` field." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:423 +#: ../../content/applications/hr/employees/new_employee.rst:427 msgid "Next, enter the :guilabel:`ABA/Routing` number for the bank account, then select the :guilabel:`Account Holder`, which is typically the employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:426 +#: ../../content/applications/hr/employees/new_employee.rst:430 msgid "Finally, click the :guilabel:`Send Money` toggle. This changes the toggle color to green, and the status changes from :guilabel:`Untrusted` in black text, to :guilabel:`Trusted` in green text." msgstr "" @@ -3531,251 +3532,252 @@ msgstr "" msgid "The Create Bank Account form with all the information filled out." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:433 +#: ../../content/applications/hr/employees/new_employee.rst:437 msgid "**All** bank accounts must be marked as :guilabel:`Trusted`, if not payments cannot be processed and sent to the bank account. Having an :guilabel:`Untrusted` bank account for an employee will cause an error in the **Payroll** application." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:437 +#: ../../content/applications/hr/employees/new_employee.rst:441 msgid ":guilabel:`Home-Work Distance`: enter the number, in miles or kilometers, the employee commutes to work, in one direction. The unit of measure can be changed from kilometers (:guilabel:`km`) to miles (:guilabel:`mi`) using the drop-down menu. This field is only necessary if the employee is receiving any type of commuter benefits or tax deductions based on commute distances." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:441 +#: ../../content/applications/hr/employees/new_employee.rst:445 msgid ":guilabel:`Private Car Plate`: enter the license plate for the employee's personal car." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:444 +#: ../../content/applications/hr/employees/new_employee.rst:448 msgid "EMERGENCY" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:446 +#: ../../content/applications/hr/employees/new_employee.rst:450 msgid "This section details the person to contact in the event of an emergency." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:448 +#: ../../content/applications/hr/employees/new_employee.rst:452 msgid ":guilabel:`Contact Name`: enter the emergency contact's name." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:449 +#: ../../content/applications/hr/employees/new_employee.rst:453 msgid ":guilabel:`Contact Phone`: enter the emergency contact's phone number. It is recommended to enter a phone number that the person has the most access to, typically a mobile phone." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:453 +#: ../../content/applications/hr/employees/new_employee.rst:457 msgid "FAMILY STATUS" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:455 +#: ../../content/applications/hr/employees/new_employee.rst:459 msgid "This section is used for tax purposes, and affects the **Payroll** app. Enter the following information in the fields." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:458 +#: ../../content/applications/hr/employees/new_employee.rst:462 msgid ":guilabel:`Marital Status`: select the marital status for the employee using the drop-down menu. The default options are :guilabel:`Single`, :guilabel:`Married`, :guilabel:`Legal Cohabitant`, :guilabel:`Widower`, and :guilabel:`Divorced`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:462 +#: ../../content/applications/hr/employees/new_employee.rst:466 msgid "If :guilabel:`Married` or :guilabel:`Legal Cohabitant` is selected, two additional fields appear: :guilabel:`Spouse Complete Name` and :guilabel:`Spouse Birthdate`. Enter these fields with the respective information." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:465 +#: ../../content/applications/hr/employees/new_employee.rst:469 msgid ":guilabel:`Number of Dependent Children`: enter the number of dependent children. This number is the same number used for calculating tax deductions, and should follow all tax regulations regarding applicable dependents." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:470 +#: ../../content/applications/hr/employees/new_employee.rst:474 msgid "CITIZENSHIP" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:472 +#: ../../content/applications/hr/employees/new_employee.rst:476 msgid "This section outlines all the information relating to the employee's citizenship. This section is primarily for employees who are working in a different country than their citizenship. For employees working outside of their home country, for example on a work visa, this information may be required. Information for all fields may not be available." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:477 +#: ../../content/applications/hr/employees/new_employee.rst:481 msgid ":guilabel:`Nationality (Country)`: using the drop-down menu, select the country the employee is from." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:479 +#: ../../content/applications/hr/employees/new_employee.rst:483 msgid ":guilabel:`Identification No`: enter the employee's identification number in this field." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:480 +#: ../../content/applications/hr/employees/new_employee.rst:484 msgid ":guilabel:`SSN No`: enter the employee's social security number." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:481 +#: ../../content/applications/hr/employees/new_employee.rst:485 msgid ":guilabel:`Passport No`: enter the employee's passport number." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:482 +#: ../../content/applications/hr/employees/new_employee.rst:486 msgid ":guilabel:`Gender`: select the employee's gender from the drop-down menu. The default options are :guilabel:`Male`, :guilabel:`Female`, and :guilabel:`Other`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:484 +#: ../../content/applications/hr/employees/new_employee.rst:488 msgid ":guilabel:`Date of Birth`: using the calendar selector, select the birthday of the employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:485 +#: ../../content/applications/hr/employees/new_employee.rst:489 msgid ":guilabel:`Place of Birth`: enter the city or town the employee was born." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:486 +#: ../../content/applications/hr/employees/new_employee.rst:490 msgid ":guilabel:`Country of Birth`: using the drop-down menu, select the country the employee was born." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:487 +#: ../../content/applications/hr/employees/new_employee.rst:491 msgid ":guilabel:`Non-resident`: tick this checkbox if the employee lives in a foreign country." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:490 +#: ../../content/applications/hr/employees/new_employee.rst:494 msgid "EDUCATION" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:492 +#: ../../content/applications/hr/employees/new_employee.rst:496 msgid "This section allows for only one entry, and should be populated with the highest degree the employee has earned." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:495 +#: ../../content/applications/hr/employees/new_employee.rst:499 msgid ":guilabel:`Certificate Level`: using the drop-down menu, select the highest degree the employee has earned. The default options are :guilabel:`Graduate`, :guilabel:`Bachelor`, :guilabel:`Master`, :guilabel:`Doctor`, and :guilabel:`Other`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:498 +#: ../../content/applications/hr/employees/new_employee.rst:502 msgid ":guilabel:`Field of Study`: type in the subject the employee studied, such as `Business` or `Computer Science`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:500 +#: ../../content/applications/hr/employees/new_employee.rst:504 msgid ":guilabel:`School`: type in the name of the school the employee earned the degree from." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:503 +#: ../../content/applications/hr/employees/new_employee.rst:507 msgid "WORK PERMIT" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:505 +#: ../../content/applications/hr/employees/new_employee.rst:509 msgid "This section should be filled in if the employee is working on some type of work permit. This section may be left blank if they do not require any work permits for employment." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:508 +#: ../../content/applications/hr/employees/new_employee.rst:512 msgid ":guilabel:`Visa No`: enter the employee's visa number." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:509 +#: ../../content/applications/hr/employees/new_employee.rst:513 msgid ":guilabel:`Work Permit No`: enter the employee's work permit number." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:510 +#: ../../content/applications/hr/employees/new_employee.rst:514 msgid ":guilabel:`Visa Expiration Date`: using the calendar selector, select the date the employee's visa expires." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:512 +#: ../../content/applications/hr/employees/new_employee.rst:516 msgid ":guilabel:`Work Permit Expiration Date`: using the calendar selector, select the date the employee's work permit expires." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:514 +#: ../../content/applications/hr/employees/new_employee.rst:518 msgid ":guilabel:`Work Permit`: click :guilabel:`Upload your file`, then navigate to the work permit file in the file explorer, and click :guilabel:`Select` to add the permit." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:520 +#: ../../content/applications/hr/employees/new_employee.rst:524 +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:125 msgid "Payroll tab" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:522 +#: ../../content/applications/hr/employees/new_employee.rst:526 msgid "Depending on the installed :doc:`localization <../payroll/payroll_localizations>`, the sections and fields in this tab may vary considerably. Due to the specific nature of localizations and the variety of information that may be requested in this tab, it is recommended to check with the accounting department to fill out this section correctly." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:527 +#: ../../content/applications/hr/employees/new_employee.rst:531 msgid "The following fields are universal for all localizations:" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:529 +#: ../../content/applications/hr/employees/new_employee.rst:533 msgid ":guilabel:`Legal Name`: enter the legal name for the employee. This is the name that typically is used for filing taxes." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:531 +#: ../../content/applications/hr/employees/new_employee.rst:535 msgid ":guilabel:`Payslip Language`: enter the desired language to be used when printing payslips for this employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:533 +#: ../../content/applications/hr/employees/new_employee.rst:537 msgid ":guilabel:`Registration Number of the Employee`: enter the employees registration number." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:536 +#: ../../content/applications/hr/employees/new_employee.rst:540 msgid ":doc:`Payroll localizations <../payroll/payroll_localizations>`" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:541 +#: ../../content/applications/hr/employees/new_employee.rst:545 msgid "Settings tab" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:543 +#: ../../content/applications/hr/employees/new_employee.rst:547 msgid "This tab provides various fields for different applications within the database. Depending on what applications are installed, different fields may appear in this tab." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:547 +#: ../../content/applications/hr/employees/new_employee.rst:551 msgid "STATUS" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:549 +#: ../../content/applications/hr/employees/new_employee.rst:553 msgid ":guilabel:`Employee Type`: using the drop-down menu, select the *type* of employee. The default options are :guilabel:`Employee`, :guilabel:`Worker`, :guilabel:`Student`, :guilabel:`Trainee`, :guilabel:`Contractor`, and :guilabel:`Freelancer`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:552 +#: ../../content/applications/hr/employees/new_employee.rst:556 msgid ":guilabel:`Related User`: using the drop-down menu, select a user in the database to link to this employee." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:556 +#: ../../content/applications/hr/employees/new_employee.rst:560 msgid "Employees do **not** need to be users of the database." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:558 +#: ../../content/applications/hr/employees/new_employee.rst:562 msgid "*Employees* do **not** count towards the Odoo subscription billing, while *Users* **do** count towards billing. If the new employee should also be a user, the user **must** be created." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:561 +#: ../../content/applications/hr/employees/new_employee.rst:565 msgid "After the employee is created, click :guilabel:`Create User` at the end of the :guilabel:`Related User` line. A :guilabel:`Create User` form appears." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:564 +#: ../../content/applications/hr/employees/new_employee.rst:568 msgid "The employee name populates the :guilabel:`Name` field by default. If the :guilabel:`Email Address`, :guilabel:`Phone`, :guilabel:`Mobile`, and :guilabel:`photo` are populated on the employee form, the corresponding fields are auto-populated on the :guilabel:`Create User` form." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:568 +#: ../../content/applications/hr/employees/new_employee.rst:572 msgid "Once the form is completed, click the :guilabel:`Save` button. The user is created, and populates the :guilabel:`Related User` field." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:571 +#: ../../content/applications/hr/employees/new_employee.rst:575 msgid "Users can also be created manually. For more information on how to manually add a user, refer to the :doc:`../../general/users/` document." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:575 +#: ../../content/applications/hr/employees/new_employee.rst:579 msgid "APPLICATION SETTINGS" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:577 +#: ../../content/applications/hr/employees/new_employee.rst:581 msgid "This section affects the **Fleet** and **Manufacturing** apps. Enter the following information in this section." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:580 +#: ../../content/applications/hr/employees/new_employee.rst:584 msgid ":guilabel:`Hourly Cost`: enter the hourly cost for the employee, in a XX.XX format. This cost is factored in when the employee is working at a :doc:`work center <../../inventory_and_mrp/manufacturing/advanced_configuration/using_work_centers>`." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:585 +#: ../../content/applications/hr/employees/new_employee.rst:589 msgid "Manufacturing costs are added to the costs for producing a product, if the value of the manufactured product is **not** a fixed amount. This cost does **not** affect the **Payroll** application." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:589 +#: ../../content/applications/hr/employees/new_employee.rst:593 msgid ":guilabel:`Fleet Mobility Card`: if applicable, enter the :guilabel:`Fleet Mobility Card` number" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:592 +#: ../../content/applications/hr/employees/new_employee.rst:596 msgid "ATTENDANCE/POINT OF SALE" msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:594 +#: ../../content/applications/hr/employees/new_employee.rst:598 msgid "This section determines how employees sign in to either the **Attendances** or **Point Of Sale** apps, and only appear if either of these apps is installed." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:597 +#: ../../content/applications/hr/employees/new_employee.rst:601 msgid ":guilabel:`PIN Code`: enter the employee's pin number in this field. This code is used to sign in and out of **Attendances** app kiosks, and a :abbr:`POS (Point Of Sale)` system." msgstr "" -#: ../../content/applications/hr/employees/new_employee.rst:599 +#: ../../content/applications/hr/employees/new_employee.rst:603 msgid ":guilabel:`Badge ID`: click :guilabel:`Generate` at the end of the :guilabel:`Badge ID` line to create a badge number. Once generated, the badge number populates the :guilabel:`Badge ID` field, and :guilabel:`Generate` changes to :guilabel:`Print Badge`. Click :guilabel:`Print Badge` to create a PDF file of the employee's badge. The badge can be printed and used to log into a :abbr:`POS (point of sale)` system or :ref:`check-in ` on an **Attendances** app kiosk." msgstr "" @@ -3869,8 +3871,7 @@ msgstr "" #: ../../content/applications/hr/frontdesk.rst:35 #: ../../content/applications/hr/lunch/products.rst:12 #: ../../content/applications/hr/payroll.rst:828 -#: ../../content/applications/hr/payroll/work_entries.rst:56 -#: ../../content/applications/hr/time_off.rst:250 +#: ../../content/applications/hr/time_off.rst:251 msgid "Enter the following information on the form:" msgstr "" @@ -3971,8 +3972,7 @@ msgid "The employee form loads, displaying all their information. Click the :ico msgstr "" #: ../../content/applications/hr/employees/offboarding.rst:169 -#: ../../content/applications/hr/payroll/contracts.rst:281 -#: ../../content/applications/hr/time_off.rst:307 +#: ../../content/applications/hr/time_off.rst:308 msgid "Fill out the following fields on the form:" msgstr "" @@ -5009,7 +5009,7 @@ msgid "To determine the responsible person is for a contract, open an individual msgstr "" #: ../../content/applications/hr/fleet/new_vehicle.rst:51 -msgid "To open a contract from a list of all contracts, navigate to :menuselection:`Fleet app --> Fleet --> Contracts` and all contracts appear in the list. Click on a :guilabel:`Contract` to open it. In the :guilabel:`Information` section of the contract, look under :guilabel:`Responsible` to see who receives expiration alerts." +msgid "To open a contract from a list of all contracts, navigate to :menuselection:`Fleet app --> Fleet --> Contracts`, and all contracts appear in the list. Click on a :guilabel:`Contract` to open it. In the :guilabel:`Information` section of the contract, look under :guilabel:`Responsible` to see who receives expiration alerts." msgstr "" #: ../../content/applications/hr/fleet/new_vehicle.rst:56 @@ -5686,7 +5686,7 @@ msgstr "" #: ../../content/applications/hr/frontdesk.rst:215 #: ../../content/applications/hr/payroll/reporting.rst:3 #: ../../content/applications/hr/referrals/reporting.rst:3 -#: ../../content/applications/hr/time_off.rst:572 +#: ../../content/applications/hr/time_off/reporting.rst:3 msgid "Reporting" msgstr "" @@ -7155,6 +7155,7 @@ msgid "A new contract template form, with the fields filled in." msgstr "" #: ../../content/applications/hr/payroll.rst:133 +#: ../../content/applications/hr/payroll/contracts.rst:117 msgid "Salary information tab" msgstr "" @@ -7281,7 +7282,7 @@ msgstr "" #: ../../content/applications/hr/payroll.rst:237 #: ../../content/applications/hr/payroll.rst:665 -#: ../../content/applications/hr/payroll/contracts.rst:40 +#: ../../content/applications/hr/payroll/contracts.rst:50 msgid "General information section" msgstr "" @@ -7606,7 +7607,7 @@ msgid "Salary structure details for Regular Pay, listing all the specific Salary msgstr "" #: ../../content/applications/hr/payroll.rst:521 -#: ../../content/applications/hr/time_off.rst:300 +#: ../../content/applications/hr/time_off.rst:301 msgid "Rules" msgstr "" @@ -7746,7 +7747,7 @@ msgid "A new Input Type form filled in." msgstr "" #: ../../content/applications/hr/payroll.rst:624 -#: ../../content/applications/hr/recruitment.rst:94 +#: ../../content/applications/hr/recruitment.rst:69 msgid "Salary package configurator" msgstr "" @@ -7895,7 +7896,6 @@ msgid ":guilabel:`Assigned to`: select the user the activity is automatically as msgstr "" #: ../../content/applications/hr/payroll.rst:740 -#: ../../content/applications/hr/payroll/contracts.rst:133 msgid "Sign section" msgstr "" @@ -8093,9409 +8093,10478 @@ msgid ":doc:`payroll/work_entries`" msgstr "" #: ../../content/applications/hr/payroll.rst:898 -msgid ":doc:`payroll/salary_attachments`" +msgid ":doc:`payroll/time_off_to_report`" msgstr "" #: ../../content/applications/hr/payroll.rst:899 -msgid ":doc:`payroll/payslips`" +msgid ":doc:`payroll/salary_attachments`" msgstr "" #: ../../content/applications/hr/payroll.rst:900 -msgid ":doc:`payroll/reporting`" +msgid ":doc:`payroll/payslips`" msgstr "" #: ../../content/applications/hr/payroll.rst:901 -msgid ":doc:`payroll/work_entry_analysis`" +msgid ":doc:`payroll/batches`" msgstr "" #: ../../content/applications/hr/payroll.rst:902 -msgid ":doc:`payroll/salary_attachment`" +msgid ":doc:`payroll/commissions`" msgstr "" #: ../../content/applications/hr/payroll.rst:903 -msgid ":doc:`payroll/payroll_localizations`" +msgid ":doc:`payroll/reporting`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:5 -msgid "Every employee in Odoo is required to have a running contract in order to be paid. A contract outlines the terms of an employee's position, their compensation, working hours, and any other details about their position." +#: ../../content/applications/hr/payroll.rst:904 +msgid ":doc:`payroll/headcount`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:10 -msgid "Contract documents (PDFs) are uploaded and organized using the *Documents* application, and are signed using the *Sign* application. Ensure these applications are installed to send and sign contracts. Please refer to the :doc:`../../productivity/documents` and :doc:`../../productivity/sign` documentation." +#: ../../content/applications/hr/payroll.rst:905 +msgid ":doc:`payroll/work_entry_analysis`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:15 -msgid "To view the employee contracts, go to the :menuselection:`Payroll app --> Contracts --> Contracts` from the top menu. All employee contracts, and their current contract status, are displayed in a list view, by default. The list view displays running contracts, contracts that require action, expired contracts, and cancelled contracts." +#: ../../content/applications/hr/payroll.rst:906 +msgid ":doc:`payroll/payroll_localizations`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:-1 -msgid "Contracts dashboard view showing running contracts and contracts with issues." +#: ../../content/applications/hr/payroll/batches.rst:3 +msgid "Batches" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:25 -msgid "The list of contracts in the *Payroll* application matches the list of contracts in the *Employees* application." +#: ../../content/applications/hr/payroll/batches.rst:5 +msgid "Batches are used to generate multiple :doc:`payslips ` at once and process them in a group, rather than create and process individual payslips. This method not only helps the payroll department pay employees in less time, but it also helps keep payslips organized." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:30 -msgid "In order for an employee to be paid, an active contract is required. If a new contract is needed, click the :guilabel:`Create` button on the :guilabel:`Contracts` dashboard. A contract form appears where the information can be entered." +#: ../../content/applications/hr/payroll/batches.rst:9 +msgid "Typically, a company's payroll department :ref:`creates a new batch ` for each salary structure, for every pay period (usually weekly, bi-weekly, or monthly). If desired, batches can be further organized by department, job position, or salary structure type." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:35 -msgid "New contract form" +#: ../../content/applications/hr/payroll/batches.rst:13 +msgid "Once a batch is made, :ref:`payslips are added to the batch `, then the batch is processed, and employees are paid." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:42 -msgid ":guilabel:`Contact Reference`: type in the name or title for the contract, such as `John Smith Contract`. This field is **required**." +#: ../../content/applications/hr/payroll/batches.rst:17 +msgid "View batches" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:44 -msgid ":guilabel:`Employee`: using the drop-down menu, select the employee that the contract applies to." +#: ../../content/applications/hr/payroll/batches.rst:19 +msgid "To view all the batches in the database, navigate to :menuselection:`Payroll app --> Payslips --> Batches` to display all payslip batches that have been created. These payslip batches are displayed in a list view, by default." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:45 -msgid ":guilabel:`Contract Start Date`: the date the contract starts. To choose a date, click the drop-down menu, navigate to the correct month and year with the :guilabel:`< > (arrow)` icons, then click on the desired date. This field is **required**." +#: ../../content/applications/hr/payroll/batches.rst:23 +msgid "Each batch displays the :guilabel:`Name`, the dates the batch includes (the :guilabel:`Date From` and :guilabel:`Date To` fields), its :guilabel:`Status`, the number of payslips in the batch (:guilabel:`Payslips Count`), and the :guilabel:`Company`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:48 -msgid ":guilabel:`Contract End Date`: if the contract has a specific end date, click the drop-down menu, navigate to the correct month and year with the :guilabel:`< > (arrow)` icons, then click on the desired date." +#: ../../content/applications/hr/payroll/batches.rst:-1 +msgid "View displaying all batches created." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:51 -msgid ":guilabel:`Working Schedule`: select one of the working schedules from the drop-down menu. This field is **required**." +#: ../../content/applications/hr/payroll/batches.rst:33 +msgid "Create a new batch" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:55 -msgid "The :guilabel:`Working Schedule` drop-down menu displays all the working schedules for the selected company. To modify or add to this list, go to :menuselection:`Payroll app --> Configuration --> Working Schedules`. Click :guilabel:`New`, and create a new working schedule, or click on an existing working schedule and make edits." +#: ../../content/applications/hr/payroll/batches.rst:35 +msgid "New batches of payslips must be created from the :guilabel:`Payslips Batches` dashboard, by navigating to :menuselection:`Payroll app --> Payslips --> Batches`. Click the :guilabel:`New` button in the top-left corner. Doing so reveals a blank payslip batch form on a separate page." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:60 -msgid ":guilabel:`Work Entry Source`: select how the :doc:`work entries ` are generated. This field is **required**. Click the radio button next to the desired selection. The options are:" +#: ../../content/applications/hr/payroll/batches.rst:39 +msgid "On the new payslip batch form, enter the :guilabel:`Batch Name`. This should be something short and descriptive, to keep records organized." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:63 -msgid ":guilabel:`Working Schedule`: work entries are generated based on the selected :guilabel:`Working Schedule`." +#: ../../content/applications/hr/payroll/batches.rst:43 +msgid "A company pays its employees on a bi-weekly basis, and creates separate batches for their two different :ref:`salary structures ` they use: worker pay and regular pay." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:65 -msgid ":guilabel:`Attendances`: work entries are generated based on the employee's check-in records in the *Attendances* application. (This requires the *Attendances* application)." +#: ../../content/applications/hr/payroll/batches.rst:47 +msgid "The names for their four August 2025 batches are:" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:67 -msgid ":guilabel:`Planning`: work entries are generated based on the planned schedule for the employee from the *Planning* application. (This requires the *Planning* application)." +#: ../../content/applications/hr/payroll/batches.rst:49 +msgid "`Aug 1-14 2025 - Worker`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:70 -msgid ":guilabel:`Salary Structure Type`: select one of the salary structure types from the drop-down menu. The default salary structure types are :guilabel:`Employee` or :guilabel:`Worker`. A :ref:`new salary structure type ` can be created, if needed." +#: ../../content/applications/hr/payroll/batches.rst:50 +msgid "`Aug 1-14 2025 - Regular`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:73 -msgid ":guilabel:`Department`: select the department the contract applies to from the drop-down menu." +#: ../../content/applications/hr/payroll/batches.rst:51 +msgid "`Aug 15-31 2025 - Worker`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:74 -msgid ":guilabel:`Job Position`: select the specific job position the contract applies to from the drop-down menu." +#: ../../content/applications/hr/payroll/batches.rst:52 +msgid "`Aug 15-31 2025 - Regular`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:78 -msgid "If the selected :guilabel:`Job Position` has a contract template linked to it with a specific :guilabel:`Salary Structure Type`, the :guilabel:`Salary Structure Type` changes to the one associated with that :guilabel:`Job Position`." +#: ../../content/applications/hr/payroll/batches.rst:54 +msgid "Next, select the date range to which the batch applies. Click into one of the :guilabel:`Period` fields, and a calendar pop-up window appears. From this calendar pop-up window, navigate to the correct month, and click on the corresponding day for both the start and end dates of the batch." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:82 -msgid ":guilabel:`Wage on Payroll`: enter the employee's monthly wage." +#: ../../content/applications/hr/payroll/batches.rst:58 +msgid "The current company populates the :guilabel:`Company` field. If operating in a multi-company environment, it is **not** possible to modify the :guilabel:`Company` from the form. The batch **must** be created while in the database for the desired company." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:83 -msgid ":guilabel:`Contract Type`: choose either :guilabel:`Permanent`, :guilabel:`Temporary`, :guilabel:`Seasonal`, :guilabel:`Full-Time`, or :guilabel:`Part-Time` from the drop-down menu." +#: ../../content/applications/hr/payroll/batches.rst:-1 +msgid "The details entered for the new batch." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:-1 -msgid "New contract form to be filled in when creating a new contract, with required fields\n" -"outlined in red." +#: ../../content/applications/hr/payroll/batches.rst:68 +msgid "Add payslips to a batch" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:92 -msgid "The :guilabel:`Working Schedule` drop-down menu displays all the working times for the selected :guilabel:`Company`. To modify or add to this list, go to :menuselection:`Payroll app --> Configuration --> Working Times`, and either :guilabel:`Create` a new working time, or click on an existing working time, then edit it by clicking :guilabel:`Edit`." +#: ../../content/applications/hr/payroll/batches.rst:70 +msgid "Once a :ref:`batch has been created `, payslips need to be added to the batch. Payslips can either be :ref:`created and added ` to the batch, or if they have *already* been created, they can be :ref:`added to the batch `." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:97 -msgid ":guilabel:`Yearly Cost (Real)`: this field automatically updates after the :guilabel:`Schedule Pay` and :guilabel:`Wage` fields are entered. This amount is the total yearly cost for the employer. This field can be modified. However, if this is modified, the :guilabel:`Wage` field updates, accordingly. Ensure both the :guilabel:`Wage` and :guilabel:`Yearly Cost (Real)` are correct if this field is modified." +#: ../../content/applications/hr/payroll/batches.rst:75 +msgid "Batches can only have payslips added to them when they are in the :guilabel:`New` stage. Payslips can either be :ref:`created by the database ` and added to the batch, or :ref:`pre-existing payslips can be individually added ` to the batch." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:102 -msgid ":guilabel:`Monthly Cost (Real)`: this field automatically updates after the :guilabel:`Schedule Pay` and :guilabel:`Wage` fields are entered. This amount is the total monthly cost for the employer. This field **cannot** be modified, and is calculated based on the :guilabel:`Yearly Cost (Real)`." +#: ../../content/applications/hr/payroll/batches.rst:79 +msgid "Once either of these methods has been used, the status of the batch changes to :guilabel:`Confirmed`, and both options to add payslips no longer appears." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:0 -msgid "Optional tabs for a new contract." +#: ../../content/applications/hr/payroll/batches.rst:85 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:102 +msgid "Generate payslips" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:112 -msgid "Contract Details tab" +#: ../../content/applications/hr/payroll/batches.rst:87 +msgid "To generate the payslips and add them to the batch, first open the batch by navigating to :menuselection:`Payroll app --> Payslips --> Batches`, and click on the desired batch. Next, click the :guilabel:`Generate Payslips` button and a :guilabel:`Generate Payslips` pop-up window loads." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:114 -msgid "The :guilabel:`Contract Details` tab allows for the addition and editing of a contract, along with specifying which template to use when a new contract is created. These fields **must** be populated in order to create a new contract." +#: ../../content/applications/hr/payroll/batches.rst:91 +msgid "This form contains three sections, and the configuration of this form determines which payslips are created. The :guilabel:`Employees Selection` section determines which employees' payslips to create. Using the drop-down menus, configure the :guilabel:`Department`, :guilabel:`Job Position`, and :guilabel:`Salary Structure Type` fields, if desired. As selections are made, the :guilabel:`Employees` section at the bottom updates to show which payslips are going to be generated." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:119 -msgid "To access the various contract template fields in the :guilabel:`Contract Details` tab, the *Salary Configurator* (`hr_contract_salary`) module **must** be :ref:`installed `." +#: ../../content/applications/hr/payroll/batches.rst:98 +msgid "The :guilabel:`Payslip Generation` section allows the user to pick a specific :guilabel:`Salary Structure` to create payslips for. If left blank, the default structure for each employee is used to calculate their pay." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:123 -msgid "When the *Salary Configurator* module is installed, the *Salary Configurator - Holidays* and *Salary Configurator - Payroll* modules install, as well." +#: ../../content/applications/hr/payroll/batches.rst:103 +msgid "By default, Odoo lists all employees in the :guilabel:`Employees` section when generating payslips." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:126 -msgid "Once the modules are installed, the database reverts to the main dashboard." +#: ../../content/applications/hr/payroll/batches.rst:106 +msgid "The list filters automatically as selections are made." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:128 -msgid ":guilabel:`Contract Template`: select a pre-existing contract template from the drop-down menu. Contract templates are typically created through the configuration menu, and stored in the *Documents* application." +#: ../../content/applications/hr/payroll/batches.rst:108 +msgid "Configuration is optional unless a batch is being created **excluding** certain employees." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:135 -msgid ":guilabel:`HR Responsible`: select the person who is responsible for validating the contract from the drop-down menu. This field is required." +#: ../../content/applications/hr/payroll/batches.rst:110 +msgid "Once all the desired configurations have been made, click the :guilabel:`Generate` button, and all payslips are created and attached to the batch. Once generated, a :icon:`fa-book` :guilabel:`Payslips` smart button appears at the top, along with the number of payslips in the batch. Click this smart button to view a list of all the payslips in the batch." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:137 -msgid ":guilabel:`New Contract Document Template`: select a contract from the drop-down menu to be modified for this new employee contract. These documents are stored in the *Sign* application." +#: ../../content/applications/hr/payroll/batches.rst:115 +msgid "Once the payslips have been generated and attached to the batch, the status of the batch changes to :guilabel:`Confirmed`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:139 -msgid ":guilabel:`Contract Update Document Template`: select a contract from the drop-down menu, if the employee has an existing contract that requires updating. These documents are stored in the *Sign* application." +#: ../../content/applications/hr/payroll/batches.rst:-1 +msgid "Payslips being generated for marketing and community managers." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:144 -msgid "The :guilabel:`HR Responsible`, :guilabel:`New Contract Document Template`, and :guilabel:`Contract Update Document Template` fields are only visible if the *Sign* application is installed, along with the `hr_contract_salary` and `hr_contract_salary_payroll` :doc:`modules <../../general/apps_modules>`. The *Sign* application is where the contract templates are stored. This application is required for an employee to sign any contract." +#: ../../content/applications/hr/payroll/batches.rst:124 +msgid "Add payslips" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:151 -msgid "Accounting section" +#: ../../content/applications/hr/payroll/batches.rst:126 +msgid "Instead of generating payslips, :ref:`individual payslips that have already been created ` can be added to a batch. Start by opening the desired batch by navigating to :menuselection:`Payroll app --> Payslips --> Batches`, and clicking on the desired batch." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:153 -msgid ":guilabel:`Analytic Account`: select the account the contract affects from the drop-down menu. It is recommended to check with the accounting department to ensure the correct account is selected." +#: ../../content/applications/hr/payroll/batches.rst:130 +msgid "Next, click the :guilabel:`Add Payslips` button, and an :guilabel:`Add Payslips` form loads in a pop-up window. All available payslips that have not yet been added to a batch, appear on the list." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:157 -msgid "Part Time section" +#: ../../content/applications/hr/payroll/batches.rst:134 +msgid "**All** payslips not yet assigned to a batch appear in the list, regardless of status (:guilabel:`Draft`, :guilabel:`Waiting`, :guilabel:`Paid`, or :guilabel:`Cancelled`). This allows already processed or cancelled payslips to be grouped retroactively for reporting or record keeping purposes." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:159 -msgid ":guilabel:`Part Time`: tick this box if the employee is working part-time. When active, additional fields appear:" +#: ../../content/applications/hr/payroll/batches.rst:139 +msgid "Tick the checkbox next to each desired payslip to be added, then click the :guilabel:`Select` button at the bottom. All selected payslips are added to the batch, and the status of the batch changes to :guilabel:`Confirmed`. A :icon:`fa-book` :guilabel:`Payslips` smart button appears at the top, along with the number of payslips in the batch. Click this smart button to view a list of all the payslips in the batch." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:162 -msgid ":guilabel:`% (Percentage)`: enter the percent of time the employee works as compared to a full-time employee." +#: ../../content/applications/hr/payroll/batches.rst:-1 +#: ../../content/applications/hr/payroll/batches.rst:-1 +msgid "Adding individual payslips to a batch by selecting them form this list." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:164 -msgid ":guilabel:`Standard Calendar`: select the working hours that a typical full-time worker uses from the drop-down menu." +#: ../../content/applications/hr/payroll/batches.rst:151 +msgid "Process a batch" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:166 -msgid ":guilabel:`Part Time Work Entry Type`: select the work entry type that generates the balance of a full-time working schedule." +#: ../../content/applications/hr/payroll/batches.rst:153 +msgid "After a :ref:`batch has been created ` , and :ref:`all required payslips have been added `, the batch must then be processed, and employees paid." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:170 -msgid "If a full-time employee works 40 hours a week, and the employee works 20, enter `50` in the :guilabel:`% (Percentage)` field (50% of 40 hours = 20 hours). The employee generates twenty (20) hours of work entries under the work entry type `part-time`, and another twenty (20) hours of work entries under the work entry type `generic time off`, for a total of forty (40) hours worth of work entries." +#: ../../content/applications/hr/payroll/batches.rst:156 +msgid "Open the desired batch by navigating to :menuselection:`Payroll app --> Payslips --> Batches`, and clicking on the desired batch. For a batch to be processed, it must have a status of :guilabel:`Confirmed`. That means the batch has been created and payslips have been added to them, but the payslips have *not* been processed yet." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:177 -msgid "Notes section" +#: ../../content/applications/hr/payroll/batches.rst:161 +msgid "Click the :guilabel:`Create Draft Entry` button to confirm and create a draft of the individual payslips. After this occurs, the batch status changes to :guilabel:`Done`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:179 -msgid ":guilabel:`Notes`: a text field where any notes for the employee contract are entered for future reference." +#: ../../content/applications/hr/payroll/batches.rst:165 +msgid "At any time, the batch needs to be reverted back to a status of :guilabel:`New`, click the :guilabel:`Set to Draft` button. This action does **not** remove any payslips that have already been added to the batch, instead, the status changes back to :guilabel:`New`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:-1 -msgid "Contract details in optional tabs for a new contract." +#: ../../content/applications/hr/payroll/batches.rst:169 +msgid "After any desired changes have been made, click :guilabel:`Confirm` and the batch status changes to :guilabel:`Confirmed`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:187 -msgid "Modify a contract template" +#: ../../content/applications/hr/payroll/batches.rst:172 +msgid "It is important to note, that if any payslips in the batch have a status of :guilabel:`Paid`, the batch **cannot** revert to a status of :guilabel:`New`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:189 -msgid "Click the :icon:`fa-external-link` :guilabel:`(external Link)` icon at the end of either the :guilabel:`New Contract Document Template` or :guilabel:`Contract Update Document Template` to open the corresponding contract template, and proceed to make any desired changes." +#: ../../content/applications/hr/payroll/batches.rst:175 +msgid "Once the status has changed to :guilabel:`Done`, the payments must be logged in the database. Click the :guilabel:`Create Payment Report` button, and a pop-up window loads, where the payment report details are entered." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:193 -msgid "Click the :guilabel:`Upload your file` button next to the corresponding document, navigate to the file, then click :guilabel:`Open` to select the document and add it to the tab." +#: ../../content/applications/hr/payroll/batches.rst:179 +msgid "Using the drop-down menu, select the :guilabel:`Export Format` for the payment report. The two default options available are :guilabel:`NACHA`, and :guilabel:`CSV`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:197 -msgid "Modifying document templates" +#: ../../content/applications/hr/payroll/batches.rst:182 +msgid "The :guilabel:`NACHA` option creates a compatible ACH file which is sent to the company's bank, and outlines all the banking information to transfer money from the company to the employees, either via direct deposit (most common) or a check. Refer to the :ref:`fiscal localization document ` for more information." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:199 -msgid "Contracts templates can be modified at any point when changes are needed." +#: ../../content/applications/hr/payroll/batches.rst:188 +#: ../../content/applications/hr/payroll/payslips.rst:222 +msgid "Other options may be available depending on the :doc:`payroll localization ` installed in the database." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:201 -msgid ":guilabel:`Tags`: select any tags associated with the contract." +#: ../../content/applications/hr/payroll/batches.rst:191 +msgid "If :guilabel:`CSV` is selected, all other fields are hidden form view. Once this is selected, click the :guilabel:`Generate` button to create the payment report." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:202 -msgid ":guilabel:`Signed Document Workspace`: this is where the signatures are stored. Choose a pre-configured workspace, or create a new one. To create a new :guilabel:`Signed Document Workspace`, type in the name of the workspace, then click either :guilabel:`Create` to add the new workspace, or :guilabel:`Create and Edit` to add the workspace and modify the workspace details." +#: ../../content/applications/hr/payroll/batches.rst:194 +msgid "Next, select the desired :guilabel:`Bank Journal` the paychecks are logged on. Last, using the calendar selector, set the date the paychecks are issued in the :guilabel:`Effective Date` field." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:206 -msgid ":guilabel:`Signed Document Tags`: select or create any tags that are only associated with the signed contract, as opposed to the original unsigned contract." +#: ../../content/applications/hr/payroll/batches.rst:197 +msgid "Once the pop-up window is configured, click the :guilabel:`Generate` button, and the file appears on the batch form, in a new :guilabel:`Payment Report` field." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:208 -msgid ":guilabel:`Redirect Link`: enter a redirect link for the employee to access the contract. A redirect link takes the user from one URL to another. In this case, it takes them to the newly-updated contract specifically written for them." +#: ../../content/applications/hr/payroll/batches.rst:200 +msgid "After the report is created, click the :guilabel:`Mark as paid` button to mark the payslips as paid in the database." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:211 -msgid ":guilabel:`Who can Sign`: select either :guilabel:`All Users` or :guilabel:`On Invitation`." +#: ../../content/applications/hr/payroll/commissions.rst:4 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:360 +msgid "Commissions" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:213 -msgid ":guilabel:`All Users`: any user in the organization can sign the contract." +#: ../../content/applications/hr/payroll/commissions.rst:6 +msgid "Commissions are payments made to employees that are earned as part of their salary. The payments are awarded after a sale has been made, and the amount depends on how much the sale was. Typically the amount is either a percentage of the sale, or a set commission based on a structure created by the company." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:214 -msgid ":guilabel:`On Invitation`: only users selected in this field can sign the contract." +#: ../../content/applications/hr/payroll/commissions.rst:11 +msgid "To pay an employee a commission they earned, a separate commission paycheck must be issued to the employee. In Odoo, a commission payslip is referred to as a *warrant payslip*." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:216 -msgid ":guilabel:`Invited Users`: select the person (or people) that can sign the document." +#: ../../content/applications/hr/payroll/commissions.rst:15 +msgid "Create warrant payslips" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:217 -msgid ":guilabel:`Document`: the attached document can be replaced by clicking the :icon:`fa-pencil` :guilabel:`(pencil)` icon. A pop-up window appears, so another document can be selected for upload. The file **must** be a PDF. To remove the document, click the :icon:`fa-trash-o` :guilabel:`(trash can)` icon." +#: ../../content/applications/hr/payroll/commissions.rst:17 +msgid "Warrant payslips are generated directly from the :guilabel:`Payslips Batches` dashboard, which is accessed by navigating to :menuselection:`Payroll app --> Payslips --> Batches`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:222 -msgid "Once the edits are complete, click the :guilabel:`Save` button. All the information for the selected contract template populates the fields in the :guilabel:`Salary Information` tab. Any additional tabs, such as :guilabel:`Personal Documents`, appears if applicable." +#: ../../content/applications/hr/payroll/commissions.rst:20 +msgid "First, click the :guilabel:`Generate Warrant Payslips` button in the top-left corner. Doing so reveals a :guilabel:`Generate Warrant Payslips` pop-up window, in which the necessary information **must** be filled out." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:227 -msgid "Personal documents" +#: ../../content/applications/hr/payroll/commissions.rst:24 +msgid "Set the time frame the commission was earned, in the two fields next to :guilabel:`Period`. Click into each field, and a calendar pop-up window loads. Navigate to the desired date and click on it to select it." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:229 -msgid "This tab **only** appears after an :guilabel:`Employee` is selected, and houses any documents that are linked to the employee on their employee record. Documents cannot be added to this tab, this tab **only** shows documents that are already uploaded and associated with the employee." +#: ../../content/applications/hr/payroll/commissions.rst:28 +msgid "Using the drop-down menu, select the :guilabel:`Department` in the corresponding field. When a department is selected, the employees listed for that department appear in the :guilabel:`Employee` section, below." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:233 -msgid "The available documents in this tab can be downloaded. Click the :icon:`fa-download` :guilabel:`(download)` icon next to the document to download it." +#: ../../content/applications/hr/payroll/commissions.rst:32 +msgid "If a file is needed for the record, upload a file to the :guilabel:`Import File` field, such as a sales invoice, using the :guilabel:`Upload your file` button. Any file type is accepted." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:237 -msgid "Send the contract" +#: ../../content/applications/hr/payroll/commissions.rst:35 +msgid "Under the :guilabel:`Employee` section, enter the individual :guilabel:`Commission Amount` for each employee in the far-right column. To remove an employee, click the :icon:`fa-trash-o` :guilabel:`(trash)` icon to remove the line." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:239 -msgid "Click on the following button to send the contract to the employee:" +#: ../../content/applications/hr/payroll/commissions.rst:39 +msgid "Add a new commission by clicking :guilabel:`Add a Line`, and entering the :guilabel:`Employee` and the appropriate :guilabel:`Commission Amount`." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:-1 -msgid "Send the contract to the employee via one of the buttons." +#: ../../content/applications/hr/payroll/commissions.rst:42 +msgid "Once all the commissions are properly entered, click the :guilabel:`Generate Payslips` button to create the warrant payslips in a batch, or click :guilabel:`Export` to export a CSV file of the commissions." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:245 -msgid ":guilabel:`Generate Offer`: Clicking this opens a pop-up window that contains the basic information from the contract, as well as a link for the contract when using the salary configurator. Click :guilabel:`Send` to send an email to the employee, so they can sign the contract." +#: ../../content/applications/hr/payroll/commissions.rst:46 +msgid ":ref:`Process the batch ` in the same way as a typical batch to complete the payment process." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:250 -msgid "At the bottom of the pop-up form is a :guilabel:`Link Expiration Date`. This is the timeframe that the contract offer is valid for. By default, this field is pre-populated with `30 days`, but it can be modified." +#: ../../content/applications/hr/payroll/commissions.rst:-1 +msgid "Enter the commission details." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:255 -msgid "In order to send a contract using the :guilabel:`Generate Simulation Link`, there **must** be a signature field in the contract PDF being sent to the employee, so they can sign it." +#: ../../content/applications/hr/payroll/commissions.rst:53 +msgid ":doc:`Commissions <../../sales/sales/commissions>`" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:258 -msgid ":guilabel:`Signature Request`: clicking this reveals a pop-up window, where an email can be typed to the employee. Select the document (such as a contract, NDA, or Homeworking Policy) from the drop-down menu, and fill out the email section. Click :guilabel:`Send` when the email is ready to be sent." +#: ../../content/applications/hr/payroll/contracts.rst:5 +msgid "Every employee in Odoo is required to have a running contract in order to be paid. A contract outlines the terms of an employee's position, their compensation, working hours, and any other relevant details pertaining to their compensation." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:264 -msgid "To send a contract using the :guilabel:`Generate Simulation Link`, there **must** be a signature field in the contract PDF being sent to the employee, so they can sign it." +#: ../../content/applications/hr/payroll/contracts.rst:10 +msgid "Contract documents (PDFs) are uploaded and organized using the **Documents** application, and are signed using the **Sign** application. Ensure these applications are installed to send and sign contracts. Please refer to the :doc:`../../productivity/documents` and :doc:`../../productivity/sign` documentation for more information." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:268 -#: ../../content/applications/hr/payroll/salary_attachments.rst:3 -msgid "Salary attachments" +#: ../../content/applications/hr/payroll/contracts.rst:18 +msgid "Contracts dashboard" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:270 -msgid "Any automatic deductions or allocations for an employee, such as child support payments and wage garnishments, are referred to as a *salary attachment*. This section is where all of these deductions or allocations are set." +#: ../../content/applications/hr/payroll/contracts.rst:20 +msgid "Both the **Payroll** and **Employees** apps display *identical employee contract information*." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:274 -msgid "To add a new deduction, first navigate to :menuselection:`Payroll app --> Contracts --> Salary Attachments`. Next, click :guilabel:`Create`, and a new salary attachment form loads." +#: ../../content/applications/hr/payroll/contracts.rst:22 +msgid "To access the contracts dashboard from the **Employees** app, navigate to :menuselection:`Employees app --> Employees --> Contracts`. To access the contracts dashboard from the **Payroll** app, navigate to :menuselection:`Payroll app --> Contracts --> Contracts`." +msgstr "" + +#: ../../content/applications/hr/payroll/contracts.rst:26 +msgid "The :guilabel:`Contracts` dashboard displays all employee contracts in a default list view, grouped by :guilabel:`Status`. The available status groupings are :guilabel:`New`, :guilabel:`Running`, :guilabel:`Expired`, and :guilabel:`Cancelled`. Each grouping displays the number of contracts within the grouping." msgstr "" #: ../../content/applications/hr/payroll/contracts.rst:-1 -msgid "The salary attachment form with everything filled in for Ronnie Hart's child support." +msgid "Contracts dashboard view showing running contracts and contracts with issues." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:283 -msgid ":guilabel:`Employee`: using the drop-down menu, select the employee the salary attachment applies to." +#: ../../content/applications/hr/payroll/contracts.rst:35 +msgid "Any changes made to contracts in the **Employees** app is reflected in the **Payroll** app, and vice versa. Contract information remains identical, regardless of where the contract information is accessed." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:285 -msgid ":guilabel:`Description`: enter a short description for the salary attachment, such as `Child Support` or `529 Contribution`." +#: ../../content/applications/hr/payroll/contracts.rst:42 +msgid "Create a contract" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:287 -msgid ":guilabel:`Type`: using the drop-down menu, select the type of salary attachment being created." +#: ../../content/applications/hr/payroll/contracts.rst:44 +msgid "To create a new contract, click the :guilabel:`New` button on the :ref:`Contracts dashboard `, and a blank contract form appears." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:288 -msgid ":guilabel:`Start Date`: the date the salary attachment starts. Choose a date by clicking on the drop-down menu, navigating to the correct month and year by using the :icon:`fa-chevron-left` :icon:`fa-chevron-right` :guilabel:`(arrow)` icons, then clicking on the desired date. This field is **required**." +#: ../../content/applications/hr/payroll/contracts.rst:52 +msgid "Enter the following information in the top-half of the blank contract form:" msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:292 -msgid ":guilabel:`Estimated End Date`: this field automatically populates after both the :guilabel:`Monthly Amount` and :guilabel:`Total Amount` fields are populated. This field is **not** modifiable." +#: ../../content/applications/hr/payroll/contracts.rst:54 +msgid ":guilabel:`Contact Reference`: Type in the name or title for the contract, such as `John Smith Contract`. This field is **required**." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:295 -msgid ":guilabel:`Document`: attach any documents relevant to the salary attachment. Click the :guilabel:`Upload Your File` button, navigate to the desired document in the file explorer, then click :guilabel:`Open` to select the document, and attach it to the form. To change the attached document, click the :icon:`fa-pencil` :guilabel:`(pencil)` icon, and select a different document. To remove a document, click the :icon:`fa-trash-o` :guilabel:`(trash can)` icon." +#: ../../content/applications/hr/payroll/contracts.rst:56 +msgid ":guilabel:`Employee`: Using the drop-down menu, select the employee the contract is for." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:300 -msgid ":guilabel:`Monthly Amount`: enter the amount to be taken out of the employee's paycheck every month for this specific salary attachment." +#: ../../content/applications/hr/payroll/contracts.rst:57 +msgid ":guilabel:`Contract Start Date`: Required. Defaults to the current date. To choose a different date, click into the field. In the popover calendar, select a different date." msgstr "" -#: ../../content/applications/hr/payroll/contracts.rst:302 -msgid ":guilabel:`Total Amount`: enter the total amount that the employee pays for the salary attachment to be completed." +#: ../../content/applications/hr/payroll/contracts.rst:59 +msgid ":guilabel:`Contract End Date`: Optional. Select a date from the calendar popover, or leave blank for an indefinite contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:5 -msgid "Payroll localizations" +#: ../../content/applications/hr/payroll/contracts.rst:61 +msgid ":guilabel:`Working Schedule`: Select one of the available working schedules the employee is expected to work, from the drop-down menu. If this field is left blank, this allows the employee to work as many or as few hours as desired every week, with no restrictions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:7 -msgid "*Localizations* are country-specific settings preconfigured in Odoo at the creation of the database, which account for all taxes, fees, and allowances for that particular country." +#: ../../content/applications/hr/payroll/contracts.rst:66 +msgid "The :guilabel:`Working Schedule` drop-down menu displays all the working schedules for the selected company. To modify or add to this list, go to :menuselection:`Payroll app --> Configuration --> Working Schedules`. Click :guilabel:`New`, and create a new working schedule, or click on an existing working schedule and make edits." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:10 -msgid "*Payroll localizations* refer to the specific process of adapting payroll systems, policies, and compliance measures to align with the specific labor laws, tax regulations, and social security requirements of a particular country or region." +#: ../../content/applications/hr/payroll/contracts.rst:71 +msgid ":guilabel:`Work Entry Source`: Using the drop-down menu, select how the :doc:`work entries ` are generated. This field is **required**. Click the radio button next to the desired selection. The options are:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:14 -msgid "This ensures that employee salaries, benefits, deductions, and contributions are processed accurately and in full compliance with local legal and financial obligations." +#: ../../content/applications/hr/payroll/contracts.rst:75 +msgid ":guilabel:`Working Schedule`: Work entries are generated based on the selected :guilabel:`Working Schedule`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:17 -msgid "Localization also includes integrating country-specific payroll elements such as benefits, holidays, termination rules, and reporting requirements, helping businesses avoid legal risks while ensuring employees receive their correct compensation." +#: ../../content/applications/hr/payroll/contracts.rst:77 +msgid ":guilabel:`Attendances`: Work entries are generated based on the employee's check-in records in the **Attendances** app. (This requires the **Attendances** app to be installed)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:22 -msgid "Install localization package" +#: ../../content/applications/hr/payroll/contracts.rst:79 +msgid ":guilabel:`Planning`: Work entries are generated based on the planned schedule for the employee from the **Planning** app. (This requires the **Planning** app to be installed)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:24 -msgid "A country-specific localization module :ref:`must be installed ` to properly configure and process payroll. To install the required module, first open the **Apps** app." +#: ../../content/applications/hr/payroll/contracts.rst:82 +msgid ":guilabel:`Salary Structure Type`: Select one of the salary structure types from the drop-down menu. The default salary structure types are :guilabel:`Employee` or :guilabel:`Worker`. A :ref:`new salary structure type ` can be created, if needed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:27 -msgid "Clear out the default :icon:`fa-filter` :guilabel:`Apps` filter, then type the name of the desired country into the search bar. All available modules for that country are presented." +#: ../../content/applications/hr/payroll/contracts.rst:85 +msgid ":guilabel:`Department`: Select the department the employee is working within, using the drop-down menu." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:31 -msgid "Some countries only have one localization module, while other have multiple modules. This is typically when other software is neede to process payroll, and importing and exporting data is required." +#: ../../content/applications/hr/payroll/contracts.rst:87 +msgid ":guilabel:`Job Position`: Select the employee's specific job position using the drop-down menu." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:35 -msgid "For example. when searching for **Payroll** modules for `Egypt`, the following modules appear in the search, and must be installed: `Egypt - Payroll` and `Egypt - Payroll with Accounting`." +#: ../../content/applications/hr/payroll/contracts.rst:90 +msgid "If the selected :guilabel:`Job Position` has a contract template linked to it with a specific :guilabel:`Salary Structure Type`, the :guilabel:`Salary Structure Type` changes to the one associated with that :guilabel:`Job Position`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:38 -msgid "Refer to the :ref:`country-specific documentation ` for a complete list of the related **Payroll** modules required for each specific country." +#: ../../content/applications/hr/payroll/contracts.rst:94 +msgid ":guilabel:`Contract Type`: Using the drop-down menu, select the type of contract being created. The default options are :guilabel:`Permanent`, :guilabel:`Temporary`, :guilabel:`Seasonal`, :guilabel:`Full-Time`, :guilabel:`Intern`, :guilabel:`Student`, :guilabel:`Apprenticeship`, :guilabel:`Thesis`, :guilabel:`Statutory`, and :guilabel:`Employee`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:42 -msgid "To see if any localization modules have been installed on the database, navigate to :menuselection:`Payroll app --> Configuration --> Settings`. In the :guilabel:`Settings` page, if a localization module was installed, a :guilabel:`(Country) Localization` section appears." +#: ../../content/applications/hr/payroll/contracts.rst:98 +msgid ":guilabel:`Wage on Payroll`: Enter the employee's monthly wage in this field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:47 -msgid "It is **not** recommended to alter the localization settings, unless specifically required." +#: ../../content/applications/hr/payroll/contracts.rst:101 +msgid "The :guilabel:`Working Schedule` drop-down menu displays all the working times for the selected :guilabel:`Company`. To modify or add to this list, go to :menuselection:`Payroll app --> Configuration --> Working Times`, and either :guilabel:`Create` a new working time, or click on an existing working time, then edit it by clicking :guilabel:`Edit`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:50 -msgid "Odoo can handle a multi-company configuration. This is generally done when there is a main company or office location, such as a headquarters, and there are other offices/branches around the country or globe, that fall under that main company or headquarters. In Odoo, each company, including the headquarters, must be set up as their own company/branch using the multi-company method." +#: ../../content/applications/hr/payroll/contracts.rst:106 +msgid ":guilabel:`HR Responsible`: Select the person who is responsible for validating the contract using the drop-down menu. This field is required." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:56 -msgid "Each individual company can have a different localization setting, since locations can vary anywhere in the world, where rules and laws differ." +#: ../../content/applications/hr/payroll/contracts.rst:110 +msgid "The :guilabel:`HR Responsible` field only appears if the **Salary Configurator** (`hr_contract_salary`) module and the **Sign** app are both installed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:59 -msgid "For more information on companies, refer to the :doc:`Companies <../../general/companies>` documentation, which covers how to set up companies." +#: ../../content/applications/hr/payroll/contracts.rst:-1 +msgid "New contract form to be filled in when creating a new contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:65 -msgid "List of countries" +#: ../../content/applications/hr/payroll/contracts.rst:119 +msgid "The :guilabel:`Salary Information` tab is where the specific details of how much and how often the employee is paid. Fill in the following fields in this tab:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:67 -msgid "Payroll localization modules are available for the countries listed below." +#: ../../content/applications/hr/payroll/contracts.rst:122 +msgid ":guilabel:`Wage Type`: Using the drop-down menu, select what kind of pay the employee receives. The two default options are :guilabel:`Fixed Wage` or :guilabel:`Hourly Wage`. Select :guilabel:`Fixed Wage` for salaried employees, and select :guilabel:`Hourly Wage` for employees who are paid based on their logged worked hours." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:70 -msgid "New countries are frequently added to this list, as Odoo keeps expanding and improving existing localizations and related documentation." +#: ../../content/applications/hr/payroll/contracts.rst:126 +msgid ":guilabel:`Schedule Pay`: Using the drop-down menu, select how often the employee is paid. The default options are :guilabel:`Annually`, :guilabel:`Semi-annually`, :guilabel:`Quarterly`, :guilabel:`Bi-monthly`, :guilabel:`Monthly`, :guilabel:`Semi-monthly`, :guilabel:`Bi-weekly`, :guilabel:`Weekly`, or :guilabel:`Daily`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:73 -msgid ":doc:`Australia `" +#: ../../content/applications/hr/payroll/contracts.rst:130 +msgid ":guilabel:`Wage`: Enter the amount the employee receives each pay period. The first field allows for a wage to be entered, the second field displays how often the pay is issued to the employee. The second field *cannot** be modified, and is updated when the :guilabel:`Schedule Pay` field changes." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:74 -msgid ":doc:`Belgium `" +#: ../../content/applications/hr/payroll/contracts.rst:134 +msgid ":guilabel:`Yearly Cost (Real)`: This field automatically updates after the :guilabel:`Schedule Pay` and :guilabel:`Wage` fields are entered. This amount is the total yearly cost for the employer. This field can be modified. However, if this is modified, the :guilabel:`Wage` field updates, accordingly. Ensure both the :guilabel:`Wage` and :guilabel:`Yearly Cost (Real)` are correct if this field is modified." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:75 -msgid "Bangladesh" +#: ../../content/applications/hr/payroll/contracts.rst:139 +msgid ":guilabel:`Monthly Cost (Real)`: This field automatically updates after the :guilabel:`Schedule Pay` and :guilabel:`Wage` fields are entered. This amount is the total monthly cost for the employer. This field **cannot** be modified, and is calculated based on the :guilabel:`Yearly Cost (Real)`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:76 -msgid ":doc:`Egypt `" +#: ../../content/applications/hr/payroll/contracts.rst:-1 +msgid "The Salary Information tab filled out." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:77 -msgid ":doc:`Hong Kong `" +#: ../../content/applications/hr/payroll/contracts.rst:148 +#: ../../content/applications/hr/recruitment/add-new-applicants.rst:109 +msgid "Details tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:78 -msgid "India" +#: ../../content/applications/hr/payroll/contracts.rst:150 +msgid "The :guilabel:`Details` tab of the contract houses the contract template information, accounting information (refer to the :doc:`country-specific localization document ` for more information), any part time work information, and notes. Fill out the following fields in this tab:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:79 -msgid "Indonesia" +#: ../../content/applications/hr/payroll/contracts.rst:155 +msgid ":guilabel:`Contract Template`: Using the drop-down menu, select a contract template to use when making an offer to an applicant." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:80 -msgid ":doc:`Jordan `" +#: ../../content/applications/hr/payroll/contracts.rst:159 +msgid "Contract templates are typically created through the **Payroll** app configuration menu, and stored in the **Documents** app. To view the contract templates, and to create new ones, navigate to :menuselection:`Payroll app --> Configuration --> Templates`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:81 -msgid "Kenya" +#: ../../content/applications/hr/payroll/contracts.rst:163 +msgid ":guilabel:`Originated Offer`: This field automatically populates with the original offer sent to the employee. This field is **not** modifiable, and is only populated if applicable." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:82 -msgid "Lithuania" +#: ../../content/applications/hr/payroll/contracts.rst:165 +msgid ":guilabel:`Part Time`: Tick the checkbox if the contract is for part time work. Once enabled, a percentage field appears next to the checkbox. The percentage **cannot** be modified, and automatically updates based on the selected :guilabel:`Working Schedule` in the top-half of the contract, compared to the typical working schedule for the company (typically 40 hours/week)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:83 -msgid "Luxembourg" +#: ../../content/applications/hr/payroll/contracts.rst:171 +msgid ":guilabel:`Standard Calendar`: This field is automatically populated with the default working schedule for the company. In most cases, this is :guilabel:`Standard 40 hours/week`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:84 -msgid "Malaysia" +#: ../../content/applications/hr/payroll/contracts.rst:173 +msgid ":guilabel:`Part Time Work Entry Type`: Using the drop-down menu, select the work entry type that generates the balance of a full-time working schedule." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:85 -msgid "Mexico" +#: ../../content/applications/hr/payroll/contracts.rst:177 +msgid "An employee contract is being created for a part-time employee who works 20 hours a week." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:86 -msgid "Morocco" +#: ../../content/applications/hr/payroll/contracts.rst:179 +msgid "To configure this, the employee's :guilabel:`Working Schedule` is set to :guilabel:`20 Hours/Part time` in the :ref:`general information section `. In the :guilabel:`Details` tab, the :guilabel:`Part Time` checkbox is ticked, and the percentage is set to `50`. The :guilabel:`Standard Calendar` is set to :guilabel:`Standard 40 hours/week`, and the :guilabel:`Part Time Work Entry Type` is set to :guilabel:`Unpaid`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:87 -msgid "Netherlands" +#: ../../content/applications/hr/payroll/contracts.rst:185 +msgid "When a typical work week is processed in the **Payroll** app, the employee generates twenty (20) hours of regular work entries under the work entry type `Attendance`, and another twenty (20) hours of work entries under the work entry type `Unpaid`, for a total of forty (40) hours worth of work entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:88 -msgid "Pakistan" +#: ../../content/applications/hr/payroll/contracts.rst:190 +msgid ":guilabel:`Notes`: Enter any relevant notes for the contract in this field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:89 -msgid "Poland" +#: ../../content/applications/hr/payroll/contracts.rst:-1 +msgid "The Details tab filled out." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:90 -msgid "Romania" +#: ../../content/applications/hr/payroll/contracts.rst:196 +msgid "Signatories tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:91 -msgid "Saudi Arabia" +#: ../../content/applications/hr/payroll/contracts.rst:198 +msgid "The :guilabel:`Signatories` tab is where the default contract templates are selected, for both new and updated contracts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:92 -msgid "Slovakia" +#: ../../content/applications/hr/payroll/contracts.rst:201 +msgid "Using the drop-down menu, select the default contract template to use when creating a new or updated contract, in the respective fields." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:93 -msgid "Switzerland" +#: ../../content/applications/hr/payroll/contracts.rst:204 +msgid "Once a PDF template is selected, any mapped signature fields in the file appear in a list, below the selection, identifying who must sign the document. These fields **cannot** be updated." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:94 -msgid "Türkiye" +#: ../../content/applications/hr/payroll/contracts.rst:207 +msgid "Any changes to the template and signatories but be done in the **Sign** app, where contract templates are uploaded, modified, and stored." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:95 -msgid ":doc:`United Arab Emirates `" +#: ../../content/applications/hr/payroll/contracts.rst:211 +msgid "The :guilabel:`PDF Template` fields are only visible if the **Sign** app is installed, along with the :guilabel:`hr_contract_salary` and :guilabel:`hr_contract_salary_payroll` :doc:`modules <../../general/apps_modules>`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations.rst:96 -msgid "United States" +#: ../../content/applications/hr/payroll/contracts.rst:-1 +msgid "The Signatories tab with the roles specified for signing." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:3 -msgid "Australia" +#: ../../content/applications/hr/payroll/contracts.rst:219 +msgid "Personal documents tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:8 -msgid "Odoo is currently in the process of becoming compliant with STP Phase 2 and SuperStream. An announcement will be made as soon as companies can use Odoo for payroll as a one-stop platform." +#: ../../content/applications/hr/payroll/contracts.rst:221 +msgid "Occasionally, additional paperwork may be required when creating a contract, such as legal documents declaring the employee is able to work in the country. When this situation occurs, Odoo allows for one image file of the necessary document to be attached to a contract in the :guilabel:`Personal Documents` tab." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:12 -msgid "Setting up employees" +#: ../../content/applications/hr/payroll/contracts.rst:226 +msgid "Click the :guilabel:`Upload your file` button, navigate to the desired document, and click :guilabel:`Select` to attach the file to the contract. The file name appears on the :guilabel:`Image` line." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:15 -msgid "Employee settings" +#: ../../content/applications/hr/payroll/contracts.rst:231 +msgid "This tab **only** appears after an :guilabel:`Employee` is selected. Additionally, only image files can be attached in this field at this time." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:17 -msgid "Create an employee by going to :menuselection:`Employees --> New`. Go to the :guilabel:`Settings` tab, and configure the :guilabel:`Australian Payroll` section, for example checking if they are :guilabel:`Non-resident`, if they benefit from the :guilabel:`Tax-free Threshold`, their :guilabel:`TFN Status`, :guilabel:`Employee Type`, etc." +#: ../../content/applications/hr/payroll/contracts.rst:235 +#: ../../content/applications/hr/payroll/salary_attachments.rst:3 +msgid "Salary attachments" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Employee settings tab for the Australian payroll localization." +#: ../../content/applications/hr/payroll/contracts.rst:237 +msgid "After an employee is selected for the contract, a :icon:`fa-book` :guilabel:`Salary Attachments` smart button appears at the top of the page." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:26 -msgid "Employee private information" +#: ../../content/applications/hr/payroll/contracts.rst:240 +msgid "For new employees who do not currently have a contract, the smart button displays :guilabel:`New`. If the contract is being updated for a current employee who already has salary attachments configured, the smart button displays the number of salary attachments currently running." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:28 -msgid "In addition, some personal employee information is required for payroll compliance with Single Touch Payroll, and to process superannuation payments. Open the employee's :guilabel:`Private Information` tab and fill in the following fields:" +#: ../../content/applications/hr/payroll/contracts.rst:244 +msgid ":doc:`Create or update any necessary salary attachments ` for the contract, before sending." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:32 -msgid ":guilabel:`Private Address`" +#: ../../content/applications/hr/payroll/contracts.rst:248 +msgid "Send a contract" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:33 -msgid ":guilabel:`Private Email`" +#: ../../content/applications/hr/payroll/contracts.rst:250 +msgid "After a contract has been created and configured, the next step is to send it to the employee or applicant. Click the :guilabel:`Generate Offer` button, and the :guilabel:`Offer for (Employee)` form loads." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:34 -msgid ":guilabel:`Private Phone`" +#: ../../content/applications/hr/payroll/contracts.rst:254 +msgid "The :guilabel:`Offer for (Employee)` form displays all the basic information from the contract, as well as a link the employee can use to sign the contract. The last field on the form is a :guilabel:`Validity Days Count` field. This indicates how long the offer is valid. Enter the desired number of days in the field. The default is `30` days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:35 -msgid ":guilabel:`Date of Birth`" +#: ../../content/applications/hr/payroll/contracts.rst:259 +msgid "Click :guilabel:`Send By Email` and a pop-up email window loads, using a preconfigured default email template. Click :guilabel:`Send` to send the offer." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Employee private information tab for the Australian payroll localization." +#: ../../content/applications/hr/payroll/contracts.rst:263 +msgid "In order to send a contract using the :guilabel:`Generate Offer` button, there **must** be an employee signature field on the contract PDF being sent." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:41 -msgid "Odoo will remind you to complete the required data at different stages of the process." +#: ../../content/applications/hr/payroll/contracts.rst:-1 +msgid "Send the contract to the employee via one of the buttons." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:44 -msgid "Super accounts and funds" +#: ../../content/applications/hr/payroll/contracts.rst:270 +msgid "Contract status" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:46 -msgid "You can add the superannuation details of new employees under the employee's :guilabel:`Super Accounts` tab. Click :guilabel:`Add a line` and make sure to include the :guilabel:`Member Since` date, :guilabel:`Member Number`, and :guilabel:`Super Fund`." +#: ../../content/applications/hr/payroll/contracts.rst:272 +msgid "When creating and sending out a contract, the default status of the contract is :guilabel:`New`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:51 -msgid "Use the :guilabel:`Proportion` field if an employee's contributions should sent to multiple funds at a time." +#: ../../content/applications/hr/payroll/contracts.rst:274 +msgid "Once there is a minimum of one completed signature on the document, the status changes to :guilabel:`Partially Signed`. Internal users, such as HR and recruitment employees, are alerted in the database when there is a signature requested of them." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Configuring a super fund and super account for the Australian payroll localization." +#: ../../content/applications/hr/payroll/contracts.rst:278 +msgid "After all required parties have signed the contract, the status changes to :guilabel:`Fully Signed`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:57 -msgid "To create a new :guilabel:`Super Fund`, start typing its name and click :guilabel:`Create and edit...`. Fill in its:" +#: ../../content/applications/hr/payroll/contracts.rst:280 +msgid "All status changes happen automatically as the document is signed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:60 -msgid ":guilabel:`Address`" +#: ../../content/applications/hr/payroll/contracts.rst:283 +msgid ":doc:`../../productivity/documents`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:61 -msgid ":guilabel:`ABN`" +#: ../../content/applications/hr/payroll/contracts.rst:284 +msgid ":doc:`../../productivity/sign`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:62 -msgid ":guilabel:`Type` (APRA / SMSF)" +#: ../../content/applications/hr/payroll/headcount.rst:3 +msgid "Headcount report" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:63 -msgid "unique identifier (:guilabel:`USI` for APRA, :guilabel:`ESA` for SMSF)" +#: ../../content/applications/hr/payroll/headcount.rst:5 +msgid "The *Headcount report* in the **Payroll** app shows the number of employees on payroll and allows headcount comparisons between different periods of time." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:64 -msgid "(for SMFS only) :guilabel:`Bank Account`" +#: ../../content/applications/hr/payroll/headcount.rst:9 +msgid "Create a headcount report" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Configuring a super fund for the Australian payroll localization." +#: ../../content/applications/hr/payroll/headcount.rst:11 +msgid "Create a headcount report to see the number of employees at a specific time or compare headcounts across periods." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:70 -msgid "Manage all super accounts and funds by going to :menuselection:`Payroll --> Configuration --> Super Funds` or :menuselection:`Super Accounts`." +#: ../../content/applications/hr/payroll/headcount.rst:14 +msgid "To create a headcount report, navigate to :menuselection:`Payroll app --> Reporting --> Headcount` and click :guilabel:`New`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:74 -msgid "Odoo is currently in the process of becoming SuperStream-compliant." +#: ../../content/applications/hr/payroll/headcount.rst:17 +msgid "Report name: generated automatically as `Headcount for (Company Name) on the (YYYY-MM-DD)` and **cannot** be modified." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:79 -msgid "Once the employee has been created, create their employment contract by clicking the :icon:`fa-book` :guilabel:`Contracts` smart button, or by going to :menuselection:`Employees --> Employees --> Contracts`." +#: ../../content/applications/hr/payroll/headcount.rst:19 +msgid ":guilabel:`Company`: populated automatically (works in both single and multi-company databases)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:84 -msgid "Only one contract can be active per employee at a time. However, an employee can be assigned consecutive contracts during their employment." +#: ../../content/applications/hr/payroll/headcount.rst:20 +msgid ":guilabel:`From`/:guilabel:`To` dates: defaults to current date (from) and blank (to). Adjust these to define the period to analyze." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:88 -msgid "Employment contract creation: recommended steps" +#: ../../content/applications/hr/payroll/headcount.rst:-1 +msgid "A headcount report form filled out for the third quarter of 2025." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Recommended steps to create an employment contract." +#: ../../content/applications/hr/payroll/headcount.rst:26 +msgid "Next, click :guilabel:`Populate` to generate the report." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:94 -msgid "1. Basic contractual information" +#: ../../content/applications/hr/payroll/headcount.rst:28 +msgid "At the top of the form, a :icon:`fa-people` :guilabel:`Employees` smart button appears. Clicking the button displays the total number of employees for the selected period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:96 -msgid "Select the :guilabel:`Contract Start Date` and :guilabel:`Working Schedule` (set, or flexible for casual workers)." +#: ../../content/applications/hr/payroll/headcount.rst:32 +msgid "View all headcount reports" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:98 -msgid "Keep the :guilabel:`Salary Structure Type` set to :guilabel:`Australian Employee`. This structure covers all of the ATO's tax schedules." +#: ../../content/applications/hr/payroll/headcount.rst:34 +msgid "See how the company headcount has changed over time by viewing all headcount reports in a list view." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:103 -msgid "(if using the Attendances or Planning app) Select the :guilabel:`Work Entry Source` to define how working hours and days are accounted for on the employee's payslip." +#: ../../content/applications/hr/payroll/headcount.rst:36 +msgid "To view all headcount reports, navigate to :menuselection:`Payroll app --> Reporting --> Headcount`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:106 -msgid ":guilabel:`Working Schedule`: work entries are automatically generated based on the employee's working schedule, starting from the contract's start date." +#: ../../content/applications/hr/payroll/headcount.rst:39 +msgid "View employees in a headcount" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:110 -msgid "An employee works 38 hours a week, their contract begins on 01/01, today's date is 16/01, and the user generates a pay run from 14/01 to 20/01. The working hours on the payslip will be automatically calculated to be 38 hours (5 * 7.36 hours) if no unpaid leave is taken." +#: ../../content/applications/hr/payroll/headcount.rst:41 +msgid "TO get an overall view of employees and their salary impact on the company, view all employee records of a specific headcount report." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:114 -msgid ":guilabel:`Attendances`: the working schedule is ignored, and work entries are only generated after clocking in and out of the Attendances app. Note that attendances can be imported." +#: ../../content/applications/hr/payroll/headcount.rst:44 +msgid "To view the employees of a specific headcount report, click the :icon:`fa-people` :guilabel:`Employees` smart button at the top of a headcount report." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:116 -msgid ":guilabel:`Planning`: the working schedule is ignored, and work entries are generated from planning shifts in the Planning app." +#: ../../content/applications/hr/payroll/headcount.rst:47 +msgid "All employees from the headcount appear in a list view, grouped by :guilabel:`Department`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:120 -msgid "Timesheets do not impact work entries in Odoo. If you need to import your timesheets in Odoo, import them by going to :menuselection:`Payroll --> Work Entries --> Work Entries` instead." +#: ../../content/applications/hr/payroll/headcount.rst:49 +msgid ":guilabel:`Employee`: the employee's full name" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:124 -msgid "2. Salary Information tab" +#: ../../content/applications/hr/payroll/headcount.rst:50 +msgid ":guilabel:`Department`: the department their job position is in" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:126 -msgid ":guilabel:`Wage Type`: select :guilabel:`Fixed Wage` for full-time and part-time employees, and :guilabel:`Hourly Wage` for casual workers. The latter allows you to add a :guilabel:`Casual Loading` percentage." +#: ../../content/applications/hr/payroll/headcount.rst:51 +msgid ":guilabel:`Job Title`: their role" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:131 -msgid "For hourly workers, the :guilabel:`Hourly Wage` field should exclude casual loading." +#: ../../content/applications/hr/payroll/headcount.rst:52 +msgid ":guilabel:`Employer Cost`: how much the company pays the employee each pay-period" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:133 -msgid ":guilabel:`Schedule Pay`: in Australia, only the following pay run frequencies are accepted: :guilabel:`Daily`, :guilabel:`Weekly`, :guilabel:`Bi-weekly` (or fortnightly), :guilabel:`Monthly`, and :guilabel:`Quarterly`." +#: ../../content/applications/hr/payroll/headcount.rst:53 +msgid ":guilabel:`Wage on Payroll`: the dollar amount on payroll reports" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:136 -msgid ":guilabel:`Wage` /*period*: assign a wage to the contract according to their pay frequency. On payslips, the corresponding annual and hourly rates will be computed automatically." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:5 +msgid "Payroll localizations" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:140 -msgid "3. Australia tab" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:7 +msgid "*Localizations* are country-specific settings preconfigured in Odoo at the creation of the database, which account for all taxes, fees, and allowances for that particular country." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Australia tab of a contract." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:10 +msgid "*Payroll localizations* refer to the specific process of adapting payroll systems, policies, and compliance measures to align with the specific labor laws, tax regulations, and social security requirements of a particular country or region." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:145 -msgid ":guilabel:`General`" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:14 +msgid "This ensures that employee salaries, benefits, deductions, and contributions are processed accurately and in full compliance with local legal and financial obligations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:147 -msgid "Add the :guilabel:`Regular Pay Day` if relevant." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:17 +msgid "Localization also includes integrating country-specific payroll elements such as benefits, holidays, termination rules, and reporting requirements, helping businesses avoid legal risks while ensuring employees receive their correct compensation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:148 -msgid "Enable :guilabel:`Report in BAS - W3` if you choose to add PAYG withholding amounts in BAS section W3 instead of W2 (refer to the `ATO's web page on PAYG withholding `_ for more information)." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:22 +msgid "Install localization package" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:153 -msgid ":guilabel:`Leave loading / workplace giving`" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:24 +msgid "A country-specific localization module :ref:`must be installed ` to properly configure and process payroll. To install the required module, first open the **Apps** app." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:155 -msgid "Define whether your employees are :guilabel:`Eligible for Leave Loading`." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:27 +msgid "Clear out the default :icon:`fa-filter` :guilabel:`Apps` filter, then type the name of the desired country into the search bar. All available modules for that country are presented." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:156 -msgid "Set the :guilabel:`Workplace Giving Employee` amount in exchange for deductions." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:31 +msgid "Some countries only have one localization module, while other have multiple modules. This is typically when other software is neede to process payroll, and importing and exporting data is required." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:157 -msgid "Set the :guilabel:`Salary Sacrificed Workplace Giving` amount (e.g., receiving a benefit instead of a deduction)." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:35 +msgid "For example. when searching for **Payroll** modules for `Egypt`, the following modules appear in the search, and must be installed: `Egypt - Payroll` and `Egypt - Payroll with Accounting`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:160 -msgid ":guilabel:`Super contributions`" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:38 +msgid "Refer to the :ref:`country-specific documentation ` for a complete list of the related **Payroll** modules required for each specific country." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:162 -msgid "Add the :guilabel:`Extra Negotiated Super %` on top of the *super guarantee*." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:42 +msgid "To see if any localization modules have been installed on the database, navigate to :menuselection:`Payroll app --> Configuration --> Settings`. In the :guilabel:`Settings` page, if a localization module was installed, a :guilabel:`(Country) Localization` section appears." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:163 -msgid "Add the :guilabel:`Extra Compulsory Super %` as per industrial agreements or awards obligations." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:47 +msgid "It is **not** recommended to alter the localization settings, unless specifically required." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:165 -msgid ":guilabel:`Salary sacrifice`" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:50 +msgid "Odoo can handle a multi-company configuration. This is generally done when there is a main company or office location, such as a headquarters, and there are other offices/branches around the country or globe, that fall under that main company or headquarters. In Odoo, each company, including the headquarters, must be set up as their own company/branch using the multi-company method." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:167 -msgid ":guilabel:`Salary Sacrifice Superannuation` allows employees to sacrifice part of their salary in favor of reportable employer superannuation contributions (RESC)." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:56 +msgid "Each individual company can have a different localization setting, since locations can vary anywhere in the world, where rules and laws differ." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:169 -msgid ":guilabel:`Salary Sacrifice Other Benefits` allows them to sacrifice part of their salary towards some other form of benefit (refer to the `ATO's web page on Salary sacrificing for employees `_ for more information)." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:59 +msgid "For more information on companies, refer to the :doc:`Companies <../../general/companies>` documentation, which covers how to set up companies." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:175 -msgid "As of Odoo 18, salary sacrificing for other benefits currently does not impact fringe benefits tax (FBT) reporting." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:65 +msgid "List of countries" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:181 -msgid "4. Salary attachments" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:67 +msgid "Payroll localization modules are available for the countries listed below." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:183 -msgid "If the employee is to receive additional recurring payments every pay run, whether indefinitely or for a set number of periods, click the :icon:`fa-book` :guilabel:`Salary Attachments` smart button on the contract. Choose a :guilabel:`Type` and a :guilabel:`Description`." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:70 +msgid "New countries are frequently added to this list, as Odoo keeps expanding and improving existing localizations and related documentation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:188 -msgid "Around 32 recurring salary attachment types exist for Australia. These are mostly related to allowances and child support. `Contact us `_ for more information as to whether allowances from your industry can be covered." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:73 +msgid ":doc:`Australia `" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:193 -msgid "5. Run the contract" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:74 +msgid ":doc:`Belgium `" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Example of a running contract." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:75 +msgid "Bangladesh" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:198 -msgid "Once all the information has been completed, change the contract stage from :guilabel:`New` to :guilabel:`Running`." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:76 +msgid ":doc:`Egypt `" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:202 -msgid "Prepare pay runs" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:77 +msgid ":doc:`Hong Kong `" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:205 -msgid "Regular" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:78 +msgid "India" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:207 -msgid "Pay runs are created by going to :menuselection:`Payroll --> Payslips --> Batches`. After clicking :guilabel:`New`, enter a :guilabel:`Batch Name`, select a :guilabel:`Period`, and click :guilabel:`Generate Payslips`." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:79 +msgid "Indonesia" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Steps to generate payslips." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:80 +msgid ":doc:`Jordan `" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:214 -msgid "Employees on a pay run can be filtered down by :guilabel:`Department` and :guilabel:`Job Position`. There is no limit to the amount of payslips that can be created in one batch. After clicking :guilabel:`Generate`, one payslip is created per employee in the :guilabel:`Waiting` stage, in which they can be reviewed and amended before validation." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:81 +msgid "Kenya" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Generated payslips in the waiting stage." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:82 +msgid "Lithuania" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:222 -msgid "On the payslip form view, there are two types of inputs:" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:83 +msgid "Luxembourg" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:224 -msgid ":guilabel:`Worked days` are computed based on the :ref:`work entry source set on the employee's contract `. :ref:`Work entries can be configured ` according to different types: attendance, overtime, Saturday rate, Sunday rate, public holiday rate, etc." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:84 +msgid "Malaysia" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:228 -msgid ":guilabel:`Other inputs` are individual payments or amounts of :ref:`different types ` (allowances, lump sums, deductions, termination payments, leaves, etc.) that have little to do with the hours worked during the current pay period. The :ref:`previously configured salary attachments ` are simply recurring other inputs attached to a contract." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:85 +msgid "Mexico" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Worked days and other inputs of a payslip." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:86 +msgid "Morocco" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:237 -msgid "Under the :guilabel:`Salary Computation` tab, Odoo automatically computes payslip rules based on employees, contracts, worked hours, other input types, and salary attachments." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:87 +msgid "Netherlands" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:240 -msgid "The salary structure *Australian Employee* has 35 payslip rules that automatically compute and dynamically display according to the payslip inputs." +#: ../../content/applications/hr/payroll/payroll_localizations.rst:88 +msgid "Pakistan" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 -msgid "Salary computation tab of a payslip" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:89 +msgid "Poland" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:248 -msgid "The following rules apply for that pay period in the above example:" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:90 +msgid "Romania" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:250 -msgid ":guilabel:`Basic Salary`: pre-sacrifice gross salary" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:91 +msgid "Saudi Arabia" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:251 -msgid ":guilabel:`Ordinary Time Earnings`: amount to which the super guarantee percentage needs to be applied" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:92 +msgid "Slovakia" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:253 -msgid ":guilabel:`Salary Sacrifice Total`: includes the $150 sacrificed to superannuation" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:93 +msgid "Switzerland" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:254 -msgid ":guilabel:`Taxable Allowance Payments`: includes the $10 allowance (*cents per KM* in this case)" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:94 +msgid "Türkiye" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:256 -msgid ":guilabel:`Taxable Salary`: gross salary amount minus non-taxable amounts" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:95 +msgid ":doc:`United Arab Emirates `" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:257 -msgid ":guilabel:`Salary Withholding` and :guilabel:`Total Withholding`: amounts to be withheld from the taxable salary" +#: ../../content/applications/hr/payroll/payroll_localizations.rst:96 +msgid ":doc:`United States `" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:259 -msgid ":guilabel:`Net Salary`: the employee's net wage" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:3 +msgid "Australia" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:260 -msgid ":guilabel:`Concessional Super Contribution`: in this scenario, the amount sacrificed to superannuation, payable to the employee's super fund in addition to the super guarantee" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:8 +msgid "Odoo is currently in the process of becoming compliant with STP Phase 2 and SuperStream. An announcement will be made as soon as companies can use Odoo for payroll as a one-stop platform." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:262 -msgid ":guilabel:`Super Guarantee`: as of 01 July 2024, it is computed as 11.5% of the ordinary time earnings amount" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:12 +msgid "Setting up employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:266 -msgid "As of Odoo 18, the most recent tax schedule rates (2024-2025) have been updated for all salary rules and computations." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:15 +msgid "Employee settings" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:270 -msgid "Out-of-cycle" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:17 +msgid "Create an employee by going to :menuselection:`Employees --> New`. Go to the :guilabel:`Settings` tab, and configure the :guilabel:`Australian Payroll` section, for example checking if they are :guilabel:`Non-resident`, if they benefit from the :guilabel:`Tax-free Threshold`, their :guilabel:`TFN Status`, :guilabel:`Employee Type`, etc." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:272 -msgid "In Australia, payslips created without a batch are considered to be *out-of-cycle* runs. Create them by going to :menuselection:`Payroll --> Payslips --> Individual Payslips`. The same payslip rules apply, but the way these payslips are submitted to the ATO in the frame of Single Touch Payroll (STP) is slightly different." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Employee settings tab for the Australian payroll localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:278 -msgid "As of Odoo 18, adding an out-of-cycle payslip to an existing batch is **not** recommended." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:26 +msgid "Employee private information" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:281 -msgid "Finalise pay runs" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:28 +msgid "In addition, some personal employee information is required for payroll compliance with Single Touch Payroll, and to process superannuation payments. Open the employee's :guilabel:`Private Information` tab and fill in the following fields:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:284 -msgid "Validate payslips" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:32 +msgid ":guilabel:`Private Address`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:286 -msgid "Once all payslip data is deemed correct, click :guilabel:`Create Draft Entry` on the payslip batch. This can also be done payslip by payslip for control reasons." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:33 +msgid ":guilabel:`Private Email`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:289 -msgid "This has several impacts:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:34 +msgid ":guilabel:`Private Phone`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:291 -msgid "Marking the batch and its payslips as :guilabel:`Done`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:35 +msgid ":guilabel:`Date of Birth`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:292 -msgid "Creating a draft accounting entry per payslip or one entry for the whole batch, depending on your payroll settings. At this stage, accountants can post entries to affect the balance sheet, P&L report, and BAS report." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Employee private information tab for the Australian payroll localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:295 -msgid "Preparing the STP submission (or payroll data to be filed to the ATO as part of STP compliance). This needs to be performed by the :guilabel:`STP Responsible` user, defined under :menuselection:`Payroll --> Configuration --> Settings`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:41 +msgid "Odoo will remind you to complete the required data at different stages of the process." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:298 -msgid "Preparing super contribution lines as part of SuperStream compliance. This needs to be done by the :guilabel:`HR Super Send` user selected under :menuselection:`Payroll --> Configuration --> Settings`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:44 +msgid "Super accounts and funds" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Example of a draft payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:46 +msgid "You can add the superannuation details of new employees under the employee's :guilabel:`Super Accounts` tab. Click :guilabel:`Add a line` and make sure to include the :guilabel:`Member Since` date, :guilabel:`Member Number`, and :guilabel:`Super Fund`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:306 -msgid "Submit payroll data to the ATO" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:51 +msgid "Use the :guilabel:`Proportion` field if an employee's contributions should sent to multiple funds at a time." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:309 -msgid "Odoo is currently in the process of becoming compliant with STP Phase 2, and this step described above does not submit data yet to the ATO." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Configuring a super fund and super account for the Australian payroll localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:312 -msgid "As per ATO requirements, STP submission for a pay run needs to be done on or before the payday. For this reason, submit your STP data to the ATO first before proceeding with payment. To do so, click :guilabel:`Submit to ATO` on the payslip batch." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:57 +msgid "To create a new :guilabel:`Super Fund`, start typing its name and click :guilabel:`Create and edit...`. Fill in its:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:316 -msgid "On the STP record for this pay run, a few useful information is displayed:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:60 +msgid ":guilabel:`Address`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:318 -msgid "a warning message if important information is missing," +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:61 +msgid ":guilabel:`ABN`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:319 -msgid "an automatically generated activity for the STP responsible user, and" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:62 +msgid ":guilabel:`Type` (APRA / SMSF)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:320 -msgid "a summary of payslips contained in this pay run, auditable from this view." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:63 +msgid "unique identifier (:guilabel:`USI` for APRA, :guilabel:`ESA` for SMSF)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:64 +msgid "(for SMFS only) :guilabel:`Bank Account`" msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Example of an STP record." +msgid "Configuring a super fund for the Australian payroll localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:325 -msgid "Once the STP record is ready to go, click :guilabel:`Submit to ATO`, then read and accept the related terms and conditions." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:70 +msgid "Manage all super accounts and funds by going to :menuselection:`Payroll --> Configuration --> Super Funds` or :menuselection:`Super Accounts`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:329 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:219 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:333 -msgid "Pay employees" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:74 +msgid "Odoo is currently in the process of becoming SuperStream-compliant." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:331 -msgid "Once the ATO submission is complete, you can proceed to pay your employees. To facilitate the payment matching process, remember to post the payslip-related journal entries prior to validating a payment." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:79 +msgid "Once the employee has been created, create their employment contract by clicking the :icon:`fa-book` :guilabel:`Contracts` smart button, or by going to :menuselection:`Employees --> Employees --> Contracts`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:335 -msgid "Although you may decide to pay your employees individually, we recommend creating a batch payment from your payslip batch. To do so, click :guilabel:`Pay` on the payslip batch, and select :guilabel:`ABA Credit Transfer` as the :guilabel:`Payment Method`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:84 +msgid "Only one contract can be active per employee at a time. However, an employee can be assigned consecutive contracts during their employment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Selecting the payment method for a payslip batch." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:88 +msgid "Employment contract creation: recommended steps" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:342 -msgid "This has two impacts:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Recommended steps to create an employment contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:344 -msgid "Marking the batch and its payslips as :guilabel:`Paid`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:94 +msgid "1. Basic contractual information" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:345 -msgid "Creating a :guilabel:`Payment Batch` linked to the payslip batch." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:96 +msgid "Select the :guilabel:`Contract Start Date` and :guilabel:`Working Schedule` (set, or flexible for casual workers)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Example of a paid batch of payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:98 +msgid "Keep the :guilabel:`Salary Structure Type` set to :guilabel:`Australian Employee`. This structure covers all of the ATO's tax schedules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:350 -msgid "When receiving the bank statement in Odoo, you can now match the statement line with the batch payment in one click. The payment is not reconciled against the payslip batch, and all individual payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:103 +msgid "(if using the Attendances or Planning app) Select the :guilabel:`Work Entry Source` to define how working hours and days are accounted for on the employee's payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Steps to reconcile a bank statement with a batch payment." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:106 +msgid ":guilabel:`Working Schedule`: work entries are automatically generated based on the employee's working schedule, starting from the contract's start date." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:358 -msgid "Impact on accounting" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:110 +msgid "An employee works 38 hours a week, their contract begins on 01/01, today's date is 16/01, and the user generates a pay run from 14/01 to 20/01. The working hours on the payslip will be automatically calculated to be 38 hours (5 * 7.36 hours) if no unpaid leave is taken." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:360 -msgid "Depending on the employee and contract configuration, the journal entry linked to a payslip will be more or less exhaustive." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:114 +msgid ":guilabel:`Attendances`: the working schedule is ignored, and work entries are only generated after clocking in and out of the Attendances app. Note that attendances can be imported." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:364 -msgid "For instance, here is the journal entry generated by the employee Marcus Cook configured above." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:116 +msgid ":guilabel:`Planning`: the working schedule is ignored, and work entries are generated from planning shifts in the Planning app." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 -msgid "Example of a journal entry for a payslip" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:120 +msgid "Timesheets do not impact work entries in Odoo. If you need to import your timesheets in Odoo, import them by going to :menuselection:`Payroll --> Work Entries --> Work Entries` instead." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:369 -msgid "Once posted, predefined accounts will impact the company's balance sheet (PAYGW, wages, and superannuation liabilities) and profit & loss report (wages and superannuation expenses). In addition, the employee's gross wage and PAYG withholding will update the BAS report for the relevant period (see Tax Grid: W1 and W2). Accounts can be adjusted to the company's chart of accounts." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:124 +msgid "2. Salary Information tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Example of a BAS report PAYG tax witheld section." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:126 +msgid ":guilabel:`Wage Type`: select :guilabel:`Fixed Wage` for full-time and part-time employees, and :guilabel:`Hourly Wage` for casual workers. The latter allows you to add a :guilabel:`Casual Loading` percentage." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:378 -msgid "Other payroll flows" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:131 +msgid "For hourly workers, the :guilabel:`Hourly Wage` field should exclude casual loading." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:381 -msgid "Paying super contributions" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:133 +msgid ":guilabel:`Schedule Pay`: in Australia, only the following pay run frequencies are accepted: :guilabel:`Daily`, :guilabel:`Weekly`, :guilabel:`Bi-weekly` (or fortnightly), :guilabel:`Monthly`, and :guilabel:`Quarterly`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:384 -msgid "Odoo has a partnership with a clearing house to process both superannuation payments and data to the right funds in one click, via direct debit. Odoo is currently in the process of becoming compliant with SuperStream, and an announcement will be made as soon as superannuation contributions can be processed via Odoo's payroll solution." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:136 +msgid ":guilabel:`Wage` /*period*: assign a wage to the contract according to their pay frequency. On payslips, the corresponding annual and hourly rates will be computed automatically." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:389 -msgid "Once a quarter (or more frequently, in preparation for `Payday Super `_), you have to process superannuation payments to your employees' super funds. To do so, go to :menuselection:`Payroll --> Reporting --> Super Contributions`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:140 +msgid "3. Australia tab" msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Example of a super file." +msgid "Australia tab of a contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:397 -msgid "When ready to pay, add the :guilabel:`Bank Journal` that will be used to pay the super from, then click :guilabel:`Lock` to prevent the contributions from subsequent payslips from being added to that file. Instead, a new Super file will be created." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:145 +msgid ":guilabel:`General`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:401 -msgid "Once the payment has been processed, it can be traced back to the Super file and matched with a bank statement." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:147 +msgid "Add the :guilabel:`Regular Pay Day` if relevant." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Example of a super file payment." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:148 +msgid "Enable :guilabel:`Report in BAS - W3` if you choose to add PAYG withholding amounts in BAS section W3 instead of W2 (refer to the `ATO's web page on PAYG withholding `_ for more information)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:408 -msgid "Terminating employees" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:153 +msgid ":guilabel:`Leave loading / workplace giving`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:410 -msgid "Employees can be terminated by going to :menuselection:`Payroll --> Reporting --> Terminate Employee`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:155 +msgid "Define whether your employees are :guilabel:`Eligible for Leave Loading`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:413 -msgid "The following fields must be completed:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:156 +msgid "Set the :guilabel:`Workplace Giving Employee` amount in exchange for deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:415 -msgid ":guilabel:`Contract End Date`: once the termination is validated, this date will be added to the contract automatically, and mark the contract as :guilabel:`Expired` when the date has been reached." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:157 +msgid "Set the :guilabel:`Salary Sacrificed Workplace Giving` amount (e.g., receiving a benefit instead of a deduction)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:418 -msgid ":guilabel:`Cessation Type Code`: a mandatory field for the ATO's STP reporting." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:160 +msgid ":guilabel:`Super contributions`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:419 -msgid ":guilabel:`Termination Type`: the type of redundancy (genuine or non-genuine) affects the computation of unused annual and long service leave withholding." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:162 +msgid "Add the :guilabel:`Extra Negotiated Super %` on top of the *super guarantee*." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Terminating the contract of an employee." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:163 +msgid "Add the :guilabel:`Extra Compulsory Super %` as per industrial agreements or awards obligations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:425 -msgid "The balance of unused annual leaves and long service leaves is displayed for reference." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:165 +msgid ":guilabel:`Salary sacrifice`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:427 -msgid "Confirming the termination creates an out-of-cycle payslip with the tag :guilabel:`final pay`. It computes the worked days until the contract end date, in addition to the employee's unused annual and long service leave entitlements." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:167 +msgid ":guilabel:`Salary Sacrifice Superannuation` allows employees to sacrifice part of their salary in favor of reportable employer superannuation contributions (RESC)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Example of an out-of-cycle payslip of a terminated employee." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:169 +msgid ":guilabel:`Salary Sacrifice Other Benefits` allows them to sacrifice part of their salary towards some other form of benefit (refer to the `ATO's web page on Salary sacrificing for employees `_ for more information)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:434 -msgid "Odoo automatically computes unused leave entitlements based on the employee's current hourly rate leave loading (for annual leaves only), and the remaining leave balance. However, these amounts can be manually edited in the :guilabel:`Other Inputs` table if necessary." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:175 +msgid "As of Odoo 18, salary sacrificing for other benefits currently does not impact fringe benefits tax (FBT) reporting." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:438 -msgid "Employment Termination Payments (ETP) can also be added to the :guilabel:`Other Inputs` table. Odoo has a comprehensive list of excluded and non-excluded ETPs for companies to select from." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:181 +msgid "4. Salary attachments" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Adding employment termination payments." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:183 +msgid "If the employee is to receive additional recurring payments every pay run, whether indefinitely or for a set number of periods, click the :icon:`fa-book` :guilabel:`Salary Attachments` smart button on the contract. Choose a :guilabel:`Type` and a :guilabel:`Description`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:445 -msgid "Withholding for unused leaves and ETPs is computed according to the ATO's `Schedule 7 `_ and `Schedule 11 `_ and updated as of 01 July 2024." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:188 +msgid "Around 32 recurring salary attachment types exist for Australia. These are mostly related to allowances and child support. `Contact us `_ for more information as to whether allowances from your industry can be covered." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:451 -msgid "Once an employee has been terminated and the last detailed of their employment resolved, you can archive the employee by clicking the :icon:`fa-cog` (:guilabel:`Actions`) icon, then :icon:`oi-archive` :guilabel:`Archive` on the employee's form view." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:193 +msgid "5. Run the contract" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:456 -msgid "Switching from another STP software to Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Example of a running contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:458 -msgid "When switching from another STP-enabled software to Odoo, you might need to maintain the continuity in the YTD values of your employees. Odoo allows importing employees' YTD values by going to :menuselection:`Payroll --> Configuration --> Settings` and clicking :guilabel:`Import YTD Balances`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:198 +msgid "Once all the information has been completed, change the contract stage from :guilabel:`New` to :guilabel:`Running`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Import YTD balances button." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:202 +msgid "Prepare pay runs" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:466 -msgid "For the ATO to recognize the employee records of your previous software and keep a continuity in Odoo, you must enter the:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:205 +msgid "Regular" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:469 -msgid ":guilabel:`Previous BMS ID` (one per database)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:207 +msgid "Pay runs are created by going to :menuselection:`Payroll --> Payslips --> Batches`. After clicking :guilabel:`New`, enter a :guilabel:`Batch Name`, select a :guilabel:`Period`, and click :guilabel:`Generate Payslips`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:470 -msgid ":guilabel:`Previous Payroll ID` (one per employee)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Steps to generate payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:472 -msgid "Ask your previous software provider if you cannot find its BMS ID or your employees' payroll IDs." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:214 +msgid "Employees on a pay run can be filtered down by :guilabel:`Department` and :guilabel:`Job Position`. There is no limit to the amount of payslips that can be created in one batch. After clicking :guilabel:`Generate`, one payslip is created per employee in the :guilabel:`Waiting` stage, in which they can be reviewed and amended before validation." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Importing YTD balances." +msgid "Generated payslips in the waiting stage." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:477 -msgid "This will give you the opportunity to add your employees' YTD opening balances in the current fiscal year. The ATO reports on a lot of different types of YTD. These are represented by the 13 following :guilabel:`Salary Rules` in Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:222 +msgid "On the payslip form view, there are two types of inputs:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Salary rules for an employee." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:224 +msgid ":guilabel:`Worked days` are computed based on the :ref:`work entry source set on the employee's contract `. :ref:`Work entries can be configured ` according to different types: attendance, overtime, Saturday rate, Sunday rate, public holiday rate, etc." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:485 -msgid "Let us say that the employee Marcus Cook has been transitioned from another STP-enabled software on September 1. Marcus has received two monthly payslips in his previous software (for July and August). Here are the YTD balances Marcus's company needs to transfer to Odoo:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:228 +msgid ":guilabel:`Other inputs` are individual payments or amounts of :ref:`different types ` (allowances, lump sums, deductions, termination payments, leaves, etc.) that have little to do with the hours worked during the current pay period. The :ref:`previously configured salary attachments ` are simply recurring other inputs attached to a contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:492 -msgid "YTD category" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Worked days and other inputs of a payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:493 -msgid "YTD balance to transfer" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:237 +msgid "Under the :guilabel:`Salary Computation` tab, Odoo automatically computes payslip rules based on employees, contracts, worked hours, other input types, and salary attachments." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:494 -msgid "Gross (normal attendance)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:240 +msgid "The salary structure *Australian Employee* has 35 payslip rules that automatically compute and dynamically display according to the payslip inputs." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:495 -msgid "$13,045.45" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 +msgid "Salary computation tab of a payslip" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:496 -msgid "Gross (overtime)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:248 +msgid "The following rules apply for that pay period in the above example:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:497 -msgid "$1,000" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:250 +msgid ":guilabel:`Basic Salary`: pre-sacrifice gross salary" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:498 -msgid "Paid leave" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:251 +msgid ":guilabel:`Ordinary Time Earnings`: amount to which the super guarantee percentage needs to be applied" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:499 -msgid "$954.55" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:253 +msgid ":guilabel:`Salary Sacrifice Total`: includes the $150 sacrificed to superannuation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:500 -msgid "Laundry allowance" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:254 +msgid ":guilabel:`Taxable Allowance Payments`: includes the $10 allowance (*cents per KM* in this case)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:501 -msgid "$200" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:256 +msgid ":guilabel:`Taxable Salary`: gross salary amount minus non-taxable amounts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:502 -msgid "Total withholding" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:257 +msgid ":guilabel:`Salary Withholding` and :guilabel:`Total Withholding`: amounts to be withheld from the taxable salary" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:503 -msgid "$2,956" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:259 +msgid ":guilabel:`Net Salary`: the employee's net wage" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:504 -msgid "Super Guarantee" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:260 +msgid ":guilabel:`Concessional Super Contribution`: in this scenario, the amount sacrificed to superannuation, payable to the employee's super fund in addition to the super guarantee" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:505 -msgid "$1,610" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:262 +msgid ":guilabel:`Super Guarantee`: as of 01 July 2024, it is computed as 11.5% of the ordinary time earnings amount" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:507 -msgid "If some YTD balances need to be reported with more granularity to the ATO, you can use the salary rule's inputs." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:266 +msgid "As of Odoo 18, the most recent tax schedule rates (2024-2025) have been updated for all salary rules and computations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:511 -msgid "For instance, the *Basic Salary* rule can contain six inputs, and three are necessary in our example: regular gross amounts, overtime, and paid leaves. These are all reported differently in terms of YTD amounts." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:270 +msgid "Out-of-cycle" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 -msgid "Adding YTD inputs" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:272 +msgid "In Australia, payslips created without a batch are considered to be *out-of-cycle* runs. Create them by going to :menuselection:`Payroll --> Payslips --> Individual Payslips`. The same payslip rules apply, but the way these payslips are submitted to the ATO in the frame of Single Touch Payroll (STP) is slightly different." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:518 -msgid "The finalized YTD opening balances for Marcus Cook look like the following." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:278 +msgid "As of Odoo 18, adding an out-of-cycle payslip to an existing batch is **not** recommended." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 -msgid "Example of finalized YTD opening balances" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:281 +msgid "Finalise pay runs" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:523 -msgid "As a result, YTD computations on payslips are based on the employee's opening balances instead of starting from zero." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:284 +msgid "Validate payslips" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:527 -msgid "STP finalisation" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:286 +msgid "Once all payslip data is deemed correct, click :guilabel:`Create Draft Entry` on the payslip batch. This can also be done payslip by payslip for control reasons." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:530 -msgid "Odoo is currently in the process of becoming compliant with STP Phase 2, and the finalisation flows described below do not yet submit data to the ATO." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:289 +msgid "This has several impacts:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:534 -msgid "EOFY finalisation" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:291 +msgid "Marking the batch and its payslips as :guilabel:`Done`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:536 -msgid "Employers reporting through STP must make a finalization declaration by 14 July each year. To do so, go to :menuselection:`Payroll --> Reporting --> STP Finalisation`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:292 +msgid "Creating a draft accounting entry per payslip or one entry for the whole batch, depending on your payroll settings. At this stage, accountants can post entries to affect the balance sheet, P&L report, and BAS report." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "EOFY finalisation of an employee." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:295 +msgid "Preparing the STP submission (or payroll data to be filed to the ATO as part of STP compliance). This needs to be performed by the :guilabel:`STP Responsible` user, defined under :menuselection:`Payroll --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:542 -msgid "Both active and terminated employees to finalise are displayed." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:298 +msgid "Preparing super contribution lines as part of SuperStream compliance. This needs to be done by the :guilabel:`HR Super Send` user selected under :menuselection:`Payroll --> Configuration --> Settings`." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "List of employees to finalise." +msgid "Example of a draft payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:547 -msgid "From the finalisation form view, you can proceed with a final audit of all employees' payslips during the relevant financial year. Once ready, click :guilabel:`Submit to ATO`. When you have made the finalisation declaration, employees will see the status of their payment information change to :guilabel:`Tax ready` on their online income statement after the end of the financial year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:306 +msgid "Submit payroll data to the ATO" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:553 -msgid "Individual finalisation" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:309 +msgid "Odoo is currently in the process of becoming compliant with STP Phase 2, and this step described above does not submit data yet to the ATO." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:555 -msgid "Odoo also allows you to finalise employees individually during the year. This can be useful when:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:312 +msgid "As per ATO requirements, STP submission for a pay run needs to be done on or before the payday. For this reason, submit your STP data to the ATO first before proceeding with payment. To do so, click :guilabel:`Submit to ATO` on the payslip batch." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:557 -msgid "one-off payments are made after a first finalisation; and" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:316 +msgid "On the STP record for this pay run, a few useful information is displayed:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:558 -msgid "finalisation after termination of employment during the year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:318 +msgid "a warning message if important information is missing," msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:560 -msgid "To proceed with an individual finalisation, go to :menuselection:`Payroll --> Reporting --> STP Finalisation`, leave the :guilabel:`EOFY Declaration` checkbox unticked, and manually add employees to be finalised." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:319 +msgid "an automatically generated activity for the STP responsible user, and" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Individual EOFY finalisation." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:320 +msgid "a summary of payslips contained in this pay run, auditable from this view." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:567 -msgid "Even if you finalise an employee record partway through the financial year, the ATO will not pre-fill the information into the employee's tax return until after the end of the financial year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Example of an STP record." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:571 -msgid "Adjustments" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:325 +msgid "Once the STP record is ready to go, click :guilabel:`Submit to ATO`, then read and accept the related terms and conditions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:574 -msgid "Odoo is currently in the process of becoming compliant with STP Phase 2, and the adjustment flows described below do not yet submit data to the ATO." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:329 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:219 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:333 +msgid "Pay employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:578 -msgid "Amend finalisation" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:331 +msgid "Once the ATO submission is complete, you can proceed to pay your employees. To facilitate the payment matching process, remember to post the payslip-related journal entries prior to validating a payment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:580 -msgid "If you need to amend YTD amounts for an employee after a finalisation declaration was made, it is still possible to remove the finalisation indicator for that employee. To do so, go to :menuselection:`Payroll --> Reporting --> STP Finalisation`, select the employee, and leave the :guilabel:`Finalisation` checkbox unticked." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:335 +msgid "Although you may decide to pay your employees individually, we recommend creating a batch payment from your payslip batch. To do so, click :guilabel:`Pay` on the payslip batch, and select :guilabel:`ABA Credit Transfer` as the :guilabel:`Payment Method`." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Amending YTD amounts for an employee." +msgid "Selecting the payment method for a payslip batch." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:588 -msgid "When ready, click :guilabel:`Submit to ATO` to file the finalisation update to the ATO." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:342 +msgid "This has two impacts:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:590 -msgid "Once the correct YTD details are ready for that employee after amendment, finalise that employee again." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:344 +msgid "Marking the batch and its payslips as :guilabel:`Paid`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:594 -msgid "The ATO expects employers to correct errors within 14 days of detection or, if your pay cycle is longer than 14 days (e.g., monthly), by the date you would be due to lodge the next regular pay event. Finalisation amendments can be done through STP up to five years after the end of the financial year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:345 +msgid "Creating a :guilabel:`Payment Batch` linked to the payslip batch." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:599 -msgid "Finalising and amending finalisation for a single employee can also be useful when rehiring an employee within the same financial year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Example of a paid batch of payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:603 -msgid "Full file replacements" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:350 +msgid "When receiving the bank statement in Odoo, you can now match the statement line with the batch payment in one click. The payment is not reconciled against the payslip batch, and all individual payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:605 -msgid "An employer can make full file replacements of pay runs to replace the last lodgement sent to the ATO if it turns out to contain significantly inaccurate data." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Steps to reconcile a bank statement with a batch payment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:608 -msgid "To do so, open the last STP submission and click :guilabel:`Replace File`. Then, select which payslips need to be reset by ticking the :guilabel:`Reset Payslip` checkbox." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:358 +msgid "Impact on accounting" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Replace file button." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:360 +msgid "Depending on the employee and contract configuration, the journal entry linked to a payslip will be more or less exhaustive." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:614 -msgid "Resetting payslips does not create new payslips or a new pay run, but instead:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:364 +msgid "For instance, here is the journal entry generated by the employee Marcus Cook configured above." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:616 -msgid "The payslips batch is reset from :guilabel:`Paid` or :guilabel:`Done` to :guilabel:`Confirmed`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 +msgid "Example of a journal entry for a payslip" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:617 -msgid "The status of the reset payslips revert back to :guilabel:`Draft`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:369 +msgid "Once posted, predefined accounts will impact the company's balance sheet (PAYGW, wages, and superannuation liabilities) and profit & loss report (wages and superannuation expenses). In addition, the employee's gross wage and PAYG withholding will update the BAS report for the relevant period (see Tax Grid: W1 and W2). Accounts can be adjusted to the company's chart of accounts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:618 -msgid "The correct payslips remain paid and matched against the original payment." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Example of a BAS report PAYG tax witheld section." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:619 -msgid "A new STP submission is created to replace the former one. For traceability purposes, the former STP submission is not deleted but marked as replaced." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:378 +msgid "Other payroll flows" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:622 -msgid "First, correct the reset payslips and create their draft entry. Once done, the :guilabel:`Submit to ATO` reappears on the payslip batch to process the full file replacement." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:381 +msgid "Paying super contributions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Resubmitting a payslip batch." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:384 +msgid "Odoo has a partnership with a clearing house to process both superannuation payments and data to the right funds in one click, via direct debit. Odoo is currently in the process of becoming compliant with SuperStream, and an announcement will be made as soon as superannuation contributions can be processed via Odoo's payroll solution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:628 -msgid "When ready, submit the pay run to the ATO once again. Please note that full file replacements are only meant as a last resort to amend a substantial amount of erroneous data. When possible, the ATO recommends correcting an incorrect payslips by submitting a correction as part of the next pay run or via update event." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:389 +msgid "Once a quarter (or more frequently, in preparation for `Payday Super `_), you have to process superannuation payments to your employees' super funds. To do so, go to :menuselection:`Payroll --> Reporting --> Super Contributions`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:633 -msgid "Moreover, it is not possible to submit a second full file replacement of the same submission, and a full file replacement can only be done once every 24 hours." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Example of a super file." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:637 -msgid "Zero out YTD values" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:397 +msgid "When ready to pay, add the :guilabel:`Bank Journal` that will be used to pay the super from, then click :guilabel:`Lock` to prevent the contributions from subsequent payslips from being added to that file. Instead, a new Super file will be created." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:639 -msgid "In case of a mid-year change of several key identifiers, YTD values need to be zeroed out, and then re-posted with the updated key identifier." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:401 +msgid "Once the payment has been processed, it can be traced back to the Super file and matched with a bank statement." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:642 -msgid "For the following **company identifiers**, all employees need to be zeroed out:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Example of a super file payment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:644 -msgid "ABN" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:408 +msgid "Terminating employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:645 -msgid "Branch Code" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:410 +msgid "Employees can be terminated by going to :menuselection:`Payroll --> Reporting --> Terminate Employee`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:646 -msgid "BMS ID" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:413 +msgid "The following fields must be completed:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:648 -msgid "For the following **employee identifiers**, only individual employees can be zeroed out:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:415 +msgid ":guilabel:`Contract End Date`: once the termination is validated, this date will be added to the contract automatically, and mark the contract as :guilabel:`Expired` when the date has been reached." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:650 -msgid "TFN" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:418 +msgid ":guilabel:`Cessation Type Code`: a mandatory field for the ATO's STP reporting." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:651 -msgid "Payroll ID" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:419 +msgid ":guilabel:`Termination Type`: the type of redundancy (genuine or non-genuine) affects the computation of unused annual and long service leave withholding." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:653 -msgid "Before updating any key identifiers, create a new STP submission by going to :menuselection:`Payroll --> Reporting --> Single Touch Payroll` and:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Terminating the contract of an employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:656 -msgid "Change the :guilabel:`Submission Type` to :guilabel:`Update`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:425 +msgid "The balance of unused annual leaves and long service leaves is displayed for reference." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:657 -msgid "Tick the :guilabel:`Zero Out YTD` checkbox." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:427 +msgid "Confirming the termination creates an out-of-cycle payslip with the tag :guilabel:`final pay`. It computes the worked days until the contract end date, in addition to the employee's unused annual and long service leave entitlements." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:658 -msgid "Click :guilabel:`Add a line` to specify which employees." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Example of an out-of-cycle payslip of a terminated employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:659 -msgid "Click :guilabel:`Submit to ATO`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:434 +msgid "Odoo automatically computes unused leave entitlements based on the employee's current hourly rate leave loading (for annual leaves only), and the remaining leave balance. However, these amounts can be manually edited in the :guilabel:`Other Inputs` table if necessary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 -msgid "Creating a new STP submission to zero out YTD values." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:438 +msgid "Employment Termination Payments (ETP) can also be added to the :guilabel:`Other Inputs` table. Odoo has a comprehensive list of excluded and non-excluded ETPs for companies to select from." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:664 -msgid "Once that is done, modify the key identifier(s) to amend." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Adding employment termination payments." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:666 -msgid "Finally, go back to :menuselection:`Payroll --> Reporting --> Single Touch Payroll` to create and submit a new :guilabel:`Update`, this time without ticking the :guilabel:`Zero Out YTD` checkbox. This will notify the ATO that the previously recorded YTD balances are to be adjusted to the new key identifiers." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:445 +msgid "Withholding for unused leaves and ETPs is computed according to the ATO's `Schedule 7 `_ and `Schedule 11 `_ and updated as of 01 July 2024." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:672 -msgid "Payroll links to other apps" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:451 +msgid "Once an employee has been terminated and the last detailed of their employment resolved, you can archive the employee by clicking the :icon:`fa-cog` (:guilabel:`Actions`) icon, then :icon:`oi-archive` :guilabel:`Archive` on the employee's form view." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:675 -msgid "Time Off" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:456 +msgid "Switching from another STP software to Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:677 -msgid "The :doc:`Time Off app <../../../hr/time_off>` is natively integrated with the Payroll app in Odoo. Different types of leaves will populate payslips based on the concept of *work entries*." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:458 +msgid "When switching from another STP-enabled software to Odoo, you might need to maintain the continuity in the YTD values of your employees. Odoo allows importing employees' YTD values by going to :menuselection:`Payroll --> Configuration --> Settings` and clicking :guilabel:`Import YTD Balances`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:680 -msgid "Go to :menuselection:`Time Off --> Configuration --> Time Off Types`, and for each type, configure the following two fields under the :guilabel:`Payroll` section:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Import YTD balances button." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:683 -msgid ":guilabel:`Work Entry Type`: defines which work entry should be selected on the :guilabel:`Worked Days` table of the payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:466 +msgid "For the ATO to recognize the employee records of your previous software and keep a continuity in Odoo, you must enter the:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:685 -msgid ":guilabel:`Unused Leave Type`: choose between :guilabel:`Annual`, :guilabel:`Long Service`, or :guilabel:`Personal Leave`. If :guilabel:`Personal Leave` is selected, the remaining leave balance for this time off type will not show up as an entitlement at the time of termination. Unused leaves of the type :guilabel:`Annual` will include leave loading if the employee is eligible for it." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:469 +msgid ":guilabel:`Previous BMS ID` (one per database)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:470 +msgid ":guilabel:`Previous Payroll ID` (one per employee)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:472 +msgid "Ask your previous software provider if you cannot find its BMS ID or your employees' payroll IDs." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Configuring time off types." +msgid "Importing YTD balances." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:695 -msgid "Expenses" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:477 +msgid "This will give you the opportunity to add your employees' YTD opening balances in the current fiscal year. The ATO reports on a lot of different types of YTD. These are represented by the 13 following :guilabel:`Salary Rules` in Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:697 -msgid "The :doc:`Expenses app <../../../finance/expenses>` is also natively integrated with the **Payroll** app in Odoo. First of all, go to :menuselection:`Expenses --> Configuration --> Settings` and enable :guilabel:`Reimburse in Payslip`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Salary rules for an employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:701 -msgid "When an employee on your payroll submits an approved expense to be reimbursed, you can reimburse them using two ways:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:485 +msgid "Let us say that the employee Marcus Cook has been transitioned from another STP-enabled software on September 1. Marcus has received two monthly payslips in his previous software (for July and August). Here are the YTD balances Marcus's company needs to transfer to Odoo:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:704 -msgid "If the expense is to be reimbursed outside of a pay run, click :guilabel:`Post Journal Entries`. The payment must be made manually." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:492 +msgid "YTD category" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:706 -msgid "If the expense is to be reimbursed as part of the next pay run, click :guilabel:`Report in Next Payslip` instead." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:493 +msgid "YTD balance to transfer" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Two ways of reimbursing an expense." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:494 +msgid "Gross (normal attendance)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:712 -msgid "After an expense has been added to the next payslip, you can find it in the :guilabel:`Other Inputs` table. This input type is then computed as an addition to the net salary." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:495 +msgid "$13,045.45" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "The expense reimbursement on a payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:496 +msgid "Gross (overtime)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:718 -msgid "After paying the employee, the payslip's journal item related to the employee's reimbursement is automatically matched against the expense's vendor bill." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:497 +msgid "$1,000" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "The payslip's journal item related to the employee's expense reimbursement." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:498 +msgid "Paid leave" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:725 -msgid "Advanced configurations" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:499 +msgid "$954.55" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:732 -msgid "You can access other input types by going to :menuselection:`Payroll --> Configuration --> Other Input Types`. There are 63 other input types related to Australia. We do not recommend using the other ones as part of your payroll solution, since they cannot be used in the frame of STP. You can archive or delete them." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:500 +msgid "Laundry allowance" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:737 -msgid "On each input type, the following fields are important:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:501 +msgid "$200" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:739 -msgid ":guilabel:`Payment Type` classifies input types in six categories:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:502 +msgid "Total withholding" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:741 -msgid ":guilabel:`Allowance`: a separate amount you pay to your employees in addition to salary and wages. Some of these allowances are mandated by modern awards: laundry, transport, etc." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:503 +msgid "$2,956" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:745 -msgid "`Contact us `_ if you plan to use allowances subject to varied rates of withholding (such as *cents per KM* or *travel allowances*) to see whether Odoo currently covers your business case." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:504 +msgid "Super Guarantee" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:750 -msgid "As of Odoo 18, some allowances such as :guilabel:`Laundry: Allowance for approved uniforms` are managed by two other inputs: one to lodge the amount paid up to the ATO limit, and the other one to lodge the amount exceeding the ATO limit. This is necessary for Odoo to compute PAYGW correctly." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:505 +msgid "$1,610" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:754 -msgid "Some businesses may require to shift the reporting of an allowance from :guilabel:`OTE` to :guilabel:`Salary & Wages` depending on the employee. In this case, you must duplicate and re-configure an existing other input type. For example, :guilabel:`Work-Related Non-Expense` allowance is :guilabel:`OTE` by default." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:507 +msgid "If some YTD balances need to be reported with more granularity to the ATO, you can use the salary rule's inputs." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:759 -msgid ":guilabel:`Deduction`: union fees and child support deductions are considered deductions." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:511 +msgid "For instance, the *Basic Salary* rule can contain six inputs, and three are necessary in our example: regular gross amounts, overtime, and paid leaves. These are all reported differently in terms of YTD amounts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:760 -msgid ":guilabel:`ETP`: employment termination payments. These are either considered excluded or non-excluded (see `ATO's web page on ETP components taxation `_)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 +msgid "Adding YTD inputs" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:762 -msgid ":guilabel:`Leave`: leave-related other inputs that are not pertaining to a single pay period (lump sum, cashing out leaves while in service, unused leaves, etc.)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:518 +msgid "The finalized YTD opening balances for Marcus Cook look like the following." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:764 -msgid ":guilabel:`Lump Sum`: return to work and lump sum E (for back payments) fall under this category." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 +msgid "Example of finalized YTD opening balances" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:766 -msgid ":guilabel:`Other`: other payments with their own specific logic." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:523 +msgid "As a result, YTD computations on payslips are based on the employee's opening balances instead of starting from zero." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:768 -msgid ":guilabel:`PAYGW Treatment` affects how Odoo withholds tax for this input type: :guilabel:`Regular`, :guilabel:`No PAYG Withholding`, and :guilabel:`Excess Only` (for allowances)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:527 +msgid "STP finalisation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:771 -msgid ":guilabel:`Superannuation Treatment`: :guilabel:`OTE`, :guilabel:`Salary & Wages`, and :guilabel:`Not Salary & Wages`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:530 +msgid "Odoo is currently in the process of becoming compliant with STP Phase 2, and the finalisation flows described below do not yet submit data to the ATO." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:773 -msgid ":guilabel:`STP Code`: only visible in :ref:`developer mode `, this field tells Odoo how to report the gross value of this payment to the ATO. We do not recommend changing the value of this field if it was already set by default." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:534 +msgid "EOFY finalisation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:777 -msgid "Grouping other input types by :guilabel:`Payment Type` can help you understand the different scenarios in which these inputs can be used." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:536 +msgid "Employers reporting through STP must make a finalization declaration by 14 July each year. To do so, go to :menuselection:`Payroll --> Reporting --> STP Finalisation`." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Other input types grouped by payment type." +msgid "EOFY finalisation of an employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:788 -msgid "A *work entry type* is a type of attendance for employees (e.g., attendance, paid leave, overtime, etc.). A few work entry types are created by default in every Australian database." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:542 +msgid "Both active and terminated employees to finalise are displayed." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Default work entry types for the Australian localization." +msgid "List of employees to finalise." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:794 -msgid "Before using Odoo's payroll solution for Australia, it is recommended you trim work entry types to keep the ones you need only by going to :menuselection:`Payroll --> Configuration --> Work Entry Types`" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:547 +msgid "From the finalisation form view, you can proceed with a final audit of all employees' payslips during the relevant financial year. Once ready, click :guilabel:`Submit to ATO`. When you have made the finalisation declaration, employees will see the status of their payment information change to :guilabel:`Tax ready` on their online income statement after the end of the financial year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:798 -msgid "For each type, make sure to configure the following fields for Australia:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:553 +msgid "Individual finalisation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:800 -msgid ":guilabel:`Is OTE`: determines whether time spent in this category can be considered ordinary time earnings, meaning that the superannuation guarantee rate will apply (e.g., regular attendance, paid leave, etc.)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:555 +msgid "Odoo also allows you to finalise employees individually during the year. This can be useful when:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:803 -msgid ":guilabel:`Penalty Rate`: used to determine the percentage of penalty that applies to time spent in this category. It is important that you configure the penalty rate that applies in your state or industry according to the type of work (e.g., Saturday rate, Sunday rate, overtime rate, etc.)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:557 +msgid "one-off payments are made after a first finalisation; and" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:806 -msgid ":guilabel:`STP Code`: only visible in :ref:`developer mode `, this field tells Odoo how to report the time spent in this category to the ATO. We do not recommend changing the value of this field if it was already set by default." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:558 +msgid "finalisation after termination of employment during the year." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:560 +msgid "To proceed with an individual finalisation, go to :menuselection:`Payroll --> Reporting --> STP Finalisation`, leave the :guilabel:`EOFY Declaration` checkbox unticked, and manually add employees to be finalised." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Configuring a work entry type." +msgid "Individual EOFY finalisation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:814 -msgid "Current limitations" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:567 +msgid "Even if you finalise an employee record partway through the financial year, the ATO will not pre-fill the information into the employee's tax return until after the end of the financial year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:816 -msgid "As of Odoo 18, we do not recommend companies to use the Payroll app for the following business flows:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:571 +msgid "Adjustments" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:819 -msgid "Income stream types: Foreign Employment Income" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:574 +msgid "Odoo is currently in the process of becoming compliant with STP Phase 2, and the adjustment flows described below do not yet submit data to the ATO." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:820 -msgid "Tax treatment category: actors & performers" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:578 +msgid "Amend finalisation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:821 -msgid "Death benefits reporting" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:580 +msgid "If you need to amend YTD amounts for an employee after a finalisation declaration was made, it is still possible to remove the finalisation indicator for that employee. To do so, go to :menuselection:`Payroll --> Reporting --> STP Finalisation`, select the employee, and leave the :guilabel:`Finalisation` checkbox unticked." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:822 -msgid "Reporting obligations for WPN (instead of ABN)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Amending YTD amounts for an employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:823 -msgid "Allowances subject to a varied rate of withholding (such as *cents per kilometer* allowance and *travel allowances*)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:588 +msgid "When ready, click :guilabel:`Submit to ATO` to file the finalisation update to the ATO." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:826 -msgid "`Contact us `_ if you would like to make sure whether Odoo fits your payroll requirements in Australia." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:590 +msgid "Once the correct YTD details are ready for that employee after amendment, finalise that employee again." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:832 -msgid "Employment Hero integration" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:594 +msgid "The ATO expects employers to correct errors within 14 days of detection or, if your pay cycle is longer than 14 days (e.g., monthly), by the date you would be due to lodge the next regular pay event. Finalisation amendments can be done through STP up to five years after the end of the financial year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:834 -msgid "If your business is already up and running with Employment Hero, you can use the connector as an alternative payroll solution. The Employment Hero module synchronizes payslip accounting entries (e.g., expenses, social charges, liabilities, taxes) automatically from Employment Hero to Odoo. Payroll administration is still done in Employment Hero; Odoo only records the journal entries." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:599 +msgid "Finalising and amending finalisation for a single employee can also be useful when rehiring an employee within the same financial year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:842 -msgid ":ref:`Install ` the Employment Hero Payroll module (`l10n_employment_hero`)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:603 +msgid "Full file replacements" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:843 -msgid "Configure the Employment Hero API by going to :menuselection:`Accounting --> Configuration --> Settings`. More fields become visible after ticking the :guilabel:`Enable Employment Hero Integration` checkbox." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:605 +msgid "An employer can make full file replacements of pay runs to replace the last lodgement sent to the ATO if it turns out to contain significantly inaccurate data." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 -msgid "Enabling the Employment Hero integration." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:608 +msgid "To do so, open the last STP submission and click :guilabel:`Replace File`. Then, select which payslips need to be reset by ticking the :guilabel:`Reset Payslip` checkbox." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:850 -msgid "Find the :guilabel:`API Key` in the :guilabel:`My Account` section of the Employment Hero platform." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Replace file button." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 -msgid "Finding the Employment Hero API key under the My Account section." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:614 +msgid "Resetting payslips does not create new payslips or a new pay run, but instead:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:856 -msgid "The :guilabel:`Payroll URL` is pre-filled with `https://keypay.yourpayroll.com.au`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:616 +msgid "The payslips batch is reset from :guilabel:`Paid` or :guilabel:`Done` to :guilabel:`Confirmed`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:859 -msgid "Do not change the pre-filled :guilabel:`Payroll URL`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:617 +msgid "The status of the reset payslips revert back to :guilabel:`Draft`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:861 -msgid "Find the :guilabel:`Business Id` in the Employment Hero URL (e.g., `189241`)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:618 +msgid "The correct payslips remain paid and matched against the original payment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 -msgid "Finding the Employment Hero Business ID in the URL." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:619 +msgid "A new STP submission is created to replace the former one. For traceability purposes, the former STP submission is not deleted but marked as replaced." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:866 -msgid "Select any Odoo journal as the :guilabel:`Payroll Journal` to post the payslip entries." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:622 +msgid "First, correct the reset payslips and create their draft entry. Once done, the :guilabel:`Submit to ATO` reappears on the payslip batch to process the full file replacement." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:868 -msgid "Configure the tax by going to :menuselection:`Accounting --> Configuration --> Taxes`. Create the necessary taxes for the Employment Hero payslip entries. Fill in the tax code from Employment Hero in the :menuselection:`Matching Employment Hero Tax` field." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Resubmitting a payslip batch." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:873 -msgid "The API explained" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:628 +msgid "When ready, submit the pay run to the ATO once again. Please note that full file replacements are only meant as a last resort to amend a substantial amount of erroneous data. When possible, the ATO recommends correcting an incorrect payslips by submitting a correction as part of the next pay run or via update event." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:875 -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:56 -msgid "The API syncs the journal entries from Employment Hero to Odoo and leaves them in draft mode. The reference includes the Employment Hero payslip entry ID in brackets for the user to easily retrieve the same record in Employment Hero and Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:633 +msgid "Moreover, it is not possible to submit a second full file replacement of the same submission, and a full file replacement can only be done once every 24 hours." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Employment Hero journal entries in Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:637 +msgid "Zero out YTD values" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:882 -msgid "By default, the synchronization happens once per week. It is possible to fetch the records manually by going to :menuselection:`Accounting --> Configuration --> Settings` and, in the :guilabel:`Employment Hero`, clicking :guilabel:`Fetch Payruns Manually`." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:639 +msgid "In case of a mid-year change of several key identifiers, YTD values need to be zeroed out, and then re-posted with the updated key identifier." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:886 -msgid "Employment Hero payslip entries also work based on double-entry bookkeeping. The accounts used by Employment Hero are defined in the Payroll settings section." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:642 +msgid "For the following **company identifiers**, all employees need to be zeroed out:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 -msgid "Finding the Employment Hero accounts." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:644 +msgid "ABN" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:892 -msgid "For the API to work, you must create the same accounts as the default accounts of your Employment Hero business (same name and same code) in Odoo. You also need to choose the correct account types in Odoo to generate accurate financial reports." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:645 +msgid "Branch Code" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3 -msgid "Belgium" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:646 +msgid "BMS ID" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:8 -msgid "Understanding the Belgian payslip" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:648 +msgid "For the following **employee identifiers**, only individual employees can be zeroed out:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:13 -msgid "Providing employees with a clear, transparent payslip is essential for compliance and employee satisfaction. This guide explains how to interpret a Belgian payslip, detailing key components that impact salary calculations and deductions." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:650 +msgid "TFN" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:20 -msgid "The first section of the payslip contains the employee's general details. It is crucial to verify the accuracy of the civil status and the number of dependents, as these factors influence tax calculations. Employers can ensure updates are made through their internal salary configurator or employee profile management systems." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:651 +msgid "Payroll ID" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "How to read a payslip - General Information." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:653 +msgid "Before updating any key identifiers, create a new STP submission by going to :menuselection:`Payroll --> Reporting --> Single Touch Payroll` and:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:31 -msgid "This section outlines time-off applications and their impact on salary. The base salary typically remains constant unless unpaid leave is taken. If an employee has taken unpaid leave, parental leave, or any unexpected absence, their salary will reflect the corresponding deductions." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:656 +msgid "Change the :guilabel:`Submission Type` to :guilabel:`Update`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "How to read a payslip - Work Entries." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:657 +msgid "Tick the :guilabel:`Zero Out YTD` checkbox." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:39 -msgid "Payroll calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:658 +msgid "Click :guilabel:`Add a line` to specify which employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:41 -msgid "The core of the payslip details various salary components, deductions, and benefits. Below are the primary elements:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:659 +msgid "Click :guilabel:`Submit to ATO`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:44 -msgid "**Benefits in Kind**: If applicable, benefits in kind (such as a mobile or internet subscription or a laptop) are subject to taxation and impact net remuneration." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 +msgid "Creating a new STP submission to zero out YTD values." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:47 -msgid "When a company car is provided for personal use, a taxable benefit (ATN) is added to the employee's salary. This is determined by:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:664 +msgid "Once that is done, modify the key identifier(s) to amend." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:50 -msgid "The catalog value and age of the vehicle" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:666 +msgid "Finally, go back to :menuselection:`Payroll --> Reporting --> Single Touch Payroll` to create and submit a new :guilabel:`Update`, this time without ticking the :guilabel:`Zero Out YTD` checkbox. This will notify the ATO that the previously recorded YTD balances are to be adjusted to the new key identifiers." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:51 -msgid "The vehicle's CO2 emissions" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:672 +msgid "Payroll links to other apps" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:53 -msgid "This benefit is subject to withholding tax and will be adjusted later in the payroll process." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:675 +msgid "Time Off" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:54 -msgid "**Social Security contributions**: A mandatory 13.07% deduction from gross salary is allocated to the National Social Security Office (ONSS). This includes:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:677 +msgid "The :doc:`Time Off app <../../../hr/time_off>` is natively integrated with the Payroll app in Odoo. Different types of leaves will populate payslips based on the concept of *work entries*." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:57 -msgid "Pensions: 7.5%" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:680 +msgid "Go to :menuselection:`Time Off --> Configuration --> Time Off Types`, and for each type, configure the following two fields under the :guilabel:`Payroll` section:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:58 -msgid "Health Insurance for Care: 3.55%" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:683 +msgid ":guilabel:`Work Entry Type`: defines which work entry should be selected on the :guilabel:`Worked Days` table of the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:59 -msgid "Health Insurance for Benefits: 1.15%" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:685 +msgid ":guilabel:`Unused Leave Type`: choose between :guilabel:`Annual`, :guilabel:`Long Service`, or :guilabel:`Personal Leave`. If :guilabel:`Personal Leave` is selected, the remaining leave balance for this time off type will not show up as an entitlement at the time of termination. Unused leaves of the type :guilabel:`Annual` will include leave loading if the employee is eligible for it." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:60 -msgid "Unemployment: 0.87%" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Configuring time off types." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:62 -msgid "Additionally, the employer contributes on average 25% of the employer's contributions to the National Social Security Office." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:695 +msgid "Expenses" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:64 -msgid "**Employment bonus**: A reduction in employee contributions based on gross salary, which is phased out if the salary exceeds a specific threshold." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:697 +msgid "The :doc:`Expenses app <../../../finance/expenses>` is also natively integrated with the **Payroll** app in Odoo. First of all, go to :menuselection:`Expenses --> Configuration --> Settings` and enable :guilabel:`Reimburse in Payslip`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:68 -msgid "`More info on job bonuses `_" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:701 +msgid "When an employee on your payroll submits an approved expense to be reimbursed, you can reimburse them using two ways:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:70 -msgid "**Withholding taxes**: Withholding tax rates are revised annually by the `SPF Finances `_." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:704 +msgid "If the expense is to be reimbursed outside of a pay run, click :guilabel:`Post Journal Entries`. The payment must be made manually." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:73 -msgid "The tax amount is influenced by:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:706 +msgid "If the expense is to be reimbursed as part of the next pay run, click :guilabel:`Report in Next Payslip` instead." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:75 -msgid "Gross salary" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Two ways of reimbursing an expense." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:76 -msgid "Marital status (married, legally cohabiting, or single)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:712 +msgid "After an expense has been added to the next payslip, you can find it in the :guilabel:`Other Inputs` table. This input type is then computed as an addition to the net salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:77 -msgid "Household composition (children or other dependents)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "The expense reimbursement on a payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:79 -msgid "This serves as an advance payment on professional income tax." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:718 +msgid "After paying the employee, the payslip's journal item related to the employee's reimbursement is automatically matched against the expense's vendor bill." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:80 -msgid "**Reduction in withholding tax**: A reduction based on gross salary, which is ignored if salary surpasses a specific amount." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "The payslip's journal item related to the employee's expense reimbursement." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:82 -msgid "**Special Social Security contribution**: A household income-based tax applicable to all employees covered by social security." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:725 +msgid "Advanced configurations" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:84 -msgid "**Meal voucher deduction**: Employees receive meal vouchers valued for instance at €8 per workday, where:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:732 +msgid "You can access other input types by going to :menuselection:`Payroll --> Configuration --> Other Input Types`. There are 63 other input types related to Australia. We do not recommend using the other ones as part of your payroll solution, since they cannot be used in the frame of STP. You can archive or delete them." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:87 -msgid "The employer contributes €6.91" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:737 +msgid "On each input type, the following fields are important:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:88 -msgid "The employee contributes €1.09" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:739 +msgid ":guilabel:`Payment Type` classifies input types in six categories:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:91 -msgid "5 worked days -> deduction of €5.45 (:math:`5\\times\\text{€}1.09`)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:741 +msgid ":guilabel:`Allowance`: a separate amount you pay to your employees in addition to salary and wages. Some of these allowances are mandated by modern awards: laundry, transport, etc." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:92 -msgid "22 worked days -> deduction of €23.98 (:math:`22\\times\\text{€}1.09`)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:745 +msgid "`Contact us `_ if you plan to use allowances subject to varied rates of withholding (such as *cents per KM* or *travel allowances*) to see whether Odoo currently covers your business case." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:94 -msgid "Variations in this deduction impact monthly net salary." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:750 +msgid "As of Odoo 18, some allowances such as :guilabel:`Laundry: Allowance for approved uniforms` are managed by two other inputs: one to lodge the amount paid up to the ATO limit, and the other one to lodge the amount exceeding the ATO limit. This is necessary for Odoo to compute PAYGW correctly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:95 -msgid "**Representation fees**: An optional net salary component, allocated in two parts:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:754 +msgid "Some businesses may require to shift the reporting of an allowance from :guilabel:`OTE` to :guilabel:`Salary & Wages` depending on the employee. In this case, you must duplicate and re-configure an existing other input type. For example, :guilabel:`Work-Related Non-Expense` allowance is :guilabel:`OTE` by default." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:97 -msgid "A fixed portion, independent of working hours" -msgstr "" - -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:98 -msgid "A prorated portion, adjusted for part-time schedules" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:759 +msgid ":guilabel:`Deduction`: union fees and child support deductions are considered deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:99 -msgid "**Net salary**: The final amount deposited into the employee's bank account after deductions." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:760 +msgid ":guilabel:`ETP`: employment termination payments. These are either considered excluded or non-excluded (see `ATO's web page on ETP components taxation `_)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:104 -msgid "December pay" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:762 +msgid ":guilabel:`Leave`: leave-related other inputs that are not pertaining to a single pay period (lump sum, cashing out leaves while in service, unused leaves, etc.)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:107 -msgid "Why a December settlement?" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:764 +msgid ":guilabel:`Lump Sum`: return to work and lump sum E (for back payments) fall under this category." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:109 -msgid "An employer must pay a vacation allowance to an employee in December under two conditions:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:766 +msgid ":guilabel:`Other`: other payments with their own specific logic." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:111 -msgid "If the employee has reduced their working hours during the vacation year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:768 +msgid ":guilabel:`PAYGW Treatment` affects how Odoo withholds tax for this input type: :guilabel:`Regular`, :guilabel:`No PAYG Withholding`, and :guilabel:`Excess Only` (for allowances)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:112 -msgid "If the employee is unable to take all their vacation days before the end of the year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:771 +msgid ":guilabel:`Superannuation Treatment`: :guilabel:`OTE`, :guilabel:`Salary & Wages`, and :guilabel:`Not Salary & Wages`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:114 -msgid "In principle, employers must ensure that employees take their annual vacation before December 31. However, certain circumstances may prevent employees from using all their vacation days. In these cases, the employer must pay the simple vacation allowance for unused days before the end of the year. Additionally, if the employee has not received the double vacation allowance earlier in the year (typically in May or June), they are entitled to receive it." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:773 +msgid ":guilabel:`STP Code`: only visible in :ref:`developer mode `, this field tells Odoo how to report the gross value of this payment to the ATO. We do not recommend changing the value of this field if it was already set by default." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:121 -msgid "Reduction of working hours" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:777 +msgid "Grouping other input types by :guilabel:`Payment Type` can help you understand the different scenarios in which these inputs can be used." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:123 -msgid "When an employee reduces their average working hours with the same employer, the employer must pay the vacation allowance in December of the year in which the reduction occurs, as if the employee had left the company." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Other input types grouped by payment type." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:127 -msgid "**Possible scenarios**:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:788 +msgid "A *work entry type* is a type of attendance for employees (e.g., attendance, paid leave, overtime, etc.). A few work entry types are created by default in every Australian database." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:129 -msgid "Transition to part-time work." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Default work entry types for the Australian localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:130 -msgid "Partial career break." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:794 +msgid "Before using Odoo's payroll solution for Australia, it is recommended you trim work entry types to keep the ones you need only by going to :menuselection:`Payroll --> Configuration --> Work Entry Types`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:131 -msgid "Thematic leave on a part-time basis." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:798 +msgid "For each type, make sure to configure the following fields for Australia:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:132 -msgid "Partial return to work after a full incapacity period." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:800 +msgid ":guilabel:`Is OTE`: determines whether time spent in this category can be considered ordinary time earnings, meaning that the superannuation guarantee rate will apply (e.g., regular attendance, paid leave, etc.)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:134 -msgid "The settlement is calculated based on the previous vacation year's earnings and includes:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:803 +msgid ":guilabel:`Penalty Rate`: used to determine the percentage of penalty that applies to time spent in this category. It is important that you configure the penalty rate that applies in your state or industry according to the type of work (e.g., Saturday rate, Sunday rate, overtime rate, etc.)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:136 -msgid "**Simple vacation allowance**: 7.67% of the yearly gross salary from the previous year, including any fictitious salary for assimilated interruption days, minus the simple vacation allowance already paid during the vacation year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:806 +msgid ":guilabel:`STP Code`: only visible in :ref:`developer mode `, this field tells Odoo how to report the time spent in this category to the ATO. We do not recommend changing the value of this field if it was already set by default." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:139 -msgid "**Double vacation allowance**: 7.67% of the yearly gross salary from the previous year, including any fictitious salary for assimilated interruption days, minus the double vacation allowance already paid during the vacation year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Configuring a work entry type." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:143 -msgid "If all vacation days have been taken before the reduction in working hours, no additional calculation is required." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:814 +msgid "Current limitations" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:147 -msgid "Inability to use vacation days" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:816 +msgid "As of Odoo 18, we do not recommend companies to use the Payroll app for the following business flows:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:149 -msgid "As a general rule, all vacation days must be used within the vacation year. However, if an employee is unable to take all their vacation due to force majeure or specific suspension reasons, the employer must pay the following by December 31:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:819 +msgid "Income stream types: Foreign Employment Income" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:153 -msgid "**Simple vacation allowance** for unused days, based on the December salary." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:820 +msgid "Tax treatment category: actors & performers" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:154 -msgid "**Double vacation allowance** if it has not yet been paid, based on the December salary." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:821 +msgid "Death benefits reporting" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:156 -msgid "**Eligible reasons include**:" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:822 +msgid "Reporting obligations for WPN (instead of ABN)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:158 -msgid "Common illness or accident." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:823 +msgid "Allowances subject to a varied rate of withholding (such as *cents per kilometer* allowance and *travel allowances*)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:159 -msgid "Work accident or occupational disease." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:826 +msgid "`Contact us `_ if you would like to make sure whether Odoo fits your payroll requirements in Australia." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:160 -msgid "Maternity leave, paternity leave (converted maternity leave), prophylactic leave." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:832 +msgid "Employment Hero integration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:161 -msgid "Birth, adoption, or reception leave." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:834 +msgid "If your business is already up and running with Employment Hero, you can use the connector as an alternative payroll solution. The Employment Hero module synchronizes payslip accounting entries (e.g., expenses, social charges, liabilities, taxes) automatically from Employment Hero to Odoo. Payroll administration is still done in Employment Hero; Odoo only records the journal entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:162 -msgid "Parental leave or protective maternity leave measures." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:842 +msgid ":ref:`Install ` the Employment Hero Payroll module (`l10n_employment_hero`)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:165 -msgid "New rule (effective end of 2024)" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:843 +msgid "Configure the Employment Hero API by going to :menuselection:`Accounting --> Configuration --> Settings`. More fields become visible after ticking the :guilabel:`Enable Employment Hero Integration` checkbox." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:167 -msgid "Employees unable to take vacation due to the above reasons (except force majeure or protective maternity leave measures) can carry over unused days for up to 24 months. Since the vacation allowance is already paid in December of the vacation year, no additional payment will be made when the carried-over days are used." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 +msgid "Enabling the Employment Hero integration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:173 -msgid "Employer payment responsibilities" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:850 +msgid "Find the :guilabel:`API Key` in the :guilabel:`My Account` section of the Employment Hero platform." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:175 -msgid "The employer must pay any outstanding simple vacation allowance based on 7.67% of the gross salary from the previous year. However, an exit vacation allowance based on the current year's gross salary is not due." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 +msgid "Finding the Employment Hero API key under the My Account section." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:179 -msgid "If an employee reduces their working hours and continues in the same role the following year, an additional vacation allowance calculation may be required in December." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:856 +msgid "The :guilabel:`Payroll URL` is pre-filled with `https://keypay.yourpayroll.com.au`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:183 -msgid "Example calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:859 +msgid "Do not change the pre-filled :guilabel:`Payroll URL`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:185 -msgid "In 2013, an employee works full-time (5 days per week)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:861 +msgid "Find the :guilabel:`Business Id` in the Employment Hero URL (e.g., `189241`)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:186 -msgid "In 2014, the employee works full-time until June 30, then switches to part-time (5 half-days per week)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:0 +msgid "Finding the Employment Hero Business ID in the URL." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:188 -msgid "The employee takes vacation in August 2014 under the new part-time regime (20 half-days over 4 weeks)." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:866 +msgid "Select any Odoo journal as the :guilabel:`Payroll Journal` to post the payslip entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:190 -msgid "They receive a simple vacation allowance for 20 half-days and a double vacation allowance equivalent to 92% of their monthly salary." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:868 +msgid "Configure the tax by going to :menuselection:`Accounting --> Configuration --> Taxes`. Create the necessary taxes for the Employment Hero payslip entries. Fill in the tax code from Employment Hero in the :menuselection:`Matching Employment Hero Tax` field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:192 -msgid "In December 2014, the employee receives additional simple (7.67%) and double (7.67%) vacation allowances based on 2013's gross salary, minus previously paid amounts." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:873 +msgid "The API explained" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:194 -msgid "In 2015, if the employee continues part-time, they receive vacation based on part-time hours plus 5 full-time vacation days from the 2014 vacation year." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:875 +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:56 +msgid "The API syncs the journal entries from Employment Hero to Odoo and leaves them in draft mode. The reference includes the Employment Hero payslip entry ID in brackets for the user to easily retrieve the same record in Employment Hero and Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:196 -msgid "A second settlement in December 2015 includes additional simple (7.67%) and double (7.67%) vacation allowances based on the 2014 gross salary, minus previously paid amounts." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Employment Hero journal entries in Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:200 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1650 -msgid "How to do it in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:882 +msgid "By default, the synchronization happens once per week. It is possible to fetch the records manually by going to :menuselection:`Accounting --> Configuration --> Settings` and, in the :guilabel:`Employment Hero`, clicking :guilabel:`Fetch Payruns Manually`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:202 -msgid "On a classic :doc:`payslip <../payslips>` issued in December, press the :guilabel:`Compute December Holiday Pay` button to open a configuration wizard." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:886 +msgid "Employment Hero payslip entries also work based on double-entry bookkeeping. The accounts used by Employment Hero are defined in the Payroll settings section." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:205 -msgid "Based on the allocated and requested time off, the :guilabel:`Simple Holiday Pay N-1` and :guilabel:`Double Holiday Pay N-1` for the December payslip are computed (and editable for manual encoding). Click :guilabel:`Validate` to confirm." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:-1 +msgid "Finding the Employment Hero accounts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "December Pay Amount." +#: ../../content/applications/hr/payroll/payroll_localizations/australia.rst:892 +msgid "For the API to work, you must create the same accounts as the default accounts of your Employment Hero business (same name and same code) in Odoo. You also need to choose the correct account types in Odoo to generate accurate financial reports." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:212 -msgid "After validation, two additional inputs are stored on the payslip, and the payslip is re-computed to take those new remunerations into account." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3 +msgid "Belgium" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:215 -msgid "The simple holiday pay is included into the gross remuneration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:8 +msgid "Understanding the Belgian payslip" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "December Pay Simple." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:13 +msgid "Providing employees with a clear, transparent payslip is essential for compliance and employee satisfaction. This guide explains how to interpret a Belgian payslip, detailing key components that impact salary calculations and deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:220 -msgid "The double holiday pay is computed separately and included into the net amount." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:20 +msgid "The first section of the payslip contains the employee's general details. It is crucial to verify the accuracy of the civil status and the number of dependents, as these factors influence tax calculations. Employers can ensure updates are made through their internal salary configurator or employee profile management systems." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "December Pay Double." +msgid "How to read a payslip - General Information." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:228 -msgid "Departure: holiday attests" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:31 +msgid "This section outlines time-off applications and their impact on salary. The base salary typically remains constant unless unpaid leave is taken. If an employee has taken unpaid leave, parental leave, or any unexpected absence, their salary will reflect the corresponding deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:233 -msgid "In Belgium, when an employee leaves a company, the employer is required to provide vacation attestations. These documents help the new employer determine the employee's vacation entitlements and any vacation pay due. Odoo facilitates the automatic generation of these attestations based on payroll and time-off data." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "How to read a payslip - Work Entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:239 -msgid "Types of attestations" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:39 +msgid "Payroll calculation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:241 -msgid "Odoo generates two types of vacation attestations:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:41 +msgid "The core of the payslip details various salary components, deductions, and benefits. Below are the primary elements:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:243 -msgid "**For the previous year (N-1)**: If the employee has not yet taken all the vacation days from the previous year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:44 +msgid "**Benefits in Kind**: If applicable, benefits in kind (such as a mobile or internet subscription or a laptop) are subject to taxation and impact net remuneration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:245 -msgid "**For the current year (N)**: Covering the vacation rights accrued in the year of departure." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:47 +msgid "When a company car is provided for personal use, a taxable benefit (ATN) is added to the employee's salary. This is determined by:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:247 -msgid "Each attestation includes details such as:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:50 +msgid "The catalog value and age of the vehicle" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:249 -msgid "The period the employee was employed." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:51 +msgid "The vehicle's CO2 emissions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:250 -msgid "Agreed working time and any modifications." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:53 +msgid "This benefit is subject to withholding tax and will be adjusted later in the payroll process." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:251 -msgid "Gross amounts of single and double vacation pay paid." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:54 +msgid "**Social Security contributions**: A mandatory 13.07% deduction from gross salary is allocated to the National Social Security Office (ONSS). This includes:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:252 -msgid "Social security contributions paid by the employer." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:57 +msgid "Pensions: 7.5%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:253 -msgid "Number of vacation days already taken." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:58 +msgid "Health Insurance for Care: 3.55%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:254 -msgid "Additional (European) vacation pay and days." -msgstr "" - -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:257 -msgid "Calculation logic in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:59 +msgid "Health Insurance for Benefits: 1.15%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:259 -msgid "Odoo computes the attestations based on payroll and leave data. The main calculations include:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:60 +msgid "Unemployment: 0.87%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:261 -msgid "**Retrieving payroll and leave records**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:62 +msgid "Additionally, the employer contributes on average 25% of the employer's contributions to the National Social Security Office." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:263 -msgid "The system identifies the employee's payroll records for the current and previous years." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:64 +msgid "**Employment bonus**: A reduction in employee contributions based on gross salary, which is phased out if the salary exceeds a specific threshold." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:264 -msgid "It retrieves validated leave requests and allocations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:68 +msgid "`More info on job bonuses `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:266 -msgid "**Computing gross remuneration**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:70 +msgid "**Withholding taxes**: Withholding tax rates are revised annually by the `SPF Finances `_." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:268 -msgid "The gross annual salary for both the current and previous years is computed from payroll records." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:73 +msgid "The tax amount is influenced by:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:270 -msgid "The average monthly salary is calculated for unpaid leave adjustments." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:75 +msgid "Gross salary" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:272 -msgid "**Time-off calculations**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:76 +msgid "Marital status (married, legally cohabiting, or single)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:274 -msgid "The number of vacation days taken and allocated in the current year is determined." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:77 +msgid "Household composition (children or other dependents)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:275 -msgid "Unpaid leave days are accounted for separately." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:79 +msgid "This serves as an advance payment on professional income tax." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:277 -msgid "**Fictitious remuneration calculation**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:80 +msgid "**Reduction in withholding tax**: A reduction based on gross salary, which is ignored if salary surpasses a specific amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:279 -msgid "If unpaid leave was taken, Odoo computes a fictitious remuneration adjustment using the formula:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:82 +msgid "**Special Social Security contribution**: A household income-based tax applicable to all employees covered by social security." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:282 -msgid "\\text{Fictitious Remuneration} = (\\text{Unpaid Leave Days} \\times\n" -"\\text{Average Monthly Salary} \\times 3) \\div (13 \\times 5)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:84 +msgid "**Meal voucher deduction**: Employees receive meal vouchers valued for instance at €8 per workday, where:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:288 -msgid "**Generating the final attestation**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:87 +msgid "The employer contributes €6.91" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:290 -msgid "Odoo creates a payroll entry reflecting the vacation pay due." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:88 +msgid "The employee contributes €1.09" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:291 -msgid "The attestation document is generated and can be printed or exported." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:91 +msgid "5 worked days -> deduction of €5.45 (:math:`5\\times\\text{€}1.09`)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:293 -msgid "Two payslips are created:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:92 +msgid "22 worked days -> deduction of €23.98 (:math:`22\\times\\text{€}1.09`)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:295 -msgid "**Payslip for the current year** (`termination_payslip_n`)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:94 +msgid "Variations in this deduction impact monthly net salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:297 -msgid "This payslip covers the employee's last salary period in the year of termination." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:95 +msgid "**Representation fees**: An optional net salary component, allocated in two parts:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:299 -msgid "**Payslip for the previous year** (`termination_payslip_n1`)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:97 +msgid "A fixed portion, independent of working hours" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:301 -msgid "The one accounts the amount of money converted from the untaken time off of previous year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:98 +msgid "A prorated portion, adjusted for part-time schedules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:303 -msgid "Each payslip is generated using the appropriate payroll structure, ensuring correct calculations for all entitlements and deductions." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:99 +msgid "**Net salary**: The final amount deposited into the employee's bank account after deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:306 -msgid "Before computing the final payment, the system gathers necessary payroll data:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:104 +msgid "December pay" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:308 -msgid "**Annual gross salary calculation**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:107 +msgid "Why a December settlement?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:310 -msgid "To estimate the employee's **annual gross salary**, the system looks for the most recent validated monthly payslip. If a payslip is found, the **gross salary** from that payslip is multiplied by 12 to get an annual estimate. If no payslip exists, the annual gross salary is set to **zero**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:109 +msgid "An employer must pay a vacation allowance to an employee in December under two conditions:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:315 -msgid "**European leave recovery**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:111 +msgid "If the employee has reduced their working hours during the vacation year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:317 -msgid "The system retrieves all **European leave days (LEAVE216)** taken by the employee during the current year. It then calculates the **total amount paid for these leaves** and determines how much should be deducted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:112 +msgid "If the employee is unable to take all their vacation days before the end of the year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:321 -msgid "The deduction follows these principles:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:114 +msgid "In principle, employers must ensure that employees take their annual vacation before December 31. However, certain circumstances may prevent employees from using all their vacation days. In these cases, the employer must pay the simple vacation allowance for unused days before the end of the year. Additionally, if the employee has not received the double vacation allowance earlier in the year (typically in May or June), they are entitled to receive it." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:323 -msgid "If an employee has taken **European holidays (additional vacation days)**, the amount paid in advance must be recovered." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:121 +msgid "Reduction of working hours" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:325 -msgid "The recovery is either:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:123 +msgid "When an employee reduces their average working hours with the same employer, the employer must pay the vacation allowance in December of the year in which the reduction occurs, as if the employee had left the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:327 -msgid "Deducted from **the double vacation pay (85%)** for the next year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:127 +msgid "**Possible scenarios**:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:328 -msgid "Or, if the employee leaves, deducted from the final termination payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:129 +msgid "Transition to part-time work." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:330 -msgid "If leave has been taken, the **termination certificate** must specify:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:130 +msgid "Partial career break." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:332 -msgid "The **number of European leave days** already granted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:131 +msgid "Thematic leave on a part-time basis." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:333 -msgid "The **gross allowance** corresponding to these days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:132 +msgid "Partial return to work after a full incapacity period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:335 -msgid "To ensure fairness, the system first checks whether a deduction has already been applied in the **double vacation pay**. If so, only the remaining amount is deducted from the final payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:134 +msgid "The settlement is calculated based on the previous vacation year's earnings and includes:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:338 -msgid "Once the required values are determined, they are recorded in the payslip as **additional payroll inputs**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:136 +msgid "**Simple vacation allowance**: 7.67% of the yearly gross salary from the previous year, including any fictitious salary for assimilated interruption days, minus the simple vacation allowance already paid during the vacation year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:341 -msgid "**Gross salary reference**: Includes the final salary amount plus any fictitious remuneration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:139 +msgid "**Double vacation allowance**: 7.67% of the yearly gross salary from the previous year, including any fictitious salary for assimilated interruption days, minus the double vacation allowance already paid during the vacation year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:342 -msgid "**European leave deduction**: Deducts the previously paid European leave amounts." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:143 +msgid "If all vacation days have been taken before the reduction in working hours, no additional calculation is required." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:343 -msgid "**Other inputs**: Allocates time off taken, taxable amounts, and any outstanding allocations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:147 +msgid "Inability to use vacation days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:345 -msgid "After setting these values, the system **computes the payslip** to ensure all deductions and payments are correctly applied." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:149 +msgid "As a general rule, all vacation days must be used within the vacation year. However, if an employee is unable to take all their vacation due to force majeure or specific suspension reasons, the employer must pay the following by December 31:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:348 -msgid "This process ensures that the final **termination payslip** takes into account all salary components, including **annual gross pay, European leave recovery, and any unpaid entitlements**. Odoo retrieves past payslips and time-off records to ensure compliance with **Belgian payroll regulations**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:153 +msgid "**Simple vacation allowance** for unused days, based on the December salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:353 -msgid "By automating this process, Odoo minimizes manual intervention, reducing errors and ensuring employees receive the correct termination payments." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:154 +msgid "**Double vacation allowance** if it has not yet been paid, based on the December salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:357 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:609 -msgid "How does it work in Odoo?" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:156 +msgid "**Eligible reasons include**:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:359 -msgid "In Odoo, to access the holiday attests process, go to the employee form view and click on :icon:`fa-cog` :guilabel:`(Action)` then :guilabel:`Departure: Holiday Attests` or navigate to :menuselection:`Payroll --> Reporting --> Departure: Holiday Attests`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:158 +msgid "Common illness or accident." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:363 -msgid "In the wizard that appears, you can see all the payslips over the current and last year, the time off requests and allocations. You can also encode the unpaid time off you would like to declare on that holiday attest." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:159 +msgid "Work accident or occupational disease." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:367 -msgid "Once you're ready, click the :guilabel:`Validate & Compute holiday attests` button. Two payslips are generated for each considered period (N and N-1)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:160 +msgid "Maternity leave, paternity leave (converted maternity leave), prophylactic leave." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:370 -msgid "Once validated, two :file:`.pdf` documents are generated. One **classic payslip** and one **holiday attests** for the future employer." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:161 +msgid "Birth, adoption, or reception leave." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Holiday Attests Payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:162 +msgid "Parental leave or protective maternity leave measures." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Holiday Attests Time off." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:165 +msgid "New rule (effective end of 2024)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Holiday Attests Unpaid." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:167 +msgid "Employees unable to take vacation due to the above reasons (except force majeure or protective maternity leave measures) can carry over unused days for up to 24 months. Since the vacation allowance is already paid in December of the vacation year, no additional payment will be made when the carried-over days are used." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:387 -msgid "In our example, the employee also took one European time off during the N-year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:173 +msgid "Employer payment responsibilities" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:389 -msgid "For year N-1, you can see that all legal time off were taken." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:175 +msgid "The employer must pay any outstanding simple vacation allowance based on 7.67% of the gross salary from the previous year. However, an exit vacation allowance based on the current year's gross salary is not due." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Holiday Attests Attest N-1." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:179 +msgid "If an employee reduces their working hours and continues in the same role the following year, an additional vacation allowance calculation may be required in December." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Holiday Attests Payslip N-1." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:183 +msgid "Example calculation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:397 -msgid "For year N, you can also see the number off additional time off (European) and already taken legal time off are taken into account as well." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:185 +msgid "In 2013, an employee works full-time (5 days per week)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Holiday Attests Attest N." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:186 +msgid "In 2014, the employee works full-time until June 30, then switches to part-time (5 half-days per week)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Holiday Attests Payslip N." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:188 +msgid "The employee takes vacation in August 2014 under the new part-time regime (20 half-days over 4 weeks)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:407 -msgid "Important Notes" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:190 +msgid "They receive a simple vacation allowance for 20 half-days and a double vacation allowance equivalent to 92% of their monthly salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:409 -msgid "By using Odoo's automated attestation generation, companies can ensure compliance with Belgian labor laws while reducing manual administrative work." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:192 +msgid "In December 2014, the employee receives additional simple (7.67%) and double (7.67%) vacation allowances based on 2013's gross salary, minus previously paid amounts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:413 -msgid "The feature is only available for companies registered in Belgium." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:194 +msgid "In 2015, if the employee continues part-time, they receive vacation based on part-time hours plus 5 full-time vacation days from the 2014 vacation year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:414 -msgid "If the notice period is not set for an employee, Odoo will prompt for this information." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:196 +msgid "A second settlement in December 2015 includes additional simple (7.67%) and double (7.67%) vacation allowances based on the 2014 gross salary, minus previously paid amounts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:415 -msgid "Employers must ensure vacation attestations are provided before the employee needs to submit them to their new employer or the ONEM." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:200 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1650 +msgid "How to do it in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:421 -msgid "Departure: notice period & termination fees" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:202 +msgid "On a classic :doc:`payslip <../payslips>` issued in December, press the :guilabel:`Compute December Holiday Pay` button to open a configuration wizard." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:423 -msgid "This documentation explains how the employee departure process works in the application, focusing on the notice period calculation and severance pay when the employee does not serve their notice period." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:205 +msgid "Based on the allocated and requested time off, the :guilabel:`Simple Holiday Pay N-1` and :guilabel:`Double Holiday Pay N-1` for the December payslip are computed (and editable for manual encoding). Click :guilabel:`Validate` to confirm." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:430 -msgid "This module helps manage employee departures by determining the correct notice period based on seniority, departure reasons, and specific country regulations (Belgium). It also calculates severance pay when the employee does not work during their notice period." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "December Pay Amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:435 -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:78 -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:124 -msgid "Key features" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:212 +msgid "After validation, two additional inputs are stored on the payslip, and the payslip is re-computed to take those new remunerations into account." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:437 -msgid "Automatic calculation of notice period start and end dates." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:215 +msgid "The simple holiday pay is included into the gross remuneration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:438 -msgid "Consideration of public holidays and company-specific schedules." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "December Pay Simple." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:439 -msgid "Calculation of severance pay based on company policies and government rules." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:220 +msgid "The double holiday pay is computed separately and included into the net amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:440 -msgid "Generation of a final payslip including termination fees." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "December Pay Double." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:443 -msgid "Notice period calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:228 +msgid "Departure: holiday attests" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:445 -msgid "The notice period depends on several factors:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:233 +msgid "In Belgium, when an employee leaves a company, the employer is required to provide vacation attestations. These documents help the new employer determine the employee's vacation entitlements and any vacation pay due. Odoo facilitates the automatic generation of these attestations based on payroll and time-off data." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:447 -msgid "The employee's seniority in the company." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:239 +msgid "Types of attestations" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:448 -msgid "The reason for departure (resignation, dismissal, retirement, etc.)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:241 +msgid "Odoo generates two types of vacation attestations:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:449 -msgid "Whether the employee works during the notice period or not." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:243 +msgid "**For the previous year (N-1)**: If the employee has not yet taken all the vacation days from the previous year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:450 -msgid "The salary level before January 1, 2014 (for some cases)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:245 +msgid "**For the current year (N)**: Covering the vacation rights accrued in the year of departure." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:452 -msgid "The notice period starts on the first Monday after the departure date unless a specific rule applies (e.g., a mandatory waiting period of three days for certain dismissals)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:247 +msgid "Each attestation includes details such as:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:456 -msgid "Notice duration rules" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:249 +msgid "The period the employee was employed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:458 -msgid "The following table shows the duration of the notice period based on the length of service:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:250 +msgid "Agreed working time and any modifications." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:461 -msgid "For resigned employees" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:251 +msgid "Gross amounts of single and double vacation pay paid." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:464 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:493 -msgid "Seniority (months)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:252 +msgid "Social security contributions paid by the employer." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:464 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:493 -msgid "Notice Period (weeks)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:253 +msgid "Number of vacation days already taken." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:466 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:495 -msgid "0 - 3" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:254 +msgid "Additional (European) vacation pay and days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:466 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:495 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1244 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1300 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1564 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1620 -msgid "1" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:257 +msgid "Calculation logic in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:468 -msgid "3 - 6" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:259 +msgid "Odoo computes the attestations based on payroll and leave data. The main calculations include:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:468 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1246 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1302 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1566 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1622 -msgid "2" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:261 +msgid "**Retrieving payroll and leave records**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:470 -msgid "6 - 12" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:263 +msgid "The system identifies the employee's payroll records for the current and previous years." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:470 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:497 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1248 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1304 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1568 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1624 -msgid "3" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:264 +msgid "It retrieves validated leave requests and allocations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:472 -msgid "12 - 18" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:266 +msgid "**Computing gross remuneration**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:472 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:499 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1250 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1306 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1570 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1626 -msgid "4" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:268 +msgid "The gross annual salary for both the current and previous years is computed from payroll records." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:474 -msgid "18 - 24" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:270 +msgid "The average monthly salary is calculated for unpaid leave adjustments." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:474 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:501 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1252 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1572 -msgid "5" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:272 +msgid "**Time-off calculations**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:476 -msgid "24 - 48" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:274 +msgid "The number of vacation days taken and allocated in the current year is determined." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:476 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:503 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1254 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1574 -msgid "6" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:275 +msgid "Unpaid leave days are accounted for separately." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:478 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:519 -msgid "48 - 60" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:277 +msgid "**Fictitious remuneration calculation**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:478 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:505 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1256 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1576 -msgid "7" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:279 +msgid "If unpaid leave was taken, Odoo computes a fictitious remuneration adjustment using the formula:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:480 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:521 -msgid "60 - 72" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:282 +msgid "\\text{Fictitious Remuneration} = (\\text{Unpaid Leave Days} \\times\n" +"\\text{Average Monthly Salary} \\times 3) \\div (13 \\times 5)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:480 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:509 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1260 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1580 -msgid "9" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:288 +msgid "**Generating the final attestation**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:482 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:523 -msgid "72 - 84" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:290 +msgid "Odoo creates a payroll entry reflecting the vacation pay due." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:482 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:511 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1262 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1582 -msgid "10" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:291 +msgid "The attestation document is generated and can be printed or exported." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:484 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:525 -msgid "84 - 96" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:293 +msgid "Two payslips are created:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:484 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:515 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1266 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1586 -msgid "12" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:295 +msgid "**Payslip for the current year** (`termination_payslip_n`)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:486 -msgid "96+" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:297 +msgid "This payslip covers the employee's last salary period in the year of termination." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:486 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:517 -msgid "13" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:299 +msgid "**Payslip for the previous year** (`termination_payslip_n1`)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:490 -msgid "For dismissed employees" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:301 +msgid "The one accounts the amount of money converted from the untaken time off of previous year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:497 -msgid "3 - 4" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:303 +msgid "Each payslip is generated using the appropriate payroll structure, ensuring correct calculations for all entitlements and deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:499 -msgid "4 - 5" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:306 +msgid "Before computing the final payment, the system gathers necessary payroll data:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:501 -msgid "5 - 6" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:308 +msgid "**Annual gross salary calculation**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:503 -msgid "6 - 9" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:310 +msgid "To estimate the employee's **annual gross salary**, the system looks for the most recent validated monthly payslip. If a payslip is found, the **gross salary** from that payslip is multiplied by 12 to get an annual estimate. If no payslip exists, the annual gross salary is set to **zero**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:505 -msgid "9 - 12" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:315 +msgid "**European leave recovery**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:507 -msgid "12 - 15" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:317 +msgid "The system retrieves all **European leave days (LEAVE216)** taken by the employee during the current year. It then calculates the **total amount paid for these leaves** and determines how much should be deducted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:507 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1258 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1578 -msgid "8" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:321 +msgid "The deduction follows these principles:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:509 -msgid "15 - 18" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:323 +msgid "If an employee has taken **European holidays (additional vacation days)**, the amount paid in advance must be recovered." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:511 -msgid "18 - 21" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:325 +msgid "The recovery is either:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:513 -msgid "21 - 24" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:327 +msgid "Deducted from **the double vacation pay (85%)** for the next year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:513 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1264 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1584 -msgid "11" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:328 +msgid "Or, if the employee leaves, deducted from the final termination payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:515 -msgid "24 - 36" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:330 +msgid "If leave has been taken, the **termination certificate** must specify:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:517 -msgid "36 - 48" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:332 +msgid "The **number of European leave days** already granted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:519 -msgid "15" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:333 +msgid "The **gross allowance** corresponding to these days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:521 -msgid "18" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:335 +msgid "To ensure fairness, the system first checks whether a deduction has already been applied in the **double vacation pay**. If so, only the remaining amount is deducted from the final payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:523 -msgid "21" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:338 +msgid "Once the required values are determined, they are recorded in the payslip as **additional payroll inputs**:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:525 -msgid "24" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:341 +msgid "**Gross salary reference**: Includes the final salary amount plus any fictitious remuneration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:527 -msgid "96 - 108" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:342 +msgid "**European leave deduction**: Deducts the previously paid European leave amounts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:527 -msgid "27" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:343 +msgid "**Other inputs**: Allocates time off taken, taxable amounts, and any outstanding allocations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:529 -msgid "108 - 120" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:345 +msgid "After setting these values, the system **computes the payslip** to ensure all deductions and payments are correctly applied." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:529 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:330 -msgid "30" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:348 +msgid "This process ensures that the final **termination payslip** takes into account all salary components, including **annual gross pay, European leave recovery, and any unpaid entitlements**. Odoo retrieves past payslips and time-off records to ensure compliance with **Belgian payroll regulations**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:531 -msgid "120 - 132" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:353 +msgid "By automating this process, Odoo minimizes manual intervention, reducing errors and ensuring employees receive the correct termination payments." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:531 -msgid "33" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:357 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:609 +msgid "How does it work in Odoo?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:533 -msgid "132 - 144" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:359 +msgid "In Odoo, to access the holiday attests process, go to the employee form view and click on :icon:`fa-cog` :guilabel:`(Action)` then :guilabel:`Departure: Holiday Attests` or navigate to :menuselection:`Payroll --> Reporting --> Departure: Holiday Attests`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:533 -msgid "36" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:363 +msgid "In the wizard that appears, you can see all the payslips over the current and last year, the time off requests and allocations. You can also encode the unpaid time off you would like to declare on that holiday attest." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:535 -msgid "144 - 156" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:367 +msgid "Once you're ready, click the :guilabel:`Validate & Compute holiday attests` button. Two payslips are generated for each considered period (N and N-1)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:535 -msgid "39" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:370 +msgid "Once validated, two :file:`.pdf` documents are generated. One **classic payslip** and one **holiday attests** for the future employer." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:537 -msgid "156 - 168" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Holiday Attests Payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:537 -msgid "42" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Holiday Attests Time off." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:539 -msgid "168 - 180" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Holiday Attests Unpaid." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:539 -msgid "45" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:387 +msgid "In our example, the employee also took one European time off during the N-year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:541 -msgid "180 - 192" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:389 +msgid "For year N-1, you can see that all legal time off were taken." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:541 -msgid "48" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Holiday Attests Attest N-1." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:543 -msgid "192 - 204" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Holiday Attests Payslip N-1." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:543 -msgid "51" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:397 +msgid "For year N, you can also see the number off additional time off (European) and already taken legal time off are taken into account as well." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:545 -msgid "204 - 216" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Holiday Attests Attest N." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:545 -msgid "54" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Holiday Attests Payslip N." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:547 -msgid "216 - 228" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:407 +msgid "Important Notes" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:547 -msgid "57" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:409 +msgid "By using Odoo's automated attestation generation, companies can ensure compliance with Belgian labor laws while reducing manual administrative work." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:549 -msgid "228 - 240" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:413 +msgid "The feature is only available for companies registered in Belgium." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:549 -msgid "60" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:414 +msgid "If the notice period is not set for an employee, Odoo will prompt for this information." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:551 -msgid "240 - 252" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:415 +msgid "Employers must ensure vacation attestations are provided before the employee needs to submit them to their new employer or the ONEM." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:551 -msgid "62" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:421 +msgid "Departure: notice period & termination fees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:553 -msgid "252 - 264" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:423 +msgid "This documentation explains how the employee departure process works in the application, focusing on the notice period calculation and severance pay when the employee does not serve their notice period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:553 -msgid "63" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:430 +msgid "This module helps manage employee departures by determining the correct notice period based on seniority, departure reasons, and specific country regulations (Belgium). It also calculates severance pay when the employee does not work during their notice period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:555 -msgid "264 - 276" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:435 +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:78 +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:124 +msgid "Key features" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:555 -msgid "64" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:437 +msgid "Automatic calculation of notice period start and end dates." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:557 -msgid "276 - 288" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:438 +msgid "Consideration of public holidays and company-specific schedules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:557 -msgid "65" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:439 +msgid "Calculation of severance pay based on company policies and government rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:559 -msgid "288+" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:440 +msgid "Generation of a final payslip including termination fees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:559 -msgid "66+" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:443 +msgid "Notice period calculation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:563 -msgid "Special case: employees hired before 2014" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:445 +msgid "The notice period depends on several factors:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:565 -msgid "For employees who started before January 1, 2014, the notice period calculation is divided into two parts:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:447 +msgid "The employee's seniority in the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:569 -msgid "Part 1: Seniority acquired before December 31, 2013" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:448 +msgid "The reason for departure (resignation, dismissal, retirement, etc.)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:571 -msgid "**Lower-level employees** (annual gross salary ≤ €32,254): The notice period is 3 months for the first 5 years of seniority, increasing by 1.5 months per additional year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:449 +msgid "Whether the employee works during the notice period or not." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:573 -msgid "**Higher-level employees** (annual gross salary > €32,254): The notice period is 1 month per started year of seniority, with a minimum of 3 months." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:450 +msgid "The salary level before January 1, 2014 (for some cases)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:577 -msgid "Part 2: Seniority acquired from January 1, 2014 onwards" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:452 +msgid "The notice period starts on the first Monday after the departure date unless a specific rule applies (e.g., a mandatory waiting period of three days for certain dismissals)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:579 -msgid "The standard notice period rules from 2014 apply to seniority acquired after this date." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:456 +msgid "Notice duration rules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:581 -msgid "The total notice period is the sum of both periods calculated separately." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:458 +msgid "The following table shows the duration of the notice period based on the length of service:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:584 -msgid "Severance pay calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:461 +msgid "For resigned employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:586 -msgid "If an employee does not serve their notice period, severance pay is calculated based on:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:464 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:493 +msgid "Seniority (months)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:588 -msgid "The remaining notice duration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:464 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:493 +msgid "Notice Period (weeks)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:589 -msgid "The employee's last salary." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:466 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:495 +msgid "0 - 3" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:590 -msgid "Additional compensation such as bonuses, stock options, and insurance contributions." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:466 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:495 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1244 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1300 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1564 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1620 +msgid "1" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:592 -msgid "The severance pay consists of:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:468 +msgid "3 - 6" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:594 -msgid "The current salary, which corresponds either to the full notice period that should normally be observed or the remaining part of it." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:468 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1246 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1302 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1566 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1622 +msgid "2" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:596 -msgid "Benefits acquired during the contract (e.g., meal vouchers, company car, mobile phone usage)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:470 +msgid "6 - 12" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:598 -msgid "The current salary is determined as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:470 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:497 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1248 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1304 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1568 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1624 +msgid "3" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:600 -msgid "The employee's gross monthly salary at the time of dismissal." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:472 +msgid "12 - 18" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:601 -msgid "All recurring bonuses, except for one-time bonuses (e.g., team work bonus, seniority bonus)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:472 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:499 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1250 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1306 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1570 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1626 +msgid "4" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:602 -msgid "Additional compensation for overtime hours worked over a longer period." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:474 +msgid "18 - 24" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:603 -msgid "Variable salary (average over the last twelve months)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:474 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:501 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1252 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1572 +msgid "5" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:605 -msgid "The system automatically generates a termination payslip including these calculations, ensuring compliance with Belgian labor laws." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:476 +msgid "24 - 48" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:611 -msgid "In Odoo, to access the departure process, go to the employee form view and click on :icon:`fa-cog` :guilabel:`(Action)` then :guilabel:`Departure: Notice Period and payslip` or navigate to :menuselection:`Payroll --> Reporting --> Departure: Notice Period`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:476 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:503 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1254 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1574 +msgid "6" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:615 -msgid "In the wizard that appears, select the reason for departure, provide a description of the departure, and specify the dismissal date. The employee's seniority is calculated based on their contract history, and the notice period is determined accordingly. You can also indicate whether the employee will be working during the notice period." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:478 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:519 +msgid "48 - 60" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Departure Notice Wizard." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:478 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:505 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1256 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1576 +msgid "7" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:623 -msgid "If the employee is working during the notice period, there are no termination fees to calculate, and the notice period will be recorded on the employee's form. Click the :guilabel:`Validate` button." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:480 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:521 +msgid "60 - 72" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:627 -msgid "If the employee is working partially or not at all, the wizard will generate and calculate a termination fees payslip. Click the :guilabel:`Validate & Compute termination fees` button." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:480 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:509 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1260 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1580 +msgid "9" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:630 -msgid "The payslip takes into account all the salaries and benefits the employee would have received over the course of a year to calculate a virtual annual remuneration. This amount is then prorated based on the notice period to convert it into a gross salary." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:482 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:523 +msgid "72 - 84" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:634 -msgid "A detailed summary is provided on the payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:482 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:511 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1262 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1582 +msgid "10" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Notice: Termination Fees Payslip 1." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:484 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:525 +msgid "84 - 96" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Departure Notice: Termination Fees Payslip 2." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:484 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:515 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1266 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1586 +msgid "12" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:644 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1354 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2118 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2253 -msgid "Conclusion" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:486 +msgid "96+" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:646 -msgid "This module simplifies the departure process by providing clear and automatic calculations for the notice period and severance pay. It helps HR teams ensure compliance and streamline the exit process for employees." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:486 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:517 +msgid "13" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:653 -msgid "DIMONA" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:490 +msgid "For dismissed employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:656 -msgid "What is the Dimona?" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:497 +msgid "3 - 4" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:659 -msgid "Obligation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:499 +msgid "4 - 5" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:661 -msgid "All employers, both in the public and private sectors, are required to electronically communicate the entry and exit of their personnel to the National Social Security Office (Royal Decree of November 5, 2002)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:501 +msgid "5 - 6" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:665 -msgid "This involves the immediate declaration of employment, also known as DIMONA (Déclaration Immédiate - Onmiddellijke Aangifte). Its purpose is to immediately notify social security institutions of the beginning and end of an employment relationship between the worker and the employer." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:503 +msgid "6 - 9" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:669 -msgid "The declarations submitted by the employer and immediately checked by the NSSO feed into a database called the *personnel file*. The employer can access it in a secure environment. There are numerous search criteria: they can be based on characteristics and combinations of characteristics." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:505 +msgid "9 - 12" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:673 -msgid "Failure to comply with this reporting obligation may result in criminal penalties as provided for in Article 181 of the Social Penal Code." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:507 +msgid "12 - 15" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:676 -msgid "Furthermore, in case of omission of declaration, the employer will owe the NSSO a solidarity contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:507 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1258 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1578 +msgid "8" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:680 -msgid "Concept and terminology" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:509 +msgid "15 - 18" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:683 -msgid "Employer-worker relationship" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:511 +msgid "18 - 21" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:685 -msgid "The relationship between the \"employer\" and the \"worker\" couple. This relationship includes stable data (employer identification number, worker's national identification social security number (NISS), start date of the relationship, and optionally end date), which will be maintained even in case of creation, closure, modification, or cancellation of a period. This relationship begins with the worker's first engagement and ends at the end of their last occupation. In the personnel file, \"employer-worker\" relationships constitute the first level of consultation. The second level encompasses all Dimona periods;" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:513 +msgid "21 - 24" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:694 -msgid "Dimona period" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:513 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1264 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1584 +msgid "11" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:696 -msgid "A period is created with each IN declaration, thus at the beginning of each new occupation. It is closed by an exit date at the end of each occupation. The employer-worker relationship, on the other hand, is maintained until the end of the last occupation. Several Dimona periods may or may not succeed each other within the same employer-worker relationship." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:515 +msgid "24 - 36" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:701 -msgid "Any changes generated by an OUT declaration, a modification (UPDATE), or a cancellation (CANCEL) occur at this second level." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:517 +msgid "36 - 48" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:704 -msgid "This Dimona period is identified by a \"period identification number\". It is assigned to each IN declaration and constitutes the unique identification key of a period for submitting OUT, modification, or cancellation declarations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:519 +msgid "15" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:709 -msgid "Dimona number" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:521 +msgid "18" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:711 -msgid "A unique number assigned by the NSSO to each Dimona declaration (IN, OUT, UPDATE, CANCEL,...). For an IN declaration, it is the period identification number. When declarations are submitted via file transfer, multiple Dimona numbers are created: one number per employment relationship included in the structured message;" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:523 +msgid "21" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:717 -msgid "Dimona characteristics" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:525 +msgid "24" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:719 -msgid "Mandatory data of a Dimona declaration. There are four: the industry sector number, worker type, sub-entity (reserved for certain public sector employers), and user (for temporary workers). Characteristics are always linked to a period. In case of different characteristics, multiple periods can coexist;" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:527 +msgid "96 - 108" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:725 -msgid "Receipt confirmation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:527 +msgid "27" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:727 -msgid "Confirms for web users that the declaration has been received (appears immediately on the screen);" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:529 +msgid "108 - 120" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:730 -msgid "Receipt acknowledgment" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:529 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:330 +msgid "30" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:732 -msgid "Electronic message for batch senders indicating whether the file is usable for the NSSO. This \"receipt acknowledgment\" contains the ticket number (:dfn:`file identification number`) and the file status: accepted or rejected depending on whether the file is readable or not;" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:531 +msgid "120 - 132" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:737 -msgid "Notification" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:531 +msgid "33" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:739 -msgid "Electronic message with feedback on the processing of the declaration. The notification is the immediate result of form and content checks. It can be of three types: positive (Dimona accepted), negative (Dimona rejected), or provisional (only in case of problems with worker identification). The provisional notification will always be followed by a positive or negative notification." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:533 +msgid "132 - 144" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:744 -msgid "For the declaration of students under a student contract (STU), the notification will also contain a warning if the student is declared for more than 475 hours. If the declaration was made via a secure channel, the exact number of days of excess will be communicated." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:533 +msgid "36" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:748 -msgid "For the daily declaration of occasional workers in the hospitality industry, the notification will also contain a warning if the worker is declared for more than 50 days and/or for the employer quota, if more than 100 days of occasional work have been declared." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:535 +msgid "144 - 156" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:752 -msgid "Once you have received this notification, you have five working days to contest the accuracy of the data mentioned therein. At the end of this period, these data will be considered final. For any disputes, you must contact the Eranova Contact Center (tel: 02 511 51 51, email: contactcenter@eranova.fgov.be)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:535 +msgid "39" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:757 -msgid "Note that if the employer is affiliated with an approved social secretariat or a full-service secretariat, they may not receive any notification. In this case, notifications are electronically transmitted to the social secretariat or full-service secretariat, even for declarations that the employer has submitted personally. However, the employer has access to the personnel file, where they can view all data." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:537 +msgid "156 - 168" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:764 -msgid "Channels" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:537 +msgid "42" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:766 -msgid "The Dimona declaration must be submitted in the form of an electronic message via one of the following channels:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:539 +msgid "168 - 180" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:769 -msgid "web" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:539 +msgid "45" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:770 -msgid "personnel file" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:541 +msgid "180 - 192" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:771 -msgid "file transfer" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:541 +msgid "48" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:772 -msgid "web service (REST)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:543 +msgid "192 - 204" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:773 -msgid "Dimona Mobile" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:543 +msgid "51" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:775 -msgid "The choice of one channel over another has no impact on the declaration. Therefore, you can freely choose the channel you will use." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:545 +msgid "204 - 216" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:778 -msgid "Any declaration modifications can also be made through any of these four channels. The channel through which the original declaration was submitted plays no role." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:545 +msgid "54" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:781 -msgid "A Dimona declaration cannot be submitted via SMS." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:547 +msgid "216 - 228" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:784 -msgid "Dimona in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:547 +msgid "57" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:787 -msgid "Manual" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:549 +msgid "228 - 240" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:789 -msgid "In Odoo, when you have the Belgian Payroll Localization installed, as soon as you have a contract set to the running stage, it creates an activity for the HR responsible that they need to introduce the Dimona for today with the correct link to the Dimona Platform (the web channel mentioned in the Channels section of this article)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:549 +msgid "60" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Dimona Activity." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:551 +msgid "240 - 252" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:798 -msgid "Automated" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:551 +msgid "62" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:800 -msgid "In Odoo, when you have the Belgian Payroll Localization installed, it is also possible to install the module Belgium - Payroll - Dimona. This module will allow you to perform the 4 main actions needed in the Dimona (as seen in Section 1 of this article):" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:553 +msgid "252 - 264" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:804 -msgid "Open the dimona" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:553 +msgid "63" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:805 -msgid "Update the dimona" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:555 +msgid "264 - 276" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:806 -msgid "Close the dimona" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:555 +msgid "64" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:807 -msgid "Cancel the Dimona" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:557 +msgid "276 - 288" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:809 -msgid "These actions answer the different use case explained in Section 1." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:557 +msgid "65" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:812 -msgid "Contract and employee data" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:559 +msgid "288+" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:814 -msgid "Basically, it checks the contract and employee data needed to create, update, close or cancel." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:559 +msgid "66+" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:817 -msgid "Error handling" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:563 +msgid "Special case: employees hired before 2014" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:819 -msgid "If some information is missing or wrongly configured, the system will return errors and you can take corrective action in order to make sure your Dimona is correctly sent, updated, closed or canceled." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:565 +msgid "For employees who started before January 1, 2014, the notice period calculation is divided into two parts:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:824 -msgid "Synchronization status" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:569 +msgid "Part 1: Seniority acquired before December 31, 2013" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:826 -msgid "The status of sync and errors are shown in the chatter of the contract." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:571 +msgid "**Lower-level employees** (annual gross salary ≤ €32,254): The notice period is 3 months for the first 5 years of seniority, increasing by 1.5 months per additional year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:829 -msgid "Scheduled action" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:573 +msgid "**Higher-level employees** (annual gross salary > €32,254): The notice period is 1 month per started year of seniority, with a minimum of 3 months." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:831 -msgid "Finally, the cron checks every day, for all contracts that have the status dimona waiting and triggers the necessary actions to update the dimona status accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:577 +msgid "Part 2: Seniority acquired from January 1, 2014 onwards" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:835 -msgid "Technical configuration (outside Odoo)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:579 +msgid "The standard notice period rules from 2014 apply to seniority acquired after this date." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:837 -msgid "Regarding the technical configuration, everything is described in the module information with all the technical prerequisites. If your customer or partner need further assistance with that, they need to contact their IT department or representatives as this is not part of Odoo configuration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:581 +msgid "The total notice period is the sum of both periods calculated separately." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:842 -msgid "Functional configuration (within Odoo)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:584 +msgid "Severance pay calculation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:844 -msgid "From the Odoo configuration point of view, navigate to :menuselection:`Payroll app --> Configuration --> Settings` and in the :guilabel:`Belgian Localization` section for :guilabel:`ONSS`, configure the following:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:586 +msgid "If an employee does not serve their notice period, severance pay is calculated based on:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:848 -msgid ":guilabel:`ONSS Company ID`: VAT Number of the Company" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:588 +msgid "The remaining notice duration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:849 -msgid ":guilabel:`Registration Number`: 9 digits code received from the NSSO (ONSS - RSZ)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:589 +msgid "The employee's last salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:850 -msgid ":guilabel:`DMFA Employer Class`: 3 digits code received from the NSSO (ONSS - RSZ)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:590 +msgid "Additional compensation such as bonuses, stock options, and insurance contributions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:851 -msgid ":guilabel:`Expeditor Number ONSS`: Not Mandatory (see technical documentation of the module for more information)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:592 +msgid "The severance pay consists of:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:853 -msgid ":guilabel:`PEM Certificate`, :guilabel:`PEM Passphare`, :guilabel:`KEY file`: check the module information for explanation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:594 +msgid "The current salary, which corresponds either to the full notice period that should normally be observed or the remaining part of it." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:859 -msgid "DmfA - Multifunctional Declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:596 +msgid "Benefits acquired during the contract (e.g., meal vouchers, company car, mobile phone usage)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:864 -msgid "DmfA stands for \"Déclaration Multifonctionnelle\" or \"Multifunctionele Aangifte.\" It has replaced the quarterly ONSS declaration since the first quarter of 2003. Through this declaration, employers submit salary and working time data for their employees." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:598 +msgid "The current salary is determined as follows:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:868 -msgid "These data are processed in a way that allows all social security institutions to work with the same information. The declaration is called \"multifunctional\" because it is used not only for social security contribution calculations and reductions but also as a data source for institutions managing social security rights and benefits." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:600 +msgid "The employee's gross monthly salary at the time of dismissal." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:873 -msgid "Sectors utilizing DmfA data include:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:601 +msgid "All recurring bonuses, except for one-time bonuses (e.g., team work bonus, seniority bonus)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:875 -msgid "Health insurance" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:602 +msgid "Additional compensation for overtime hours worked over a longer period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:876 -msgid "Unemployment benefits" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:603 +msgid "Variable salary (average over the last twelve months)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:877 -msgid "Pensions" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:605 +msgid "The system automatically generates a termination payslip including these calculations, ensuring compliance with Belgian labor laws." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:878 -msgid "Occupational risks (Fedris)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:611 +msgid "In Odoo, to access the departure process, go to the employee form view and click on :icon:`fa-cog` :guilabel:`(Action)` then :guilabel:`Departure: Notice Period and payslip` or navigate to :menuselection:`Payroll --> Reporting --> Departure: Notice Period`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:879 -msgid "Family allowances" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:615 +msgid "In the wizard that appears, select the reason for departure, provide a description of the departure, and specify the dismissal date. The employee's seniority is calculated based on their contract history, and the notice period is determined accordingly. You can also indicate whether the employee will be working during the notice period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:880 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:89 -msgid "Annual leave" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Departure Notice Wizard." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:882 -msgid "All employers registered with ONSS must submit a DmfA declaration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:623 +msgid "If the employee is working during the notice period, there are no termination fees to calculate, and the notice period will be recorded on the employee's form. Click the :guilabel:`Validate` button." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:885 -msgid "Relationship with Dimona and DRS" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:627 +msgid "If the employee is working partially or not at all, the wizard will generate and calculate a termination fees payslip. Click the :guilabel:`Validate & Compute termination fees` button." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:887 -msgid "DmfA is closely linked to two other mandatory declarations:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:630 +msgid "The payslip takes into account all the salaries and benefits the employee would have received over the course of a year to calculate a virtual annual remuneration. This amount is then prorated based on the notice period to convert it into a gross salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:890 -msgid "Dimona (immediate declaration)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:634 +msgid "A detailed summary is provided on the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:892 -msgid "Dimona records the start and end of an employment relationship with an employee." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Notice: Termination Fees Payslip 1." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:895 -msgid "DRS (social risks declaration)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Departure Notice: Termination Fees Payslip 2." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:897 -msgid "During an employment relationship, various social risks may arise, such as termination, workplace accidents, or long-term illness. When a social risk occurs, social security institutions require additional information beyond that provided by DmfA and Dimona." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:644 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1354 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2118 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2253 +msgid "Conclusion" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:901 -msgid "DRS is now primarily an electronic declaration, though paper submissions remain possible." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:646 +msgid "This module simplifies the departure process by providing clear and automatic calculations for the notice period and severance pay. It helps HR teams ensure compliance and streamline the exit process for employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:904 -msgid "Who submits the DmfA declaration?" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:653 +msgid "DIMONA" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:907 -msgid "Self-declaration options" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:656 +msgid "What is the Dimona?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:909 -msgid "Employers can submit their DmfA declaration themselves via:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:659 +msgid "Obligation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:911 -msgid "**Web Submission:** Suitable for employers with a small workforce. Declarations are entered directly through the social security portal." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:661 +msgid "All employers, both in the public and private sectors, are required to electronically communicate the entry and exit of their personnel to the National Social Security Office (Royal Decree of November 5, 2002)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:913 -msgid "**Batch Submission:** Designed for large employers or organizations handling multiple declarations (e.g., social secretariats, payroll software providers). Declarations are submitted via file transfer (FTP, SFTP, etc.)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:665 +msgid "This involves the immediate declaration of employment, also known as DIMONA (Déclaration Immédiate - Onmiddellijke Aangifte). Its purpose is to immediately notify social security institutions of the beginning and end of an employment relationship between the worker and the employer." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:918 -msgid "Advantages of web submission" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:669 +msgid "The declarations submitted by the employer and immediately checked by the NSSO feed into a database called the *personnel file*. The employer can access it in a secure environment. There are numerous search criteria: they can be based on characteristics and combinations of characteristics." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:920 -msgid "**Automatic access to the company's employee list**: Based on Dimona data. If an employee is missing, they must first be declared via Dimona. After 24 hours, the employee list is updated, allowing for an accurate DmfA submission." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:673 +msgid "Failure to comply with this reporting obligation may result in criminal penalties as provided for in Article 181 of the Social Penal Code." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:923 -msgid "**Automatic calculation of net payable amount**: Once all required data is entered, the system calculates the total payable amount." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:676 +msgid "Furthermore, in case of omission of declaration, the employer will owe the NSSO a solidarity contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:925 -msgid "**Reduction calculations**: The system calculates applicable reductions, except for reductions under code \"0001\" (personal contribution reductions for low-income workers). Employers need to check the relevant boxes and, if necessary, provide additional details." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:680 +msgid "Concept and terminology" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:930 -msgid "Advantages of batch submission" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:683 +msgid "Employer-worker relationship" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:932 -msgid "**Submission of large volumes of declarations**: Ideal for organizations managing multiple payrolls." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:685 +msgid "The relationship between the \"employer\" and the \"worker\" couple. This relationship includes stable data (employer identification number, worker's national identification social security number (NISS), start date of the relationship, and optionally end date), which will be maintained even in case of creation, closure, modification, or cancellation of a period. This relationship begins with the worker's first engagement and ends at the end of their last occupation. In the personnel file, \"employer-worker\" relationships constitute the first level of consultation. The second level encompasses all Dimona periods;" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:934 -msgid "**Quick response on acceptance status**: Employers receive immediate feedback on whether their declaration has been accepted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:694 +msgid "Dimona period" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:936 -msgid "**Error reporting**: The system generates a report on detected anomalies, regardless of acceptance status." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:696 +msgid "A period is created with each IN declaration, thus at the beginning of each new occupation. It is closed by an exit date at the end of each occupation. The employer-worker relationship, on the other hand, is maintained until the end of the last occupation. Several Dimona periods may or may not succeed each other within the same employer-worker relationship." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:938 -msgid "**Automatic correction of calculation errors**: When possible, errors are corrected automatically, and employers are notified of adjustments." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:701 +msgid "Any changes generated by an OUT declaration, a modification (UPDATE), or a cancellation (CANCEL) occur at this second level." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:942 -msgid "Third-Party submission options" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:704 +msgid "This Dimona period is identified by a \"period identification number\". It is assigned to each IN declaration and constitutes the unique identification key of a period for submitting OUT, modification, or cancellation declarations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:944 -msgid "Employers who do not wish to submit the DmfA themselves can delegate the task to:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:709 +msgid "Dimona number" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:946 -msgid "**Accredited Social Secretariats**: These organizations handle payroll and declaration tasks on behalf of employers." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:711 +msgid "A unique number assigned by the NSSO to each Dimona declaration (IN, OUT, UPDATE, CANCEL,...). For an IN declaration, it is the period identification number. When declarations are submitted via file transfer, multiple Dimona numbers are created: one number per employment relationship included in the structured message;" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:948 -msgid "**Service Providers**: These may be companies or individuals with whom the employer has a contractual agreement to manage payroll declarations securely." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:717 +msgid "Dimona characteristics" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:951 -msgid "For more information on accredited social secretariats or service providers, please refer to the relevant `official DmfA documentation `_." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:719 +msgid "Mandatory data of a Dimona declaration. There are four: the industry sector number, worker type, sub-entity (reserved for certain public sector employers), and user (for temporary workers). Characteristics are always linked to a period. In case of different characteristics, multiple periods can coexist;" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:958 -msgid "The declaration is generated under :menuselection:`Payroll app --> Reporting --> Belgium --> DmfA` as is supposed to work properly after several required configuration steps." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:725 +msgid "Receipt confirmation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:962 -msgid "Company" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:727 +msgid "Confirms for web users that the declaration has been received (appears immediately on the screen);" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:964 -msgid "To generate a valid DmfA declaration, specific company and employer-related information is required, (under :menuselection:`Payroll app --> Configuration --> Settings`). These include:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:730 +msgid "Receipt acknowledgment" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:967 -msgid ":guilabel:`ONSS Company ID`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:732 +msgid "Electronic message for batch senders indicating whether the file is usable for the NSSO. This \"receipt acknowledgment\" contains the ticket number (:dfn:`file identification number`) and the file status: accepted or rejected depending on whether the file is readable or not;" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:968 -msgid ":guilabel:`ONSS Registration Number`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:737 +msgid "Notification" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:969 -msgid ":guilabel:`DMFA Employer Class`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:739 +msgid "Electronic message with feedback on the processing of the declaration. The notification is the immediate result of form and content checks. It can be of three types: positive (Dimona accepted), negative (Dimona rejected), or provisional (only in case of problems with worker identification). The provisional notification will always be followed by a positive or negative notification." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:970 -msgid ":guilabel:`ONSS Certificate`: certificate for signature file generation (required for batch declarations)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:744 +msgid "For the declaration of students under a student contract (STU), the notification will also contain a warning if the student is declared for more than 475 hours. If the declaration was made via a secure channel, the exact number of days of excess will be communicated." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:972 -msgid "VAT :guilabel:`Company Number`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:748 +msgid "For the daily declaration of occasional workers in the hospitality industry, the notification will also contain a warning if the worker is declared for more than 50 days and/or for the employer quota, if more than 100 days of occasional work have been declared." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:973 -msgid ":guilabel:`Revenue Code`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:752 +msgid "Once you have received this notification, you have five working days to contest the accuracy of the data mentioned therein. At the end of this period, these data will be considered final. For any disputes, you must contact the Eranova Contact Center (tel: 02 511 51 51, email: contactcenter@eranova.fgov.be)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:974 -msgid ":guilabel:`FFE Employer Type` (Fonds de Fermeture d'Entreprise)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:757 +msgid "Note that if the employer is affiliated with an approved social secretariat or a full-service secretariat, they may not receive any notification. In this case, notifications are electronically transmitted to the social secretariat or full-service secretariat, even for declarations that the employer has submitted personally. However, the employer has access to the personnel file, where they can view all data." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:979 -msgid "Additionally, each employee must be assigned to a valid working address, identified with a DmfA code, in their employee record. This operating unit must be linked to a valid ONSS identification number to ensure compliance with declaration requirements. Failing to configure this properly may result in errors during the declaration submission process." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:764 +msgid "Channels" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:984 -msgid "On the employee form, the :guilabel:`Work Address` must be defined." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:766 +msgid "The Dimona declaration must be submitted in the form of an electronic message via one of the following channels:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:986 -msgid "Under :menuselection:`Payroll app --> Configuration --> DMFA: Work Locations`, you can link the work address to a ONSS identification number." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:769 +msgid "web" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "DmfA - Work Location ONSS ID." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:770 +msgid "personnel file" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:993 -msgid "Work entry type" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:771 +msgid "file transfer" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:995 -msgid "A DmfA code should be defined for each work entry type that is declared. Under :menuselection:`Payroll app --> Configuration --> Work Entries --> Work Entry Types`, specify the :guilabel:`DMFA code`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:772 +msgid "web service (REST)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1000 -msgid "Potential configuration errors" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:773 +msgid "Dimona Mobile" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1002 -msgid "During the declaration generation process, configuration issues may arise, triggering errors such as:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:775 +msgid "The choice of one channel over another has no impact on the declaration. Therefore, you can freely choose the channel you will use." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1005 -msgid "Terminated employees without or with invalid start/end notice period" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:778 +msgid "Any declaration modifications can also be made through any of these four channels. The channel through which the original declaration was submitted plays no role." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1006 -msgid "Invalid NISS number for some employees" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:781 +msgid "A Dimona declaration cannot be submitted via SMS." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1007 -msgid "Work addresses not linked to an ONSS identification code" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:784 +msgid "Dimona in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1008 -msgid "Work entry type missing a corresponding DmfA code" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:787 +msgid "Manual" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1009 -msgid "Other inconsistencies in employer or employee records" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:789 +msgid "In Odoo, when you have the Belgian Payroll Localization installed, as soon as you have a contract set to the running stage, it creates an activity for the HR responsible that they need to introduce the Dimona for today with the correct link to the Dimona Platform (the web channel mentioned in the Channels section of this article)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1011 -msgid "Employers should ensure accurate configuration to avoid delays and rejection of their declarations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Dimona Activity." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1014 -msgid "Web declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:798 +msgid "Automated" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "DmfA - Web Declaration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:800 +msgid "In Odoo, when you have the Belgian Payroll Localization installed, it is also possible to install the module Belgium - Payroll - Dimona. This module will allow you to perform the 4 main actions needed in the Dimona (as seen in Section 1 of this article):" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1019 -msgid "A web declaration generates a PDF summarizing the company's general information, as well as all employee data that must be manually entered into the system. This includes:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:804 +msgid "Open the dimona" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1022 -msgid "For the company:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:805 +msgid "Update the dimona" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "DmfA - PDF Company." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:806 +msgid "Close the dimona" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1027 -msgid "For a specific employee:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:807 +msgid "Cancel the Dimona" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "DmfA - PDF Employee." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:809 +msgid "These actions answer the different use case explained in Section 1." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1032 -msgid "**Occupations**: Work schedules, part-time codes, parental leave, exploitation unit, reference working hours." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:812 +msgid "Contract and employee data" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1034 -msgid "**Services**: Aggregated work performance (in days and hours) for the quarter, categorized by occupation and type. The codification of working time in the DmfA declaration ensures accurate reporting of employee activities. Each code corresponds to a specific type of working time or absence. For a complete and detailed list of codes, please refer to the official social security website: `socialsecurity.be `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:814 +msgid "Basically, it checks the contract and employee data needed to create, update, close or cancel." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1040 -msgid "**1**: All performances covered by a salary subject to ONSS contributions, excluding legal and additional vacation for workers." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:817 +msgid "Error handling" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1042 -msgid "**2**: Legal vacation days for workers." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:819 +msgid "If some information is missing or wrongly configured, the system will return errors and you can take corrective action in order to make sure your Dimona is correctly sent, updated, closed or canceled." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1043 -msgid "**3**: Additional vacation days for workers." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:824 +msgid "Synchronization status" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1044 -msgid "**4**: Compensatory rest days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:826 +msgid "The status of sync and errors are shown in the chatter of the contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1045 -msgid "**5**: Days of illness or non-occupational accident." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:829 +msgid "Scheduled action" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1046 -msgid "**6**: Family leave days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:831 +msgid "Finally, the cron checks every day, for all contracts that have the status dimona waiting and triggers the necessary actions to update the dimona status accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1047 -msgid "**7**: Maternity or paternity leave days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:835 +msgid "Technical configuration (outside Odoo)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1048 -msgid "**8**: Strike days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:837 +msgid "Regarding the technical configuration, everything is described in the module information with all the technical prerequisites. If your customer or partner need further assistance with that, they need to contact their IT department or representatives as this is not part of Odoo configuration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1049 -msgid "**9**: Temporary unemployment for economic reasons." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:842 +msgid "Functional configuration (within Odoo)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1050 -msgid "**10**: Temporary unemployment for bad weather." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:844 +msgid "From the Odoo configuration point of view, navigate to :menuselection:`Payroll app --> Configuration --> Settings` and in the :guilabel:`Belgian Localization` section for :guilabel:`ONSS`, configure the following:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1051 -msgid "**11**: Temporary unemployment for force majeure." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:848 +msgid ":guilabel:`ONSS Company ID`: VAT Number of the Company" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1052 -msgid "**12**: Professional training days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:849 +msgid ":guilabel:`Registration Number`: 9 digits code received from the NSSO (ONSS - RSZ)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1053 -msgid "**13**: Suspension for disciplinary reasons." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:850 +msgid ":guilabel:`DMFA Employer Class`: 3 digits code received from the NSSO (ONSS - RSZ)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1054 -msgid "**14**: Additional vacation days for employment start or resumption." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:851 +msgid ":guilabel:`Expeditor Number ONSS`: Not Mandatory (see technical documentation of the module for more information)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1055 -msgid "**15**: Flexible vacation days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:853 +msgid ":guilabel:`PEM Certificate`, :guilabel:`PEM Passphare`, :guilabel:`KEY file`: check the module information for explanation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1057 -msgid "**Remunerations**: Aggregated by code per occupation:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:859 +msgid "DmfA - Multifunctional Declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1059 -msgid "**1**: Regular salary amounts excluding certain indemnities." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:864 +msgid "DmfA stands for \"Déclaration Multifonctionnelle\" or \"Multifunctionele Aangifte.\" It has replaced the quarterly ONSS declaration since the first quarter of 2003. Through this declaration, employers submit salary and working time data for their employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1060 -msgid "**2**: Bonuses and similar benefits granted independently of actual working days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:868 +msgid "These data are processed in a way that allows all social security institutions to work with the same information. The declaration is called \"multifunctional\" because it is used not only for social security contribution calculations and reductions but also as a data source for institutions managing social security rights and benefits." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1061 -msgid "**3**: Severance payments expressed in working hours." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:873 +msgid "Sectors utilizing DmfA data include:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1062 -msgid "**7**: Simple vacation pay for exiting employees (subject to contributions)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:875 +msgid "Health insurance" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1063 -msgid "**10**: Personal use of a company vehicle and other mobility benefits." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:876 +msgid "Unemployment benefits" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1064 -msgid "**11**: Simple vacation pay for exiting employees (not subject to contributions)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:877 +msgid "Pensions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1065 -msgid "**12**: Advance vacation pay paid by a previous employer (not subject to contributions)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:878 +msgid "Occupational risks (Fedris)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1067 -msgid "**Contributions**: Employer and employee contributions, such as:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:879 +msgid "Family allowances" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1069 -msgid "**256**: Asbestos fund contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:880 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:89 +msgid "Annual leave" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1070 -msgid "**255**: Special work accident contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:882 +msgid "All employers registered with ONSS must submit a DmfA declaration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1071 -msgid "**495**: Total employer + 13.07% employee contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:885 +msgid "Relationship with Dimona and DRS" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1072 -msgid "**809**: Enterprise closure fund contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:887 +msgid "DmfA is closely linked to two other mandatory declarations:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1073 -msgid "**810**: Special enterprise closure fund contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:890 +msgid "Dimona (immediate declaration)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1074 -msgid "**831**: Auxiliary Joint Committee for Employees (CP200) contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:892 +msgid "Dimona records the start and end of an employment relationship with an employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1075 -msgid "**855**: Wage restraint contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:895 +msgid "DRS (social risks declaration)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1076 -msgid "**856**: Special social security contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:897 +msgid "During an employment relationship, various social risks may arise, such as termination, workplace accidents, or long-term illness. When a social risk occurs, social security institutions require additional information beyond that provided by DmfA and Dimona." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1077 -msgid "**859**: Temporary unemployment contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:901 +msgid "DRS is now primarily an electronic declaration, though paper submissions remain possible." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1080 -msgid "Batch declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:904 +msgid "Who submits the DmfA declaration?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1085 -msgid "Batch declarations require technical knowledge, including SSH keys, SFTP servers, and electronic signatures. Employers should refer to the `official batch documentation `_ and `process overview `_." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:907 +msgid "Self-declaration options" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1090 -msgid "A batch submission generates three files:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:909 +msgid "Employers can submit their DmfA declaration themselves via:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1092 -msgid "**Declaration file** (e.g., FI.DMFA.112768.20250109.00014.R.1.1)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:911 +msgid "**Web Submission:** Suitable for employers with a small workforce. Declarations are entered directly through the social security portal." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1093 -msgid "**Launch file** (e.g., GO.DMFA.112768.20250109.00014.R.1)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:913 +msgid "**Batch Submission:** Designed for large employers or organizations handling multiple declarations (e.g., social secretariats, payroll software providers). Declarations are submitted via file transfer (FTP, SFTP, etc.)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1094 -msgid "**Electronic signature file** (e.g., FS.DMFA.112768.20250109.00014.R.1.1) (only for real declarations, not tests)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:918 +msgid "Advantages of web submission" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1097 -msgid "The full process includes creating, sending, validating, and potentially correcting declarations. Rejections and anomalies must be addressed before final acceptance." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:920 +msgid "**Automatic access to the company's employee list**: Based on Dimona data. If an employee is missing, they must first be declared via Dimona. After 24 hours, the employee list is updated, allowing for an accurate DmfA submission." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1103 -msgid "**Creation of the Declaration**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:923 +msgid "**Automatic calculation of net payable amount**: Once all required data is entered, the system calculates the total payable amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1105 -msgid "Create an XML document containing employee benefit data, remuneration, and contributions for the company." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:925 +msgid "**Reduction calculations**: The system calculates applicable reductions, except for reductions under code \"0001\" (personal contribution reductions for low-income workers). Employers need to check the relevant boxes and, if necessary, provide additional details." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1107 -msgid "More information on XML files can be found in the *Specifications* page." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:930 +msgid "Advantages of batch submission" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1109 -msgid "**Sending the Declaration**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:932 +msgid "**Submission of large volumes of declarations**: Ideal for organizations managing multiple payrolls." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1111 -msgid "Use FTP or SFTP for sending the file. Access requires prior authorization for secure zone access by a local manager." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:934 +msgid "**Quick response on acceptance status**: Employers receive immediate feedback on whether their declaration has been accepted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1113 -msgid "Detailed instructions are available on the `Introduce and Modify (via batch) `_." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:936 +msgid "**Error reporting**: The system generates a report on detected anomalies, regardless of acceptance status." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1116 -msgid "**File Acknowledgment Receipt**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:938 +msgid "**Automatic correction of calculation errors**: When possible, errors are corrected automatically, and employers are notified of adjustments." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1118 -msgid "**Positive Receipt**: Indicates the file can be processed. However, this does not guarantee acceptance." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:942 +msgid "Third-Party submission options" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1120 -msgid "**Negative Receipt**: Indicates issues with the file structure or access rights." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:944 +msgid "Employers who do not wish to submit the DmfA themselves can delegate the task to:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1122 -msgid "**Notification and Ticket Number for the Declaration**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:946 +msgid "**Accredited Social Secretariats**: These organizations handle payroll and declaration tasks on behalf of employers." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1124 -msgid "A positive notification is sent for each accepted declaration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:948 +msgid "**Service Providers**: These may be companies or individuals with whom the employer has a contractual agreement to manage payroll declarations securely." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1125 -msgid "Negative notification: Provides information on encountered anomalies." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:951 +msgid "For more information on accredited social secretariats or service providers, please refer to the relevant `official DmfA documentation `_." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1127 -msgid "**Sending PID**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:958 +msgid "The declaration is generated under :menuselection:`Payroll app --> Reporting --> Belgium --> DmfA` as is supposed to work properly after several required configuration steps." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1129 -msgid "Employers and SSA will receive PID and version numbers via batch for declarations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:962 +msgid "Company" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1131 -msgid "**Modification Notification with System Corrections**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:964 +msgid "To generate a valid DmfA declaration, specific company and employer-related information is required, (under :menuselection:`Payroll app --> Configuration --> Settings`). These include:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1133 -msgid "If corrections are made, a modification notification is sent with corrected values." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:967 +msgid ":guilabel:`ONSS Company ID`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1138 -msgid "Double holiday pay" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:968 +msgid ":guilabel:`ONSS Registration Number`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1140 -msgid "Double holiday pay is an additional bonus paid to employees and workers during their annual leave. The amount depends on the employee's or worker's salary." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:969 +msgid ":guilabel:`DMFA Employer Class`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1144 -msgid "How is double holiday pay calculated?" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:970 +msgid ":guilabel:`ONSS Certificate`: certificate for signature file generation (required for batch declarations)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1146 -msgid "For employees, double holiday pay amounts to 92% of their gross salary for the month when they take their main annual leave. This amount is calculated based on the number of months worked or considered equivalent in the previous year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:972 +msgid "VAT :guilabel:`Company Number`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1151 -msgid "Impact of additional or European leave" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:973 +msgid ":guilabel:`Revenue Code`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1153 -msgid "If you take additional or European leave, your employer will pay you regular holiday pay for that leave. However, the following year, this amount will be deducted from your double holiday pay. This is because additional leave is considered an advance on the next year's legal leave." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:974 +msgid ":guilabel:`FFE Employer Type` (Fonds de Fermeture d'Entreprise)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1158 -msgid "Factors affecting the calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:979 +msgid "Additionally, each employee must be assigned to a valid working address, identified with a DmfA code, in their employee record. This operating unit must be linked to a valid ONSS identification number to ensure compliance with declaration requirements. Failing to configure this properly may result in errors during the declaration submission process." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1160 -msgid "**Months Worked**: The calculation is based on the number of months you worked in the previous year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:984 +msgid "On the employee form, the :guilabel:`Work Address` must be defined." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1162 -msgid "**Absences**: If you had unpaid absences, they may reduce your double holiday pay." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:986 +msgid "Under :menuselection:`Payroll app --> Configuration --> DMFA: Work Locations`, you can link the work address to a ONSS identification number." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1163 -msgid "**Variable Revenues**: Bonuses and commissions earned in the previous year can impact the total amount of double holiday pay." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "DmfA - Work Location ONSS ID." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1165 -msgid "**Withholding Taxes**: The double holiday pay is subject to income tax deductions, which depend on your annual earnings and family situation." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:993 +msgid "Work entry type" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1169 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1489 -msgid "Withholding tax calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:995 +msgid "A DmfA code should be defined for each work entry type that is declared. Under :menuselection:`Payroll app --> Configuration --> Work Entries --> Work Entry Types`, specify the :guilabel:`DMFA code`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1171 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1491 -msgid "The withholding tax is calculated using a progressive rate system. The process involves:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1000 +msgid "Potential configuration errors" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1173 -msgid "**Identify the Employee's Annual Taxable Revenue**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1002 +msgid "During the declaration generation process, configuration issues may arise, triggering errors such as:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1175 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1495 -msgid "Compute the annualized salary, including benefits in kind (e.g., company car, internet, mobile phone, laptop)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1005 +msgid "Terminated employees without or with invalid start/end notice period" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1177 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1497 -msgid "Apply reductions for dependent children." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1006 +msgid "Invalid NISS number for some employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1179 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1499 -msgid "**Apply Tax Rates**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1007 +msgid "Work addresses not linked to an ONSS identification code" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1181 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1501 -msgid "Use predefined tax brackets to determine the base withholding tax rate." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1008 +msgid "Work entry type missing a corresponding DmfA code" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1182 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1502 -msgid "If applicable, apply a reduction based on the number of dependent children." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1009 +msgid "Other inconsistencies in employer or employee records" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1185 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1505 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:146 -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:96 -msgid "Tax brackets" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1011 +msgid "Employers should ensure accurate configuration to avoid delays and rejection of their declarations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1187 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1507 -msgid "The withholding tax is applied progressively based on the following brackets (as of 2025):" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1014 +msgid "Web declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1190 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1510 -msgid "Lower Bound" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "DmfA - Web Declaration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1190 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1510 -msgid "Upper Bound" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1019 +msgid "A web declaration generates a PDF summarizing the company's general information, as well as all employee data that must be manually entered into the system. This includes:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1190 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1510 -msgid "Tax Rate" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1022 +msgid "For the company:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1192 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1512 -msgid "0.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "DmfA - PDF Company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1192 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1512 -msgid "10,415.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1027 +msgid "For a specific employee:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1192 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1512 -msgid "0.00%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "DmfA - PDF Employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1194 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1514 -msgid "10,415.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1032 +msgid "**Occupations**: Work schedules, part-time codes, parental leave, exploitation unit, reference working hours." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1194 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1514 -msgid "13,330.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1034 +msgid "**Services**: Aggregated work performance (in days and hours) for the quarter, categorized by occupation and type. The codification of working time in the DmfA declaration ensures accurate reporting of employee activities. Each code corresponds to a specific type of working time or absence. For a complete and detailed list of codes, please refer to the official social security website: `socialsecurity.be `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1194 -msgid "19.17%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1040 +msgid "**1**: All performances covered by a salary subject to ONSS contributions, excluding legal and additional vacation for workers." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1196 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1516 -msgid "13,330.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1042 +msgid "**2**: Legal vacation days for workers." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1196 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1516 -msgid "16,960.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1043 +msgid "**3**: Additional vacation days for workers." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1196 -msgid "21.20%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1044 +msgid "**4**: Compensatory rest days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1198 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1518 -msgid "16,960.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1045 +msgid "**5**: Days of illness or non-occupational accident." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1198 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1518 -msgid "20,340.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1046 +msgid "**6**: Family leave days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1198 -msgid "26.25%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1047 +msgid "**7**: Maternity or paternity leave days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1200 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1520 -msgid "20,340.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1048 +msgid "**8**: Strike days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1200 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1520 -msgid "23,020.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1049 +msgid "**9**: Temporary unemployment for economic reasons." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1200 -msgid "31.30%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1050 +msgid "**10**: Temporary unemployment for bad weather." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1202 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1522 -msgid "23,020.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1051 +msgid "**11**: Temporary unemployment for force majeure." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1202 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1522 -msgid "25,710.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1052 +msgid "**12**: Professional training days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1202 -msgid "34.33%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1053 +msgid "**13**: Suspension for disciplinary reasons." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1204 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1524 -msgid "25,710.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1054 +msgid "**14**: Additional vacation days for employment start or resumption." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1204 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1304 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1524 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1624 -msgid "31,070.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1055 +msgid "**15**: Flexible vacation days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1204 -msgid "36.34%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1057 +msgid "**Remunerations**: Aggregated by code per occupation:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1206 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1526 -msgid "31,070.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1059 +msgid "**1**: Regular salary amounts excluding certain indemnities." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1206 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1526 -msgid "33,810.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1060 +msgid "**2**: Bonuses and similar benefits granted independently of actual working days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1206 -msgid "39.37%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1061 +msgid "**3**: Severance payments expressed in working hours." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1208 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1528 -msgid "33,810.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1062 +msgid "**7**: Simple vacation pay for exiting employees (subject to contributions)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1208 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1528 -msgid "44,770.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1063 +msgid "**10**: Personal use of a company vehicle and other mobility benefits." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1208 -msgid "42.39%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1064 +msgid "**11**: Simple vacation pay for exiting employees (not subject to contributions)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1210 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1530 -msgid "44,770.01" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1065 +msgid "**12**: Advance vacation pay paid by a previous employer (not subject to contributions)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1210 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1212 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1530 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1532 -msgid "58,460.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1067 +msgid "**Contributions**: Employer and employee contributions, such as:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1210 -msgid "47.44%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1069 +msgid "**256**: Asbestos fund contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1212 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1532 -msgid "∞" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1070 +msgid "**255**: Special work accident contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1212 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1532 -msgid "53.50%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1071 +msgid "**495**: Total employer + 13.07% employee contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1216 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1536 -msgid "Tax exemption" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1072 +msgid "**809**: Enterprise closure fund contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1218 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1538 -msgid "A withholding tax exemption is granted when the normal annual gross income does not exceed a specific threshold, which is determined based on the number of dependent children [2]." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1073 +msgid "**810**: Special enterprise closure fund contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1221 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1541 -msgid "A disabled dependent child counts as two." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1074 +msgid "**831**: Auxiliary Joint Committee for Employees (CP200) contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1223 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1543 -msgid "The method involves referring to a two-column table:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1075 +msgid "**855**: Wage restraint contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1225 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1545 -msgid "**Column 1**: Indicates the number of dependent children." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1076 +msgid "**856**: Special social security contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1226 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1546 -msgid "**Column 2**: Specifies the maximum allowable normal annual gross income, based on the number of dependent children listed in Column 1, which must not be exceeded to qualify for full or partial exemption from withholding tax." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1077 +msgid "**859**: Temporary unemployment contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1230 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1550 -msgid "After determining the annual gross income, two scenarios may arise:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1080 +msgid "Batch declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1232 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1552 -msgid "If the annual income exceeds the threshold, no exemption is granted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1085 +msgid "Batch declarations require technical knowledge, including SSH keys, SFTP servers, and electronic signatures. Employers should refer to the `official batch documentation `_ and `process overview `_." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1233 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1553 -msgid "If the annual income does not exceed the threshold, an exemption will be applied." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1090 +msgid "A batch submission generates three files:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1235 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1555 -msgid "The amount of this exemption corresponds to the difference between the annual gross income and the threshold amount." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1092 +msgid "**Declaration file** (e.g., FI.DMFA.112768.20250109.00014.R.1.1)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1238 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1558 -msgid "Of course, if this difference exceeds the base withholding tax amount, no withholding tax will be due." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1093 +msgid "**Launch file** (e.g., GO.DMFA.112768.20250109.00014.R.1)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1242 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1298 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1562 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1618 -msgid "No. of Children" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1094 +msgid "**Electronic signature file** (e.g., FS.DMFA.112768.20250109.00014.R.1.1) (only for real declarations, not tests)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1242 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1562 -msgid "Max Revenue (EUR)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1097 +msgid "The full process includes creating, sending, validating, and potentially correcting declarations. Rejections and anomalies must be addressed before final acceptance." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1244 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1564 -msgid "18,400.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1103 +msgid "**Creation of the Declaration**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1246 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1566 -msgid "21,930.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1105 +msgid "Create an XML document containing employee benefit data, remuneration, and contributions for the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1248 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1568 -msgid "28,270.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1107 +msgid "More information on XML files can be found in the *Specifications* page." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1250 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1570 -msgid "35,330.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1109 +msgid "**Sending the Declaration**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1252 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1572 -msgid "42,390.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1111 +msgid "Use FTP or SFTP for sending the file. Access requires prior authorization for secure zone access by a local manager." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1254 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1574 -msgid "49,450.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1113 +msgid "Detailed instructions are available on the `Introduce and Modify (via batch) `_." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1256 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1576 -msgid "56,510.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1116 +msgid "**File Acknowledgment Receipt**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1258 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1578 -msgid "63,570.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1118 +msgid "**Positive Receipt**: Indicates the file can be processed. However, this does not guarantee acceptance." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1260 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1580 -msgid "70,630.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1120 +msgid "**Negative Receipt**: Indicates issues with the file structure or access rights." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1262 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1582 -msgid "77,690.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1122 +msgid "**Notification and Ticket Number for the Declaration**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1264 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1584 -msgid "84,750.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1124 +msgid "A positive notification is sent for each accepted declaration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1266 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1125 +msgid "Negative notification: Provides information on encountered anomalies." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1127 +msgid "**Sending PID**" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1129 +msgid "Employers and SSA will receive PID and version numbers via batch for declarations." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1131 +msgid "**Modification Notification with System Corrections**" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1133 +msgid "If corrections are made, a modification notification is sent with corrected values." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1138 +msgid "Double holiday pay" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1140 +msgid "Double holiday pay is an additional bonus paid to employees and workers during their annual leave. The amount depends on the employee's or worker's salary." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1144 +msgid "How is double holiday pay calculated?" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1146 +msgid "For employees, double holiday pay amounts to 92% of their gross salary for the month when they take their main annual leave. This amount is calculated based on the number of months worked or considered equivalent in the previous year." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1151 +msgid "Impact of additional or European leave" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1153 +msgid "If you take additional or European leave, your employer will pay you regular holiday pay for that leave. However, the following year, this amount will be deducted from your double holiday pay. This is because additional leave is considered an advance on the next year's legal leave." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1158 +msgid "Factors affecting the calculation" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1160 +msgid "**Months Worked**: The calculation is based on the number of months you worked in the previous year." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1162 +msgid "**Absences**: If you had unpaid absences, they may reduce your double holiday pay." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1163 +msgid "**Variable Revenues**: Bonuses and commissions earned in the previous year can impact the total amount of double holiday pay." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1165 +msgid "**Withholding Taxes**: The double holiday pay is subject to income tax deductions, which depend on your annual earnings and family situation." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1169 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1489 +msgid "Withholding tax calculation" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1171 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1491 +msgid "The withholding tax is calculated using a progressive rate system. The process involves:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1173 +msgid "**Identify the Employee's Annual Taxable Revenue**:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1175 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1495 +msgid "Compute the annualized salary, including benefits in kind (e.g., company car, internet, mobile phone, laptop)." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1177 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1497 +msgid "Apply reductions for dependent children." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1179 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1499 +msgid "**Apply Tax Rates**:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1181 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1501 +msgid "Use predefined tax brackets to determine the base withholding tax rate." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1182 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1502 +msgid "If applicable, apply a reduction based on the number of dependent children." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1185 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1505 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:146 +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:96 +msgid "Tax brackets" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1187 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1507 +msgid "The withholding tax is applied progressively based on the following brackets (as of 2025):" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1190 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1510 +msgid "Lower Bound" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1190 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1510 +msgid "Upper Bound" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1190 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1510 +msgid "Tax Rate" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1192 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1512 +msgid "0.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1192 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1512 +msgid "10,415.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1192 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1512 +msgid "0.00%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1194 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1514 +msgid "10,415.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1194 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1514 +msgid "13,330.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1194 +msgid "19.17%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1196 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1516 +msgid "13,330.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1196 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1516 +msgid "16,960.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1196 +msgid "21.20%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1198 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1518 +msgid "16,960.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1198 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1518 +msgid "20,340.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1198 +msgid "26.25%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1200 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1520 +msgid "20,340.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1200 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1520 +msgid "23,020.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1200 +msgid "31.30%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1202 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1522 +msgid "23,020.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1202 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1522 +msgid "25,710.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1202 +msgid "34.33%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1204 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1524 +msgid "25,710.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1204 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1304 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1524 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1624 +msgid "31,070.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1204 +msgid "36.34%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1206 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1526 +msgid "31,070.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1206 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1526 +msgid "33,810.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1206 +msgid "39.37%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1208 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1528 +msgid "33,810.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1208 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1528 +msgid "44,770.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1208 +msgid "42.39%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1210 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1530 +msgid "44,770.01" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1210 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1212 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1530 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1532 +msgid "58,460.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1210 +msgid "47.44%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1212 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1532 +msgid "∞" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1212 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1532 +msgid "53.50%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1216 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1536 +msgid "Tax exemption" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1218 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1538 +msgid "A withholding tax exemption is granted when the normal annual gross income does not exceed a specific threshold, which is determined based on the number of dependent children [2]." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1221 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1541 +msgid "A disabled dependent child counts as two." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1223 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1543 +msgid "The method involves referring to a two-column table:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1225 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1545 +msgid "**Column 1**: Indicates the number of dependent children." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1226 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1546 +msgid "**Column 2**: Specifies the maximum allowable normal annual gross income, based on the number of dependent children listed in Column 1, which must not be exceeded to qualify for full or partial exemption from withholding tax." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1230 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1550 +msgid "After determining the annual gross income, two scenarios may arise:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1232 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1552 +msgid "If the annual income exceeds the threshold, no exemption is granted." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1233 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1553 +msgid "If the annual income does not exceed the threshold, an exemption will be applied." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1235 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1555 +msgid "The amount of this exemption corresponds to the difference between the annual gross income and the threshold amount." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1238 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1558 +msgid "Of course, if this difference exceeds the base withholding tax amount, no withholding tax will be due." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1242 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1298 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1562 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1618 +msgid "No. of Children" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1242 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1562 +msgid "Max Revenue (EUR)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1244 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1564 +msgid "18,400.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1246 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1566 +msgid "21,930.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1248 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1568 +msgid "28,270.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1250 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1570 +msgid "35,330.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1252 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1572 +msgid "42,390.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1254 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1574 +msgid "49,450.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1256 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1576 +msgid "56,510.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1258 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1578 +msgid "63,570.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1260 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1580 +msgid "70,630.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1262 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1582 +msgid "77,690.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1264 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1584 +msgid "84,750.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1266 #: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1586 msgid "91,810.00" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1270 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1590 -msgid "Tax reductions" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1270 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1590 +msgid "Tax reductions" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1272 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1592 +msgid "When there is no justification for fully or partially exempting the exceptional allowance from withholding tax, it is still possible to grant a reduction in withholding tax." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1275 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1595 +msgid "To determine eligibility for this reduction, one must check whether the normal annual gross salary exceeds a certain higher threshold, which varies according to the number of dependent children [3]. This threshold is higher than the one used for exemption purposes." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1279 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1599 +msgid "A disabled child counts as two." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1281 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1601 +msgid "The method involves referring to a three-column table:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1283 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1603 +msgid "**Column 1**: Indicates the number of dependent children (up to a maximum of 5)." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1284 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1604 +msgid "**Column 2**: Specifies the percentage reduction in withholding tax, based on the number of dependent children listed in Column 1, which must not be exceeded to qualify for the reduction." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1286 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1606 +msgid "**Column 3**: Shows the threshold amount that must not be exceeded, corresponding to the number of dependent children listed in Column 1." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1289 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1609 +msgid "Two scenarios may arise:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1291 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1611 +msgid "If the threshold amount is exceeded, no reduction will be granted." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1292 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1612 +msgid "If the threshold amount is not exceeded, a reduction will be applied to the withholding tax amount, up to a percentage rate determined in Column 2." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1295 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1615 +msgid "For employees with dependent children, tax reductions apply as follows:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1298 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1618 +msgid "Reduction (%)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1298 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1618 +msgid "Max Revenue" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1300 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1620 +msgid "7.5%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1300 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1302 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1620 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1622 +msgid "28,245.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1302 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1622 +msgid "20.0%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1304 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1624 +msgid "35.0%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1306 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1626 +msgid "55.0%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1306 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1626 +msgid "36,720.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1308 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1628 +msgid "5+" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1308 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1628 +msgid "75.0%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1308 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1628 +msgid "39,550.00" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1312 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1632 +msgid "Final tax calculation" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1314 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1634 +msgid "The final withholding tax amount is:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1316 +msgid "\\text{Tax} = \\text{Gross Double Holiday} \\times \\text{Applicable Tax Rate} -\n" +"\\text{Reduction (if applicable)}" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1322 +msgid "The resulting tax is deducted from the gross double holiday salary to determine the net amount payable to the employee." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1325 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1645 +msgid "The calculation considers work duration, absences, variable revenue, and applicable withholding taxes. Odoo automates these calculations to ensure compliance with Belgian labor laws and tax regulations." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1330 +msgid "Generate a batch in Odoo" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1332 +msgid "Navigate to :menuselection:`Payroll App --> Payslips --> Batches` and create a new record with valid dates (here december 2024)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1335 +msgid "Then click the **Generate Payslips** button, select the CP200 salary structure type and the Thirteen Month salary structure. You can also filter eligible employees by department and / or job position." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Double Holiday Batch Wizard." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1342 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1663 +msgid "Once validated, a payslip is generated for each employee." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Double Holiday Payslips." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1347 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1668 +msgid "You can now check the different payslips before validation. Once validated, the PDF files are generated and posted on employee portals as for classic payslips." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Double Holiday PDF." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1356 +msgid "Double holiday pay is a significant benefit that rewards employees for their work in the previous year. Understanding how it is calculated helps in better financial planning for the holiday period." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1362 +msgid "Eco vouchers" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1367 +msgid "Eco vouchers are a tax-free employee benefit designed to support the purchase of environmentally-friendly products and services. These vouchers are ordered via external providers and are exempt from social security contributions." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1372 +msgid "Eligibility & allocation" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1374 +msgid "Employees who have worked during the **reference period (01/06/N-1 - 31/05/N)** are eligible for up to **250€** in eco vouchers, which are granted at the beginning of **July**." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1378 +msgid "For 2025, employees must have worked between **01/06/2024 and 31/05/2025** to qualify." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1380 +msgid "For employees who join during the reference period, the voucher amount is prorated based on their worked days." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1384 +msgid "An employee hired on **06/01**, having worked **6 out of 12 months**, would receive:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1386 +msgid "250\\text{€} \\times (6/12) = 125\\text{€}" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1391 +msgid "For part-time employees, the amount is adjusted as follows:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1396 +msgid "Work Regime" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1397 +msgid "Voucher Amount (€)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1398 +msgid "4/5" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1399 +msgid "250€" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1400 +msgid "3/5" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1401 +msgid "200€" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1402 +msgid "1/2" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1403 +msgid "125€" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1404 +msgid "< 1/2" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1405 +msgid "100€" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1408 +msgid "If an employee starts on **1st September** in **full-time** and then switches to **half-time** on **1st April 2024**, the calculation will be:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1411 +msgid "250\\text{€} \\times (7/12) + 125\\text{€} \\times (2/12) = 166\\text{€}" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1417 +msgid "Exceptions & adjustments" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1419 +msgid "If an employee worked full-time for the entire reference period but did not receive **250€**, certain non-assimilated leave days may have affected the calculation." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1422 +msgid "The following leave types are **not** considered for eco-voucher entitlement:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1424 +msgid "**Unpaid leaves**" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1425 +msgid "**Sick leave compensated by mutual insurance** (after 30 days of work incapacity)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1428 +msgid "Usage & validity" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1430 +msgid "Eco vouchers are valid for **24 months** from the date of issuance." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1433 +msgid "The list of eligible products and services that can be purchased with eco vouchers is available here:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1436 +msgid "`Eco-Voucher Eligible Products `_" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1441 +msgid "End of year bonus" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1443 +msgid "This document explains the calculation of the thirteenth-month salary (year-end bonus) in Belgium within Odoo. The calculation considers the employee's contracts, working time rates, and applicable taxes." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1448 +msgid "Calculation of the thirteenth-month salary" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1451 +msgid "Eligibility criteria" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1453 +msgid "The employee must have worked for at least **six complete months** in the year." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1454 +msgid "Both full-time and part-time employees are eligible, with prorated calculations based on work time." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1458 +msgid "Salary calculation" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1460 +msgid "The thirteenth-month salary is computed as follows:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1462 +msgid "**Determine the basic salary**:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1464 +msgid "Retrieve the employee's contractual wage." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1465 +msgid "Identify the applicable work rate." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1467 +msgid "**Compute eligible months**:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1469 +msgid "If explicitly provided (`MONTHS` input), use the given number of months." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1470 +msgid "Otherwise, calculate the number of complete months worked." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1471 +msgid "Prorate the salary for partial-year work." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1473 +msgid "**Adjust for absences**:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1475 +msgid "Deduct unpaid absences to obtain the presence prorata." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1476 +msgid "Consider up to 60 days of sick leave as paid time off." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1478 +msgid "**Include variable revenues**:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1480 +msgid "If explicitly provided (`VARIABLE` input), use the given value." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1481 +msgid "Otherwise, calculate the average variable revenue over the last year." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1483 +msgid "**Final amount**:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1485 +msgid "The final thirteenth-month amount is the sum of the prorated fixed salary and average variable revenues." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1493 +msgid "**Identify the employee's annual taxable revenue**:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1514 +msgid "23.22%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1516 +msgid "25.23%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1518 +msgid "30.28%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1520 +msgid "35.33%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1522 +msgid "38.36%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1524 +msgid "40.38%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1526 +msgid "43.41%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1528 +msgid "46.44%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1530 +msgid "51.48%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1636 +msgid "\\text{Tax} = \\text{Gross Thirteenth Month} \\times \\text{Applicable Tax Rate} -\n" +"\\text{Reduction (if applicable)}" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1642 +msgid "The resulting tax is deducted from the gross thirteenth-month salary to determine the net amount payable to the employee." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1652 +msgid "Navigate to :menuselection:`Payroll app --> Payslips --> Batches` and create a new record with valid dates (here december 2024)." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1655 +msgid "Then click the :guilabel:`Generate Payslips` button, select the :guilabel:`CP200: Belgian Employee` :guilabel:`Salary Structure Type` and the :guilabel:`CP200: Employees 13th Month` :guilabel:`Salary Structure`. You can also filter eligible employees by :guilabel:`Department` and / or :guilabel:`Job Position`." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "End of Year Bonus Batch Wizard." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "End of Year Bonus Payslips." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "End of Year Bonus PDF." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1677 +msgid "Holiday pay recovery" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1679 +msgid "This document explains how Odoo calculates the recovery of holiday pay (both simple and double) for employees in Belgium who have changed employers. When an employee moves from one company to another, their previous employer may have already paid their holiday pay for the previous year. This amount needs to be recovered by the new employer, and this guide outlines how this is managed in Odoo." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1685 +msgid "Understanding holiday pay in Belgium" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1687 +msgid "In Belgium, employees are entitled to annual leave and corresponding holiday pay, which consists of:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1689 +msgid "**Simple holiday pay**: Regular salary payments for the days of leave taken." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1690 +msgid "**Double holiday pay**: An additional payment, typically equal to approximately 92% of the gross monthly salary, given when employees take their annual leave." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1693 +msgid "When an employee changes jobs, their previous employer may have already paid these amounts. To avoid double payment, the new employer needs to recover the amounts already paid." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1697 +msgid "Recovery of simple holiday pay" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1699 +msgid "The recovery of simple holiday pay in Odoo is based on the following criteria:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1701 +msgid "The recovery applies if the employee has taken leave in the current year and their previous employer already paid the holiday pay." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1703 +msgid "The calculation considers the number of leave days taken and the hours worked per week." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1704 +msgid "The recovery process is split into:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1706 +msgid "**Year N**: The current year's holiday pay recovery." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1272 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1592 -msgid "When there is no justification for fully or partially exempting the exceptional allowance from withholding tax, it is still possible to grant a reduction in withholding tax." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1707 +msgid "**Year N-1**: The recovery of holiday pay from the previous year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1275 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1595 -msgid "To determine eligibility for this reduction, one must check whether the normal annual gross salary exceeds a certain higher threshold, which varies according to the number of dependent children [3]. This threshold is higher than the one used for exemption purposes." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1709 +msgid "The system checks:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1279 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1599 -msgid "A disabled child counts as two." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1711 +msgid "If the employee's first contract date with the company was in the previous year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1281 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1601 -msgid "The method involves referring to a three-column table:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1712 +msgid "If the employee has a pending holiday pay recovery amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1283 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1603 -msgid "**Column 1**: Indicates the number of dependent children (up to a maximum of 5)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1713 +msgid "If the recovery has not already been processed." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1714 +msgid "If the employee has taken annual leave." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1716 +msgid "If all conditions are met, Odoo calculates the amount to be deducted from the payroll to account for the holiday pay already received from the previous employer." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1720 +msgid "Recovery of double holiday pay" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1722 +msgid "The recovery of double holiday pay follows these steps:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1724 +msgid "The system verifies the employee's contract and determines their employment duration." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1725 +msgid "The gross salary is calculated based on the employee's contract." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1726 +msgid "The number of months worked in the previous year is identified." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1727 +msgid "A threshold amount is computed as follows:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1729 +msgid "\\text{Threshold} = \\text{Current monthly salary} \\times \\text{Months worked in previous year}\n" +"\\times \\text{Occupation rate} \\times 7.67%" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1735 +msgid "If the amount on the holiday certificate from the previous employer is lower than this threshold, no limit applies." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1738 +msgid "The system recovers the lower of:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1740 +msgid "The calculated threshold." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1741 +msgid "The actual amount paid by the previous employer." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1743 +msgid "If the employee has worked for more than 12 months in the current company, no double holiday pay needs to be recovered." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1747 +msgid "How to configure in Odoo" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1749 +msgid "In the employee form view, under the :guilabel:`Settings` tab, you can enter the various amounts from holiday attests provided by the new employee." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Holiday Pay Recovery Configuration." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1755 +msgid "For simple holiday pay recovery, you need to enter:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1757 +msgid "The :guilabel:`Number of days` for paid leave" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1758 +msgid "The :guilabel:`Amount to recover` by the employee" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1761 +msgid "The :guilabel:`Recovered Amount` field displays the amount already recovered." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1763 +msgid "For double holiday pay recovery, you must enter a **line for each employer's holiday attest**. Each line should include:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1766 +msgid "The :guilabel:`# Months` (number of months) the employee worked for that employer" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1767 +msgid "The :guilabel:`Amount` provided to the employee" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1768 +msgid "The :guilabel:`Occupational Rate`" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1770 +msgid "Odoo uses this data to compute a **recovery limit**. If the employee now has a lower salary, the full amount cannot be recovered." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1774 +msgid "Be careful not to mix holiday attests for the current year (N) and the previous year (N-1)." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1776 +msgid "For simple holiday pay recovery, the system deducts the amount from each legal time-off period until:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1779 +msgid "The **total amount** has been fully recovered, or" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1780 +msgid "The **number of time-off days** has been matched (if the employee's current salary is lower than before)." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Holiday Pay Recovery Simple Payslip." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1786 +msgid "Once the **payslip** is validated and paid, the recovered simple holiday pay is reflected in the employee form view." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Holiday Pay Recovery Simple Amount." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1792 +msgid "On the double holiday payslip, click :guilabel:`Compute Double Pay Recovery` to open a wizard that helps calculate the recoverable amount." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1795 +msgid "In the :guilabel:`Double Pay Recovery Computation` wizard, you'll find:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1797 +msgid "The relevant holiday attests listed in the :guilabel:`Occupation Lines`" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1798 +msgid "The :guilabel:`Double Pay To Recover` amount based on the threshold" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1800 +msgid "This amount is **editable** if manual adjustments are needed." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Holiday Pay Recovery Double Wizard." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1805 +msgid "Once validated, the double pay recovery is applied to the payslip." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Holiday Pay Recovery Double Amount." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1810 +msgid "Odoo automates the recovery of both **simple** and **double** holiday pay, ensuring compliance with **Belgian labor laws**. By analyzing contract details, employment duration, and past payments, Odoo calculates the necessary deductions and prevents duplicate holiday pay payments." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1817 +msgid "Individual accounts" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1820 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1973 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2132 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2316 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2842 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3064 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3134 +msgid "Introduction" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1822 +msgid "The individual account provides workers with a detailed overview of their earnings, deductions (such as social security contributions, withholding tax, etc.), and the working days performed, on a pay period basis. Additionally, it contains all relevant administrative data related to remuneration." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1828 +msgid "Required information in the individual account" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1830 +msgid "The individual account must include several mandatory details as determined by Royal Decree." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1832 +msgid "**Employer identification:**" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1834 +msgid "Name, address, ONSS number, ONVA number" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1835 +msgid "Relevant joint committee (or sub-committee)" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1836 +msgid "Name of the holiday fund for workers" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1837 +msgid "Insurer for work-related accidents" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1838 +msgid "Approved social secretariat" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1839 +msgid "Relevant affiliation numbers" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1841 +msgid "**Worker identification:**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1284 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1604 -msgid "**Column 2**: Specifies the percentage reduction in withholding tax, based on the number of dependent children listed in Column 1, which must not be exceeded to qualify for the reduction." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1843 +msgid "Name, address, date of birth, gender, tax status" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1286 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1606 -msgid "**Column 3**: Shows the threshold amount that must not be exceeded, corresponding to the number of dependent children listed in Column 1." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1844 +msgid "Type of employment contract, job title, professional qualification" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1289 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1609 -msgid "Two scenarios may arise:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1845 +msgid "Workplace location (or note if working at multiple locations)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1291 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1611 -msgid "If the threshold amount is exceeded, no reduction will be granted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1846 +msgid "Start and end date of employment" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1292 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1612 -msgid "If the threshold amount is not exceeded, a reduction will be applied to the withholding tax amount, up to a percentage rate determined in Column 2." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1847 +msgid "Employee ID number, starting salary" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1295 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1615 -msgid "For employees with dependent children, tax reductions apply as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1848 +msgid "Remuneration components and payment periodicity" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1298 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1618 -msgid "Reduction (%)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1850 +msgid "**Remuneration components:**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1298 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1618 -msgid "Max Revenue" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1852 +msgid "Per pay period (daily, weekly, bi-weekly, or monthly):" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1300 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1620 -msgid "7.5%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1854 +msgid "Number of working days and hours (regular, additional, and overtime)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1300 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1302 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1620 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1622 -msgid "28,245.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1855 +msgid "Days of work interruption and reasons (illness, vacations, public holidays, replacement days, compensatory rest days, etc.)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1302 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1622 -msgid "20.0%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1857 +msgid "Fixed or hourly salary, variable remuneration, bonuses, meal vouchers, eco vouchers, holiday pay (including early holiday pay if applicable), severance pay, year-end bonuses (as per sectoral or other collective labor agreements), benefits in kind and their estimated value" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1304 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1624 -msgid "35.0%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1860 +msgid "Gross amount of all remuneration components" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1306 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1626 -msgid "55.0%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1861 +msgid "Amounts subject to social and tax deductions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1306 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1626 -msgid "36,720.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1862 +msgid "Various social and tax deductions: personal ONSS contributions, withholding tax, special social security contributions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1308 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1628 -msgid "5+" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1864 +msgid "Net amount payable to the worker" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1308 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1628 -msgid "75.0%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1865 +msgid "Other payments made by the employer, including reimbursement of travel expenses, allowances, and other payments" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1308 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1628 -msgid "39,550.00" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1868 +msgid "Per quarter:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1312 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1632 -msgid "Final tax calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1870 +msgid "Number of actual working days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1314 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1634 -msgid "The final withholding tax amount is:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1871 +msgid "Days of work interruption by reason" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1316 -msgid "\\text{Tax} = \\text{Gross Double Holiday} \\times \\text{Applicable Tax Rate} -\n" -"\\text{Reduction (if applicable)}" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1872 +msgid "Total remuneration subject to social security contributions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1322 -msgid "The resulting tax is deducted from the gross double holiday salary to determine the net amount payable to the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1873 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1878 +msgid "Employee social security contribution amounts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1325 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1645 -msgid "The calculation considers work duration, absences, variable revenue, and applicable withholding taxes. Odoo automates these calculations to ensure compliance with Belgian labor laws and tax regulations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1875 +msgid "Per year:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1330 -msgid "Generate a batch in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1877 +msgid "Total amounts subject to social security contributions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1332 -msgid "Navigate to :menuselection:`Payroll App --> Payslips --> Batches` and create a new record with valid dates (here december 2024)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1879 +msgid "Taxable remuneration and other amounts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1335 -msgid "Then click the **Generate Payslips** button, select the CP200 salary structure type and the Thirteen Month salary structure. You can also filter eligible employees by department and / or job position." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1880 +msgid "Withholding tax amount" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Double Holiday Batch Wizard." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1883 +msgid "Responsibility for establishing and updating the individual account" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1342 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1663 -msgid "Once validated, a payslip is generated for each employee." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1885 +msgid "Belgian employers using **Odoo Payroll** can generate the individual accounts of their workers." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Double Holiday Payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1887 +msgid "However, to ensure accurate record-keeping, employers must:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1347 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1668 -msgid "You can now check the different payslips before validation. Once validated, the PDF files are generated and posted on employee portals as for classic payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1889 +msgid "Ensure payment of sector-mandated year-end bonuses" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Double Holiday PDF." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1890 +msgid "Ensure that all public holidays, legal vacation days, and compensatory rest days are taken before the end of the year" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1356 -msgid "Double holiday pay is a significant benefit that rewards employees for their work in the previous year. Understanding how it is calculated helps in better financial planning for the holiday period." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1892 +msgid "Plan collective vacation and replacement public holidays in advance" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1362 -msgid "Eco vouchers" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1893 +msgid "Pay workers their holiday pay (including early holiday pay if applicable)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1367 -msgid "Eco vouchers are a tax-free employee benefit designed to support the purchase of environmentally-friendly products and services. These vouchers are ordered via external providers and are exempt from social security contributions." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1894 +msgid "Distribute due eco vouchers" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1372 -msgid "Eligibility & allocation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1895 +msgid "Pay any required travel expenses between home and work" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1374 -msgid "Employees who have worked during the **reference period (01/06/N-1 - 31/05/N)** are eligible for up to **250€** in eco vouchers, which are granted at the beginning of **July**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1897 +msgid "If these obligations are met, the corresponding data will be included in the individual account." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1378 -msgid "For 2025, employees must have worked between **01/06/2024 and 31/05/2025** to qualify." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1900 +msgid "Storage and retention period of the individual account" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1380 -msgid "For employees who join during the reference period, the voucher amount is prorated based on their worked days." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1902 +msgid "The individual account is a social document that must be kept by the employer for a specified period after its creation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1384 -msgid "An employee hired on **06/01**, having worked **6 out of 12 months**, would receive:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1905 +msgid "Employers may store individual accounts:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1386 -msgid "250\\text{€} \\times (6/12) = 125\\text{€}" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1907 +msgid "At the ONSS-registered address" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1391 -msgid "For part-time employees, the amount is adjusted as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1908 +msgid "At a workplace" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1396 -msgid "Work Regime" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1909 +msgid "At their home or registered office if located in Belgium; otherwise, at the residence of a designated agent in Belgium" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1397 -msgid "Voucher Amount (€)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1911 +msgid "At the office of the approved social secretariat, if affiliated" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1398 -msgid "4/5" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1913 +msgid "Records must be kept legible and in a format allowing efficient oversight. The retention period is **five years** from the end of the annual closing of the account." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1399 -msgid "250€" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1917 +msgid "When must workers receive a copy of their individual account?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1400 -msgid "3/5" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1919 +msgid "Each worker must receive a copy of their individual account:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1401 -msgid "200€" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1921 +msgid "**During employment:** Before March 1 of the following year" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1402 -msgid "1/2" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1922 +msgid "**At the end of employment:** Within two months following the end of the quarter in which the contract ended" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1403 -msgid "125€" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1924 +msgid "**If additional payments occur after contract termination:** A copy reflecting the additional payment must be provided within two months of the payment" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1404 -msgid "< 1/2" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1927 +msgid "Additionally, employers must issue a **simplified individual account** with certain worker and employer details within two months of the worker's employment start date." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1405 -msgid "100€" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1930 +msgid "Any modifications to mandatory details, such as job function or workplace location, must be communicated in writing (e.g., an updated simplified individual account) within one month of the effective change date." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1408 -msgid "If an employee starts on **1st September** in **full-time** and then switches to **half-time** on **1st April 2024**, the calculation will be:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1935 +msgid "Generate individual accounts in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1411 -msgid "250\\text{€} \\times (7/12) + 125\\text{€} \\times (2/12) = 166\\text{€}" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1937 +msgid "Navigate to :menuselection:`Payroll app --> Reporting --> Belgium --> Individual Accounts`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1417 -msgid "Exceptions & adjustments" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1939 +msgid "Then select the reference year and click the :guilabel:`Populate` button. The :file:`.pdf` are displayed as soon as they are available and are generated 30 by 30, this could take some time according to the number of employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1419 -msgid "If an employee worked full-time for the entire reference period but did not receive **250€**, certain non-assimilated leave days may have affected the calculation." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1943 +msgid "On the first page, the :guilabel:`Employer Information` and the :guilabel:`Employee Information` is listed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1422 -msgid "The following leave types are **not** considered for eco-voucher entitlement:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Individual Account PDF Header." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1424 -msgid "**Unpaid leaves**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1949 +msgid "The next page displays all the employee worked days and payslip lines, month by month, split by structure (e.g., End of year bonus and monthly pay)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1425 -msgid "**Sick leave compensated by mutual insurance** (after 30 days of work incapacity)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Individual Account PDF Month by Month." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1428 -msgid "Usage & validity" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1955 +msgid "The next page displays the same information quarter by quarter and summarized for the whole year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1430 -msgid "Eco vouchers are valid for **24 months** from the date of issuance." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Individual Account PDF Quarter by Quarter." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1433 -msgid "The list of eligible products and services that can be purchased with eco vouchers is available here:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1960 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3101 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3171 +msgid "Once all PDF files are generated, they can be posted to the employee documents portal if the **Documents** application is :doc:`installed and properly configured <../../../productivity/documents>`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1436 -msgid "`Eco-Voucher Eligible Products `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1964 +msgid "Select the checkbox of each employee whose documents you want to post, and click the :guilabel:`Post PDF` button." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1441 -msgid "End of year bonus" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1970 +msgid "Intellectual property and 273 sheets" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1443 -msgid "This document explains the calculation of the thirteenth-month salary (year-end bonus) in Belgium within Odoo. The calculation considers the employee's contracts, working time rates, and applicable taxes." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1975 +msgid "The 273S declaration is used for the **Prepayment on Mobile Income (Pr.M)**, which concerns the taxation of **Author's Rights** and **Neighboring Rights** (also known as **Revenus Mobilier**). These are specific types of income that are subject to particular tax treatment in certain jurisdictions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1448 -msgid "Calculation of the thirteenth-month salary" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1980 +msgid "This document provides users with essential information about how the 273S declaration functions within Odoo for reporting income derived from these rights, including applicable tax rates and conditions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1451 -msgid "Eligibility criteria" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1985 +msgid "Tax rates and calculation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1453 -msgid "The employee must have worked for at least **six complete months** in the year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1987 +msgid "The net income from Author's Rights and Neighboring Rights is taxable at a specific rate of **15%**. However, the effective tax rate can vary based on the application of flat-rate deductions. These flat rates reduce the taxable amount, leading to a lower effective tax rate for lower incomes." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1454 -msgid "Both full-time and part-time employees are eligible, with prorated calculations based on work time." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1991 +msgid "Key points of taxation:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1458 -msgid "Salary calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1993 +msgid "**Effective tax rate**:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1460 -msgid "The thirteenth-month salary is computed as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1995 +msgid "For incomes below the first flat-rate threshold, the effective tax rate can be as low as **7.5%**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1462 -msgid "**Determine the basic salary**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1997 +msgid "For incomes reaching the flat-rate ceiling of **37,500 EUR** (indexed annually), the rate can increase to **12%**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1464 -msgid "Retrieve the employee's contractual wage." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2000 +msgid "**Additional taxes**: Income from Author's Rights and Neighboring Rights must be declared in the personal income tax declaration. As a result, municipal surcharges may also apply to the tax due." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1465 -msgid "Identify the applicable work rate." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2003 +msgid "The **prepayment** of the tax is handled via a withholding tax on the income. The debtor of the income (e.g., the employer or company paying the royalties) must submit the 273S declaration to the tax authorities. This withholding tax rate is generally **15%**, but for incomes exceeding the indexed ceiling of **37,500 EUR**, the rate increases to **30%**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1467 -msgid "**Compute eligible months**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2009 +msgid "Benefits of Author's Rights in employment contracts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1469 -msgid "If explicitly provided (`MONTHS` input), use the given number of months." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2011 +msgid "Companies can offer tax-advantageous remuneration to their directors or employees by granting **Author's Rights**. These rights are subject to a **15% withholding tax**, but there are flat-rate deductions that make this tax treatment very favorable, especially when incomes are lower." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1470 -msgid "Otherwise, calculate the number of complete months worked." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2015 +msgid "Important considerations:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1471 -msgid "Prorate the salary for partial-year work." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2017 +msgid "**Creative works**: To qualify for Author's Rights protection, the work must be creative, original, and fixed in a tangible form. Simple ideas or concepts are not eligible." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1473 -msgid "**Adjust for absences**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2019 +msgid "**Exploitation requirement**: From January 1, 2023, a new regulation mandates that transferred or licensed protected works must be exploited, meaning they must be used for public communication, execution, representation, or reproduction." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1475 -msgid "Deduct unpaid absences to obtain the presence prorata." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2022 +msgid "**Eligibility for tax benefits**: To benefit from the favorable tax regime, the rights holder must meet specific criteria, such as:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1476 -msgid "Consider up to 60 days of sick leave as paid time off." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2025 +msgid "Holding an \"Artistic Work Certificate.\"" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1478 -msgid "**Include variable revenues**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2026 +msgid "Licensing or transferring rights to a third party for public communication or reproduction." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1480 -msgid "If explicitly provided (`VARIABLE` input), use the given value." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2028 +msgid "**Income ratio restrictions**: The proportion of income from Author's Rights in relation to regular salary will be capped at **30%**, with **70%** of the total income being subject to regular income tax." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1481 -msgid "Otherwise, calculate the average variable revenue over the last year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2031 +msgid "**Income cap**: The absolute ceiling for qualifying income under this regime remains **37,500 EUR** (indexed at **70,220 EUR** for the 2024 income year)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1483 -msgid "**Final amount**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2034 +msgid "If your average income from the last four years exceeds this ceiling, you will no longer be eligible for the advantageous tax regime." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1485 -msgid "The final thirteenth-month amount is the sum of the prorated fixed salary and average variable revenues." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2037 +msgid "**Ruling Request**: For greater clarity on the scope and remuneration of the transfer of Author's Rights, an advanced agreement with the tax authorities (referred to as a **ruling**) can be requested." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1493 -msgid "**Identify the employee's annual taxable revenue**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2042 +msgid "Tax treatment of Author's Rights income" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1514 -msgid "23.22%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2044 +msgid "Since 2008, income from the transfer or licensing of Author's Rights has benefited from a favorable tax treatment. Specifically, the income is subject to:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1516 -msgid "25.23%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2047 +msgid "**15% Withholding Tax** up to an indexed ceiling of **70,220 EUR** (2023 income year)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1518 -msgid "30.28%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2048 +msgid "**Flat-Rate Deductions**:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1520 -msgid "35.33%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2050 +msgid "**50% flat-rate deduction** applies to the first **18,720 EUR** of income." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1522 -msgid "38.36%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2051 +msgid "**25% flat-rate deduction** applies to the next **18,730 EUR** (from **18,720 EUR to 37,450 EUR**)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1524 -msgid "40.38%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2054 +msgid "Example of tax impact:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1526 -msgid "43.41%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2056 +msgid "For example, if a company director receives **10,000 EUR** in Author's Rights income, they will pay **750 EUR** in tax (15% of the income after the flat-rate deductions), leaving them with a net income of **9,250 EUR**. This results in an effective tax rate of **7.5%** on the Author's Rights income." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1528 -msgid "46.44%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2062 +msgid "Odoo integration for Declaration 273S" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1530 -msgid "51.48%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2064 +msgid "Odoo users can efficiently manage the submission of the **273S Declaration** for Author's Rights and Neighboring Rights income via the **Odoo Payroll** module. Here's a quick overview of how this can be done:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1636 -msgid "\\text{Tax} = \\text{Gross Thirteenth Month} \\times \\text{Applicable Tax Rate} -\n" -"\\text{Reduction (if applicable)}" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2069 +msgid "Set up Author's Rights in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1642 -msgid "The resulting tax is deducted from the gross thirteenth-month salary to determine the net amount payable to the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2071 +msgid "On the employees form view, make sure the :guilabel:`Intellectual Property` checkbox is enabled, and the allocated salary percentage is specified as well." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1652 -msgid "Navigate to :menuselection:`Payroll app --> Payslips --> Batches` and create a new record with valid dates (here december 2024)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2074 +msgid "Once a payslip is generated, the :abbr:`IP (intellectual property)` part is computed based on the intellectual property percentage and the gross salary. The tax is computed accordingly based on the revenue amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1655 -msgid "Then click the :guilabel:`Generate Payslips` button, select the :guilabel:`CP200: Belgian Employee` :guilabel:`Salary Structure Type` and the :guilabel:`CP200: Employees 13th Month` :guilabel:`Salary Structure`. You can also filter eligible employees by :guilabel:`Department` and / or :guilabel:`Job Position`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Intellectual Property Payslip 1." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "End of Year Bonus Batch Wizard." +msgid "Intellectual Property Payslip 2." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "End of Year Bonus Payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2085 +msgid "Generate the 273S form" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "End of Year Bonus PDF." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2087 +msgid "Odoo can generate the 273S form automatically based on the income data entered into the system. Ensure that all required details, including the amount of income subject to the tax, are accurately entered." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1677 -msgid "Holiday pay recovery" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2091 +msgid "Navigate to :menuselection:`Payroll app --> Reporting --> Belgium --> 273S Sheet` to create a :guilabel:`New` record." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1679 -msgid "This document explains how Odoo calculates the recovery of holiday pay (both simple and double) for employees in Belgium who have changed employers. When an employee moves from one company to another, their previous employer may have already paid their holiday pay for the previous year. This amount needs to be recovered by the new employer, and this guide outlines how this is managed in Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2094 +msgid "Select the reference :guilabel:`Year` and :guilabel:`Month`, then click :guilabel:`Export XML file` to generate the declaration. Click :guilabel:`Export PDF File` to generate the printed details." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1685 -msgid "Understanding holiday pay in Belgium" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "273S Wizard File Generation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1687 -msgid "In Belgium, employees are entitled to annual leave and corresponding holiday pay, which consists of:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2100 +msgid "On the first PDF section, the company information and the global declaration is listed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1689 -msgid "**Simple holiday pay**: Regular salary payments for the days of leave taken." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "273S PDF Company Info." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1690 -msgid "**Double holiday pay**: An additional payment, typically equal to approximately 92% of the gross monthly salary, given when employees take their annual leave." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2105 +msgid "On the second section, the employees specific information is listed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1693 -msgid "When an employee changes jobs, their previous employer may have already paid these amounts. To avoid double payment, the new employer needs to recover the amounts already paid." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "273S PDF Employee Info." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1697 -msgid "Recovery of simple holiday pay" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2111 +msgid "File the 273S Declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1699 -msgid "The recovery of simple holiday pay in Odoo is based on the following criteria:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2113 +msgid "After generating the XML file, the company or the debtor of the income can submit it to the tax authorities directly from MyMinfin. Keep track of the filing and payment deadlines to ensure timely submission and compliance." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1701 -msgid "The recovery applies if the employee has taken leave in the current year and their previous employer already paid the holiday pay." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2120 +msgid "The **273S Declaration** is an essential tool for companies and individuals benefiting from the favorable tax regime on Author's Rights and Neighboring Rights. By leveraging Odoo's tax management features, users can ensure compliance while optimizing their tax liabilities." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1703 -msgid "The calculation considers the number of leave days taken and the hours worked per week." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2124 +msgid "For further assistance, please consult a tax professional." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1704 -msgid "The recovery process is split into:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2129 +msgid "Representation fees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1706 -msgid "**Year N**: The current year's holiday pay recovery." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2134 +msgid "Representation fees must be **allocated on the payslip** between **serious and non-serious representation costs**. By default, the threshold is set at **€283.73**, but it can be adjusted based on what the company can **legally justify**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1707 -msgid "**Year N-1**: The recovery of holiday pay from the previous year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2138 +msgid "The representation fees is configured on the employee's contract form in the :guilabel:`Expense Fees` field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1709 -msgid "The system checks:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2141 +msgid "On the payslip, two or one line are displayed in the case the representation fees amount exceeds the threshold or not." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1711 -msgid "If the employee's first contract date with the company was in the previous year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2145 +msgid "Breakdown of the threshold" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1712 -msgid "If the employee has a pending holiday pay recovery amount." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2147 +msgid "Only part of the representation costs are pro-rated because certain costs are **fully covered** by the company. These fixed costs include:" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2150 +msgid "\\text{€}283.73\\text{ Total} = \\begin{cases}\n" +"+ \\text{ €148.73 (Tax, since 2021 - coronavirus)} \\\\\n" +"+ \\text{ €30 (Internet)} \\\\\n" +"+ \\text{ €25 (Phone)} \\\\\n" +"+ \\text{ €80 (Car management fees)} \\\\\n" +"\\end{cases}" +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2160 +msgid "The **serious portion** of the representation costs is **not prorated**, while the **non-serious portion** is prorated based on working time." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1713 -msgid "If the recovery has not already been processed." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2163 +msgid "Navigate to :menuselection:`Payroll app --> Configuration --> Salary --> Rule Parameters`, and search for the `CP200: Representation Fees Threshold` record. Then, adapt the current value or introduce a new one from a given date." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1714 -msgid "If the employee has taken annual leave." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Representation Fees Threshold." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1716 -msgid "If all conditions are met, Odoo calculates the amount to be deducted from the payroll to account for the holiday pay already received from the previous employer." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2171 +msgid "It is possible to define, based on job position, which jobs are eligible to certain criteria in the :guilabel:`Payroll` tab." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1720 -msgid "Recovery of double holiday pay" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 +msgid "Representation Fees Job Position." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1722 -msgid "The recovery of double holiday pay follows these steps:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2178 +msgid "Calculation of representation fees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1724 -msgid "The system verifies the employee's contract and determines their employment duration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2181 +msgid "Conditions for payment" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1725 -msgid "The gross salary is calculated based on the employee's contract." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2183 +msgid "Representation fees are only granted if:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1726 -msgid "The number of months worked in the previous year is identified." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2185 +msgid "The employee **receives a basic salary**, and" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1727 -msgid "A threshold amount is computed as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2186 +msgid "The employee has **worked at least part of the time**, unless a **salary simulation** is in progress." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1729 -msgid "\\text{Threshold} = \\text{Current monthly salary} \\times \\text{Months worked in previous year}\n" -"\\times \\text{Occupation rate} \\times 7.67%" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2189 +msgid "If the employee is on **full leave** (without any working days), they are **not eligible** for representation fees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1735 -msgid "If the amount on the holiday certificate from the previous employer is lower than this threshold, no limit applies." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2193 +msgid "Determining the work time rate" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1738 -msgid "The system recovers the lower of:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2195 +msgid "The number of **working days per week** is extracted from the employee's contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1740 -msgid "The calculated threshold." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2196 +msgid "If the employee has periods of **incapacity for work** (e.g., illness), the calculation adjusts the **work time rate** accordingly:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1741 -msgid "The actual amount paid by the previous employer." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2199 +msgid "The total **incapacity hours** are determined." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1743 -msgid "If the employee has worked for more than 12 months in the current company, no double holiday pay needs to be recovered." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2200 +msgid "If the company follows a **biweekly schedule**, the incapacity hours are divided by **two**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1747 -msgid "How to configure in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2201 +msgid "The incapacity **rate** is calculated as:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1749 -msgid "In the employee form view, under the :guilabel:`Settings` tab, you can enter the various amounts from holiday attests provided by the new employee." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2203 +msgid "\\text{incapacity rate} = 1 - \\frac{\\text{incapacity hours}}{\\text{total weekly hours}}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Holiday Pay Recovery Configuration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2208 +msgid "The **final work time rate** is then adjusted by multiplying it with the incapacity rate." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1755 -msgid "For simple holiday pay recovery, you need to enter:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2211 +msgid "Applying the threshold and pro-rating rules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1757 -msgid "The :guilabel:`Number of days` for paid leave" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2213 +msgid "The **default threshold (€283.73)** is applied unless adjusted by the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1758 -msgid "The :guilabel:`Amount to recover` by the employee" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2214 +msgid "If the employee has **worked a full-time schedule**, they receive the **full representation fees** without reduction." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1761 -msgid "The :guilabel:`Recovered Amount` field displays the amount already recovered." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2216 +msgid "If the employee works **part-time** (contractual or due to time credit), only the **non-serious portion** of the fees is prorated." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1763 -msgid "For double holiday pay recovery, you must enter a **line for each employer's holiday attest**. Each line should include:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2219 +msgid "The prorated formula for non-serious expenses is:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1766 -msgid "The :guilabel:`# Months` (number of months) the employee worked for that employer" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2221 +msgid "\\text{adjusted amount} = \\text{threshold} + (\\text{total fees} - \\text{threshold}) \\times\n" +"\\frac{\\text{work time rate}}{100}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1767 -msgid "The :guilabel:`Amount` provided to the employee" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2227 +msgid "If the employee has **missing workdays**, the final amount is further adjusted:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1768 -msgid "The :guilabel:`Occupational Rate`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2229 +msgid "First calculate the **daily reduction**:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1770 -msgid "Odoo uses this data to compute a **recovery limit**. If the employee now has a lower salary, the full amount cannot be recovered." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2231 +msgid "\\text{daily reduction} = \\frac{(\\text{total amount} - \\text{threshold}) \\times 3}{13 \\times \\text{days per week}}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1774 -msgid "Be careful not to mix holiday attests for the current year (N) and the previous year (N-1)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2236 +msgid "Then calculate the **final amount**:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1776 -msgid "For simple holiday pay recovery, the system deducts the amount from each legal time-off period until:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2238 +msgid "\\text{final amount} = max(0, \\text{total amount} - \\text{daily reduction} \\times\n" +"\\text{missing days})" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1779 -msgid "The **total amount** has been fully recovered, or" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2245 +msgid "Final calculation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1780 -msgid "The **number of time-off days** has been matched (if the employee's current salary is lower than before)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2247 +msgid "If the employee meets all conditions, the final representation fees amount is **rounded to two decimal places** for payroll purposes." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Holiday Pay Recovery Simple Payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2249 +msgid "Employees working a full schedule receive **full reimbursement**, while those working **reduced hours** have the **non-serious portion prorated** accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1786 -msgid "Once the **payslip** is validated and paid, the recovered simple holiday pay is reflected in the employee form view." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2255 +msgid "This calculation ensures **fair allocation** of representation fees by distinguishing between **fixed serious costs** and **prorated non-serious costs**. The company can adjust the **threshold (€283.73 by default)** based on **justifiable business expenses**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Holiday Pay Recovery Simple Amount." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2259 +msgid "Employees working **full-time** receive their full representation fees, while those working **part-time or with absences** only receive a **pro-rated portion** of the non-serious fees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1792 -msgid "On the double holiday payslip, click :guilabel:`Compute Double Pay Recovery` to open a wizard that helps calculate the recoverable amount." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2265 +msgid "Sick time off and relapse" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1795 -msgid "In the :guilabel:`Double Pay Recovery Computation` wizard, you'll find:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2267 +msgid "In Belgium, sick leave is managed according to two main regimes:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1797 -msgid "The relevant holiday attests listed in the :guilabel:`Occupation Lines`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2269 +msgid "**With guaranteed salary**: The employer continues to pay the worker's salary for a specified period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1798 -msgid "The :guilabel:`Double Pay To Recover` amount based on the threshold" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2271 +msgid "**Without guaranteed salary**: The worker receives benefits from the mutual insurance company after the guaranteed salary period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1800 -msgid "This amount is **editable** if manual adjustments are needed." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2275 +msgid "Sick leave with guaranteed salary" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Holiday Pay Recovery Double Wizard." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2277 +msgid "The guaranteed salary is a period during which the employer continues to pay the salary of the worker who is unable to work." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1805 -msgid "Once validated, the double pay recovery is applied to the payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2280 +msgid "**Employees**: The employer pays 100% of the salary during the first full month of incapacity. After this period, if the incapacity continues, the worker falls under the mutual insurance regime." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Holiday Pay Recovery Double Amount." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2284 +msgid "Sick leave without guaranteed salary" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1810 -msgid "Odoo automates the recovery of both **simple** and **double** holiday pay, ensuring compliance with **Belgian labor laws**. By analyzing contract details, employment duration, and past payments, Odoo calculates the necessary deductions and prevents duplicate holiday pay payments." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2286 +msgid "After the guaranteed salary period, the ONEM (National Employment Office) or the mutual insurance company takes over." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1817 -msgid "Individual accounts" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2289 +msgid "**Long-term illness**: An incapacity lasting more than 30 days leads to benefits from the mutual insurance company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1820 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1973 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2132 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2316 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2842 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3064 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3134 -msgid "Introduction" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2291 +msgid "**Relapse**: If a worker returns to work and then becomes ill again for the same reason within 14 days, this may be considered a relapse, and the rules for guaranteed salary may be adjusted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1822 -msgid "The individual account provides workers with a detailed overview of their earnings, deductions (such as social security contributions, withholding tax, etc.), and the working days performed, on a pay period basis. Additionally, it contains all relevant administrative data related to remuneration." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2295 +msgid "Management in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1828 -msgid "Required information in the individual account" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2297 +msgid "In Odoo, sick leave is automatically managed if the absences are related to the *Sick Time Off* work entry type." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1830 -msgid "The individual account must include several mandatory details as determined by Royal Decree." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2300 +msgid "**Recording time off**: The employee records their absence through the **Time Off** module." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1832 -msgid "**Employer identification:**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2301 +msgid "**Automation of work entries**: If the request is approved, Odoo automatically generates the corresponding Work Entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1834 -msgid "Name, address, ONSS number, ONVA number" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2303 +msgid "**Impact on payroll**: The guaranteed salary is automatically calculated according to the rules configured based on the worker's status (employee)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1835 -msgid "Relevant joint committee (or sub-committee)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2305 +msgid "**Compensation after the guaranteed salary**: Once the guaranteed salary period has expired, Odoo adjusts the Work Entries to reflect the transition to the mutual insurance company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1836 -msgid "Name of the holiday fund for workers" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2308 +msgid "Thus, Odoo ensures a smooth and compliant management of sick leave according to Belgian regulations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1837 -msgid "Insurer for work-related accidents" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2313 +msgid "Social Balance Sheet" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1838 -msgid "Approved social secretariat" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2318 +msgid "The *Social Balance Sheet* was introduced by the law of December 22, 1995, as part of measures for the implementation of the multi-year employment plan. Companies required to file annual accounts (including some that are not obligated to publish such accounts - see the `National Bank of Belgium website `_ for details) must also prepare and submit a Social Balance Sheet to the National Bank of Belgium." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1839 -msgid "Relevant affiliation numbers" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2324 +msgid "The Royal Decree of August 4, 1996, incorporates the Social Balance Sheet into the annual accounts, specifically as an annex. This makes it an integral part of a company's financial statements." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1841 -msgid "**Worker identification:**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2328 +msgid "Contents of the Social Balance Sheet" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1843 -msgid "Name, address, date of birth, gender, tax status" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2330 +msgid "The content of the Social Balance Sheet is determined by the Royal Decree of January 30, 2001, implementing the Company Code. The Social Balance Sheet consists of several sections:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1844 -msgid "Type of employment contract, job title, professional qualification" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2333 +msgid "Sections I and II: Information on employed persons and personnel movements during the fiscal year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1845 -msgid "Workplace location (or note if working at multiple locations)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2334 +msgid "Section III: Initiatives related to training." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1846 -msgid "Start and end date of employment" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2336 +msgid "Since the Social Balance Sheet is part of a company's annual accounts, the works council receives this information as part of its mission regarding economic and financial information." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1847 -msgid "Employee ID number, starting salary" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2339 +msgid "Additionally, the works council receives data on employment-related benefits along with annual employment-related information (Trillium). These details were fully integrated into the Social Balance Sheet until 2008." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1848 -msgid "Remuneration components and payment periodicity" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2344 +msgid "Scope of the Social Balance Sheet" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1850 -msgid "**Remuneration components:**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2346 +msgid "The Social Balance Sheet contains specific data related to workforce composition, staff turnover, and training programs. Some organizations not required to publish annual accounts must still file a separate Social Balance Sheet. This applies primarily to certain hospitals and private legal entities employing at least 20 full-time equivalents (FTEs)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1852 -msgid "Per pay period (daily, weekly, bi-weekly, or monthly):" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2351 +msgid "Any company, association, or foundation with at least 20 workers on an annual average (in FTE) must complete and submit the Social Balance Sheet." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1854 -msgid "Number of working days and hours (regular, additional, and overtime)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2354 +msgid "The Social Balance Sheet is part of:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1855 -msgid "Days of work interruption and reasons (illness, vacations, public holidays, replacement days, compensatory rest days, etc.)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2356 +msgid "\"Other documents to be filed under the Company and Associations Code\" (for companies);" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1857 -msgid "Fixed or hourly salary, variable remuneration, bonuses, meal vouchers, eco vouchers, holiday pay (including early holiday pay if applicable), severance pay, year-end bonuses (as per sectoral or other collective labor agreements), benefits in kind and their estimated value" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2357 +msgid "\"Explanatory Notes\" (for associations and foundations)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1860 -msgid "Gross amount of all remuneration components" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2360 +msgid "Obligations by entity type" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1861 -msgid "Amounts subject to social and tax deductions" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2363 +msgid "Companies, associations, and foundations required to publish a Social Balance Sheet" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1862 -msgid "Various social and tax deductions: personal ONSS contributions, withholding tax, special social security contributions" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2365 +msgid "For Belgian companies employing at least one FTE:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1864 -msgid "Net amount payable to the worker" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2367 +msgid "**Standardized model**: This schema includes a \"Social Balance Sheet\" section, which must be completed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1865 -msgid "Other payments made by the employer, including reimbursement of travel expenses, allowances, and other payments" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2369 +msgid "**Specific model**: If the model used does not include a Social Balance Sheet, it must be provided separately." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1868 -msgid "Per quarter:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2372 +msgid "For Belgian associations and foundations employing at least 20 FTEs:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1870 -msgid "Number of actual working days" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2374 +msgid "**Standard model**: Includes a \"Social Balance Sheet\" section that must be completed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1871 -msgid "Days of work interruption by reason" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2375 +msgid "**Specific model**: A separate Social Balance Sheet must be submitted if the chosen model does not include one." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1872 -msgid "Total remuneration subject to social security contributions" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2378 +msgid "Associations and foundations with fewer than 20 FTEs may voluntarily complete the Social Balance Sheet but are not legally required to do so." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1873 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1878 -msgid "Employee social security contribution amounts" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2381 +msgid "For foreign companies, such as branches of foreign corporations and foreign non-profit organizations (ASBL) with activities in Belgium, the Social Balance Sheet applies only to their Belgian operations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1875 -msgid "Per year:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2385 +msgid "The Social Balance Sheet is made publicly available by the Central Balance Sheet Office as part of the financial statements submission." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1877 -msgid "Total amounts subject to social security contributions" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2389 +msgid "Entities required to file a separate Social Balance Sheet" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1879 -msgid "Taxable remuneration and other amounts" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2391 +msgid "Certain organizations that do not need to publish annual accounts must still submit a Social Balance Sheet to the Central Balance Sheet Office. This data is used exclusively for statistical purposes and is not made publicly available. Submission in these cases is free of charge." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1880 -msgid "Withholding tax amount" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2395 +msgid "This exception applies to:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1883 -msgid "Responsibility for establishing and updating the individual account" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2397 +msgid "**Hospitals**, unless they are structured as limited liability companies or large ASBLs, which must submit full financial statements, including the integrated Social Balance Sheet." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1885 -msgid "Belgian employers using **Odoo Payroll** can generate the individual accounts of their workers." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2399 +msgid "**Private legal entities** that are not required to submit annual accounts but have at least 20 employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1887 -msgid "However, to ensure accurate record-keeping, employers must:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2402 +msgid "The required model depends on the entity type:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1889 -msgid "Ensure payment of sector-mandated year-end bonuses" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2404 +msgid "**Hospitals** must use the full or abridged Social Balance Sheet model based on their size." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1890 -msgid "Ensure that all public holidays, legal vacation days, and compensatory rest days are taken before the end of the year" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2405 +msgid "**Foreign entities** must use the full or abridged Social Balance Sheet model, based on the size of their Belgian establishments." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1892 -msgid "Plan collective vacation and replacement public holidays in advance" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2407 +msgid "**Private legal entities** with at least 50 employees must use the full model, while those with 20-49 employees may use the abridged model." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1893 -msgid "Pay workers their holiday pay (including early holiday pay if applicable)" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2411 +msgid "Social Balance Sheet models" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1894 -msgid "Distribute due eco vouchers" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2413 +msgid "The latest versions of the Social Balance Sheet models can be found at the following links:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1895 -msgid "Pay any required travel expenses between home and work" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2415 +msgid "**Full Model**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1897 -msgid "If these obligations are met, the corresponding data will be included in the individual account." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2417 +msgid "PDF: `Full Social Balance Sheet PDF `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1900 -msgid "Storage and retention period of the individual account" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2418 +msgid "Word: `Full Social Balance Sheet Word `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1902 -msgid "The individual account is a social document that must be kept by the employer for a specified period after its creation." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2420 +msgid "**Abridged Model**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1905 -msgid "Employers may store individual accounts:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2422 +msgid "PDF: `Abridged Social Balance Sheet PDF `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1907 -msgid "At the ONSS-registered address" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2423 +msgid "Word: `Abridged Social Balance Sheet Word `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1908 -msgid "At a workplace" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2426 +msgid "Assistance in completing the Social Balance Sheet" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1909 -msgid "At their home or registered office if located in Belgium; otherwise, at the residence of a designated agent in Belgium" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2428 +msgid "For guidance on completing the Social Balance Sheet, refer to the following resources:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1911 -msgid "At the office of the approved social secretariat, if affiliated" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2430 +msgid "**CNC Opinion S100**: `Questions and Answers on the Social Balance Sheet `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1913 -msgid "Records must be kept legible and in a format allowing efficient oversight. The retention period is **five years** from the end of the annual closing of the account." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2431 +msgid "**CNC Opinion 2009/12**: `Social Balance Sheet and Statutory Workers `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1917 -msgid "When must workers receive a copy of their individual account?" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2432 +msgid "**Explanatory Note**: `Information on Training Activities `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1919 -msgid "Each worker must receive a copy of their individual account:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2435 +msgid "Submitting a separate Social Balance Sheet" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1921 -msgid "**During employment:** Before March 1 of the following year" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2437 +msgid "A separate Social Balance Sheet must be submitted online as a PDF via the **Filing** application. The model can be selected under :guilabel:`Other Documents`, with options for :guilabel:`Abridged Social Balance Sheet` or :guilabel:`Full Social Balance Sheet`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1922 -msgid "**At the end of employment:** Within two months following the end of the quarter in which the contract ended" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2441 +msgid "For further details, visit the National Bank of Belgium's website: `www.nbb.be `_." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1924 -msgid "**If additional payments occur after contract termination:** A copy reflecting the additional payment must be provided within two months of the payment" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2444 +msgid "Generating Social Balance Sheet in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1927 -msgid "Additionally, employers must issue a **simplified individual account** with certain worker and employer details within two months of the worker's employment start date." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2446 +msgid "Navigate to :menuselection:`Payroll app --> Reporting --> Belgium --> Social Balance Sheet` and select the reference :guilabel:`Period`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1930 -msgid "Any modifications to mandatory details, such as job function or workplace location, must be communicated in writing (e.g., an updated simplified individual account) within one month of the effective change date." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Social Balance Sheet Wizard." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1935 -msgid "Generate individual accounts in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2452 +msgid "Then click :guilabel:`Export to PDF` or :guilabel:`Export to XLSX` to generate the social balance sheets containing all the data available in your Odoo database." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1937 -msgid "Navigate to :menuselection:`Payroll app --> Reporting --> Belgium --> Individual Accounts`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2455 +msgid "The different pieces of information are split by gender, or by working schedule (Part Time, Full Time, Full Time equivalent), for the whole period, and month by month, as requested by the National Bank of Belgium." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1939 -msgid "Then select the reference year and click the :guilabel:`Populate` button. The :file:`.pdf` are displayed as soon as they are available and are generated 30 by 30, this could take some time according to the number of employees." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Social Balance Sheet PDF Header." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1943 -msgid "On the first page, the :guilabel:`Employer Information` and the :guilabel:`Employee Information` is listed." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Social Balance Sheet PDF Content." msgstr "" #: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Individual Account PDF Header." +msgid "Social Balance Sheet XLSX Content." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1949 -msgid "The next page displays all the employee worked days and payslip lines, month by month, split by structure (e.g., End of year bonus and monthly pay)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2471 +msgid "Social Security certificate" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Individual Account PDF Month by Month." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2473 +msgid "The Social Security certificate in Odoo provides a detailed breakdown of all social charges paid by the employee or employer, categorized by type (e.g., year-end bonus, private car reimbursement, double holiday pay, etc.). This report is particularly useful for audit companies and for verifying that the declared amounts align with accounting entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1955 -msgid "The next page displays the same information quarter by quarter and summarized for the whole year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2479 +msgid "Accessing the Social Security certificate" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Individual Account PDF Quarter by Quarter." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2481 +msgid "To generate the Social Security certificate, follow these steps:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1960 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3101 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3171 -msgid "Once all PDF files are generated, they can be posted to the employee documents portal if the **Documents** application is :doc:`installed and properly configured <../../../productivity/documents>`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2483 +msgid "Navigate to :menuselection:`Payroll app --> Reporting --> Belgium --> Social Security Certificate`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1964 -msgid "Select the checkbox of each employee whose documents you want to post, and click the :guilabel:`Post PDF` button." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2485 +msgid "Select the reference :guilabel:`Period`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1970 -msgid "Intellectual property and 273 sheets" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2486 +msgid "Choose the data :guilabel:`Aggregation Level`:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1975 -msgid "The 273S declaration is used for the **Prepayment on Mobile Income (Pr.M)**, which concerns the taxation of **Author's Rights** and **Neighboring Rights** (also known as **Revenus Mobilier**). These are specific types of income that are subject to particular tax treatment in certain jurisdictions." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2488 +msgid ":guilabel:`Whole Company`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1980 -msgid "This document provides users with essential information about how the 273S declaration functions within Odoo for reporting income derived from these rights, including applicable tax rates and conditions." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2489 +msgid ":guilabel:`By Department`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1985 -msgid "Tax rates and calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2490 +msgid ":guilabel:`By Employee`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1987 -msgid "The net income from Author's Rights and Neighboring Rights is taxable at a specific rate of **15%**. However, the effective tax rate can vary based on the application of flat-rate deductions. These flat rates reduce the taxable amount, leading to a lower effective tax rate for lower incomes." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Social Security Certificate Wizard." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1991 -msgid "Key points of taxation:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2496 +msgid "Exporting the report" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1993 -msgid "**Effective tax rate**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2498 +msgid "Once the selections are made, you can export the report in different formats:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1995 -msgid "For incomes below the first flat-rate threshold, the effective tax rate can be as low as **7.5%**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2500 +msgid "Click :guilabel:`Export to PDF` to generate a printable version of the Social Security certificate." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:1997 -msgid "For incomes reaching the flat-rate ceiling of **37,500 EUR** (indexed annually), the rate can increase to **12%**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2502 +msgid "Click :guilabel:`Export to XLSX` to generate an Excel file containing all relevant data." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2000 -msgid "**Additional taxes**: Income from Author's Rights and Neighboring Rights must be declared in the personal income tax declaration. As a result, municipal surcharges may also apply to the tax due." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Social Security Certificate PDF Header." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2003 -msgid "The **prepayment** of the tax is handled via a withholding tax on the income. The debtor of the income (e.g., the employer or company paying the royalties) must submit the 273S declaration to the tax authorities. This withholding tax rate is generally **15%**, but for incomes exceeding the indexed ceiling of **37,500 EUR**, the rate increases to **30%**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Social Security Certificate PDF Content." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2009 -msgid "Benefits of Author's Rights in employment contracts" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Social Security Certificate XLSX Content." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2011 -msgid "Companies can offer tax-advantageous remuneration to their directors or employees by granting **Author's Rights**. These rights are subject to a **15% withholding tax**, but there are flat-rate deductions that make this tax treatment very favorable, especially when incomes are lower." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2513 +msgid "This feature ensures full transparency and compliance with social security regulations in Belgium." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2015 -msgid "Important considerations:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2523 +msgid "Legal time off" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2017 -msgid "**Creative works**: To qualify for Author's Rights protection, the work must be creative, original, and fixed in a tangible form. Simple ideas or concepts are not eligible." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2525 +msgid "This guide provides an overview of the basic rules governing legal holiday entitlements in Belgium for employers using Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2019 -msgid "**Exploitation requirement**: From January 1, 2023, a new regulation mandates that transferred or licensed protected works must be exploited, meaning they must be used for public communication, execution, representation, or reproduction." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2529 +msgid "Holiday entitlement calculation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2022 -msgid "**Eligibility for tax benefits**: To benefit from the favorable tax regime, the rights holder must meet specific criteria, such as:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2531 +msgid "Your holiday entitlement for the current year (N) is determined by the number of months worked in Belgium during the previous year (N-1)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2025 -msgid "Holding an \"Artistic Work Certificate.\"" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2534 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2565 +msgid "**Calculation details:**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2026 -msgid "Licensing or transferring rights to a third party for public communication or reproduction." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2536 +msgid "Employees earn **2 days of leave per month** based on a 6-day work week." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2028 -msgid "**Income ratio restrictions**: The proportion of income from Author's Rights in relation to regular salary will be capped at **30%**, with **70%** of the total income being subject to regular income tax." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2537 +msgid "The entitlement is adjusted for a 5-day work week: :math:`(\\text{Total Days} \\div 6) \\times 5`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2031 -msgid "**Income cap**: The absolute ceiling for qualifying income under this regime remains **37,500 EUR** (indexed at **70,220 EUR** for the 2024 income year)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2540 +msgid "If an employee worked **7 months** in the previous year (N-1):" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2034 -msgid "If your average income from the last four years exceeds this ceiling, you will no longer be eligible for the advantageous tax regime." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2542 +msgid "**6-day work week:** :math:`7 \\times 2 = 14 \\text{ days}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2037 -msgid "**Ruling Request**: For greater clarity on the scope and remuneration of the transfer of Author's Rights, an advanced agreement with the tax authorities (referred to as a **ruling**) can be requested." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2543 +msgid "**5-day work week:** :math:`14 \\div 6 \\times 5 = 11.67 \\text{ days}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2042 -msgid "Tax treatment of Author's Rights income" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2545 +msgid "**Partial Month Calculation:**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2044 -msgid "Since 2008, income from the transfer or licensing of Author's Rights has benefited from a favorable tax treatment. Specifically, the income is subject to:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2547 +msgid "Worked **1st to 10th**: Full month counted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2047 -msgid "**15% Withholding Tax** up to an indexed ceiling of **70,220 EUR** (2023 income year)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2548 +msgid "Worked **11th to 19th**: Half month counted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2048 -msgid "**Flat-Rate Deductions**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2549 +msgid "Worked **20th onwards**: Month not counted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2050 -msgid "**50% flat-rate deduction** applies to the first **18,720 EUR** of income." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2551 +msgid "**Rounding Rules:**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2051 -msgid "**25% flat-rate deduction** applies to the next **18,730 EUR** (from **18,720 EUR to 37,450 EUR**)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2553 +msgid "Less than **0.35**: Round to **0**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2054 -msgid "Example of tax impact:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2554 +msgid "Between **0.35 - 0.74**: Round to **0.5**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2056 -msgid "For example, if a company director receives **10,000 EUR** in Author's Rights income, they will pay **750 EUR** in tax (15% of the income after the flat-rate deductions), leaving them with a net income of **9,250 EUR**. This results in an effective tax rate of **7.5%** on the Author's Rights income." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2555 +msgid "**0.75 and above**: Round to **1**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2062 -msgid "Odoo integration for Declaration 273S" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2557 +msgid "For a full-time employee, this typically results in **11.5 days of legal holiday** entitlement." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2064 -msgid "Odoo users can efficiently manage the submission of the **273S Declaration** for Author's Rights and Neighboring Rights income via the **Odoo Payroll** module. Here's a quick overview of how this can be done:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2560 +msgid "Maximum holiday entitlement" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2069 -msgid "Set up Author's Rights in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2562 +msgid "Employees are entitled to a maximum of **4 weeks** of holiday based on their working schedule. If an employee switches between full-time and part-time work, their entitlement is adjusted accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2071 -msgid "On the employees form view, make sure the :guilabel:`Intellectual Property` checkbox is enabled, and the allocated salary percentage is specified as well." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2567 +msgid "**5-day work week**: :math:`4 \\times 5 = 20 \\text{ days}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2074 -msgid "Once a payslip is generated, the :abbr:`IP (intellectual property)` part is computed based on the intellectual property percentage and the gross salary. The tax is computed accordingly based on the revenue amount." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2568 +msgid "**4-day work week**: :math:`4 \\times 4 = 16 \\text{ days}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Intellectual Property Payslip 1." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2569 +msgid "**3-day work week**: :math:`4 \\times 3 = 12 \\text{ days}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Intellectual Property Payslip 2." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2572 +msgid "If an employee joined **Odoo on January 1, 2024**, and plans to switch to a **3-day work week from April 1, 2024**:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2085 -msgid "Generate the 273S form" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2575 +msgid "**Step 1: Calculate holiday entitlement for 2024**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2087 -msgid "Odoo can generate the 273S form automatically based on the income data entered into the system. Ensure that all required details, including the amount of income subject to the tax, are accurately entered." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2577 +msgid "The employee worked **9 months in 2023**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2091 -msgid "Navigate to :menuselection:`Payroll app --> Reporting --> Belgium --> 273S Sheet` to create a :guilabel:`New` record." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2578 +msgid "**6-day work week basis**: :math:`9 \\times 2 = 18 \\text{ days}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2094 -msgid "Select the reference :guilabel:`Year` and :guilabel:`Month`, then click :guilabel:`Export XML file` to generate the declaration. Click :guilabel:`Export PDF File` to generate the printed details." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2579 +msgid "Adjusted for **5-day work week**: :math:`18 \\div 6 \\times 5 = 15 \\text{ days}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "273S Wizard File Generation." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2581 +msgid "**Step 2: Verify maximum holiday entitlement**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2100 -msgid "On the first PDF section, the company information and the global declaration is listed." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2583 +msgid "For a **5-day work week**, the maximum entitlement is **20 days**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "273S PDF Company Info." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2584 +msgid "Since the employee is entitled to **15 days**, they remain within the limit." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2105 -msgid "On the second section, the employees specific information is listed." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2586 +msgid "**Step 3: Adjust entitlement for the new work schedule**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "273S PDF Employee Info." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2588 +msgid "From April 1, 2024, the employee moves to a **3-day work week**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2111 -msgid "File the 273S Declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2589 +msgid "Maximum entitlement for a **3-day work week**: :math:`3 \\times 4 = 12 \\text{ days}`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2113 -msgid "After generating the XML file, the company or the debtor of the income can submit it to the tax authorities directly from MyMinfin. Keep track of the filing and payment deadlines to ensure timely submission and compliance." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2590 +msgid "If no leave is taken before April 1, the employee may take up to **12 days** from their 15-day entitlement." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2120 -msgid "The **273S Declaration** is an essential tool for companies and individuals benefiting from the favorable tax regime on Author's Rights and Neighboring Rights. By leveraging Odoo's tax management features, users can ensure compliance while optimizing their tax liabilities." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2592 +msgid "The **remaining 3 days** will be settled at the end of the year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2124 -msgid "For further assistance, please consult a tax professional." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2594 +msgid "This ensures compliance with Belgian legal leave regulations and allows employers to manage holiday entitlements effectively within Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2129 -msgid "Representation fees" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2598 +msgid "Legal time off allocation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2134 -msgid "Representation fees must be **allocated on the payslip** between **serious and non-serious representation costs**. By default, the threshold is set at **€283.73**, but it can be adjusted based on what the company can **legally justify**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2600 +msgid "This is possible to generate the legal time off for all your employees at the beginning of a new year using the wizard in :menuselection:`Payroll app --> Reporting --> Belgium --> Paid Time Off Allocation`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2138 -msgid "The representation fees is configured on the employee's contract form in the :guilabel:`Expense Fees` field." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2604 +msgid "Based on your employees occupation over last year, the number of available time off is pre-computed for each employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2141 -msgid "On the payslip, two or one line are displayed in the case the representation fees amount exceeds the threshold or not." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Paid Time Off Allocation Wizard." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2145 -msgid "Breakdown of the threshold" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2610 +msgid "Once validated, a draft allocation is generated for each single employee, waiting a manual confirmation that can be done in batch." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2147 -msgid "Only part of the representation costs are pro-rated because certain costs are **fully covered** by the company. These fixed costs include:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Paid Time Off Allocations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2150 -msgid "\\text{€}283.73\\text{ Total} = \\begin{cases}\n" -"+ \\text{ €148.73 (Tax, since 2021 - coronavirus)} \\\\\n" -"+ \\text{ €30 (Internet)} \\\\\n" -"+ \\text{ €25 (Phone)} \\\\\n" -"+ \\text{ €80 (Car management fees)} \\\\\n" -"\\end{cases}" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2619 +msgid "European time off" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2160 -msgid "The **serious portion** of the representation costs is **not prorated**, while the **non-serious portion** is prorated based on working time." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2622 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2854 +msgid "How does it work?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2163 -msgid "Navigate to :menuselection:`Payroll app --> Configuration --> Salary --> Rule Parameters`, and search for the `CP200: Representation Fees Threshold` record. Then, adapt the current value or introduce a new one from a given date." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2624 +msgid "If you were not subject to Belgian ONSS contributions before joining our company and do not have entitlement to legal holidays, or if your entitlement is incomplete, you can apply for European leave." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Representation Fees Threshold." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2628 +msgid "To qualify for European leave in a given year, you must work for at least 3 months during that year, whether with us or another employer. Once you have met this requirement, you will earn 5 days of European leave. Subsequently, you will accumulate additional days of vacation each month as follows:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2171 -msgid "It is possible to define, based on job position, which jobs are eligible to certain criteria in the :guilabel:`Payroll` tab." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2632 +msgid "After 3 months: 5 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:0 -msgid "Representation Fees Job Position." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2633 +msgid "After 4 months: 7 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2178 -msgid "Calculation of representation fees" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2634 +msgid "After 5 months: 9 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2181 -msgid "Conditions for payment" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2635 +msgid "After 6 months: 10 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2183 -msgid "Representation fees are only granted if:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2636 +msgid "After 7 months: 12 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2185 -msgid "The employee **receives a basic salary**, and" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2637 +msgid "After 8 months: 14 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2186 -msgid "The employee has **worked at least part of the time**, unless a **salary simulation** is in progress." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2638 +msgid "After 9 months: 15 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2189 -msgid "If the employee is on **full leave** (without any working days), they are **not eligible** for representation fees." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2639 +msgid "After 10 months: 17 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2193 -msgid "Determining the work time rate" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2640 +msgid "After 11 months: 19 days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2195 -msgid "The number of **working days per week** is extracted from the employee's contract." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2643 +msgid "The total of legal leave and European leave cannot exceed 20 days per year. You must use all your legal holidays before taking European leave." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2196 -msgid "If the employee has periods of **incapacity for work** (e.g., illness), the calculation adjusts the **work time rate** accordingly:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2646 +msgid "European leave entitlement expires on December 31st of the year it is earned and cannot be carried over to the following year. To qualify for European leave in a new year, you must complete another 3 months of work." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2199 -msgid "The total **incapacity hours** are determined." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2651 +msgid "How are these days paid?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2200 -msgid "If the company follows a **biweekly schedule**, the incapacity hours are divided by **two**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2653 +msgid "European leaves are paid holidays taken in advance of your \"Double Holiday Pay\" (the June extra pay) for the following year. Essentially, the more European leave days you take in a given year, the less you will receive as June extra pay in the following year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2201 -msgid "The incapacity **rate** is calculated as:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2660 +msgid "Working schedule change" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2203 -msgid "\\text{incapacity rate} = 1 - \\frac{\\text{incapacity hours}}{\\text{total weekly hours}}" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2662 +msgid "This guide explains how to modify an employee's working time schedule in the Belgian payroll module of Odoo. Changing an employee's working hours affects their wage calculation, time-off allocation, and contract terms." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2208 -msgid "The **final work time rate** is then adjusted by multiplying it with the incapacity rate." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2667 +msgid "Steps to change an employee's working schedule" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2211 -msgid "Applying the threshold and pro-rating rules" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2669 +msgid "Navigate to the employee's contract (:menuselection:`Payroll app --> Contracts`), and select the contract of the employee whose working schedule you want to modify." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2213 -msgid "The **default threshold (€283.73)** is applied unless adjusted by the company." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2671 +msgid "Click on :icon:`fa-cog` :guilabel:`(Action)` and select :guilabel:`Working Schedule Change`. The wizard displays the current contract details and allows you to set new working time parameters." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2214 -msgid "If the employee has **worked a full-time schedule**, they receive the **full representation fees** without reduction." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2673 +msgid "Set the new working schedule:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2216 -msgid "If the employee works **part-time** (contractual or due to time credit), only the **non-serious portion** of the fees is prorated." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2675 +msgid "Choose the new :guilabel:`Working Schedule` from the available resource calendars." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2219 -msgid "The prorated formula for non-serious expenses is:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2676 +msgid "Define the :guilabel:`Start Date` for the change (mandatory)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2221 -msgid "\\text{adjusted amount} = \\text{threshold} + (\\text{total fees} - \\text{threshold}) \\times\n" -"\\frac{\\text{work time rate}}{100}" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2677 +msgid "If applicable, specify an :guilabel:`End Date`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2227 -msgid "If the employee has **missing workdays**, the final amount is further adjusted:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2678 +msgid "If the :guilabel:`Part Time` checkbox is selected, any difference between the reference calendar and the employee's new calendar will be covered using the *Absence Work Entry Type*. This ensures that the employee's monthly salary remains the same, regardless of the number of absence days in a given month. This setup is required for configuring *Time Credit*, *Parental Leave*, or *Medical Half-Time* correctly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2229 -msgid "First calculate the **daily reduction**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2684 +msgid "Adjust the employee's wage:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2231 -msgid "\\text{daily reduction} = \\frac{(\\text{total amount} - \\text{threshold}) \\times 3}{13 \\times \\text{days per week}}" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2686 +msgid "The wizard automatically computes the full-time equivalent wage based on the new working schedule." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2236 -msgid "Then calculate the **final amount**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2688 +msgid "You can review and modify the new wage if necessary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2238 -msgid "\\text{final amount} = max(0, \\text{total amount} - \\text{daily reduction} \\times\n" -"\\text{missing days})" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2690 +msgid "Manage time off allocation:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2245 -msgid "Final calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2692 +msgid "Select the relevant :guilabel:`Time Off Type`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2247 -msgid "If the employee meets all conditions, the final representation fees amount is **rounded to two decimal places** for payroll purposes." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2693 +msgid "Odoo automatically adjusts the employee's time-off entitlement based on the new working schedule using the following formula:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2249 -msgid "Employees working a full schedule receive **full reimbursement**, while those working **reduced hours** have the **non-serious portion prorated** accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2696 +msgid "\\text{New Time Off Allocation} = \\max(\\min(\\text{ Computed Allocation},\n" +"\\text{ Max Allocation}) + \\text{ Leaves Taken}, \\text{ Leaves Taken})" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2255 -msgid "This calculation ensures **fair allocation** of representation fees by distinguishing between **fixed serious costs** and **prorated non-serious costs**. The company can adjust the **threshold (€283.73 by default)** based on **justifiable business expenses**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2702 +msgid "**Computed Allocation** is the expected leave allocation based on the new schedule." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2259 -msgid "Employees working **full-time** receive their full representation fees, while those working **part-time or with absences** only receive a **pro-rated portion** of the non-serious fees." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2703 +msgid "**Max Allocation** is the maximum number of days allowed under the new working time." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2265 -msgid "Sick time off and relapse" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2704 +msgid "**Leaves Taken** ensures the employee does not receive fewer days than already used." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2267 -msgid "In Belgium, sick leave is managed according to two main regimes:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2706 +msgid "Decide on a follow-up contract" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2269 -msgid "**With guaranteed salary**: The employer continues to pay the worker's salary for a specified period." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2708 +msgid "If the working time change is temporary, you can enable :guilabel:`Post Change Contract Creation` to automatically create a contract that resumes the previous working schedule after the specified end date." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2271 -msgid "**Without guaranteed salary**: The worker receives benefits from the mutual insurance company after the guaranteed salary period." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2712 +msgid "Validate the changes" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2275 -msgid "Sick leave with guaranteed salary" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2714 +msgid "Click :guilabel:`Validate` to apply the new working schedule." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2277 -msgid "The guaranteed salary is a period during which the employer continues to pay the salary of the worker who is unable to work." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2715 +msgid "If the new schedule is the same as the current one, an error will be displayed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2280 -msgid "**Employees**: The employer pays 100% of the salary during the first full month of incapacity. After this period, if the incapacity continues, the worker falls under the mutual insurance regime." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2716 +msgid "The system will create a new contract with the updated working time and wage." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2284 -msgid "Sick leave without guaranteed salary" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2717 +msgid "If a previous contract existed, it will be closed with an end date before the new contract begins." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2286 -msgid "After the guaranteed salary period, the ONEM (National Employment Office) or the mutual insurance company takes over." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2721 +msgid "Result" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2289 -msgid "**Long-term illness**: An incapacity lasting more than 30 days leads to benefits from the mutual insurance company." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2723 +msgid "The employee's new working schedule is recorded." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2291 -msgid "**Relapse**: If a worker returns to work and then becomes ill again for the same reason within 14 days, this may be considered a relapse, and the rules for guaranteed salary may be adjusted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2724 +msgid "Wage and time-off entitlements are adjusted accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2295 -msgid "Management in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2725 +msgid "A follow-up contract is created if applicable." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2297 -msgid "In Odoo, sick leave is automatically managed if the absences are related to the *Sick Time Off* work entry type." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "Working Schedule Change New Contracts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2300 -msgid "**Recording time off**: The employee records their absence through the **Time Off** module." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2733 +msgid "Work entries exports" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2301 -msgid "**Automation of work entries**: If the request is approved, Odoo automatically generates the corresponding Work Entries." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2736 +msgid "What are work entries?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2303 -msgid "**Impact on payroll**: The guaranteed salary is automatically calculated according to the rules configured based on the worker's status (employee)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2738 +msgid "In the context of payroll, *work entries* typically refer to records or documentation related to an employee's work hours and earnings for a specific pay period. These entries are crucial for accurately calculating and processing employee compensation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2305 -msgid "**Compensation after the guaranteed salary**: Once the guaranteed salary period has expired, Odoo adjusts the Work Entries to reflect the transition to the mutual insurance company." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2742 +msgid "Work entries in the context of payroll are essential for both employees and employers. They provide a transparent and accurate record of an employee's compensation and deductions, ensuring that employees are paid correctly and that tax and legal requirements are met. Payroll software and systems are commonly used to manage and automate these work entries, making the payroll process more efficient and accurate." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2308 -msgid "Thus, Odoo ensures a smooth and compliant management of sick leave according to Belgian regulations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2749 +msgid "Main concepts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2313 -msgid "Social Balance Sheet" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2752 +msgid "General" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2318 -msgid "The *Social Balance Sheet* was introduced by the law of December 22, 1995, as part of measures for the implementation of the multi-year employment plan. Companies required to file annual accounts (including some that are not obligated to publish such accounts - see the `National Bank of Belgium website `_ for details) must also prepare and submit a Social Balance Sheet to the National Bank of Belgium." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2754 +msgid "In Odoo, work entries mainly refer to *time entries* (attendance tracking), these are work entries that consist of time records, which include the number of hours worked by an employee during a given pay period. These entries may specify regular working hours, overtime hours, and any other relevant time-related information, such as breaks, paid time off, unpaid time off, parental leave, credit-time, etc." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2324 -msgid "The Royal Decree of August 4, 1996, incorporates the Social Balance Sheet into the annual accounts, specifically as an annex. This makes it an integral part of a company's financial statements." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2760 +msgid "Work entries serve a dual role in payroll management. First, they enable organizations to independently compute employee payslips. Second, they facilitate the transmission of pertinent data to external payroll service providers, who then use this information to calculate and generate the payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2328 -msgid "Contents of the Social Balance Sheet" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2768 +msgid "They have a Name: used to identify the type of entry (e.g., Attendance, Paid Time Off, etc.)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2330 -msgid "The content of the Social Balance Sheet is determined by the Royal Decree of January 30, 2001, implementing the Company Code. The Social Balance Sheet consists of several sections:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2769 +msgid "They have a Payroll Code: used in Odoo's salary rules computations" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2333 -msgid "Sections I and II: Information on employed persons and personnel movements during the fiscal year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2770 +msgid "They have an External Code: used to provide the correct Work Entry code to an external payroll service provider." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2334 -msgid "Section III: Initiatives related to training." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2772 +msgid "They are generated based on the configuration of the contract and the time off types" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2336 -msgid "Since the Social Balance Sheet is part of a company's annual accounts, the works council receives this information as part of its mission regarding economic and financial information." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2773 +msgid "They have a duration, a start and end date, a state and are always linked to an employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2339 -msgid "Additionally, the works council receives data on employment-related benefits along with annual employment-related information (Trillium). These details were fully integrated into the Social Balance Sheet until 2008." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2778 +msgid "They are the main source of configuration for your work entries. Thanks to your different types of work entries, you'll be able to differentiate the time records of your employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2344 -msgid "Scope of the Social Balance Sheet" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2780 +msgid "They have a name." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2346 -msgid "The Social Balance Sheet contains specific data related to workforce composition, staff turnover, and training programs. Some organizations not required to publish annual accounts must still file a separate Social Balance Sheet. This applies primarily to certain hospitals and private legal entities employing at least 20 full-time equivalents (FTEs)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2781 +msgid "They contain a code, external code, payroll code and a color for visual tracking." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2351 -msgid "Any company, association, or foundation with at least 20 workers on an annual average (in FTE) must complete and submit the Social Balance Sheet." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2782 +msgid "They allow other types of configurations such as how they are displayed in payslips, decide whether this type of work entry should be considered as paid or unpaid (eg. unpaid leave), decide whether this type of work entry has a link with time off, is valid for some advantages or how it should be reflected in your reporting." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2354 -msgid "The Social Balance Sheet is part of:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2788 +#: ../../content/applications/hr/time_off.rst:42 +msgid "Time off types" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2356 -msgid "\"Other documents to be filed under the Company and Associations Code\" (for companies);" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2790 +msgid "As mentioned above, since work entry types can be linked to a time off type, you are also able to define the work entry type for each time-off type. On the time off type you have a many2one relation with the work entry type." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2357 -msgid "\"Explanatory Notes\" (for associations and foundations)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2795 +msgid "Steps to generate the work entries of your staff" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2360 -msgid "Obligations by entity type" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2797 +msgid "Create all the employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2363 -msgid "Companies, associations, and foundations required to publish a Social Balance Sheet" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2798 +msgid "Create a contract and set its status to :guilabel:`Running` for each employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2365 -msgid "For Belgian companies employing at least one FTE:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2800 +msgid "In the contract, choose the :guilabel:`Work Entry Source`. It tells the system how work entries for an employee should be generated. It can be based on:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2367 -msgid "**Standardized model**: This schema includes a \"Social Balance Sheet\" section, which must be completed." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2803 +msgid ":guilabel:`Working Schedule`: Odoo uses the predefined working hours and days set in the employee's working schedule to generate work entries. This is useful for regular, predictable shifts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2369 -msgid "**Specific model**: If the model used does not include a Social Balance Sheet, it must be provided separately." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2806 +msgid ":guilabel:`Attendances`: Work entries are generated from the employee's attendance records (i.e., when they check-in and check-out)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2372 -msgid "For Belgian associations and foundations employing at least 20 FTEs:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2808 +msgid ":guilabel:`Planning`: Work entries are created based on the validated shifts or slots allocated to the employee in the **Planning** app (often used for scheduling roles like retail shifts, restaurants, etc.)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2374 -msgid "**Standard model**: Includes a \"Social Balance Sheet\" section that must be completed." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2812 +msgid "Generate the work entries each month" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2375 -msgid "**Specific model**: A separate Social Balance Sheet must be submitted if the chosen model does not include one." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2814 +msgid "Odoo automatically creates the work entries in the **Payroll** app based on the work entry source of the contract and the different time-offs taken. You can edit the work entries manually. You can always decide to regenerate work entries manually but be careful if you already made some manual changes, Odoo will regenerate the work entries based on what it knows (e.g., your working schedule and time off)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2378 -msgid "Associations and foundations with fewer than 20 FTEs may voluntarily complete the Social Balance Sheet but are not legally required to do so." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2819 +msgid "Managing conflicts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2381 -msgid "For foreign companies, such as branches of foreign corporations and foreign non-profit organizations (ASBL) with activities in Belgium, the Social Balance Sheet applies only to their Belgian operations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2821 +msgid "Conflicts are pointing to entries that can't be validated without your intervention. This means you'll have to qualify the entry and decide which is the correct entry to be defined for the time period if you want to be able to generate the payslip or validate the entries. Conflicts arise when there are overlapping entries or when Odoo detects that there is a time off request still pending for validation. For instance, if an employee is marked as attending work and at the same time there's a paid leave request to be validated for the same period, that's a conflict." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2385 -msgid "The Social Balance Sheet is made publicly available by the Central Balance Sheet Office as part of the financial statements submission." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2828 +msgid "Conflicts can be managed by filtering on the conflicting entries and resolving the discrepancy. Since **Odoo 16.4**, Odoo filters by default on conflicting entries. For prior versions, you can still filter manually on conflicting entries or use the conflicting menu item." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2389 -msgid "Entities required to file a separate Social Balance Sheet" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2831 +msgid "Once the conflict is resolved you can either proceed to generate the payslips for your employees or export your work entries to the right entity." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2391 -msgid "Certain organizations that do not need to publish annual accounts must still submit a Social Balance Sheet to the Central Balance Sheet Office. This data is used exclusively for statistical purposes and is not made publicly available. Submission in these cases is free of charge." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2835 +msgid "Export work entries" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2395 -msgid "This exception applies to:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2838 +msgid "This section is about exporting work entries to SD Worx, but the configuration and behavior is similar for other exports to Partena, Group S and UCM." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2397 -msgid "**Hospitals**, unless they are structured as limited liability companies or large ASBLs, which must submit full financial statements, including the integrated Social Balance Sheet." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2844 +msgid "This sheet is here to help you learn how Odoo's **SD Worx** (`l10n_be_hr_payroll_sd_worx`) module simplifies payroll by enabling easy export of work entries. This guide provides quick steps to generate :file:`.txt` files for direct import into SD Worx calendars, saving time and ensuring accuracy." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2399 -msgid "**Private legal entities** that are not required to submit annual accounts but have at least 20 employees." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2849 +msgid "First and foremost, it's important to understand there is no direct integration between Odoo and SD Worx. There is no automatic exchange of information, either way. Odoo does not communicate directly with SD Worx, and the reverse is also true." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2402 -msgid "The required model depends on the entity type:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2856 +msgid "In reality, Odoo provides a standardized export in .txt format for employees' work entries, allowing the generation of a file that conforms to a specific format for inputting these entries into the SD Worx software." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2404 -msgid "**Hospitals** must use the full or abridged Social Balance Sheet model based on their size." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2861 +msgid "What does it mean in terms of data management?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2405 -msgid "**Foreign entities** must use the full or abridged Social Balance Sheet model, based on the size of their Belgian establishments." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2863 +msgid "Since there is no direct integration between both systems, it implies that certain data will need to be manually entered into both systems. For instance, when you create a new employee in Odoo, you'll also need to manually create the employee in SD Worx (and vice versa). This manual data entry requirement extends to various aspects such as contracts, work schedules, salary details, and personal information about employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2407 -msgid "**Private legal entities** with at least 50 employees must use the full model, while those with 20-49 employees may use the abridged model." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2869 +msgid "Essentially, all the information necessary for SD Worx to calculate salaries and generate payslips must be manually inputted into both systems." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2411 -msgid "Social Balance Sheet models" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2873 +msgid "What's the advantage of exporting to SD worx?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2413 -msgid "The latest versions of the Social Balance Sheet models can be found at the following links:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2875 +msgid "Odoo is an integrated software that can comprehensively handle all variable payroll elements, including employee personal information, contract details, various time-off types, and other work entry categories. Through Odoo's integration capabilities, you can access all this crucial data in one centralized location, making it easily accessible for your HR team and employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2415 -msgid "**Full Model**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2880 +msgid "This integration not only ensures data accuracy but also maintains consistency, reducing the likelihood of errors when transmitting work entry information to your external payroll provider. With the module in place, a single click generates a :file:`.txt` file that's ready for direct import into SD Worx, streamlining the entire data transmission process." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2417 -msgid "PDF: `Full Social Balance Sheet PDF `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2886 +msgid "Steps to set up the SD Worx module" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2418 -msgid "Word: `Full Social Balance Sheet Word `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2889 +msgid "You must be logged into a Belgian company for the following steps to work." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2420 -msgid "**Abridged Model**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2891 +msgid ":ref:`install ` the **Belgium - Payroll - Export to SD Worx** (`l10n_be_hr_payroll_sd_worx`) module." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2422 -msgid "PDF: `Abridged Social Balance Sheet PDF `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2893 +msgid "Go to :menuselection:`Payroll app --> Configuration --> Settings` to fill in the :guilabel:`SD Worx code` field. This is the company's SD Worx code, you get it directly from the SD worx software. When you create a company, it has a unique identifier which you need to set in the field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2423 -msgid "Word: `Abridged Social Balance Sheet Word `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2897 +msgid "For each employee, under the :guilabel:`Settings` tab, fill in the :guilabel:`SDWorx code` field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2426 -msgid "Assistance in completing the Social Balance Sheet" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2898 +msgid "For work entry types, under the :guilabel:`Settings` tab, fill in the :guilabel:`SDWorx code` field as well." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2428 -msgid "For guidance on completing the Social Balance Sheet, refer to the following resources:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2901 +msgid "You can now export your work entries in the SD Worx :file:`.txt` format by opening the wizard under :menuselection:`Payroll app --> Reporting --> Belgium --> Export Work Entries to SDWorx`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2430 -msgid "**CNC Opinion S100**: `Questions and Answers on the Social Balance Sheet `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2904 +msgid "The file contains a series of lines such as the following line of text: `1111110000024K2023042370100360`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2431 -msgid "**CNC Opinion 2009/12**: `Social Balance Sheet and Statutory Workers `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2907 +msgid "Each line represents a work entry, and the structure is outlined below:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2432 -msgid "**Explanatory Note**: `Information on Training Activities `_" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2909 +msgid "`111111` -> Company SD Worx code" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2435 -msgid "Submitting a separate Social Balance Sheet" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2910 +msgid "`0000024` -> Employee SD Worx code" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2437 -msgid "A separate Social Balance Sheet must be submitted online as a PDF via the **Filing** application. The model can be selected under :guilabel:`Other Documents`, with options for :guilabel:`Abridged Social Balance Sheet` or :guilabel:`Full Social Balance Sheet`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2911 +msgid "`K` -> Delimiter" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2441 -msgid "For further details, visit the National Bank of Belgium's website: `www.nbb.be `_." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2912 +msgid "`20230423` -> Date" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2444 -msgid "Generating Social Balance Sheet in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2913 +msgid "`7010` -> SD Worx work entry code" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2446 -msgid "Navigate to :menuselection:`Payroll app --> Reporting --> Belgium --> Social Balance Sheet` and select the reference :guilabel:`Period`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2914 +msgid "`0360` -> Duration (edited)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Social Balance Sheet Wizard." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2916 +msgid "Once the :file:`.txt` file is exported, it can be directly imported in this format into the SD Worx software. Doing so updates the calendars of each collaborator." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2452 -msgid "Then click :guilabel:`Export to PDF` or :guilabel:`Export to XLSX` to generate the social balance sheets containing all the data available in your Odoo database." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2922 +msgid "274.XX sheets" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2455 -msgid "The different pieces of information are split by gender, or by working schedule (Part Time, Full Time, Full Time equivalent), for the whole period, and month by month, as requested by the National Bank of Belgium." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2924 +msgid "This section provides an overview of Declaration 274, its components, and how it is handled within Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Social Balance Sheet PDF Header." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2928 +msgid "Declaration 274.10" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Social Balance Sheet PDF Content." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2930 +msgid "Withholding tax is an advance payment on professional income tax. It is calculated based on guidelines established by the tax administration. While reducing withholding tax is generally not allowed, employees may request to pay more in order to better match their final tax liability." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Social Balance Sheet XLSX Content." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2934 +msgid "Withholding tax must be deducted from both employees' and company directors' income. If the withholding tax is insufficient, advance tax payments must be made to avoid additional tax penalties." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2471 -msgid "Social Security certificate" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2938 +msgid "In practice, some employees do not inform their employer of personal changes (e.g., having a child), which can affect tax calculations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2473 -msgid "The Social Security certificate in Odoo provides a detailed breakdown of all social charges paid by the employee or employer, categorized by type (e.g., year-end bonus, private car reimbursement, double holiday pay, etc.). This report is particularly useful for audit companies and for verifying that the declared amounts align with accounting entries." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2941 +msgid "Withholding tax must be declared and paid either quarterly or monthly using form 274. These declarations must be submitted via the FINPROF application by the 15th of the month following the reporting period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2479 -msgid "Accessing the Social Security certificate" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2945 +msgid "Taxable income and corresponding withholding tax must be recorded in fiscal remuneration forms 281.x and summary statements 325x. Employers failing to report these correctly may be subject to a 309% penalty on undisclosed amounts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2481 -msgid "To generate the Social Security certificate, follow these steps:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2949 +msgid "The tax administration compares the declared amounts in form 274 with the amounts reported in the fiscal forms. If withholding tax payments are insufficient, the company may be charged the difference. If a 274 form is submitted without corresponding tax payment, additional tax penalties will apply." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2483 -msgid "Navigate to :menuselection:`Payroll app --> Reporting --> Belgium --> Social Security Certificate`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2954 +msgid "It is crucial to adhere to all administrative guidelines to avoid unexpected tax charges." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2485 -msgid "Select the reference :guilabel:`Period`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2957 +msgid "Declarations 274.32, 274.33, 274.34" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2486 -msgid "Choose the data :guilabel:`Aggregation Level`:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2960 +msgid "Withholding tax exemptions for research employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2488 -msgid ":guilabel:`Whole Company`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2962 +msgid "Companies employing scientific researchers may qualify for withholding tax reductions under specific conditions:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2489 -msgid ":guilabel:`By Department`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2965 +msgid "**Form 281.32** applies to civil engineers and PhD holders." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2490 -msgid ":guilabel:`By Employee`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2966 +msgid "**Form 281.33** applies to employees holding a master's degree." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Social Security Certificate Wizard." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2967 +msgid "**Form 281.34** applies to employees holding a bachelor's degree." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2496 -msgid "Exporting the report" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2969 +msgid "Employers engaged in scientific research may be eligible for an exemption from withholding tax payments. To qualify, they must register their R&D projects with Belspo. From August 1, 2023, this registration must occur before the project begins." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2498 -msgid "Once the selections are made, you can export the report in different formats:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2974 +msgid "Tax exemption details" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2500 -msgid "Click :guilabel:`Export to PDF` to generate a printable version of the Social Security certificate." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2976 +msgid "This tax incentive allows companies to retain 80% of the withholding tax deducted from researchers' salaries. However, the exemption rate differs for researchers based on their qualifications:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2502 -msgid "Click :guilabel:`Export to XLSX` to generate an Excel file containing all relevant data." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2979 +msgid "PhD and master's degree holders: Full 80% exemption." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Social Security Certificate PDF Header." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2980 +msgid "Bachelor's degree holders: 50% of the full exemption amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Social Security Certificate PDF Content." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2981 +msgid "For non-SME companies, this limit is further reduced to 25%." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Social Security Certificate XLSX Content." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2983 +msgid "The exemption applies only to the portion of working time dedicated to scientific research, covering fundamental research, industrial research, or experimental development." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2513 -msgid "This feature ensures full transparency and compliance with social security regulations in Belgium." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2986 +msgid "This exemption does not affect the net salary of employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2523 -msgid "Legal time off" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2989 +msgid "Capping rules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2525 -msgid "This guide provides an overview of the basic rules governing legal holiday entitlements in Belgium for employers using Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2991 +msgid "The total exemption granted to researchers with a bachelor's degree is limited to 25% of the exemption granted to PhD and master's degree holders. For small companies (as defined in Article 15 §§ 1-6 of the Companies Code), this limit is doubled. These rules have remained unchanged since January 1, 2020." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2529 -msgid "Holiday entitlement calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2997 +msgid "How it works in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2531 -msgid "Your holiday entitlement for the current year (N) is determined by the number of months worked in Belgium during the previous year (N-1)." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2999 +msgid "Odoo automates the calculation and declaration of withholding tax exemptions using predefined payroll structures. Below is an explanation of how the system processes these exemptions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2534 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2565 -msgid "**Calculation details:**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3002 +msgid "Navigate to :menuselection:`Payroll app --> Reporting --> 274.XX Sheets` to create a new declaration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2536 -msgid "Employees earn **2 days of leave per month** based on a 6-day work week." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3005 +msgid "Select the reference :guilabel:`Year` and :guilabel:`Month`, and the different amounts are computed accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2537 -msgid "The entitlement is adjusted for a 5-day work week: :math:`(\\text{Total Days} \\div 6) \\times 5`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3008 +msgid "**Payroll calculation**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2540 -msgid "If an employee worked **7 months** in the previous year (N-1):" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3010 +msgid "Odoo calculates gross salary and total withholding tax." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2542 -msgid "**6-day work week:** :math:`7 \\times 2 = 14 \\text{ days}`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3011 +msgid "It accounts for specific payroll components, including December double bonuses." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2543 -msgid "**5-day work week:** :math:`14 \\div 6 \\times 5 = 11.67 \\text{ days}`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3013 +msgid "**Filtering eligible payslips**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2545 -msgid "**Partial Month Calculation:**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3015 +msgid "Payslips linked to research-related contracts are considered." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2547 -msgid "Worked **1st to 10th**: Full month counted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3016 +msgid "Employees are categorized based on their qualifications (PhD, master's, or bachelor's degrees)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2548 -msgid "Worked **11th to 19th**: Half month counted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3018 +msgid "**Exemption calculation**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2549 -msgid "Worked **20th onwards**: Month not counted." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3020 +msgid "The withholding tax exemption is calculated at 80% of the withheld amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2551 -msgid "**Rounding Rules:**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3021 +msgid "Exemptions for bachelor's degree holders are capped according to regulations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2553 -msgid "Less than **0.35**: Round to **0**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3023 +msgid "**Final adjustments**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2554 -msgid "Between **0.35 - 0.74**: Round to **0.5**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3025 +msgid "The system ensures compliance with legal capping rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2555 -msgid "**0.75 and above**: Round to **1**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3026 +msgid "If necessary, adjustments are made based on the total exemption granted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2557 -msgid "For a full-time employee, this typically results in **11.5 days of legal holiday** entitlement." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3028 +msgid "Click on :guilabel:`Export XML file` to generate the file to post on FINPROF portal and the structured communication to link to your payment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2560 -msgid "Maximum holiday entitlement" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 +msgid "274.XX XML file." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2562 -msgid "Employees are entitled to a maximum of **4 weeks** of holiday based on their working schedule. If an employee switches between full-time and part-time work, their entitlement is adjusted accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3034 +msgid "Click on :guilabel:`Create 274.XX Sheets` to generate the :file:`.pdf` files of those declarations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2567 -msgid "**5-day work week**: :math:`4 \\times 5 = 20 \\text{ days}`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3037 +msgid "In order to for the exemption to work properly, the *Certificate Level* should be correctly configured on the employee's form." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2568 -msgid "**4-day work week**: :math:`4 \\times 4 = 16 \\text{ days}`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3040 +msgid "The *Time Percentage R&D* rate should be specified on the employee's contract form as well." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2569 -msgid "**3-day work week**: :math:`4 \\times 3 = 12 \\text{ days}`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3042 +msgid "If the accounting application is installed and running properly, you can also post directly the different amounts in your accounting entries with the :guilabel:`Post Journal Entries` button." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2572 -msgid "If an employee joined **Odoo on January 1, 2024**, and plans to switch to a **3-day work week from April 1, 2024**:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3046 +msgid "If the *Post Journal Entries* is not present on the wizard, you need to configure the journal and the different accounts for each amount type from :menuselection:`Payroll app --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2575 -msgid "**Step 1: Calculate holiday entitlement for 2024**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3050 +msgid "In the :guilabel:`Belgian Localization` section, complete each of the :guilabel:`Witholding Taxes Exemption` journal entry accounts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2577 -msgid "The employee worked **9 months in 2023**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3053 +msgid "Employers using Odoo can efficiently manage and report withholding tax exemptions, ensuring compliance with regulatory requirements." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2578 -msgid "**6-day work week basis**: :math:`9 \\times 2 = 18 \\text{ days}`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3056 +msgid "For further details, consult the Odoo finance documentation or your tax adviser." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2579 -msgid "Adjusted for **5-day work week**: :math:`18 \\div 6 \\times 5 = 15 \\text{ days}`" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3061 +msgid "281.10 Declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2581 -msgid "**Step 2: Verify maximum holiday entitlement**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3066 +msgid "The Belgian fiscal declaration 281.10 is an annual statement that employers must submit to the tax authorities, detailing the salaries and benefits provided to each employee. This declaration ensures accurate tax calculations and compliance with Belgian tax regulations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2583 -msgid "For a **5-day work week**, the maximum entitlement is **20 days**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3071 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3141 +msgid "Generating the declaration in Odoo" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2584 -msgid "Since the employee is entitled to **15 days**, they remain within the limit." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3073 +msgid "Odoo provides a streamlined process for generating the 281.10 declaration, offering both a comprehensive XML file for electronic submission and individual PDF files for record-keeping." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2586 -msgid "**Step 3: Adjust entitlement for the new work schedule**" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3077 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3147 +msgid "Global XML declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2588 -msgid "From April 1, 2024, the employee moves to a **3-day work week**." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3079 +msgid "To generate the global XML file in Odoo, navigate to :menuselection:`Payroll app --> Reporting --> 281.10 Sheet`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2589 -msgid "Maximum entitlement for a **3-day work week**: :math:`3 \\times 4 = 12 \\text{ days}`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3082 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3152 +msgid "Then, create a new record by selecting the reference :guilabel:`Year`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2590 -msgid "If no leave is taken before April 1, the employee may take up to **12 days** from their 15-day entitlement." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3085 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3155 +msgid "The :guilabel:`Sending Type` and :guilabel:`Treatment Type` options are currently experimental and should be kept at their default values to ensure a valid original declaration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2592 -msgid "The **remaining 3 days** will be settled at the end of the year." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3088 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3158 +msgid "Click the :guilabel:`Populate` button to generate the eligible employees, then click the :guilabel:`Create XML` button. A green indicator will appear to confirm successful file generation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2594 -msgid "This ensures compliance with Belgian legal leave regulations and allows employers to manage holiday entitlements effectively within Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3092 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3162 +msgid "Individual PDF declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2598 -msgid "Legal time off allocation" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3094 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3164 +msgid "To generate individual PDF files for each employee, click the :guilabel:`Populate` button. A line is generated for each employee who received a payslip during the reference year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2600 -msgid "This is possible to generate the legal time off for all your employees at the beginning of a new year using the wizard in :menuselection:`Payroll app --> Reporting --> Belgium --> Paid Time Off Allocation`." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3098 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3168 +msgid "The PDF files are generated automatically in batches of 30, so the process may take some time to complete." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2604 -msgid "Based on your employees occupation over last year, the number of available time off is pre-computed for each employee." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3105 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3175 +msgid "Select the employees whose documents you want to post, then click the :guilabel:`Post PDF` button." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Paid Time Off Allocation Wizard." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3107 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3177 +msgid "Once posted, employees can access the PDF from their documents portal via the :icon:`fa-file-text` :guilabel:`Documents` smart button on their profile." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2610 -msgid "Once validated, a draft allocation is generated for each single employee, waiting a manual confirmation that can be done in batch." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3111 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3181 +msgid "Submitting the XML declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Paid Time Off Allocations." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3113 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3183 +msgid "After generating the XML file, it must be submitted to the Belgian tax authorities. Ensure you are familiar with the `official submission process `_." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2619 -msgid "European time off" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3117 +msgid "The XML files containing the fiscal data to be sent via the Belcotax-on-web (BOW) application must be converted to the .bow format." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2622 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2854 -msgid "How does it work?" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3120 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3190 +msgid "This conversion requires the use of a validation module available under the *Technical Documentation* section." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2624 -msgid "If you were not subject to Belgian ONSS contributions before joining our company and do not have entitlement to legal holidays, or if your entitlement is incomplete, you can apply for European leave." +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3123 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3193 +msgid "The validation module has two prerequisites:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2628 -msgid "To qualify for European leave in a given year, you must work for at least 3 months during that year, whether with us or another employer. Once you have met this requirement, you will earn 5 days of European leave. Subsequently, you will accumulate additional days of vacation each month as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3125 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3195 +msgid "Java 8 must be installed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2632 -msgid "After 3 months: 5 days" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3126 +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3196 +msgid "The certificate authority that signed the validation module must be recognized." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2633 -msgid "After 4 months: 7 days" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3131 +msgid "281.45 Declaration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2634 -msgid "After 5 months: 9 days" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3136 +msgid "The Belgian fiscal declaration 281.45 is an annual statement that entities must submit to the tax authorities, detailing the amounts of author's rights and neighboring rights paid to beneficiaries. This declaration ensures accurate tax reporting and compliance with Belgian tax regulations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2635 -msgid "After 6 months: 10 days" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3143 +msgid "Odoo provides a streamlined process for generating the 281.45 declaration, offering both a comprehensive XML file for electronic submission and individual PDF files for record-keeping." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2636 -msgid "After 7 months: 12 days" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3149 +msgid "To generate the global XML file in Odoo, navigate to :menuselection:`Payroll app --> Reporting --> 281.45 Sheet`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2637 -msgid "After 8 months: 14 days" +#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3187 +msgid "The XML files containing the fiscal data to be sent via the Belcotax-on-web (BOW) application must be converted to the :file:`.bow` format." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2638 -msgid "After 9 months: 15 days" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:3 +msgid "Egypt" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2639 -msgid "After 10 months: 17 days" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:5 +msgid "The Egypt **Payroll** localization package enables payroll processing that fully complies with Egyptian labor laws. It calculates progressive income tax, employee- and employer-paid social security, and core salary components, including housing and transportation allowances." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2640 -msgid "After 11 months: 19 days" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:12 +msgid ":ref:`Install ` the following modules to get all the features of the Egypt **Payroll** localization:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2643 -msgid "The total of legal leave and European leave cannot exceed 20 days per year. You must use all your legal holidays before taking European leave." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:18 +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:19 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:20 +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:39 +msgid "Name" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2646 -msgid "European leave entitlement expires on December 31st of the year it is earned and cannot be carried over to the following year. To qualify for European leave in a new year, you must complete another 3 months of work." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:19 +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:20 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:21 +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:40 +msgid "Technical name" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2651 -msgid "How are these days paid?" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:20 +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:21 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:22 +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:42 +msgid "Description" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2653 -msgid "European leaves are paid holidays taken in advance of your \"Double Holiday Pay\" (the June extra pay) for the following year. Essentially, the more European leave days you take in a given year, the less you will receive as June extra pay in the following year." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:21 +msgid ":guilabel:`Egypt - Payroll`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2660 -msgid "Working schedule change" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:22 +msgid "`l10n_eg_hr_payroll`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2662 -msgid "This guide explains how to modify an employee's working time schedule in the Belgian payroll module of Odoo. Changing an employee's working hours affects their wage calculation, time-off allocation, and contract terms." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:23 +msgid "Payroll module includes all salary rules, leave logic, and compensation rules compliant with Egyptian Labor Law." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2667 -msgid "Steps to change an employee's working schedule" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:25 +msgid ":guilabel:`Egypt - Payroll with Accounting`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2669 -msgid "Navigate to the employee's contract (:menuselection:`Payroll app --> Contracts`), and select the contract of the employee whose working schedule you want to modify." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:26 +msgid "`l10n_eg_hr_payroll_account`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2671 -msgid "Click on :icon:`fa-cog` :guilabel:`(Action)` and select :guilabel:`Working Schedule Change`. The wizard displays the current contract details and allows you to set new working time parameters." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:27 +msgid "Adds account mappings related to payroll calculations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2673 -msgid "Set the new working schedule:" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:30 +msgid ":doc:`Egypt fiscal localization documentation <../../../finance/fiscal_localizations/egypt>`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2675 -msgid "Choose the new :guilabel:`Working Schedule` from the available resource calendars." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:33 +msgid "Egyptian employee contracts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2676 -msgid "Define the :guilabel:`Start Date` for the change (mandatory)." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:35 +msgid "Once an employee has been :doc:`created in the database <../../employees/new_employee>`, a :ref:`contract must be created `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2677 -msgid "If applicable, specify an :guilabel:`End Date`." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:38 +msgid "To check if the user already has a contract, navigate to the **Employees** app, then click on the employee's Kanban card. The :icon:`fa-book` :guilabel:`Contracts` smart button displays a red zero when no contract exists. Otherwise, it displays :guilabel:`In contract since (contract start date)` in green." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2678 -msgid "If the :guilabel:`Part Time` checkbox is selected, any difference between the reference calendar and the employee's new calendar will be covered using the *Absence Work Entry Type*. This ensures that the employee's monthly salary remains the same, regardless of the number of absence days in a given month. This setup is required for configuring *Time Credit*, *Parental Leave*, or *Medical Half-Time* correctly." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:44 +msgid "Contracts can also be found by navigating to :menuselection:`Employees app --> Employees --> Contracts`. All contracts appear in a list view, grouped by status." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2684 -msgid "Adjust the employee's wage:" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:47 +msgid "Populate the following contractual information in the :guilabel:`Salary Information` tab of the contract:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2686 -msgid "The wizard automatically computes the full-time equivalent wage based on the new working schedule." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:50 +msgid ":guilabel:`Social Insurance Reference Amount`: Used as the base amount for calculating the :ref:`social insurance employee and employer portions `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2688 -msgid "You can review and modify the new wage if necessary." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:53 +msgid ":guilabel:`Number of Leave Days`: Used for calculating the :ref:`provision amount for the annual leave for the employee `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2690 -msgid "Manage time off allocation:" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:55 +msgid ":guilabel:`Provision Number of Days`: Corresponds with the number of days used in the calculation of the :ref:`provision value of the end of service for the employee `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2692 -msgid "Select the relevant :guilabel:`Time Off Type`." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:58 +msgid ":guilabel:`Total Number of Days`: Refers to the number of days used to calculate the :ref:`end-of-service benefit paid to the employee when their employment with the company ends `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2693 -msgid "Odoo automatically adjusts the employee's time-off entitlement based on the new working schedule using the following formula:" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:65 +msgid "Social insurance" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2696 -msgid "\\text{New Time Off Allocation} = \\max(\\min(\\text{ Computed Allocation},\n" -"\\text{ Max Allocation}) + \\text{ Leaves Taken}, \\text{ Leaves Taken})" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:67 +msgid "Social insurance rules calculate the contribution amounts that are to be paid by the employer and employee to the :abbr:`NOSI (National Organization for Social Insurance)`. This is only available for Egyptian employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2702 -msgid "**Computed Allocation** is the expected leave allocation based on the new schedule." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:71 +msgid "The employer contributes 18.75% of the social insurance reference amount for the employee. On the other hand, the employee contributes 11% of their insurance reference amount, and that amount gets deducted from the payslip amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2703 -msgid "**Max Allocation** is the maximum number of days allowed under the new working time." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:76 +msgid "The social insurance reference amount is set per employee in their contracts." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2704 -msgid "**Leaves Taken** ensures the employee does not receive fewer days than already used." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:79 +msgid "Leaves" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2706 -msgid "Decide on a follow-up contract" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:81 +msgid "The following leave types are available to employees working in Egypt: :ref:`Annual leave `, :ref:`Sick leave `, :ref:`Unpaid leave `, and :ref:`Other leave types `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2708 -msgid "If the working time change is temporary, you can enable :guilabel:`Post Change Contract Creation` to automatically create a contract that resumes the previous working schedule after the specified end date." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:91 +msgid "Employees are eligible for 21 days of annual leave, and if the employee requires more days, they have to be :ref:`requested from HR managers ` accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2712 -msgid "Validate the changes" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:95 +msgid "Since the annual leave is fully paid, it is not connected to a salary rule, but it will appear on the worked days on the payslip form and on the PDF printout." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2714 -msgid "Click :guilabel:`Validate` to apply the new working schedule." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:101 +msgid "Sick leave" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2715 -msgid "If the new schedule is the same as the current one, an error will be displayed." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:103 +msgid "Three cases exist for sick leaves in terms of the amount to be deducted from the employee:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2716 -msgid "The system will create a new contract with the updated working time and wage." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:105 +msgid ":guilabel:`Fully paid`: first 30 calendar days each year (affects only working entries; no payroll deduction)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2717 -msgid "If a previous contract existed, it will be closed with an end date before the new contract begins." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:108 +msgid "**Payroll computation** =(Daily Wage)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2721 -msgid "Result" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:110 +msgid ":guilabel:`75% paid`: next 60 days; payroll rule deducts 25% of an employee's salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2723 -msgid "The employee's new working schedule is recorded." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:112 +msgid "**Payroll computation** =(Daily Wage * 0.25)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2724 -msgid "Wage and time-off entitlements are adjusted accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:114 +msgid ":guilabel:`0% paid`: after 90 days; payroll rule deducts 100% of an employee's salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2725 -msgid "A follow-up contract is created if applicable." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:116 +msgid "**Payroll computation** =(Daily Wage * 0.00)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "Working Schedule Change New Contracts." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:121 +msgid "Unpaid leave" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2733 -msgid "Work entries exports" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:123 +msgid "Deductions are applied on the employee's salary based on the number of unpaid leave days taken, and it is calculated by dividing the monthly salary for the employee by 30 to get the daily salary and then multiplying it by the number of unpaid leave days taken." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2736 -msgid "What are work entries?" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:130 +msgid "Other leave types" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2738 -msgid "In the context of payroll, *work entries* typically refer to records or documentation related to an employee's work hours and earnings for a specific pay period. These entries are crucial for accurately calculating and processing employee compensation." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:132 +msgid "These are leave types considered fully paid and do not affect the end payslip, but are tracked in the working entries:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2742 -msgid "Work entries in the context of payroll are essential for both employees and employers. They provide a transparent and accurate record of an employee's compensation and deductions, ensuring that employees are paid correctly and that tax and legal requirements are met. Payroll software and systems are commonly used to manage and automate these work entries, making the payroll process more efficient and accurate." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:135 +msgid "Maternity leave" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2749 -msgid "Main concepts" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:136 +msgid "Hajj leave" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2752 -msgid "General" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:137 +msgid "Death leave" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2754 -msgid "In Odoo, work entries mainly refer to *time entries* (attendance tracking), these are work entries that consist of time records, which include the number of hours worked by an employee during a given pay period. These entries may specify regular working hours, overtime hours, and any other relevant time-related information, such as breaks, paid time off, unpaid time off, parental leave, credit-time, etc." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:140 +msgid "Income tax" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2760 -msgid "Work entries serve a dual role in payroll management. First, they enable organizations to independently compute employee payslips. Second, they facilitate the transmission of pertinent data to external payroll service providers, who then use this information to calculate and generate the payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:142 +msgid "In Egypt, employees are subject to a progressive income tax system, where tax rates increase with higher annual income brackets." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2768 -msgid "They have a Name: used to identify the type of entry (e.g., Attendance, Paid Time Off, etc.)." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:148 +msgid "Depending on the annual income of the employee, the following rates apply:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2769 -msgid "They have a Payroll Code: used in Odoo's salary rules computations" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:154 +msgid "Taxable Amount" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2770 -msgid "They have an External Code: used to provide the correct Work Entry code to an external payroll service provider." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:155 +msgid "<600k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2772 -msgid "They are generated based on the configuration of the contract and the time off types" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:156 +msgid "600k - 699k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2773 -msgid "They have a duration, a start and end date, a state and are always linked to an employee." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:157 +msgid "700k - 799k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2778 -msgid "They are the main source of configuration for your work entries. Thanks to your different types of work entries, you'll be able to differentiate the time records of your employees." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:158 +msgid "800k - 899k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2780 -msgid "They have a name." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:159 +msgid "900k - 1.2M" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2781 -msgid "They contain a code, external code, payroll code and a color for visual tracking." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:160 +msgid ">1.2M" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2782 -msgid "They allow other types of configurations such as how they are displayed in payslips, decide whether this type of work entry should be considered as paid or unpaid (eg. unpaid leave), decide whether this type of work entry has a link with time off, is valid for some advantages or how it should be reflected in your reporting." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:161 +msgid "0%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2788 -#: ../../content/applications/hr/time_off.rst:42 -msgid "Time off types" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:162 +msgid "1-40k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2790 -msgid "As mentioned above, since work entry types can be linked to a time off type, you are also able to define the work entry type for each time-off type. On the time off type you have a many2one relation with the work entry type." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:168 +msgid "10%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2795 -msgid "Steps to generate the work entries of your staff" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:169 +msgid "More than 40k to 55k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2797 -msgid "Create all the employees" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:170 +msgid "1 - 55k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2798 -msgid "Create a contract and set its status to :guilabel:`Running` for each employee." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:175 +msgid "15%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2800 -msgid "In the contract, choose the :guilabel:`Work Entry Source`. It tells the system how work entries for an employee should be generated. It can be based on:" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:176 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:177 +msgid "More than 55k to 70k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2803 -msgid ":guilabel:`Working Schedule`: Odoo uses the predefined working hours and days set in the employee's working schedule to generate work entries. This is useful for regular, predictable shifts." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:178 +msgid "1 - 70k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2806 -msgid ":guilabel:`Attendances`: Work entries are generated from the employee's attendance records (i.e., when they check-in and check-out)." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:182 +msgid "20%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2808 -msgid ":guilabel:`Planning`: Work entries are created based on the validated shifts or slots allocated to the employee in the **Planning** app (often used for scheduling roles like retail shifts, restaurants, etc.)." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:183 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:184 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:185 +msgid "More than 70k to 200k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2812 -msgid "Generate the work entries each month" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:186 +msgid "1 - 200k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2814 -msgid "Odoo automatically creates the work entries in the **Payroll** app based on the work entry source of the contract and the different time-offs taken. You can edit the work entries manually. You can always decide to regenerate work entries manually but be careful if you already made some manual changes, Odoo will regenerate the work entries based on what it knows (e.g., your working schedule and time off)." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:189 +msgid "22.5%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2819 -msgid "Managing conflicts" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:190 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:191 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:192 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:193 +msgid "More than 200k to 400k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2821 -msgid "Conflicts are pointing to entries that can't be validated without your intervention. This means you'll have to qualify the entry and decide which is the correct entry to be defined for the time period if you want to be able to generate the payslip or validate the entries. Conflicts arise when there are overlapping entries or when Odoo detects that there is a time off request still pending for validation. For instance, if an employee is marked as attending work and at the same time there's a paid leave request to be validated for the same period, that's a conflict." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:194 +msgid "1 - 400k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2828 -msgid "Conflicts can be managed by filtering on the conflicting entries and resolving the discrepancy. Since **Odoo 16.4**, Odoo filters by default on conflicting entries. For prior versions, you can still filter manually on conflicting entries or use the conflicting menu item." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:196 +msgid "25%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2831 -msgid "Once the conflict is resolved you can either proceed to generate the payslips for your employees or export your work entries to the right entity." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:197 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:198 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:199 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:200 +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:201 +msgid "More than 400k" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2835 -msgid "Export work entries" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:202 +msgid "1 - 1.2M" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2838 -msgid "This section is about exporting work entries to SD Worx, but the configuration and behavior is similar for other exports to Partena, Group S and UCM." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:203 +msgid "27.5%" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2844 -msgid "This sheet is here to help you learn how Odoo's **SD Worx** (`l10n_be_hr_payroll_sd_worx`) module simplifies payroll by enabling easy export of work entries. This guide provides quick steps to generate :file:`.txt` files for direct import into SD Worx calendars, saving time and ensuring accuracy." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:209 +msgid "More than 1.2M" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2849 -msgid "First and foremost, it's important to understand there is no direct integration between Odoo and SD Worx. There is no automatic exchange of information, either way. Odoo does not communicate directly with SD Worx, and the reverse is also true." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:212 +msgid "Exemptions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2856 -msgid "In reality, Odoo provides a standardized export in .txt format for employees' work entries, allowing the generation of a file that conforms to a specific format for inputting these entries into the SD Worx software." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:214 +msgid "Employees are eligible to an EGP 20,000 personal exception on their gross income." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2861 -msgid "What does it mean in terms of data management?" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:217 +msgid "Overtime" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2863 -msgid "Since there is no direct integration between both systems, it implies that certain data will need to be manually entered into both systems. For instance, when you create a new employee in Odoo, you'll also need to manually create the employee in SD Worx (and vice versa). This manual data entry requirement extends to various aspects such as contracts, work schedules, salary details, and personal information about employees." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:219 +msgid "Depending on the time of day and the time at which the overtime is recorded in, the additional amount to be paid to the employee can be as follows:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2869 -msgid "Essentially, all the information necessary for SD Worx to calculate salaries and generate payslips must be manually inputted into both systems." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:222 +msgid "During daytime hours on working days, the amount is 1.35x times the employee's hourly wage." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2873 -msgid "What's the advantage of exporting to SD worx?" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:223 +msgid "During nighttime hours on working days, the amount is 1.70x times the employee's hourly wage." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2875 -msgid "Odoo is an integrated software that can comprehensively handle all variable payroll elements, including employee personal information, contract details, various time-off types, and other work entry categories. Through Odoo's integration capabilities, you can access all this crucial data in one centralized location, making it easily accessible for your HR team and employees." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:224 +msgid "On rest days and public holidays: The amount is 2.0x times the employee's hourly wage." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2880 -msgid "This integration not only ensures data accuracy but also maintains consistency, reducing the likelihood of errors when transmitting work entry information to your external payroll provider. With the module in place, a single click generates a :file:`.txt` file that's ready for direct import into SD Worx, streamlining the entire data transmission process." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:227 +msgid "Overtime hours are registered as other inputs directly on payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2886 -msgid "Steps to set up the SD Worx module" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:232 +msgid "Provisions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2889 -msgid "You must be logged into a Belgian company for the following steps to work." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:234 +msgid "Provisions are the amounts computed by the employer to account for the payments made to the employee for :abbr:`EOS (end-of-service)` benefits or annual leave. And it is computed on a monthly basis." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2891 -msgid ":ref:`install ` the **Belgium - Payroll - Export to SD Worx** (`l10n_be_hr_payroll_sd_worx`) module." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:238 +msgid "End of service benefit provision" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2893 -msgid "Go to :menuselection:`Payroll app --> Configuration --> Settings` to fill in the :guilabel:`SD Worx code` field. This is the company's SD Worx code, you get it directly from the SD worx software. When you create a company, it has a unique identifier which you need to set in the field." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:240 +msgid "It is computed by dividing the end of service Provision Number of Days by 12 and multiplying the result by the daily salary for the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2897 -msgid "For each employee, under the :guilabel:`Settings` tab, fill in the :guilabel:`SDWorx code` field." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:243 +msgid "\\text{Payroll computation} = \\frac{\\text{Provision Number of Days}}{12} \\times \\frac{\\text{Wage} + \\text{Allowances}}{30}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2898 -msgid "For work entry types, under the :guilabel:`Settings` tab, fill in the :guilabel:`SDWorx code` field as well." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:249 +msgid "Annual leave provision" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2901 -msgid "You can now export your work entries in the SD Worx :file:`.txt` format by opening the wizard under :menuselection:`Payroll app --> Reporting --> Belgium --> Export Work Entries to SDWorx`." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:251 +msgid "It is computed by dividing the number of leave days by 12 and multiplying the result by the daily salary for the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2904 -msgid "The file contains a series of lines such as the following line of text: `1111110000024K2023042370100360`" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:254 +msgid "\\text{Payroll computation} = \\frac{\\text{Number of Leave Days}}{12} \\times \\frac{\\text{Wage} + \\text{Allowances}}{30}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2907 -msgid "Each line represents a work entry, and the structure is outlined below:" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:262 +msgid "End of service" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2909 -msgid "`111111` -> Company SD Worx code" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:264 +msgid "At the end of the service slip that is generated for the employee, there are the following points that are unique only to the payslip:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2910 -msgid "`0000024` -> Employee SD Worx code" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:268 +msgid "Unused leaves compensation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2911 -msgid "`K` -> Delimiter" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:270 +msgid "The number of available annual leaves is shown on the employee's record. It is based on the annual leave type defined in the Payroll settings. It is calculated as the total remaining allocations for that specific leave type assigned to the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2912 -msgid "`20230423` -> Date" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:274 +msgid "That number is then multiplied by the daily rate for the employee and added as an allowance on their payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2913 -msgid "`7010` -> SD Worx work entry code" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:278 +msgid "End of service benefit" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2914 -msgid "`0360` -> Duration (edited)" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:280 +msgid "It is calculated by multiplying the daily wage of the employee by the number of days for the end of service that is set in the employee's contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2916 -msgid "Once the :file:`.txt` file is exported, it can be directly imported in this format into the SD Worx software. Doing so updates the calendars of each collaborator." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:283 +msgid "\\text{Payroll computation} = \\frac{\\text{Wage + Allowances}}{30} \\times \\text{End of Service Number of Days}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2922 -msgid "274.XX sheets" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:289 +msgid "Out of contract" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2924 -msgid "This section provides an overview of Declaration 274, its components, and how it is handled within Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:291 +msgid "Out-of-contract days are the days that fall within the payslip period but are not included in the employee's contract period. The corresponding amount is added as a deduction on the payslip and is calculated by multiplying the number of out-of-contract days by the employee's daily wage." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2928 -msgid "Declaration 274.10" +#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:295 +msgid "\\text{Payroll computation} = \\frac{\\text Wage + Allowances}{\\text{Days in the Month}} \\times \\text{Out of Contract Days}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2930 -msgid "Withholding tax is an advance payment on professional income tax. It is calculated based on guidelines established by the tax administration. While reducing withholding tax is generally not allowed, employees may request to pay more in order to better match their final tax liability." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:3 +msgid "Employment Hero Payroll" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2934 -msgid "Withholding tax must be deducted from both employees' and company directors' income. If the withholding tax is insufficient, advance tax payments must be made to avoid additional tax penalties." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:5 +msgid "The `Employment Hero `_ module synchronises payslip accounting entries (e.g., expenses, social charges, liabilities, taxes) automatically from Employment Hero to Odoo. Payroll administration is still done in Employment Hero, but the **journal entries** are done in Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2938 -msgid "In practice, some employees do not inform their employer of personal changes (e.g., having a child), which can affect tax calculations." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:11 +msgid "KeyPay was rebranded as **Employment Hero** in March 2023." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2941 -msgid "Withholding tax must be declared and paid either quarterly or monthly using form 274. These declarations must be submitted via the FINPROF application by the 15th of the month following the reporting period." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:18 +msgid ":ref:`Activate ` the :guilabel:`Employment Hero Payroll` module (`l10n_employment_hero`)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2945 -msgid "Taxable income and corresponding withholding tax must be recorded in fiscal remuneration forms 281.x and summary statements 325x. Employers failing to report these correctly may be subject to a 309% penalty on undisclosed amounts." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:20 +msgid "Configure the **Employment Hero API** by going to :menuselection:`Accounting --> Configuration --> Settings`. More fields become visible after clicking on :guilabel:`Enable Employment Hero Integration`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2949 -msgid "The tax administration compares the declared amounts in form 274 with the amounts reported in the fiscal forms. If withholding tax payments are insufficient, the company may be charged the difference. If a 274 form is submitted without corresponding tax payment, additional tax penalties will apply." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:0 +msgid "Enabling Employment Hero Integration in Odoo Accounting displays new fields in the\n" +"settings" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2954 -msgid "It is crucial to adhere to all administrative guidelines to avoid unexpected tax charges." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:28 +msgid "The API Key can be found in the :guilabel:`My Account` section of the Employment Hero platform." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2957 -msgid "Declarations 274.32, 274.33, 274.34" +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:0 +msgid "\"Account Details\" section on the Employment Hero dashboard" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2960 -msgid "Withholding tax exemptions for research employees" +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:33 +msgid "The **Payroll URL** is left empty by default to avoid any confusion. Please fill it according to the documentation specific to the localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2962 -msgid "Companies employing scientific researchers may qualify for withholding tax reductions under specific conditions:" +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:37 +msgid "Employment hero is available for :ref:`Australia `, :ref:`Malaysia `, :ref:`New Zealand `, :ref:`Singapore `, and the :ref:`United Kingdom `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2965 -msgid "**Form 281.32** applies to civil engineers and PhD holders." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:43 +msgid "The **Business ID** can be found in the Employment Hero URL. (i.e., `189241`)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2966 -msgid "**Form 281.33** applies to employees holding a master's degree." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:0 +msgid "The Employment Hero Business ID number is in the URL" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2967 -msgid "**Form 281.34** applies to employees holding a bachelor's degree." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:48 +msgid "Choose any Odoo journal to post the payslip entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2969 -msgid "Employers engaged in scientific research may be eligible for an exemption from withholding tax payments. To qualify, they must register their R&D projects with Belspo. From August 1, 2023, this registration must occur before the project begins." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:49 +msgid "Configure the tax by going to :menuselection:`Accounting --> Configuration --> Taxes`. Create the necessary taxes for the Employment Hero payslip entries. Fill in the tax code from **Employment Hero** in the :guilabel:`Matching Employment Hero Tax` field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2974 -msgid "Tax exemption details" +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:54 +msgid "How does the API work?" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2976 -msgid "This tax incentive allows companies to retain 80% of the withholding tax deducted from researchers' salaries. However, the exemption rate differs for researchers based on their qualifications:" +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:-1 +msgid "Example of a Employment Hero Journal Entry in Odoo Accounting (Australia)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2979 -msgid "PhD and master's degree holders: Full 80% exemption." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:63 +msgid "By default, the synchronisation happens once per week. The records can be fetched manually by going to :menuselection:`Accounting --> Configuration --> Settings` and, in the :guilabel:`Enable Employment Hero Integration` option, click on :guilabel:`Fetch Payruns Manually`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2980 -msgid "Bachelor's degree holders: 50% of the full exemption amount." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:67 +msgid "Employment Hero payslip entries also work based on double-entry bookkeeping." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2981 -msgid "For non-SME companies, this limit is further reduced to 25%." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:69 +msgid "The accounts used by Employment Hero are defined in the section :guilabel:`Payroll settings`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2983 -msgid "The exemption applies only to the portion of working time dedicated to scientific research, covering fundamental research, industrial research, or experimental development." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:-1 +msgid "Chart of Accounts menu in Employment Hero" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2986 -msgid "This exemption does not affect the net salary of employees." +#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:74 +msgid "For the API to work, create the same accounts as the default accounts of the Employment Hero business (**same name and same code**) in Odoo. The correct account types must be chosen in Odoo to generate accurate financial reports." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2989 -msgid "Capping rules" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:3 +msgid "Hong Kong" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2991 -msgid "The total exemption granted to researchers with a bachelor's degree is limited to 25% of the exemption granted to PhD and master's degree holders. For small companies (as defined in Article 15 §§ 1-6 of the Companies Code), this limit is doubled. These rules have remained unchanged since January 1, 2020." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:8 +msgid "Ensure the :guilabel:`Hong Kong - Payroll` (`l10n_hk_hr_payroll`) module is installed before proceeding." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2997 -msgid "How it works in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:14 +msgid "Create employees" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:2999 -msgid "Odoo automates the calculation and declaration of withholding tax exemptions using predefined payroll structures. Below is an explanation of how the system processes these exemptions." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:16 +msgid "Go to the :menuselection:`Employees` app and click :guilabel:`New`. Then, configure the following fields:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3002 -msgid "Navigate to :menuselection:`Payroll app --> Reporting --> 274.XX Sheets` to create a new declaration." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:19 +msgid "Under the :guilabel:`Work Information` tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3005 -msgid "Select the reference :guilabel:`Year` and :guilabel:`Month`, and the different amounts are computed accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:21 +msgid ":guilabel:`Working Hours`: :guilabel:`HK Standard 40 hours/week` option **must** be selected." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3008 -msgid "**Payroll calculation**" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:23 +msgid "Under the :guilabel:`Private Information` tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3010 -msgid "Odoo calculates gross salary and total withholding tax." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:25 +msgid ":guilabel:`Surname, Given Name, Name in Chinese`: name of the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3011 -msgid "It accounts for specific payroll components, including December double bonuses." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:26 +msgid ":guilabel:`Private Address`: address of the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3013 -msgid "**Filtering eligible payslips**" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:27 +msgid ":guilabel:`Bank Account Number`: employee's bank account number." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3015 -msgid "Payslips linked to research-related contracts are considered." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:28 +msgid ":guilabel:`Current Rental`: employee's rental records (if rental allowance is applicable)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3016 -msgid "Employees are categorized based on their qualifications (PhD, master's, or bachelor's degrees)." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:29 +msgid ":guilabel:`Autopay Type`: :guilabel:`BBAN`, :guilabel:`SVID`, :guilabel:`EMAL`, etc." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3018 -msgid "**Exemption calculation**" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:30 +msgid ":guilabel:`Autopay Reference`: autopay reference number." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3020 -msgid "The withholding tax exemption is calculated at 80% of the withheld amount." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:31 +msgid ":guilabel:`Identification No`: HKID of the employee." msgstr "" - -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3021 -msgid "Exemptions for bachelor's degree holders are capped according to regulations." + +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:32 +msgid ":guilabel:`Gender`: gender of the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3023 -msgid "**Final adjustments**" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:35 +msgid "For the :guilabel:`Bank Account Number`, this account should be set as :guilabel:`Trusted` before further processing." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3025 -msgid "The system ensures compliance with legal capping rules." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:38 +msgid "To achieve this, click on the right-arrow button next to :guilabel:`Bank Account Number` field. Set the :guilabel:`Send Money` to :guilabel:`Trusted` by clicking on the toggle." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3026 -msgid "If necessary, adjustments are made based on the total exemption granted." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:42 +msgid "To populate the :guilabel:`Current Rental`, click on the :guilabel:`History` button. Then, click on :guilabel:`New`. Fill in the relevant details and save the rental record. Upon saving the record, the rental contract :guilabel:`state` will be visible (at the top-right corner) and can be set to :guilabel:`Running`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3028 -msgid "Click on :guilabel:`Export XML file` to generate the file to post on FINPROF portal and the structured communication to link to your payment." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:47 +msgid "Under the :guilabel:`HR Settings` tab:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:-1 -msgid "274.XX XML file." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:49 +msgid ":guilabel:`Volunteer Contribution Option`: select either :guilabel:`Only Mandatory Contribution`, :guilabel:`With Fixed %VC`, or :guilabel:`Cap 5% VC`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3034 -msgid "Click on :guilabel:`Create 274.XX Sheets` to generate the :file:`.pdf` files of those declarations." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:51 +msgid ":guilabel:`MPF Manulife Account`: account number, if applicable." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3037 -msgid "In order to for the exemption to work properly, the *Certificate Level* should be correctly configured on the employee's form." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:56 +msgid "Manage contracts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3040 -msgid "The *Time Percentage R&D* rate should be specified on the employee's contract form as well." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:58 +msgid "Once the new employee has been created, click the :guilabel:`Contracts` smart button on the employee record, or navigate to :menuselection:`Employees app --> Employees --> Contracts`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3042 -msgid "If the accounting application is installed and running properly, you can also post directly the different amounts in your accounting entries with the :guilabel:`Post Journal Entries` button." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:62 +msgid "Only **one** contract can be active simultaneously per employee, but an employee can be assigned consecutive contracts during their employment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3046 -msgid "If the *Post Journal Entries* is not present on the wizard, you need to configure the journal and the different accounts for each amount type from :menuselection:`Payroll app --> Configuration --> Settings`." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:65 +msgid "The following are critical for setting up a contract:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3050 -msgid "In the :guilabel:`Belgian Localization` section, complete each of the :guilabel:`Witholding Taxes Exemption` journal entry accounts." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:67 +msgid ":guilabel:`Salary Structure Type`: set as :guilabel:`CAP57: Hong Kong Employee`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3053 -msgid "Employers using Odoo can efficiently manage and report withholding tax exemptions, ensuring compliance with regulatory requirements." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:68 +msgid ":guilabel:`Contract Start Date`: start date of employment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3056 -msgid "For further details, consult the Odoo finance documentation or your tax adviser." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:69 +msgid ":guilabel:`Working Schedule`: set as :guilabel:`HK Standard 40 hours/week` (from employee record)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3061 -msgid "281.10 Declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:70 +msgid ":guilabel:`Work Entry Source`: select either :guilabel:`Working Schedule`, :guilabel:`Attendances` or :guilabel:`Planning`. This field determines how the work entries are accounted for in the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3066 -msgid "The Belgian fiscal declaration 281.10 is an annual statement that employers must submit to the tax authorities, detailing the salaries and benefits provided to each employee. This declaration ensures accurate tax calculations and compliance with Belgian tax regulations." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:74 +msgid ":guilabel:`Working Schedule`: the work entries are generated automatically based on the employee's working schedule." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3071 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3141 -msgid "Generating the declaration in Odoo" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:76 +msgid ":guilabel:`Attendances`: the work entries are generated based on the check-in/out period logged in the *Attendances*." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3073 -msgid "Odoo provides a streamlined process for generating the 281.10 declaration, offering both a comprehensive XML file for electronic submission and individual PDF files for record-keeping." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:78 +msgid ":guilabel:`Planning`: the work entries are generated from planning shifts only." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3077 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3147 -msgid "Global XML declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:80 +msgid "Under the :guilabel:`Salary Information` tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3079 -msgid "To generate the global XML file in Odoo, navigate to :menuselection:`Payroll app --> Reporting --> 281.10 Sheet`." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:82 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:61 +msgid ":guilabel:`Wage Type`: select :guilabel:`Fixed Wage` for Full-time or Part-time employees, or :guilabel:`Hourly Wage` for employees who are paid hourly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3082 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3152 -msgid "Then, create a new record by selecting the reference :guilabel:`Year`." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:84 +msgid ":guilabel:`Schedule Pay`: the frequency of payslip issuance." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3085 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3155 -msgid "The :guilabel:`Sending Type` and :guilabel:`Treatment Type` options are currently experimental and should be kept at their default values to ensure a valid original declaration." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:85 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:64 +msgid ":guilabel:`Wage`: :guilabel:`Monthly` or :guilabel:`Hourly` depending on the :guilabel:`Wage Type`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3088 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3158 -msgid "Click the :guilabel:`Populate` button to generate the eligible employees, then click the :guilabel:`Create XML` button. A green indicator will appear to confirm successful file generation." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:87 +msgid ":guilabel:`Internet Subscription`: this is an **optional** field to provide additional internet allowance on top of the current salary package." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3092 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3162 -msgid "Individual PDF declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:91 +msgid "Timesheets do **not** impact work entries in Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3094 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3164 -msgid "To generate individual PDF files for each employee, click the :guilabel:`Populate` button. A line is generated for each employee who received a payslip during the reference year." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:93 +msgid "Once all information has been setup, set the contract status to :guilabel:`Running` by clicking the :guilabel:`Running` button in the top-right of the page." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3098 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3168 -msgid "The PDF files are generated automatically in batches of 30, so the process may take some time to complete." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong employment contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3105 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3175 -msgid "Select the employees whose documents you want to post, then click the :guilabel:`Post PDF` button." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:104 +msgid "Once the employees, and their contracts, are configured, payslips can be generated in the *Payroll* app." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3107 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3177 -msgid "Once posted, employees can access the PDF from their documents portal via the :icon:`fa-file-text` :guilabel:`Documents` smart button on their profile." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:107 +msgid "Odoo provides **four** different salary structures under CAP57 regulation:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3111 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3181 -msgid "Submitting the XML declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:109 +msgid ":guilabel:`CAP57: Employees Monthly Pay`: to process the monthly employee salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3113 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3183 -msgid "After generating the XML file, it must be submitted to the Belgian tax authorities. Ensure you are familiar with the `official submission process `_." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:110 +msgid ":guilabel:`CAP57: Payment in Lieu of Notice`: to process final payment upon contract termination using :abbr:`ADW (Average Daily Wage)`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3117 -msgid "The XML files containing the fiscal data to be sent via the Belcotax-on-web (BOW) application must be converted to the .bow format." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:112 +msgid ":guilabel:`CAP57: Long Service Payment`: applicable to employees with more than five years of service upon contract termination." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3120 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3190 -msgid "This conversion requires the use of a validation module available under the *Technical Documentation* section." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:114 +msgid ":guilabel:`CAP57: Severance Payment`: applicable to employees with more than two years of service upon contract termination." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3123 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3193 -msgid "The validation module has two prerequisites:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:117 +msgid "Before running the payslips, the accounts used in the salary rule can be adjusted by navigating to :menuselection:`Payroll app --> Configuration --> Rules`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3125 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3195 -msgid "Java 8 must be installed." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong Salary Rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3126 -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3196 -msgid "The certificate authority that signed the validation module must be recognized." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:123 +msgid "Odoo can create pay runs in two ways: via :ref:`batch ` or :ref:`individual ` payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3131 -msgid "281.45 Declaration" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:129 +msgid "Batch payslips" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3136 -msgid "The Belgian fiscal declaration 281.45 is an annual statement that entities must submit to the tax authorities, detailing the amounts of author's rights and neighboring rights paid to beneficiaries. This declaration ensures accurate tax reporting and compliance with Belgian tax regulations." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:131 +msgid "This method of payslip generation is used for recurring payments, since multiple employee payslips can be managed at once. Go to :menuselection:`Payroll app --> Payslips --> Batches`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3143 -msgid "Odoo provides a streamlined process for generating the 281.45 declaration, offering both a comprehensive XML file for electronic submission and individual PDF files for record-keeping." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:134 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:158 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:399 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:418 +msgid "Click on :guilabel:`New`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3149 -msgid "To generate the global XML file in Odoo, navigate to :menuselection:`Payroll app --> Reporting --> 281.45 Sheet`." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:135 +msgid "Enter a :guilabel:`Batch Name` (e.g. `2024 - Jan`) and :guilabel:`Period` (e.g. `01/01/2024` - `01/31/2024`)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/belgium.rst:3187 -msgid "The XML files containing the fiscal data to be sent via the Belcotax-on-web (BOW) application must be converted to the :file:`.bow` format." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:137 +msgid "Click on :guilabel:`Generate Payslips`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:3 -msgid "Egypt" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:138 +msgid "Choose which :guilabel:`Salary Structure` to use for this batch. The department filter allows the batch to only apply to a specific group of employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:5 -msgid "The Egypt **Payroll** localization package enables payroll processing that fully complies with Egyptian labor laws. It calculates progressive income tax, employee- and employer-paid social security, and core salary components, including housing and transportation allowances." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:140 +msgid "Click on :guilabel:`Generate`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:12 -msgid ":ref:`Install ` the following modules to get all the features of the Egypt **Payroll** localization:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:141 +msgid "A :guilabel:`Payslips` smart button is created automatically." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:18 -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:19 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:20 -msgid "Name" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:143 +msgid "Next, click :guilabel:`Create Draft Entry` to generate a draft journal entry found in the :guilabel:`Other Info` tab of each payslip. A :guilabel:`Confirmation` pop-up window appears asking :guilabel:`Are you sure you want to proceed?`. Click :guilabel:`Ok` to create the journal entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:19 -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:20 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:21 -msgid "Technical name" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:150 +msgid "Individual payslips" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:20 -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:21 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:22 -msgid "Description" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:152 +msgid "Go to :menuselection:`Payroll app --> Payslips --> All Payslips`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:21 -msgid ":guilabel:`Egypt - Payroll`" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:154 +msgid "This method of payslip generation is commonly used to handle non-recurring payments (e.g. :guilabel:`CAP57: Payment in Lieu of Notice`, :guilabel:`CAP57: Long Service Payment` or :guilabel:`CAP57: Severance Payment`)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:22 -msgid "`l10n_eg_hr_payroll`" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:159 +msgid "Select an :guilabel:`Employee`. When selected, the :guilabel:`Contract` is filled out automatically." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:23 -msgid "Payroll module includes all salary rules, leave logic, and compensation rules compliant with Egyptian Labor Law." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:161 +msgid "Add a pay :guilabel:`Period`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:25 -msgid ":guilabel:`Egypt - Payroll with Accounting`" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:162 +msgid "Select a salary :guilabel:`Structure` (e.g. :guilabel:`CAP57: Employees Monthly Pay`)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:26 -msgid "`l10n_eg_hr_payroll_account`" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:163 +msgid "The :guilabel:`Worked Days & Inputs` tab automatically compute the worked days/hours and time off leaves that are applicable." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:27 -msgid "Adds account mappings related to payroll calculations." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:165 +msgid "Additional payslip items can be added at this time (e.g. :guilabel:`Commissions`, :guilabel:`Deductions`) under the :guilabel:`Other Inputs` section." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:30 -msgid ":doc:`Egypt fiscal localization documentation <../../../finance/fiscal_localizations/egypt>`" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:167 +msgid "Click on :guilabel:`Compute Sheet` button to generate the payslip lines. This button updates the :guilabel:`Salary Computation` tab." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:33 -msgid "Egyptian employee contracts" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:171 +msgid "If the work entry for an employee was amended, click the :icon:`fa-cog` :guilabel:`(gear)` icon, then click :guilabel:`Recompute Whole Sheet` to refresh the payslip's :guilabel:`Worked Days & Inputs` tab." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:35 -msgid "Once an employee has been :doc:`created in the database <../../employees/new_employee>`, a :ref:`contract must be created `." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:175 +msgid "The :guilabel:`Salary Computation` tab shows the detailed breakdown of the computation, based on the salary rules configured for each structure type." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:38 -msgid "To check if the user already has a contract, navigate to the **Employees** app, then click on the employee's Kanban card. The :icon:`fa-book` :guilabel:`Contracts` smart button displays a red zero when no contract exists. Otherwise, it displays :guilabel:`In contract since (contract start date)` in green." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:178 +msgid ":guilabel:`Rent Allowance`: amount derived from the employee's active rental record." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:44 -msgid "Contracts can also be found by navigating to :menuselection:`Employees app --> Employees --> Contracts`. All contracts appear in a list view, grouped by status." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:179 +msgid ":guilabel:`Basic Salary`: amount of base salary provided (after rent allowance deduction)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:47 -msgid "Populate the following contractual information in the :guilabel:`Salary Information` tab of the contract:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:180 +msgid ":guilabel:`713 Gross`: net payable amount considering *Commission*, *Internet Allowance*, *Reimbursements*, *Back-pay*, *Deduction*, etc." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:50 -msgid ":guilabel:`Social Insurance Reference Amount`: Used as the base amount for calculating the :ref:`social insurance employee and employer portions `." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:182 +msgid ":guilabel:`MPF Gross`: net payable amount from 713 gross after consideration of additional allowances, deductions, and end-of-year payment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:53 -msgid ":guilabel:`Number of Leave Days`: Used for calculating the :ref:`provision amount for the annual leave for the employee `." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:184 +msgid ":guilabel:`Employee Mandatory Contribution`: employee MPF Contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:55 -msgid ":guilabel:`Provision Number of Days`: Corresponds with the number of days used in the calculation of the :ref:`provision value of the end of service for the employee `." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:185 +msgid ":guilabel:`Employer Mandatory Contribution`: employer MPF Contribution." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:58 -msgid ":guilabel:`Total Number of Days`: Refers to the number of days used to calculate the :ref:`end-of-service benefit paid to the employee when their employment with the company ends `." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:186 +msgid ":guilabel:`Gross`: net payable amount from MPF gross after consideration of MPF deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:65 -msgid "Social insurance" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:187 +msgid ":guilabel:`Net Salary`: final payable amount to be paid to the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:67 -msgid "Social insurance rules calculate the contribution amounts that are to be paid by the employer and employee to the :abbr:`NOSI (National Organization for Social Insurance)`. This is only available for Egyptian employees." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:190 +msgid "There are no MPF contributions for the first month. Both employee and employer contribution starts on second month." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:71 -msgid "The employer contributes 18.75% of the social insurance reference amount for the employee. On the other hand, the employee contributes 11% of their insurance reference amount, and that amount gets deducted from the payslip amount." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong Salary computation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:76 -msgid "The social insurance reference amount is set per employee in their contracts." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:196 +msgid "Under the :guilabel:`Other Inputs` section in :guilabel:`Worked Days & Inputs` tab, there are additional manual input types:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:79 -msgid "Leaves" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:199 +msgid ":guilabel:`Back Pay`: additional salary payout can be included under this category." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:81 -msgid "The following leave types are available to employees working in Egypt: :ref:`Annual leave `, :ref:`Sick leave `, :ref:`Unpaid leave `, and :ref:`Other leave types `." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:200 +msgid ":guilabel:`Commission`: the commission earned during the period can be manually entered here." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:91 -msgid "Employees are eligible for 21 days of annual leave, and if the employee requires more days, they have to be :ref:`requested from HR managers ` accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:201 +msgid ":guilabel:`Global Deduction`: a lump-sum deduction from the entire payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:95 -msgid "Since the annual leave is fully paid, it is not connected to a salary rule, but it will appear on the worked days on the payslip form and on the PDF printout." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:202 +msgid ":guilabel:`Global Reimbursement`: a lump-sum reimbursement to the entire payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:101 -msgid "Sick leave" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:203 +msgid ":guilabel:`Referral Fee`: the additional bonus offered for any form of business-related referral." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:103 -msgid "Three cases exist for sick leaves in terms of the amount to be deducted from the employee:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:204 +msgid ":guilabel:`Moving Daily Wage`: to override the :abbr:`ADW (Average Daily Wage)` value used for leaves computation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:105 -msgid ":guilabel:`Fully paid`: first 30 calendar days each year (affects only working entries; no payroll deduction)." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:206 +msgid ":guilabel:`Skip Rent Allowance`: if set, the rental allowance is excluded from the current payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:108 -msgid "**Payroll computation** =(Daily Wage)" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:208 +msgid ":guilabel:`Custom Average Monthly Salary`: to override the average monthly salary used for end-of-year payment (rule is only applicable to payslips generated in December)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:110 -msgid ":guilabel:`75% paid`: next 60 days; payroll rule deducts 25% of an employee's salary." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:210 +msgid ":guilabel:`Lieu of Notice Period (Months)`: only applicable to :guilabel:`CAP57: Payment in Lieu of Notice` salary structure. By default, the final payout is set as 1-month. Use the :guilabel:`Count` field under the :guilabel:`Other Inputs` section to set a different notice period duration." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:112 -msgid "**Payroll computation** =(Daily Wage * 0.25)" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:215 +msgid "Once the payslips are ready, click on :guilabel:`Compute Sheet`, followed by :guilabel:`Create Draft entry` to generate a draft journal entry found in the :guilabel:`Other Info` tab of the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:114 -msgid ":guilabel:`0% paid`: after 90 days; payroll rule deducts 100% of an employee's salary." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:221 +msgid "Once the draft journal entries have been posted, the company can now pay the employees. The user can choose between **two** different *payment methods*:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:116 -msgid "**Payroll computation** =(Daily Wage * 0.00)" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:224 +msgid "From the employee's payslip (:menuselection:`Payroll app --> Payslips --> All Payslips`), once the payslip's journal entry has been posted, click :guilabel:`Register Payment`. The process is the same as :doc:`paying vendor bills <../../../finance/accounting/payments>`. Select the desired bank journal and payment method, then later reconcile the payment with the corresponding bank statement." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:121 -msgid "Unpaid leave" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:228 +msgid "For batch payments (:menuselection:`Payroll app --> Payslips --> Batches`), once all draft journal entries from the batch are confirmed, click :guilabel:`Mark as Paid` to post the payment journal entry. Then :doc:`create a payment <../../../finance/accounting/payments>` in the *Accounting* app, and reconcile accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:123 -msgid "Deductions are applied on the employee's salary based on the number of unpaid leave days taken, and it is calculated by dividing the monthly salary for the employee by 30 to get the daily salary and then multiplying it by the number of unpaid leave days taken." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:234 +msgid "Attendances and hourly wage" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:130 -msgid "Other leave types" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:236 +msgid "To configure the contract for an employee paid hourly using the *Attendances* app for hours tracking, navigate to :menuselection:`Payroll app --> Contracts --> Contracts`. Create a new :ref:`contract `. It is important to remember to set the :guilabel:`Work Entry Source` as :guilabel:`Attendances`, and :guilabel:`Wage Type` as :guilabel:`Hourly Wage`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:132 -msgid "These are leave types considered fully paid and do not affect the end payslip, but are tracked in the working entries:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:242 +msgid "To record the hours logged by the employee using *Attendances* app:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:135 -msgid "Maternity leave" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:244 +msgid "Go to :menuselection:`Attendances app`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:136 -msgid "Hajj leave" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:245 +msgid "The employee can check-in/out, via the kiosk mode and the time will be logged automatically." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:137 -msgid "Death leave" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:246 +msgid "In the :menuselection:`Payroll app`, review the attendance work entries generated from :menuselection:`Payroll app --> Work Entries --> Work Entries`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:140 -msgid "Income tax" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:248 +msgid "Next, generate the :ref:`payslips ` and process the payment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:142 -msgid "In Egypt, employees are subject to a progressive income tax system, where tax rates increase with higher annual income brackets." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong Attendance Work Entry." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:148 -msgid "Depending on the annual income of the employee, the following rates apply:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong Attendance Payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:154 -msgid "Taxable Amount" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:257 +msgid "Time Off with Payroll" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:155 -msgid "<600k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:259 +msgid "The work entry types and time off types are fully integrated between the *Time Off* and *Payroll* apps. There are several default time off types and work entry types specific to Hong Kong which are installed automatically along with the *Hong Kong - Payroll* module." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:156 -msgid "600k - 699k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:263 +msgid "Go to :menuselection:`Payroll app --> Configuration --> Work Entry Types` and click :guilabel:`New`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:157 -msgid "700k - 799k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:265 +msgid "There are two checkboxes to be considered when setting up the work entry type:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:158 -msgid "800k - 899k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:267 +msgid ":guilabel:`Use 713`: Include this leave type as part of 713 computation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:159 -msgid "900k - 1.2M" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:268 +msgid ":guilabel:`Non-full pay`: 80% of the :abbr:`ADW (Average Daily Wage)`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:160 -msgid ">1.2M" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong Work Entry Type." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:161 -msgid "0%" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:274 +msgid ":ref:`Creating and configuring work entry types `" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:162 -msgid "1-40k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:277 +msgid "Understanding 713 Ordinance" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:168 -msgid "10%" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:279 +msgid "The *Hong Kong - Payroll* module is compliant with 713 Ordinance which relates to the :abbr:`ADW (Average Daily Wage)` computation to ensure fair compensation for employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:169 -msgid "More than 40k to 55k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:282 +msgid "The ADW computation is as follows:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:170 -msgid "1 - 55k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:287 +msgid "Hong Kong ADW Formula." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:175 -msgid "15%" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:287 +msgid ":abbr:`ADW (Average Daily Wage)` equals the total wage in a 12-month period, minus the wages of non-full pay, divided by the total days in a 12-month period minus the days of non-full pay." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:176 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:177 -msgid "More than 55k to 70k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:291 +msgid "For 418 compliance, there is no automated allocation of the *Statutory Holiday* entitlement to the employees. As soon as 418 requirements are met, manually allocate the leaves, via the *Time Off* app." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:178 -msgid "1 - 70k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:296 +msgid "Before generating payslips, ensure the statuses are :guilabel:`Done` to validate the outcome." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:182 -msgid "20%" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:301 +msgid "Period" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:183 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:184 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:185 -msgid "More than 70k to 200k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:302 +msgid "Days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:186 -msgid "1 - 200k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:303 +msgid "Wage" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:189 -msgid "22.5%" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:304 +msgid "Commission" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:190 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:191 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:192 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:193 -msgid "More than 200k to 400k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:305 +msgid "Total" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:194 -msgid "1 - 400k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:306 +msgid "ADW" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:196 -msgid "25%" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:307 +msgid "Leave Value" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:197 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:198 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:199 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:200 -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:201 -msgid "More than 400k" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:308 +msgid "Jan" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:202 -msgid "1 - 1.2M" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:309 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:323 +msgid "31" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:203 -msgid "27.5%" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:310 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:312 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:317 +msgid "$20200" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:209 -msgid "More than 1.2M" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:311 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:325 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:332 +msgid "$0" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:212 -msgid "Exemptions" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:313 +msgid "$651.61 ($20200/31)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:214 -msgid "Employees are eligible to an EGP 20,000 personal exception on their gross income." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:314 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:321 +msgid "N/A" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:217 -msgid "Overtime" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:315 +msgid "Feb" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:219 -msgid "Depending on the time of day and the time at which the overtime is recorded in, the additional amount to be paid to the employee can be as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:316 +msgid "28" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:222 -msgid "During daytime hours on working days, the amount is 1.35x times the employee's hourly wage." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:318 +msgid "$5000" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:223 -msgid "During nighttime hours on working days, the amount is 1.70x times the employee's hourly wage." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:319 +msgid "$25200" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:224 -msgid "On rest days and public holidays: The amount is 2.0x times the employee's hourly wage." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:320 +msgid "$769.49 ($45400/59)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:227 -msgid "Overtime hours are registered as other inputs directly on payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:322 +msgid "Mar (One Day Annual Leave)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:232 -msgid "Provisions" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:324 +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:326 +msgid "$20324.33" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:234 -msgid "Provisions are the amounts computed by the employer to account for the payments made to the employee for :abbr:`EOS (end-of-service)` benefits or annual leave. And it is computed on a monthly basis." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:327 +msgid "$730.27 ($65724.33/90)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:238 -msgid "End of service benefit provision" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:328 +msgid "$769.49" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:240 -msgid "It is computed by dividing the end of service Provision Number of Days by 12 and multiplying the result by the daily salary for the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:329 +msgid "Apr (One Day 80% Sick Leave)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:243 -msgid "\\text{Payroll computation} = \\frac{\\text{Provision Number of Days}}{12} \\times \\frac{\\text{Wage} + \\text{Allowances}}{30}" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:331 +msgid "$20117.56" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:249 -msgid "Annual leave provision" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:335 +msgid "$584.22 ($730.27*0.8)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:251 -msgid "It is computed by dividing the number of leave days by 12 and multiplying the result by the daily salary for the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:338 +msgid "Here is an example demonstrating the 713 logic:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:254 -msgid "\\text{Payroll computation} = \\frac{\\text{Number of Leave Days}}{12} \\times \\frac{\\text{Wage} + \\text{Allowances}}{30}" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:340 +msgid "**Jan**: Generate a payslip with a monthly wage of $20200. The :abbr:`ADW (Average Daily Wage)` is always computed on a cumulative basis of the trailing 12-months." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:262 -msgid "End of service" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:342 +msgid "**Feb**: Generate a similar payslip, but add an :guilabel:`Other Input Type` for the :guilabel:`Commission`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:264 -msgid "At the end of the service slip that is generated for the employee, there are the following points that are unique only to the payslip:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:344 +msgid "**Mar**: Apply for **one** full-paid annual leave in March. The salary compensation for the leave taken is based on :abbr:`ADW (Average Daily Wage)` thus far." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:268 -msgid "Unused leaves compensation" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:0 +msgid "Hong Kong March 713." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:270 -msgid "The number of available annual leaves is shown on the employee's record. It is based on the annual leave type defined in the Payroll settings. It is calculated as the total remaining allocations for that specific leave type assigned to the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:350 +msgid "**Apr**: Apply for a 1-day non-full pay leave in April. Since this is a non-full pay leave, the :abbr:`ADW (Average Daily Wage)` is computed accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:274 -msgid "That number is then multiplied by the daily rate for the employee and added as an allowance on their payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:0 +msgid "Hong Kong April 713." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:278 -msgid "End of service benefit" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:357 +msgid "The value of :abbr:`ADW (Average Daily Wage)` is computed in the backend, and not be visible to the user." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:280 -msgid "It is calculated by multiplying the daily wage of the employee by the number of days for the end of service that is set in the employee's contract." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:361 +msgid "`HK 713 Ordinance `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:283 -msgid "\\text{Payroll computation} = \\frac{\\text{Wage + Allowances}}{30} \\times \\text{End of Service Number of Days}" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:362 +msgid "`HK 418 Ordinance `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:289 -msgid "Out of contract" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:365 +msgid "Generate reports" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:291 -msgid "Out-of-contract days are the days that fall within the payslip period but are not included in the employee's contract period. The corresponding amount is added as a deduction on the payslip and is calculated by multiplying the number of out-of-contract days by the employee's daily wage." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:367 +msgid "Before generating the below reports, setup the following in :menuselection:`Settings app --> Payroll`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/egypt.rst:295 -msgid "\\text{Payroll computation} = \\frac{\\text Wage + Allowances}{\\text{Days in the Month}} \\times \\text{Out of Contract Days}" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:370 +msgid "Configure the following in the :guilabel:`Accounting` section:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:3 -msgid "Employment Hero Payroll" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:372 +msgid "Tick the :guilabel:`Payroll HSBC Autopay` checkbox." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:5 -msgid "The `Employment Hero `_ module synchronises payslip accounting entries (e.g., expenses, social charges, liabilities, taxes) automatically from Employment Hero to Odoo. Payroll administration is still done in Employment Hero, but the **journal entries** are done in Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:374 +msgid ":guilabel:`Autopay Type`: Set as :guilabel:`H2H Submission`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:11 -msgid "KeyPay was rebranded as **Employment Hero** in March 2023." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:375 +msgid "Select the :guilabel:`Bank Account` to use." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:18 -msgid ":ref:`Activate ` the :guilabel:`Employment Hero Payroll` module (`l10n_employment_hero`)." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:377 +msgid "Configure the following in the :guilabel:`HK Localization` section:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:20 -msgid "Configure the **Employment Hero API** by going to :menuselection:`Accounting --> Configuration --> Settings`. More fields become visible after clicking on :guilabel:`Enable Employment Hero Integration`." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:379 +msgid ":guilabel:`Employer's Name shows on reports`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:0 -msgid "Enabling Employment Hero Integration in Odoo Accounting displays new fields in the\n" -"settings" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:380 +msgid ":guilabel:`Employer's File Number`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:28 -msgid "The API Key can be found in the :guilabel:`My Account` section of the Employment Hero platform." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:381 +msgid ":guilabel:`Manulife MPF Scheme`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:0 -msgid "\"Account Details\" section on the Employment Hero dashboard" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong Payroll Settings." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:33 -msgid "The **Payroll URL** is left empty by default to avoid any confusion. Please fill it according to the documentation specific to the localization." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:387 +msgid "IRD report" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:37 -msgid "Employment hero is available for :ref:`Australia `, :ref:`Malaysia `, :ref:`New Zealand `, :ref:`Singapore `, and the :ref:`United Kingdom `." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:389 +msgid "There are a total of **four** IRD reports available:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:43 -msgid "The **Business ID** can be found in the Employment Hero URL. (i.e., `189241`)" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:391 +msgid ":guilabel:`IR56B`: employer's Return of Remuneration and Pensions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:0 -msgid "The Employment Hero Business ID number is in the URL" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:392 +msgid ":guilabel:`IR56E`: notification of Commencement of Employment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:48 -msgid "Choose any Odoo journal to post the payslip entries." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:393 +msgid ":guilabel:`IR56F`: notification of Ceasation of Employment (remaining in HK)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:49 -msgid "Configure the tax by going to :menuselection:`Accounting --> Configuration --> Taxes`. Create the necessary taxes for the Employment Hero payslip entries. Fill in the tax code from **Employment Hero** in the :guilabel:`Matching Employment Hero Tax` field." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:394 +msgid ":guilabel:`IR56G`: notification of Ceasation of Employment (departing from HK permanently)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:54 -msgid "How does the API work?" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:396 +msgid "Go to :menuselection:`Payroll app --> Reporting`, and select one of the :guilabel:`IR56B/E/F/G Sheet` options:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:-1 -msgid "Example of a Employment Hero Journal Entry in Odoo Accounting (Australia)" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:400 +msgid "Fill in the relevant information for the IRD report." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:63 -msgid "By default, the synchronisation happens once per week. The records can be fetched manually by going to :menuselection:`Accounting --> Configuration --> Settings` and, in the :guilabel:`Enable Employment Hero Integration` option, click on :guilabel:`Fetch Payruns Manually`." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:401 +msgid "Click on :guilabel:`Populate`, and the :guilabel:`Eligible Employees` smart button appears." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:67 -msgid "Employment Hero payslip entries also work based on double-entry bookkeeping." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:402 +msgid "The :guilabel:`Employee Declarations` status is :guilabel:`Draft` and changed to :guilabel:`Generated PDF` status once the schedule runs." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:69 -msgid "The accounts used by Employment Hero are defined in the section :guilabel:`Payroll settings`." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:404 +msgid "Once the PDF is generated, the IRD form may be downloaded." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:-1 -msgid "Chart of Accounts menu in Employment Hero" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong IR56B report." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/employment_hero.rst:74 -msgid "For the API to work, create the same accounts as the default accounts of the Employment Hero business (**same name and same code**) in Odoo. The correct account types must be chosen in Odoo to generate accurate financial reports." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:410 +msgid "The scheduled action called *Payroll: Generate pdfs* can be manually triggered. It is set by default to run the PDF generation monthly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:3 -msgid "Hong Kong" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:414 +msgid "Manulife MPF sheet" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:8 -msgid "Ensure the :guilabel:`Hong Kong - Payroll` (`l10n_hk_hr_payroll`) module is installed before proceeding." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:416 +msgid "Go to :menuselection:`Payroll app --> Reporting --> Manulife MPF Sheet`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:14 -msgid "Create employees" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:419 +msgid "Select the relevant :guilabel:`Year`, :guilabel:`Month`, and :guilabel:`Sequence No.`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:16 -msgid "Go to the :menuselection:`Employees` app and click :guilabel:`New`. Then, configure the following fields:" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:420 +msgid "Click on :guilabel:`Create XLSX`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:19 -msgid "Under the :guilabel:`Work Information` tab" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:421 +msgid "The *Manulife MPF XLSX* file is then generated, and available for download." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:21 -msgid ":guilabel:`Working Hours`: :guilabel:`HK Standard 40 hours/week` option **must** be selected." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong Manulife Sheet." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:23 -msgid "Under the :guilabel:`Private Information` tab" +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:427 +msgid "Odoo will not be developing further reports for other MPF trustee as there will soon be an eMPF platform setup by the local government." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:25 -msgid ":guilabel:`Surname, Given Name, Name in Chinese`: name of the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:431 +msgid "`eMPF `_" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:26 -msgid ":guilabel:`Private Address`: address of the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:434 +msgid "HSBC autopay report" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:27 -msgid ":guilabel:`Bank Account Number`: employee's bank account number." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:436 +msgid "If *HSBC Autopay* is selected as the batch payment method, click on :guilabel:`Create HSBC Autopay Report`, and fill in the mandatory fields:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:28 -msgid ":guilabel:`Current Rental`: employee's rental records (if rental allowance is applicable)." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 +msgid "Hong Kong HSBC Autopay wizard." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:29 -msgid ":guilabel:`Autopay Type`: :guilabel:`BBAN`, :guilabel:`SVID`, :guilabel:`EMAL`, etc." +#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:442 +msgid "This creates an :file:`.apc` file format which can be uploaded to the HSCB portal for processing." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:30 -msgid ":guilabel:`Autopay Reference`: autopay reference number." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:3 +msgid "Jordan" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:31 -msgid ":guilabel:`Identification No`: HKID of the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:5 +msgid "The Jordan **Payroll** localization package offers a comprehensive solution for managing payroll in compliance with Jordanian labor laws. It supports income tax calculations using progressive tax brackets, social security contributions from both employees and employers and basic salary calculations, including allowances such as housing and transportation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:32 -msgid ":guilabel:`Gender`: gender of the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:13 +msgid ":ref:`Install ` the following modules to get all the features of the Jordan **Payroll** localization:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:35 -msgid "For the :guilabel:`Bank Account Number`, this account should be set as :guilabel:`Trusted` before further processing." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:22 +msgid ":guilabel:`Jordan - Payroll`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:38 -msgid "To achieve this, click on the right-arrow button next to :guilabel:`Bank Account Number` field. Set the :guilabel:`Send Money` to :guilabel:`Trusted` by clicking on the toggle." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:23 +msgid "`l10n_jo_hr_payroll`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:42 -msgid "To populate the :guilabel:`Current Rental`, click on the :guilabel:`History` button. Then, click on :guilabel:`New`. Fill in the relevant details and save the rental record. Upon saving the record, the rental contract :guilabel:`state` will be visible (at the top-right corner) and can be set to :guilabel:`Running`." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:24 +msgid "Payroll module supporting basic calculation, tax income brackets, and national contribution tax and social security" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:47 -msgid "Under the :guilabel:`HR Settings` tab:" +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:26 +msgid ":guilabel:`Jordan - Payroll with Accounting`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:49 -msgid ":guilabel:`Volunteer Contribution Option`: select either :guilabel:`Only Mandatory Contribution`, :guilabel:`With Fixed %VC`, or :guilabel:`Cap 5% VC`." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:27 +msgid "`l10n_jo_hr_payroll_account`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:51 -msgid ":guilabel:`MPF Manulife Account`: account number, if applicable." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:28 +msgid "Bridge module between **Payroll** and **Accounting**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:56 -msgid "Manage contracts" +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:31 +msgid ":doc:`Jordan fiscal localization documentation <../../../finance/fiscal_localizations/jordan>`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:58 -msgid "Once the new employee has been created, click the :guilabel:`Contracts` smart button on the employee record, or navigate to :menuselection:`Employees app --> Employees --> Contracts`." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:34 +msgid "Basic calculations" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:62 -msgid "Only **one** contract can be active simultaneously per employee, but an employee can be assigned consecutive contracts during their employment." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:36 +msgid "The Jordan **Payroll** localization package in Odoo provides foundational payroll management tools that are compliant with Jordan's labor laws and regulations. Key features include:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:65 -msgid "The following are critical for setting up a contract:" +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:39 +msgid "**Basic salary calculations**: Odoo supports the computation of employee salaries based on predefined salary structures, ensuring accurate payroll processing." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:67 -msgid ":guilabel:`Salary Structure Type`: set as :guilabel:`CAP57: Hong Kong Employee`." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:41 +msgid "**Social security contributions**: It handles social security deductions for employees and employer contributions, aligning with local regulations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:68 -msgid ":guilabel:`Contract Start Date`: start date of employment." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:43 +msgid "**Taxation support**: The system is configured to handle income tax calculations in Jordan, including deductions based on progressive tax brackets as required by Jordanian labor and tax laws." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:69 -msgid ":guilabel:`Working Schedule`: set as :guilabel:`HK Standard 40 hours/week` (from employee record)." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:46 +msgid "**Custom allowances and deductions**: The localization supports additional allowances, deductions, or overtime as part of payroll computation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:70 -msgid ":guilabel:`Work Entry Source`: select either :guilabel:`Working Schedule`, :guilabel:`Attendances` or :guilabel:`Planning`. This field determines how the work entries are accounted for in the payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:49 +msgid "These features ensure businesses can manage payroll effectively and comply with Jordanian-specific legal requirements. For enhanced functionality, businesses may leverage Odoo's flexibility to customize payroll workflows." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:74 -msgid ":guilabel:`Working Schedule`: the work entries are generated automatically based on the employee's working schedule." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:54 +msgid "Social security" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:76 -msgid ":guilabel:`Attendances`: the work entries are generated based on the check-in/out period logged in the *Attendances*." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:56 +msgid "The Jordan **Payroll** localization package in Odoo simplifies social security management by automating calculations for both employees and employers. Contributions are based on a percentage of the employee's basic salary, with a maximum insurable wage cap in line with Jordanian Social Security Corporation (SSC) regulations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:78 -msgid ":guilabel:`Planning`: the work entries are generated from planning shifts only." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:62 +msgid "Employee contributions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:80 -msgid "Under the :guilabel:`Salary Information` tab" +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:64 +msgid "Odoo calculates the employee's social security deduction as 7.5% of their basic salary, up to the insurable wage cap of 3,000 JOD. If the employee's salary exceeds this cap, the deduction is based on the capped amount. This ensures compliance with :abbr:`SSC (Jordanian Social Security Corporation)` requirements and reflects accurately on the employee's payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:82 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:61 -msgid ":guilabel:`Wage Type`: select :guilabel:`Fixed Wage` for Full-time or Part-time employees, or :guilabel:`Hourly Wage` for employees who are paid hourly." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:70 +msgid "Employer contributions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:84 -msgid ":guilabel:`Schedule Pay`: the frequency of payslip issuance." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:72 +msgid "For employers, Odoo computes social security contributions as 14.25% of the employee's basic salary, also capped at 3,000 JOD. Like the employee contributions, if the salary exceeds this cap, the employer's contribution is calculated based on the capped amount. These contributions include pensions, workplace injury insurance, and other mandated benefits." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:85 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:64 -msgid ":guilabel:`Wage`: :guilabel:`Monthly` or :guilabel:`Hourly` depending on the :guilabel:`Wage Type`." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:80 +msgid "**Capped contributions**: The system ensures that both employee and employer contributions are aligned with the SSC-mandated insurance cap." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:87 -msgid ":guilabel:`Internet Subscription`: this is an **optional** field to provide additional internet allowance on top of the current salary package." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:82 +msgid "**Automated calculations**: Contributions are automatically calculated and included in payroll, reducing errors and administrative work." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:91 -msgid "Timesheets do **not** impact work entries in Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:84 +msgid "**Compliance with regulations**: Odoo's configuration ensures full compliance with Jordanian social security laws, reflecting the correct rates and caps for both sides." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:93 -msgid "Once all information has been setup, set the contract status to :guilabel:`Running` by clicking the :guilabel:`Running` button in the top-right of the page." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:88 +msgid "Income tax calculation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong employment contract." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:90 +msgid "The Jordan **Payroll** localization package automates income tax calculations using progressive tax brackets, ensuring compliance with Jordanian labor laws. The system applies income tax rates based on the employee's annual gross income, with higher brackets subject to increased percentages. The calculations are divided into six brackets, and the appropriate tax is deducted monthly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:102 -msgid "Generate payslips" +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:98 +msgid "**5% bracket**: Applicable to annual gross income up to 5,000 JOD. Odoo calculates 5% of the income within this range. If the gross income is below 5,000 JOD, the entire amount is taxed at 5%." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:104 -msgid "Once the employees, and their contracts, are configured, payslips can be generated in the *Payroll* app." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:101 +msgid "**10% bracket**: Applicable to annual gross income between 5,001 and 10,000 JOD. Only the portion of income exceeding 5,000 JOD is taxed at 10%. For example, if the gross income is 7,000 JOD, only 2,000 JOD is taxed at 10%." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:107 -msgid "Odoo provides **four** different salary structures under CAP57 regulation:" +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:104 +msgid "**15% bracket**: Applicable to annual gross income between 10,001 and 15,000 JOD. The portion of income exceeding 10,000 JOD up to 15,000 JOD is taxed at 15%. For instance, if the gross income is 12,000 JOD, only 2,000 JOD is taxed at 15%." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:109 -msgid ":guilabel:`CAP57: Employees Monthly Pay`: to process the monthly employee salary." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:107 +msgid "**20% bracket**: Applicable to annual gross income between 15,001 and 20,000 JOD. Income within this range is taxed at 20%, with deductions automatically adjusted by Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:110 -msgid ":guilabel:`CAP57: Payment in Lieu of Notice`: to process final payment upon contract termination using :abbr:`ADW (Average Daily Wage)`." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:109 +msgid "**25% bracket**: Applicable to annual gross income between 20,001 and 1,000,000 JOD. Income beyond 20,000 JOD up to 1,000,000 JOD is taxed at 25%. For higher incomes, Odoo ensures accurate calculations by applying the cap of this range." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:112 -msgid ":guilabel:`CAP57: Long Service Payment`: applicable to employees with more than five years of service upon contract termination." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:112 +msgid "**30% bracket**: Applicable to annual gross income exceeding 1,000,000 JOD. Any income above this amount is taxed at 30%, with the system ensuring accurate monthly deductions for high-income earners." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:114 -msgid ":guilabel:`CAP57: Severance Payment`: applicable to employees with more than two years of service upon contract termination." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:117 +msgid "Automated process" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:117 -msgid "Before running the payslips, the accounts used in the salary rule can be adjusted by navigating to :menuselection:`Payroll app --> Configuration --> Rules`." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:119 +msgid "Odoo determines the appropriate tax bracket for each employee based on their gross annual income and applies the corresponding rates. These deductions are prorated and deducted monthly, simplifying payroll management and ensuring compliance." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong Salary Rules." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:126 +msgid "**Progressive tax system**: Calculates taxes for each income range individually, ensuring fairness and accuracy." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:123 -msgid "Odoo can create pay runs in two ways: via :ref:`batch ` or :ref:`individual ` payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:128 +msgid "**Automated deductions**: Ensures a smooth payroll workflows with accurate and timely monthly tax deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:129 -msgid "Batch payslips" +#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:130 +msgid "**Alignment with Jordanian regulations**: Fully complies with Jordanian tax laws, minimizing manual intervention and errors." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:131 -msgid "This method of payslip generation is used for recurring payments, since multiple employee payslips can be managed at once. Go to :menuselection:`Payroll app --> Payslips --> Batches`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:3 +msgid "United Arab Emirates" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:134 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:158 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:399 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:418 -msgid "Click on :guilabel:`New`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:14 +msgid ":ref:`Install ` the following modules to get all the features of the **United Arab Emirates** **Payroll** localization:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:135 -msgid "Enter a :guilabel:`Batch Name` (e.g. `2024 - Jan`) and :guilabel:`Period` (e.g. `01/01/2024` - `01/31/2024`)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:23 +msgid ":guilabel:`United Arab Emirates - Payroll`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:137 -msgid "Click on :guilabel:`Generate Payslips`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:24 +msgid "`l10n_ae_hr_payroll`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:138 -msgid "Choose which :guilabel:`Salary Structure` to use for this batch. The department filter allows the batch to only apply to a specific group of employees." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:25 +msgid "Includes all rules, calculations, and salary structures." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:140 -msgid "Click on :guilabel:`Generate`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:26 +msgid ":guilabel:`United Arab Emirates - Payroll with Accounting`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:141 -msgid "A :guilabel:`Payslips` smart button is created automatically." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:27 +msgid "`l10n_ae_hr_payroll_account`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:143 -msgid "Next, click :guilabel:`Create Draft Entry` to generate a draft journal entry found in the :guilabel:`Other Info` tab of each payslip. A :guilabel:`Confirmation` pop-up window appears asking :guilabel:`Are you sure you want to proceed?`. Click :guilabel:`Ok` to create the journal entries." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:28 +msgid "Includes all accounts related to the payroll module." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:150 -msgid "Individual payslips" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:31 +msgid ":doc:`United Arab Emirates fiscal localization documentation <../../../finance/fiscal_localizations/united_arab_emirates>`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:152 -msgid "Go to :menuselection:`Payroll app --> Payslips --> All Payslips`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:37 +msgid "First, configure the :doc:`employee general information <../../employees/new_employee>` and then configure the following fields under the :guilabel:`Private Information` tab:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:154 -msgid "This method of payslip generation is commonly used to handle non-recurring payments (e.g. :guilabel:`CAP57: Payment in Lieu of Notice`, :guilabel:`CAP57: Long Service Payment` or :guilabel:`CAP57: Severance Payment`)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:40 +msgid ":guilabel:`Nationality (Country)`: The nationality affects an employee's payslips, whether they are nationals or expats." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:159 -msgid "Select an :guilabel:`Employee`. When selected, the :guilabel:`Contract` is filled out automatically." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:42 +msgid ":guilabel:`Identification Number`: Used to extract the :ref:`WPS report `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:161 -msgid "Add a pay :guilabel:`Period`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:44 +msgid ":guilabel:`Bank Account`: Used to extract the :ref:`WPS report ` and generate payments for those employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:162 -msgid "Select a salary :guilabel:`Structure` (e.g. :guilabel:`CAP57: Employees Monthly Pay`)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:48 +msgid "The :guilabel:`Nationality (Country)` field needs to be set even if the employee is a |UAE| national since there is a different type of handling if they are citizens of a |GCC| country." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:163 -msgid "The :guilabel:`Worked Days & Inputs` tab automatically compute the worked days/hours and time off leaves that are applicable." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:54 +msgid "Once the employee form has been created, ensure the :doc:`contract <../contracts>` is enabled by clicking on the :icon:`fa-book` :guilabel:`Contracts` smart button, or going to :menuselection:`Employees --> Contracts`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:165 -msgid "Additional payslip items can be added at this time (e.g. :guilabel:`Commissions`, :guilabel:`Deductions`) under the :guilabel:`Other Inputs` section." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:58 +msgid "The following contractual information related to employees working in the United Arab Emirates are found under the :guilabel:`Salary Information` tab:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:167 -msgid "Click on :guilabel:`Compute Sheet` button to generate the payslip lines. This button updates the :guilabel:`Salary Computation` tab." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:63 +msgid ":guilabel:`Scheduled Pay`: the frequency of payslip issuance." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:171 -msgid "If the work entry for an employee was amended, click the :icon:`fa-cog` :guilabel:`(gear)` icon, then click :guilabel:`Recompute Whole Sheet` to refresh the payslip's :guilabel:`Worked Days & Inputs` tab." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:66 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:110 +msgid ":guilabel:`Housing Allowance`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:175 -msgid "The :guilabel:`Salary Computation` tab shows the detailed breakdown of the computation, based on the salary rules configured for each structure type." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:67 +msgid ":guilabel:`Transportation Allowance`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:178 -msgid ":guilabel:`Rent Allowance`: amount derived from the employee's active rental record." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:68 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:118 +msgid ":guilabel:`Other Allowance`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:179 -msgid ":guilabel:`Basic Salary`: amount of base salary provided (after rent allowance deduction)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:71 +msgid "The allowance values set on the contract are used on the payslip lines as allowances." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:180 -msgid ":guilabel:`713 Gross`: net payable amount considering *Commission*, *Internet Allowance*, *Reimbursements*, *Back-pay*, *Deduction*, etc." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:73 +msgid ":guilabel:`Number of Leave Days`: Used to specify the number of annual leave days that an employee deserves in a particular year. Regardless of the actual number of leaves that the employee gets (extra leave days for some internal company reasons), the final calculation of the end of service and unpaid leaves is dependent on the number set on this field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:182 -msgid ":guilabel:`MPF Gross`: net payable amount from 713 gross after consideration of additional allowances, deductions, and end-of-year payment." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:79 +msgid "The :guilabel:`Number of Leave Days` affects the calculation for unpaid leave provisions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:184 -msgid ":guilabel:`Employee Mandatory Contribution`: employee MPF Contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:81 +msgid ":guilabel:`Is DEWS Applied`: DIFC Employee Workplace Savings (DEWS), if the employee is a |UAE| national and has |DEWS| applied, tick this checkbox." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:185 -msgid ":guilabel:`Employer Mandatory Contribution`: employer MPF Contribution." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:83 +msgid ":guilabel:`Computed Based On Daily Salary`: Defines the way that the end of service is calculated:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:186 -msgid ":guilabel:`Gross`: net payable amount from MPF gross after consideration of MPF deductions." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:85 +msgid "Do not tick this checkbox if the standard calculation is to be used. This computes the compensation amount by dividing the monthly salary by **30** and then multiplying it by **21**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:187 -msgid ":guilabel:`Net Salary`: final payable amount to be paid to the employee." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:87 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:89 +msgid "Tick this checkbox and directly set the actual :guilabel:`Daily Salary` so that it is used in the end of service calculation." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:190 -msgid "There are no MPF contributions for the first month. Both employee and employer contribution starts on second month." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:93 +msgid "Salary structures and salary rules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong Salary computation." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:96 +msgid "Other input rules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:196 -msgid "Under the :guilabel:`Other Inputs` section in :guilabel:`Worked Days & Inputs` tab, there are additional manual input types:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:98 +msgid "The following are the different allowances that can be defined directly on the :doc:`payslip form <../payslips>` to allow for the values that are set against these inputs to affect the |WPS| calculations as monthly variable salaries for the specific employee that they are linked to." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:199 -msgid ":guilabel:`Back Pay`: additional salary payout can be included under this category." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:102 +msgid "Rules that are related to the |WPS| setup, are linked to other input types, and whenever they are used, their values are reflected on the |WPS| as monthly variable salary for that specific employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:200 -msgid ":guilabel:`Commission`: the commission earned during the period can be manually entered here." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:106 +msgid "**Type**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:201 -msgid ":guilabel:`Global Deduction`: a lump-sum deduction from the entire payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:106 +msgid "**Code**" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:202 -msgid ":guilabel:`Global Reimbursement`: a lump-sum reimbursement to the entire payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:108 +msgid ":guilabel:`Conveyance Allowance`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:203 -msgid ":guilabel:`Referral Fee`: the additional bonus offered for any form of business-related referral." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:108 +msgid "`CONVALLOW`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:204 -msgid ":guilabel:`Moving Daily Wage`: to override the :abbr:`ADW (Average Daily Wage)` value used for leaves computation." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:110 +msgid "`HOUALLOW`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:206 -msgid ":guilabel:`Skip Rent Allowance`: if set, the rental allowance is excluded from the current payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:112 +msgid ":guilabel:`Medical Allowance`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:208 -msgid ":guilabel:`Custom Average Monthly Salary`: to override the average monthly salary used for end-of-year payment (rule is only applicable to payslips generated in December)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:112 +msgid "`MEDALLOW`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:210 -msgid ":guilabel:`Lieu of Notice Period (Months)`: only applicable to :guilabel:`CAP57: Payment in Lieu of Notice` salary structure. By default, the final payout is set as 1-month. Use the :guilabel:`Count` field under the :guilabel:`Other Inputs` section to set a different notice period duration." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:114 +msgid ":guilabel:`Annual Passage Allowance`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:215 -msgid "Once the payslips are ready, click on :guilabel:`Compute Sheet`, followed by :guilabel:`Create Draft entry` to generate a draft journal entry found in the :guilabel:`Other Info` tab of the payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:114 +msgid "`ANNUALPASSALLOW`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:221 -msgid "Once the draft journal entries have been posted, the company can now pay the employees. The user can choose between **two** different *payment methods*:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:116 +msgid ":guilabel:`Overtime Allowance`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:224 -msgid "From the employee's payslip (:menuselection:`Payroll app --> Payslips --> All Payslips`), once the payslip's journal entry has been posted, click :guilabel:`Register Payment`. The process is the same as :doc:`paying vendor bills <../../../finance/accounting/payments>`. Select the desired bank journal and payment method, then later reconcile the payment with the corresponding bank statement." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:116 +msgid "`OVERTIMEALLOW`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:228 -msgid "For batch payments (:menuselection:`Payroll app --> Payslips --> Batches`), once all draft journal entries from the batch are confirmed, click :guilabel:`Mark as Paid` to post the payment journal entry. Then :doc:`create a payment <../../../finance/accounting/payments>` in the *Accounting* app, and reconcile accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:118 +msgid "`OTALLOW`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:234 -msgid "Attendances and hourly wage" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:120 +msgid ":guilabel:`Leave Encashment`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:236 -msgid "To configure the contract for an employee paid hourly using the *Attendances* app for hours tracking, navigate to :menuselection:`Payroll app --> Contracts --> Contracts`. Create a new :ref:`contract `. It is important to remember to set the :guilabel:`Work Entry Source` as :guilabel:`Attendances`, and :guilabel:`Wage Type` as :guilabel:`Hourly Wage`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:120 +msgid "`LEAVEENCASH`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:242 -msgid "To record the hours logged by the employee using *Attendances* app:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:124 +msgid "End of service (EOS)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:244 -msgid "Go to :menuselection:`Attendances app`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:126 +msgid "End of service (EOS) provides the calculation for the allowance that the employee gets at the end of their service. It is triggered when the employee's departure reason is set by archiving the employee's record." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:245 -msgid "The employee can check-in/out, via the kiosk mode and the time will be logged automatically." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:130 +msgid "There are several different calculations depending on the scenario:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:246 -msgid "In the :menuselection:`Payroll app`, review the attendance work entries generated from :menuselection:`Payroll app --> Work Entries --> Work Entries`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:132 +msgid "*The Employee spent less than a year in the company*: The employee does not get any |EOS| allowance since they are not eligible for it (they are eligible once they complete their first year in the company)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:248 -msgid "Next, generate the :ref:`payslips ` and process the payment." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:135 +msgid "*The Employee spent more than a year and less than 5 years in the company*: The employee is eligible for an equivalent of **21** days of salary for each year they spent on the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong Attendance Work Entry." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:139 +msgid "There are two ways for calculating the daily wage that gets paid for the employee against the 21 days of the |EOS|: Either by the default way of dividing the monthly basic wage by 30. Or, it can be manually input on the contract of the employee under the *Daily Salary* field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong Attendance Payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:143 +msgid "*The Employee spent more than 5 years in the company*: The employee is eligible for an equivalent of **30** days of salary for each year they spent on the company. In this case, if the default method is used, then the employee gets paid an equivalent of 1 month of salary, and the set *Daily Salary* field, they will get the amount for the day multiplied by 30." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:257 -msgid "Time Off with Payroll" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:149 +msgid "There are two payslips printout formats, one for normal salaries and one for end of service payslips, it is based on the employee being archived and having a departure reason or not." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:259 -msgid "The work entry types and time off types are fully integrated between the *Time Off* and *Payroll* apps. There are several default time off types and work entry types specific to Hong Kong which are installed automatically along with the *Hong Kong - Payroll* module." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:153 +msgid "End of service provision (EOS Provision)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:263 -msgid "Go to :menuselection:`Payroll app --> Configuration --> Work Entry Types` and click :guilabel:`New`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:155 +msgid "The |EOS| provision provides the calculation for the end-of-service provision amount that the company puts aside every month to count for the |EOS| that will be paid to them as an |EOS| allowance." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:265 -msgid "There are two checkboxes to be considered when setting up the work entry type:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:159 +msgid "Unlike the |EOS|, the provision is part of the employee's payslip from the start of their contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:267 -msgid ":guilabel:`Use 713`: Include this leave type as part of 713 computation." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:161 +msgid "Just like the |EOS|, the provision has two calculations depending on the period spent by the employee in the company:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:268 -msgid ":guilabel:`Non-full pay`: 80% of the :abbr:`ADW (Average Daily Wage)`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:164 +msgid "Less than 5 years: :math:`\\frac{\\text{Monthly Wage}}{30}\\times{\\frac{21}{12}}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong Work Entry Type." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:165 +msgid "More than 5 years: :math:`\\frac{\\text{Monthly Wage}}{30}\\times{\\frac{30}{12}}`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:274 -msgid ":ref:`Creating and configuring work entry types `" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:168 +msgid "This rule is not shown to the employee on the payslip printout and it does not affect their net payable, it is only for internal use by the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:277 -msgid "Understanding 713 Ordinance" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:172 +msgid "Annual leave provisions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:279 -msgid "The *Hong Kong - Payroll* module is compliant with 713 Ordinance which relates to the :abbr:`ADW (Average Daily Wage)` computation to ensure fair compensation for employees." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:174 +msgid "Annual leave provisions are used for calculating the annual leave provision accumulated each month, just like the |EOS| provision, it does not affect the total amount paid to the employee, it is for internal use by the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:282 -msgid "The ADW computation is as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:178 +msgid "It is calculated by dividing the employee's total salary (Total Salary = Wage + Allowances) by **30** to get the daily salary. The daily salary is then multiplied by the eligible leave days and divided by **12** to determine the monthly provision amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:287 -msgid "Hong Kong ADW Formula." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:182 +msgid "\\text{Monthly Leave Provision} = \\frac{\\text{Total Salary} \\times \\text{Number of Leave Days}}{30}\n" +"\\div 12" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:287 -msgid ":abbr:`ADW (Average Daily Wage)` equals the total wage in a 12-month period, minus the wages of non-full pay, divided by the total days in a 12-month period minus the days of non-full pay." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:189 +msgid "Social insurance contributions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:291 -msgid "For 418 compliance, there is no automated allocation of the *Statutory Holiday* entitlement to the employees. As soon as 418 requirements are met, manually allocate the leaves, via the *Time Off* app." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:191 +msgid "Social insurance contributions calculate the *social insurance*, which is only available to |UAE| nationals." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:296 -msgid "Before generating payslips, ensure the statuses are :guilabel:`Done` to validate the outcome." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:194 +msgid "The company contributes **15%** of the total monthly salary for the employee if the company is in **Abu Dhabi** and **12.5%** if the company is in **another Emirate**." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:301 -msgid "Period" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:198 +msgid "The total monthly salary for the employee = [basic + all allowances set on the contract]." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:302 -msgid "Days" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:200 +msgid "On the other hand, the employee contributes **5%** of their total monthly salary and that amount gets deducted from the payslip amount." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:303 -msgid "Wage" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:204 +msgid "Annual remaining leave balance rules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:304 -msgid "Commission" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:206 +msgid "Annual remaining leave balance rules are used for calculating the amount to be paid to or taken from the employee based on the number of leave days deserved by the employee during the current year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:305 -msgid "Total" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:209 +msgid "The annual leave :ref:`time off type ` is specified using the :guilabel:`Is Annual Leave` checkbox." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:306 -msgid "ADW" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:212 +msgid "If enabled, the rule calculates the amount of leave days deserved by the employee up to the current date and subtracts the number of annual leave days taken, and if the result is positive, this means that the employee should be compensated for remaining amount and if negative this means that the employee is liable to the company for the difference." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:307 -msgid "Leave Value" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:218 +msgid "Sick leave rules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:308 -msgid "Jan" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:220 +msgid "Sick leave rules provide the calculation for cases where the employee is on sick leave and decides how the payslip should be affected." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:309 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:323 -msgid "31" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:223 +msgid "There are **3 cases** for the employee to have:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:310 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:312 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:317 -msgid "$20200" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:225 +msgid "**Fully paid sick leave:** The employee can upload a sick leave certificate (SLI). Employees are eligible for **15 days** of this type of leave per calendar year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:311 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:325 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:332 -msgid "$0" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:229 +msgid "The SLI is not mandatory in Odoo but can be done from the setup of the :ref:`time off types `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:313 -msgid "$651.61 ($20200/31)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:232 +msgid "**50% paid sick leave:** Same as the fully paid one, but the employees are eligible for **30 days** from this leave type. These 30 days are counted after the first **15** fully paid days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:314 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:321 -msgid "N/A" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:234 +msgid "**0% paid sick leave:** Same as the fully paid one, but the employees are eligible for **45 days** from this leave type. These **45 days** are counted after the first **15/30** fully/half-paid days." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:315 -msgid "Feb" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:239 +msgid "As per the labor law of the United Arab Emirates, the 15, 30, 45 days are not specified as working days or calendar days so this point will rely on the company policy." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:316 -msgid "28" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:242 +msgid "The amount paid for the employee per sick leave day is counted as follows:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:318 -msgid "$5000" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:244 +msgid "\\frac{\\text{Number of Leave Days} \\times \\text{Gross Per Month}}{30} \\times \\text{Percentage}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:319 -msgid "$25200" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:249 +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:274 +msgid "Where the gross per month is the basic + all other allowances set on the employee's contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:320 -msgid "$769.49 ($45400/59)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:252 +msgid "Daman investments end of service programme (DEWS)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:322 -msgid "Mar (One Day Annual Leave)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:254 +msgid "|DEWS| allows for calculating the |DEWS| amounts for the employees who are eligible for it and would like to be registered on it under their current contract with the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:324 -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:326 -msgid "$20324.33" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:257 +msgid "It is calculated based on the number of years that employees have spent in the company:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:327 -msgid "$730.27 ($65724.33/90)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:259 +msgid "**Less than 5 years:** 5.83% is deducted from the employee's **BASIC** salary towards the DEWS." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:328 -msgid "$769.49" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:260 +msgid "**More than 5 years:** 8.33% of The employee's **BASIC** is deducted from the total payable for that employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:329 -msgid "Apr (One Day 80% Sick Leave)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:264 +msgid "Unpaid leaves" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:331 -msgid "$20117.56" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:266 +msgid "Unpaid leaves allows for calculating the amount to be deducted when an employee takes an unpaid leave. It is calculated by the following equation:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:335 -msgid "$584.22 ($730.27*0.8)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:269 +msgid "\\frac{\\text{Total Number of Unpaid Leave Days} \\times \\text{Gross Per Month}}{30}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:338 -msgid "Here is an example demonstrating the 713 logic:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:277 +msgid "Out of contract days" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:340 -msgid "**Jan**: Generate a payslip with a monthly wage of $20200. The :abbr:`ADW (Average Daily Wage)` is always computed on a cumulative basis of the trailing 12-months." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:279 +msgid "The out of contract days rule provides a calculation for the days before/after the contract period that overlaps with the contract of days on the employee's payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:342 -msgid "**Feb**: Generate a similar payslip, but add an :guilabel:`Other Input Type` for the :guilabel:`Commission`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:283 +msgid "Payslips are generated for the period of 1st-30th of September but the contract expires on the 21st, in this case, there are 7 days flagged as out of contract." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:344 -msgid "**Mar**: Apply for **one** full-paid annual leave in March. The salary compensation for the leave taken is based on :abbr:`ADW (Average Daily Wage)` thus far." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:286 +msgid "It is calculated by the following equation:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:0 -msgid "Hong Kong March 713." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:288 +msgid "\\frac{\\text{Total Number of Unpaid Leave Days} \\times \\text{Gross Per Month}}{\\text{Number of Days in Current Month}}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:350 -msgid "**Apr**: Apply for a 1-day non-full pay leave in April. Since this is a non-full pay leave, the :abbr:`ADW (Average Daily Wage)` is computed accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:294 +msgid "Manual deductions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:0 -msgid "Hong Kong April 713." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:296 +msgid "Manual deductions allows the user to add manual deductions to be applied to employees per payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:357 -msgid "The value of :abbr:`ADW (Average Daily Wage)` is computed in the backend, and not be visible to the user." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:298 +msgid "The amount to be deducted and the description of the deduction is to be set directly on the payslip manually as other inputs." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:361 -msgid "`HK 713 Ordinance `_" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:302 +msgid "Net salary" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:362 -msgid "`HK 418 Ordinance `_" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:304 +msgid "Net salary showcases the net amount that the employee will get based on the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:365 -msgid "Generate reports" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:306 +msgid "It is calculated by adding basic to all allowances and deducting all deductions from it." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:367 -msgid "Before generating the below reports, setup the following in :menuselection:`Settings app --> Payroll`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:309 +msgid "The approach taken for the rules above is to first get the full amounts for all static amounts that are set on the contract and then deduct the amounts that should be deducted such as unpaid leaves, sick leaves, manual deductions, commission, etc." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:370 -msgid "Configure the following in the :guilabel:`Accounting` section:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:314 +msgid "Generating accounting entries from payslips" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:372 -msgid "Tick the :guilabel:`Payroll HSBC Autopay` checkbox." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:316 +msgid "The accounts are linked to each payroll rule as a debit or credit so that when a draft entry is generated from a payslip, the amounts are reflected on the accounts accordingly." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:374 -msgid ":guilabel:`Autopay Type`: Set as :guilabel:`H2H Submission`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:319 +msgid "The accounts need to be set in a way that would make the end-result entry balanced, otherwise a warning is raised if it is not balanced and it will not generate the entry." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:375 -msgid "Select the :guilabel:`Bank Account` to use." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:322 +msgid "After reviewing the payslips and making sure that all the amounts are correct, generate a draft entry, either one entry for all employees or an entry per employee depending on the setup done on the settings." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:377 -msgid "Configure the following in the :guilabel:`HK Localization` section:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:327 +msgid "Debit and credit accounts set up for the basic and allowance rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:379 -msgid ":guilabel:`Employer's Name shows on reports`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:0 +msgid "Accounting setup for the rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:380 -msgid ":guilabel:`Employer's File Number`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:335 +msgid "After a batch or a payslip's journal entry has been posted, the company can proceed to pay their employees." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:381 -msgid ":guilabel:`Manulife MPF Scheme`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:338 +msgid "In the batch itself or on the payslip, by clicking on the pay button, a payment is created and linked to the posted entry for the payslip. The same can be done for batch payslips if one payment is done from a single/multiple payment bank/cash journal." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong Payroll Settings." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:343 +msgid "Once the payslip is generated, the employee will be able to access the slips from their portal users. They will automatically receive an email mentioning that the payslips are now available to be viewed on their portal view." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:387 -msgid "IRD report" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:348 +msgid "Payslip printouts" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:389 -msgid "There are a total of **four** IRD reports available:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:350 +msgid "Two printout formats can be extracted from the payslip, it depends on the type of the payslip either a *Monthly* payslip or an *End of Service* Payslip. It is triggered if the employee for the payslip is generated is archived during that month." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:391 -msgid ":guilabel:`IR56B`: employer's Return of Remuneration and Pensions." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:355 +msgid "Instant Pay structure" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:392 -msgid ":guilabel:`IR56E`: notification of Commencement of Employment." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:357 +msgid "This structure is used when off-cycle payslips are required to make payments to employees for special situations, such as one-time or advance salaries. Examples of one-time payments include:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:393 -msgid ":guilabel:`IR56F`: notification of Ceasation of Employment (remaining in HK)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:361 +msgid "Bonuses" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:394 -msgid ":guilabel:`IR56G`: notification of Ceasation of Employment (departing from HK permanently)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:362 +msgid "Allowances" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:396 -msgid "Go to :menuselection:`Payroll app --> Reporting`, and select one of the :guilabel:`IR56B/E/F/G Sheet` options:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:365 +msgid "Salary Advances" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:400 -msgid "Fill in the relevant information for the IRD report." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:367 +msgid "Employees may request a portion of their salary before the end of the pay cycle. In such cases, the payroll officer can issue a salary advance using the following steps:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:401 -msgid "Click on :guilabel:`Populate`, and the :guilabel:`Eligible Employees` smart button appears." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:370 +msgid "Create an off-cycle payslip using the United Arab Emirates: Instant Pay structure." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:402 -msgid "The :guilabel:`Employee Declarations` status is :guilabel:`Draft` and changed to :guilabel:`Generated PDF` status once the schedule runs." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:372 +msgid "Add another input of type Salary Advance and specify the amount to be paid to the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:404 -msgid "Once the PDF is generated, the IRD form may be downloaded." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:374 +msgid "Confirm the payslip and process the payment." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong IR56B report." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:376 +msgid "In the next cycle, when a payslip is generated for the employee using the `United Arab Emirates: Regular Pay` structure, another input type, `Advance Recovery` is automatically added for the same amount that was previously paid." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:410 -msgid "The scheduled action called *Payroll: Generate pdfs* can be manually triggered. It is set by default to run the PDF generation monthly." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:381 +msgid "If the employee and payroll officer agree to recover the advance over two consecutive cycles, the payroll officer can adjust the Advance Recovery amount on the first payslip. The remaining balance is automatically added to the following cycle." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:414 -msgid "Manulife MPF sheet" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:388 +msgid "Wages protection system (WPS) reports" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:416 -msgid "Go to :menuselection:`Payroll app --> Reporting --> Manulife MPF Sheet`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:390 +msgid "The |WPS| is a report that needs to be submitted by the company to prove that they paid their employees the right amounts on the right dates. It can either be generated per payslip or batch." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:419 -msgid "Select the relevant :guilabel:`Year`, :guilabel:`Month`, and :guilabel:`Sequence No.`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:393 +msgid "The following steps need to be followed before generating the report:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:420 -msgid "Click on :guilabel:`Create XLSX`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:395 +msgid "Go to :menuselection:`Payroll --> Configuration --> Settings` and under the :guilabel:`UAE Payroll WPS Settings` section, configure the following:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:421 -msgid "The *Manulife MPF XLSX* file is then generated, and available for download." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:398 +msgid ":guilabel:`Employer Unique ID`: Set a unique identifier for the company to be used in the |WPS| report." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong Manulife Sheet." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:400 +msgid ":guilabel:`Salaries Bank Account`: Select a bank account or start typing to :guilabel:`Create and edit` a new bank account." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:427 -msgid "Odoo will not be developing further reports for other MPF trustee as there will soon be an eMPF platform setup by the local government." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:404 +msgid "When setting the :guilabel:`Salaries Bank Account` make sure to complete the following:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:431 -msgid "`eMPF `_" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:406 +msgid ":guilabel:`Account Holder`: set as the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:434 -msgid "HSBC autopay report" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:407 +msgid ":guilabel:`Account Number`: has to be a valid IBAN." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:436 -msgid "If *HSBC Autopay* is selected as the batch payment method, click on :guilabel:`Create HSBC Autopay Report`, and fill in the mandatory fields:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:408 +msgid ":guilabel:`Bank`: has to have the :guilabel:`UAE Routing Code Agent ID` set." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:-1 -msgid "Hong Kong HSBC Autopay wizard." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:409 +msgid ":guilabel:`Send Money`: should be enabled and set to :guilabel:`Trusted`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/hong_kong.rst:442 -msgid "This creates an :file:`.apc` file format which can be uploaded to the HSCB portal for processing." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:411 +msgid "Set the unique identifier on all of the employees who are a part of the target of the batch/payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:3 -msgid "Jordan" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:414 +msgid "The :guilabel:`Identification No` field can be found on the employee's page under the :guilabel:`Private Information` tab." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:5 -msgid "The Jordan **Payroll** localization package offers a comprehensive solution for managing payroll in compliance with Jordanian labor laws. It supports income tax calculations using progressive tax brackets, social security contributions from both employees and employers and basic salary calculations, including allowances such as housing and transportation." +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:417 +msgid "Once the initial setup is done, the |WPS| can be generated either for one payslip or for a batch as follows:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:13 -msgid ":ref:`Install ` the following modules to get all the features of the Jordan **Payroll** localization:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:420 +msgid "Generate the payslip one by one or as a batch." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:22 -msgid ":guilabel:`Jordan - Payroll`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:421 +msgid "Post the draft entity related to the payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:23 -msgid "`l10n_jo_hr_payroll`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:422 +msgid "Create the payment report and set the :guilabel:`Export Format` to :guilabel:`UAE WPS`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:24 -msgid "Payroll module supporting basic calculation, tax income brackets, and national contribution tax and social security" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:425 +msgid "The report comes in a :file:`.sif` format as per the governmental requirements, so either use software that can open :file:`.sif` files or convert it to another format (:file:`.xslx`) to be able to review it." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:26 -msgid ":guilabel:`Jordan - Payroll with Accounting`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:429 +msgid "The resulting file consists of the following:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:27 -msgid "`l10n_jo_hr_payroll_account`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:431 +msgid "**Employee Detail Record** (**EDR**): includes details of the employees on the batch. There should be one :abbr:`EDR (Employee Detail Record)` record per employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:28 -msgid "Bridge module between **Payroll** and **Accounting**" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:433 +msgid "**Employee Variable Pay** (**EVP**): includes the details of the variable salary the employee got on that payslip. If the employee has any. The variable amounts are calculated from when other inputs are used that are linked to the salary rules (:menuselection:`Payroll --> Configuration --> Rules`)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:31 -msgid ":doc:`Jordan fiscal localization documentation <../../../finance/fiscal_localizations/jordan>`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:437 +msgid "**Salary Control Record** (**SCR**): There should only be one :abbr:`SCR (Salary Control Record)` per |WPS| file as it indicates the employer details and the totals for the payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:34 -msgid "Basic calculations" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:3 +msgid "United States" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:36 -msgid "The Jordan **Payroll** localization package in Odoo provides foundational payroll management tools that are compliant with Jordan's labor laws and regulations. Key features include:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:5 +msgid "The U.S. payroll localization covers salary computations for employees, including both employee and employer payroll taxes. It accounts for federal and state regulations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:39 -msgid "**Basic salary calculations**: Odoo supports the computation of employee salaries based on predefined salary structures, ensuring accurate payroll processing." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:8 +msgid "The states included in this localization are:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:41 -msgid "**Social security contributions**: It handles social security deductions for employees and employer contributions, aligning with local regulations." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:10 +msgid "California (CA)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:43 -msgid "**Taxation support**: The system is configured to handle income tax calculations in Jordan, including deductions based on progressive tax brackets as required by Jordanian labor and tax laws." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:11 +msgid "New York (NY)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:46 -msgid "**Custom allowances and deductions**: The localization supports additional allowances, deductions, or overtime as part of payroll computation." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:12 +msgid "Texas (TX)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:49 -msgid "These features ensure businesses can manage payroll effectively and comply with Jordanian-specific legal requirements. For enhanced functionality, businesses may leverage Odoo's flexibility to customize payroll workflows." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:13 +msgid "Florida (FL)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:54 -msgid "Social security" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:14 +msgid "Colorado (CO)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:56 -msgid "The Jordan **Payroll** localization package in Odoo simplifies social security management by automating calculations for both employees and employers. Contributions are based on a percentage of the employee's basic salary, with a maximum insurable wage cap in line with Jordanian Social Security Corporation (SSC) regulations." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:15 +msgid "Alabama (AL)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:62 -msgid "Employee contributions" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:16 +msgid "Washington (WA)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:64 -msgid "Odoo calculates the employee's social security deduction as 7.5% of their basic salary, up to the insurable wage cap of 3,000 JOD. If the employee's salary exceeds this cap, the deduction is based on the capped amount. This ensures compliance with :abbr:`SSC (Jordanian Social Security Corporation)` requirements and reflects accurately on the employee's payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:17 +msgid "Nevada (NV)" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:70 -msgid "Employer contributions" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:20 +msgid "Federal taxes (Income, :abbr:`FICA (Federal Insurance Contributions Act)`, and Unemployment) for both employees and employers are covered by default in the Odoo U.S. Payroll localization. Additional states will be added over time, so check back for updates." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:72 -msgid "For employers, Odoo computes social security contributions as 14.25% of the employee's basic salary, also capped at 3,000 JOD. Like the employee contributions, if the salary exceeds this cap, the employer's contribution is calculated based on the capped amount. These contributions include pensions, workplace injury insurance, and other mandated benefits." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:24 +msgid "Before configuring the United States localization, refer to the general :doc:`payroll <../../payroll>` documentation, which includes the basic information for all localizations, as well as all universal settings and fields." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:80 -msgid "**Capped contributions**: The system ensures that both employee and employer contributions are aligned with the SSC-mandated insurance cap." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:31 +msgid "Apps & modules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:82 -msgid "**Automated calculations**: Contributions are automatically calculated and included in payroll, reducing errors and administrative work." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:33 +msgid ":ref:`Install ` the following modules to get all the features of the United States payroll localization:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:84 -msgid "**Compliance with regulations**: Odoo's configuration ensures full compliance with Jordanian social security laws, reflecting the correct rates and caps for both sides." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:41 +msgid "Dependencies" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:88 -msgid "Income tax calculation" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:43 +msgid ":guilabel:`United States - Payroll`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:90 -msgid "The Jordan **Payroll** localization package automates income tax calculations using progressive tax brackets, ensuring compliance with Jordanian labor laws. The system applies income tax rates based on the employee's annual gross income, with higher brackets subject to increased percentages. The calculations are divided into six brackets, and the appropriate tax is deducted monthly." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:44 +msgid "`l10n_us_hr_payroll`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:98 -msgid "**5% bracket**: Applicable to annual gross income up to 5,000 JOD. Odoo calculates 5% of the income within this range. If the gross income is below 5,000 JOD, the entire amount is taxed at 5%." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:45 +msgid "hr_payroll" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:101 -msgid "**10% bracket**: Applicable to annual gross income between 5,001 and 10,000 JOD. Only the portion of income exceeding 5,000 JOD is taxed at 10%. For example, if the gross income is 7,000 JOD, only 2,000 JOD is taxed at 10%." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:46 +msgid "hr_contract_reports" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:104 -msgid "**15% bracket**: Applicable to annual gross income between 10,001 and 15,000 JOD. The portion of income exceeding 10,000 JOD up to 15,000 JOD is taxed at 15%. For instance, if the gross income is 12,000 JOD, only 2,000 JOD is taxed at 15%." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:47 +msgid "hr_work_entry_holidays" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:107 -msgid "**20% bracket**: Applicable to annual gross income between 15,001 and 20,000 JOD. Income within this range is taxed at 20%, with deductions automatically adjusted by Odoo." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:48 +msgid "hr_payroll_holidays" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:109 -msgid "**25% bracket**: Applicable to annual gross income between 20,001 and 1,000,000 JOD. Income beyond 20,000 JOD up to 1,000,000 JOD is taxed at 25%. For higher incomes, Odoo ensures accurate calculations by applying the cap of this range." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:49 +msgid "Provides U.S. payroll basics, including employee tax details, salary structures (Basic/Gross/Net), tax rules, and W-2/3PA reporting." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:112 -msgid "**30% bracket**: Applicable to annual gross income exceeding 1,000,000 JOD. Any income above this amount is taxed at 30%, with the system ensuring accurate monthly deductions for high-income earners." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:51 +msgid ":guilabel:`United States - Payroll with Accounting`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:117 -msgid "Automated process" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:52 +msgid "`l10n_us_hr_payroll_account`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:119 -msgid "Odoo determines the appropriate tax bracket for each employee based on their gross annual income and applies the corresponding rates. These deductions are prorated and deducted monthly, simplifying payroll management and ensuring compliance." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:53 +msgid "hr_payroll_account" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:126 -msgid "**Progressive tax system**: Calculates taxes for each income range individually, ensuring fairness and accuracy." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:54 +msgid "l10n_us" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:128 -msgid "**Automated deductions**: Ensures a smooth payroll workflows with accurate and timely monthly tax deductions." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:55 +msgid "l10n_us_hr_payroll" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/jordan.rst:130 -msgid "**Alignment with Jordanian regulations**: Fully complies with Jordanian tax laws, minimizing manual intervention and errors." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:56 +msgid "Links payroll and accounting by creating journal entries (per payslip if needed) to record payroll in the company's books." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:3 -msgid "United Arab Emirates" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:60 +msgid ":doc:`Configure the United States fiscal localization <../../../finance/fiscal_localizations/united_states>`" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:14 -msgid ":ref:`Install ` the following modules to get all the features of the **United Arab Emirates** **Payroll** localization:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:64 +msgid "General configurations" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:23 -msgid ":guilabel:`United Arab Emirates - Payroll`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:66 +msgid "First, the company must be configured. Navigate to :menuselection:`Settings app --> Users & Companies --> Companies`. From the list, select the desired company, and configure the following fields:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:24 -msgid "`l10n_ae_hr_payroll`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:70 +msgid ":guilabel:`Company Name`: Enter the business name in this field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:25 -msgid "Includes all rules, calculations, and salary structures." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:71 +msgid ":guilabel:`Address`: Complete the full address, including the :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`, and :guilabel:`Country`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:26 -msgid ":guilabel:`United Arab Emirates - Payroll with Accounting`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:75 +msgid "The state selected in the company's address is associated as the *work address* by default for the employee, and the one used to calculate payroll taxes." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:27 -msgid "`l10n_ae_hr_payroll_account`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:78 +msgid ":guilabel:`Tax ID`: Enter the company's :abbr:`EIN (Employer Identification Number)`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:28 -msgid "Includes all accounts related to the payroll module." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:79 +msgid ":guilabel:`Company ID` : Enter the business's state ID number." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:31 -msgid ":doc:`United Arab Emirates fiscal localization documentation <../../../finance/fiscal_localizations/united_arab_emirates>`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:80 +msgid ":guilabel:`Currency`: By default, :abbr:`USD (US Dollars)` is selected. If not, select :guilabel:`USD` from the drop-down menu." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:37 -msgid "First, configure the :doc:`employee general information <../../employees/new_employee>` and then configure the following fields under the :guilabel:`Private Information` tab:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:82 +msgid ":guilabel:`Phone`: Enter the company phone number." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:40 -msgid ":guilabel:`Nationality (Country)`: The nationality affects an employee's payslips, whether they are nationals or expats." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:83 +msgid ":guilabel:`Email`: Enter the email used for general contact information." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:42 -msgid ":guilabel:`Identification Number`: Used to extract the :ref:`WPS report `." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:86 +msgid "Ensure the information is accurate, as it is used when creating W-2s." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:44 -msgid ":guilabel:`Bank Account`: Used to extract the :ref:`WPS report ` and generate payments for those employees." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:91 +msgid "Every employee being paid must have their employee profiles configured for the United States payroll localization. Additional fields are present after configuring the database for the United States." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:48 -msgid "The :guilabel:`Nationality (Country)` field needs to be set even if the employee is a |UAE| national since there is a different type of handling if they are citizens of a |GCC| country." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:94 +msgid "To update an employee form, open the :menuselection:`Employees` app and click on the desired employee record. On the employee form, configure the required fields in the related tabs." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:54 -msgid "Once the employee form has been created, ensure the :doc:`contract <../contracts>` is enabled by clicking on the :icon:`fa-book` :guilabel:`Contracts` smart button, or going to :menuselection:`Employees --> Contracts`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:98 +msgid "Work tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:58 -msgid "The following contractual information related to employees working in the United Arab Emirates are found under the :guilabel:`Salary Information` tab:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:100 +msgid "Enter the :guilabel:`Work Address` for the employee in the :guilabel:`Location` section of the :guilabel:`Work` tab." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:63 -msgid ":guilabel:`Scheduled Pay`: the frequency of payslip issuance." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:104 +msgid "The state selected in this address determines which salary rules Odoo applies when calculating taxes." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:66 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:108 -msgid ":guilabel:`Housing Allowance`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:108 +msgid "Personal tab" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:67 -msgid ":guilabel:`Transportation Allowance`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:110 +msgid "Ensure the employee has a minimum of one :ref:`trusted bank account ` listed in the :guilabel:`Bank Accounts` field in the :guilabel:`Private Contact` section." +msgstr "" + +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:113 +msgid "These accounts are used to pay the employee, via an automation through a NACHA payment file. Payroll **cannot** be processed for employees without a *trusted* :ref:`bank account `. If no trusted bank account is set, a warning appears on the **Payroll** dashboard and an error occurs when attempting to run payroll." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:68 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:116 -msgid ":guilabel:`Other Allowance`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:118 +msgid "Ensure there is a valid :guilabel:`SSN No` entered in the :guilabel:`Citizenship` section . The last four digits of the :abbr:`SSN (Social Security Number)` number appears on the employee's payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:71 -msgid "The allowance values set on the contract are used on the payslip lines as allowances." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "Where bank account information is located on the employee profile." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:73 -msgid ":guilabel:`Number of Leave Days`: Used to specify the number of annual leave days that an employee deserves in a particular year. Regardless of the actual number of leaves that the employee gets (extra leave days for some internal company reasons), the final calculation of the end of service and unpaid leaves is dependent on the number set on this field." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:128 +msgid "Contract overview section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:79 -msgid "The :guilabel:`Number of Leave Days` affects the calculation for unpaid leave provisions." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:130 +msgid "This section holds information that drives salary calculations. Ensure the following fields are configured:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:81 -msgid ":guilabel:`Is DEWS Applied`: DIFC Employee Workplace Savings (DEWS), if the employee is a |UAE| national and has |DEWS| applied, tick this checkbox." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:133 +msgid ":guilabel:`Contract`: The Validity of the compensation conditions can be updated depending on the needs." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:83 -msgid ":guilabel:`Computed Based On Daily Salary`: Defines the way that the end of service is calculated:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:135 +msgid ":guilabel:`Wage Type`: Select how the employee is paid." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:85 -msgid "Do not tick this checkbox if the standard calculation is to be used. This computes the compensation amount by dividing the monthly salary by **30** and then multiplying it by **21**." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:137 +msgid "Select :guilabel:`Fixed Wage` for salaried employees who receive the same amount each pay period." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:87 -msgid "Tick this checkbox and directly set the actual :guilabel:`Daily Salary` so that it is used in the end of service calculation." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:139 +msgid "Select :guilabel:`Hourly Wage` for employees paid based on hours worked." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:91 -msgid "Salary structures and salary rules" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:142 +msgid "Set a default :guilabel:`Wage Type` in the salary :ref:`Structure Type ` to configure employees in bulk. If needed, the default can be overridden on individual employee records if exceptions are needed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:94 -msgid "Other input rules" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:146 +msgid ":guilabel:`Contract Type`: Determines how the employee is paid and classified, such as :guilabel:`Salary-exempt`, :guilabel:`Salary-nonexempt`, :guilabel:`Hourly`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:96 -msgid "The following are the different allowances that can be defined directly on the :doc:`payslip form <../payslips>` to allow for the values that are set against these inputs to affect the |WPS| calculations as monthly variable salaries for the specific employee that they are linked to." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:150 +msgid "This field is visible on payslips. Some states require payslips to state if the employee is exempt or non-exempt from overtime. Ensure the selection follows the state laws." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:100 -msgid "Rules that are related to the |WPS| setup, are linked to other input types, and whenever they are used, their values are reflected on the |WPS| as monthly variable salary for that specific employee." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:153 +msgid ":guilabel:`Pay Category`: Select :guilabel:`United States: Employee` for this field. This defines when the employee is paid, their default working schedule, and the work entry type it applies to." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:104 -msgid "**Type**" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The contract overview section of the employee form of the payroll tab." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:104 -msgid "**Code**" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:160 +msgid "Schedule section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:106 -msgid ":guilabel:`Conveyance Allowance`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:162 +msgid ":guilabel:`Work Entry Source`: Defines how :doc:`work entries <../work_entries>` are generated for payroll during the specified pay period. The options are:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:106 -msgid "`CONVALLOW`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:165 +msgid ":guilabel:`Working Schedule`: Based on the employee's assigned :ref:`working schedule ` (e.g., 40 hours per week)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:108 -msgid "`HOUALLOW`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:167 +msgid ":guilabel:`Attendances`: Based on :doc:`approved checked-in hours <../../attendances/management>` in the **Attendances** app." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:110 -msgid ":guilabel:`Medical Allowance`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:169 +msgid ":guilabel:`Planning`: Based on :ref:`scheduled shifts ` in the **Planning** app." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:110 -msgid "`MEDALLOW`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:172 +msgid ":guilabel:`Extra Hours`: Tick the checkbox to allow the **Attendances** app to add any extra work entries logged by the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:112 -msgid ":guilabel:`Annual Passage Allowance`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:174 +msgid ":guilabel:`Working Hours`: Using the drop-down menu, select the default work schedule. This is particularly important for employees available to receive overtime pay (typically hourly employees, not salaried)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:112 -msgid "`ANNUALPASSALLOW`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:179 +msgid "W-2 form section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:114 -msgid ":guilabel:`Overtime Allowance`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:181 +msgid "A W-2 is an annual tax form that reports an employee's wages, taxes, and benefits. Employees use it to file their tax returns. The options below correspond to checkboxes in *box 13* of the W-2 form. Select any that apply to the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:114 -msgid "`OVERTIMEALLOW`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:185 +msgid ":guilabel:`Statutory Employee`: Tick this box if the employee is exempt from income tax, but subject to :abbr:`FICA (Federal Insurance Contributions Act)` taxes." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:116 -msgid "`OTALLOW`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:187 +msgid ":guilabel:`Retirement Plan`: Tick this box if the employee is an active contributor to an employer-sponsored retirement plan." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:118 -msgid ":guilabel:`Leave Encashment`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:189 +msgid ":guilabel:`Third-Party Sick Pay`: Tick this box if the employee is covered under a plan where sick pay benefits may be provided by a third party (e.g., an insurance company) during the year." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:118 -msgid "`LEAVEENCASH`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:193 +msgid "W-4 form section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:122 -msgid "End of service (EOS)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:195 +msgid "A W-4 is an :abbr:`IRS (Internal Revenue Services)` form that determines an employee's federal tax withholding, which the employer remits directly to the :abbr:`IRS (Internal Revenue Services)`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:124 -msgid "End of service (EOS) provides the calculation for the allowance that the employee gets at the end of their service. It is triggered when the employee's departure reason is set by archiving the employee's record." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:198 +msgid "Configure any relevant fields for the employee in this section." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:128 -msgid "There are several different calculations depending on the scenario:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:201 +msgid "State filing section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:130 -msgid "*The Employee spent less than a year in the company*: The employee does not get any |EOS| allowance since they are not eligible for it (they are eligible once they complete their first year in the company)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:203 +msgid "An employee's marital status impacts their payroll taxes. Configure the following fields regarding their status and withholdings." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:133 -msgid "*The Employee spent more than a year and less than 5 years in the company*: The employee is eligible for an equivalent of **21** days of salary for each year they spent on the company." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:206 +msgid ":guilabel:`Status`: Using the drop-down menu, select the employee's *federal* filing status. The options are :guilabel:`Single`, :guilabel:`Married/RDP filing jointly`, :guilabel:`Married/RDP filing separately`, :guilabel:`Head of household`, or :guilabel:`Qualifying surviving spouse/RDP with child`. This typically comes from the employee's W-4 form." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:137 -msgid "There are two ways for calculating the daily wage that gets paid for the employee against the 21 days of the |EOS|: Either by the default way of dividing the monthly basic wage by 30. Or, it can be manually input on the contract of the employee under the *Daily Salary* field." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:210 +msgid ":guilabel:`Tax Status`: Using the drop-down menu, select the employee's *state* filing status, if applicable." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:141 -msgid "*The Employee spent more than 5 years in the company*: The employee is eligible for an equivalent of **30** days of salary for each year they spent on the company. In this case, if the default method is used, then the employee gets paid an equivalent of 1 month of salary, and the set *Daily Salary* field, they will get the amount for the day multiplied by 30." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:214 +msgid "The federal and state statuses do **not** need to match." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:147 -msgid "There are two payslips printout formats, one for normal salaries and one for end of service payslips, it is based on the employee being archived and having a departure reason or not." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:217 +msgid "As of 2025, these states do **not** collect state income tax: Alaska, Florida, Nevada, New Hampshire, South Dakota, Tennessee, Texas, Washington, and Wyoming. If a payroll localization exists for these states, there are **no** corresponding state options in the :guilabel:`Tax Status` field. Leave it blank." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:151 -msgid "End of service provision (EOS Provision)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:222 +msgid ":guilabel:`Withholding Allowance`: Enter the total annual amount to be withheld from the employee's pay for the year, for state taxes. Only fill this out if the employee lives in a state with state income tax." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:153 -msgid "The |EOS| provision provides the calculation for the end-of-service provision amount that the company puts aside every month to count for the |EOS| that will be paid to them as an |EOS| allowance." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:225 +msgid ":guilabel:`Extra Withholding`: Enter the total *extra* annual amount (not including the :guilabel:`Withholding Allowance` amount) to be withheld from the employee's pay for the year, for state taxes, if the employee lives in a state with state income tax." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:157 -msgid "Unlike the |EOS|, the provision is part of the employee's payslip from the start of their contract." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The state filing section of the employee form, filled out." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:159 -msgid "Just like the |EOS|, the provision has two calculations depending on the period spent by the employee in the company:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:233 +msgid "Common benefits" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:162 -msgid "Less than 5 years: :math:`\\frac{\\text{Monthly Wage}}{30}\\times{\\frac{21}{12}}`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:235 +msgid "The following sections of benefits are considered common ones offered by US employers. This information needs to be populated with the information selected by the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:163 -msgid "More than 5 years: :math:`\\frac{\\text{Monthly Wage}}{30}\\times{\\frac{30}{12}}`" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:239 +msgid "The benefits listed in this section are considered the most commonly offered by companies. If other employee benefits exist that require regular paycheck deductions, they can be added as *inputs*." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:166 -msgid "This rule is not shown to the employee on the payslip printout and it does not affect their net payable, it is only for internal use by the company." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:244 +msgid "Pre-tax deductions" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:170 -msgid "Annual leave provisions" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:246 +msgid "Pre-tax benefits lower the employee's gross wage, which decreases the base amount for tax calculations. These are displayed at the beginning of the payslip before the gross wage is stipulated." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:172 -msgid "Annual leave provisions are used for calculating the annual leave provision accumulated each month, just like the |EOS| provision, it does not affect the total amount paid to the employee, it is for internal use by the company." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:251 +msgid "Retirement plans section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:176 -msgid "It is calculated by dividing the employee's total salary (Total Salary = Wage + Allowances) by **30** to get the daily salary. The daily salary is then multiplied by the eligible leave days and divided by **12** to determine the monthly provision amount." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:253 +msgid "This section is where the employee and employer 401(k) contributions are configured. Fill out the following fields:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:180 -msgid "\\text{Monthly Leave Provision} = \\frac{\\text{Total Salary} \\times \\text{Number of Leave Days}}{30}\n" -"\\div 12" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:256 +msgid ":guilabel:`401(k)`: Enter the amount of money taken out of the employee's payslip each pay period. This can be entered either as a percentage (%) of the payslip amount, or a specific dollar amount per payslip ($/slip)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:187 -msgid "Social insurance contributions" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:259 +msgid ":guilabel:`Matching Amount`: Enter the matching amount the employer contributes to the employee's 401(k), as compared to the employee's contributions. This field can also be configured as either a percentage (%) of the employee's contribution, or a specific dollar amount ($/slip)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:189 -msgid "Social insurance contributions calculate the *social insurance*, which is only available to |UAE| nationals." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:262 +msgid ":guilabel:`Matching Yearly Cap`: If there is a limit to the employer's contribution, enter it as a percentage of the employee's annual salary." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:192 -msgid "The company contributes **15%** of the total monthly salary for the employee if the company is in **Abu Dhabi** and **12.5%** if the company is in **another Emirate**." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:266 +msgid "A company allows employees to contribute to a 401(k) retirement plan, and matches 50% of the employee's contributions, up to $5,000 USD a year. The employee earns $50,000 USD a year, and contributes 20% of their pay to their 401(k), which is $10,000 USD." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:196 -msgid "The total monthly salary for the employee = [basic + all allowances set on the contract]." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:270 +msgid "To configure this, enter `20.00` in the :guilabel:`401(k)` field, `50.00` in the :guilabel:`Matching Amount` field, and `20.00` in the :guilabel:`Matching Yearly Cap` field." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:198 -msgid "On the other hand, the employee contributes **5%** of their total monthly salary and that amount gets deducted from the payslip amount." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:0 +msgid "An employee's retirement configurations." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:202 -msgid "Annual remaining leave balance rules" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:277 +msgid "Health benefits section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:204 -msgid "Annual remaining leave balance rules are used for calculating the amount to be paid to or taken from the employee based on the number of leave days deserved by the employee during the current year." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:279 +msgid "This section is where the employee's health contributions are configured. Populate each of the fields with the corresponding amount deducted from *each paycheck* for the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:207 -msgid "The annual leave :ref:`time off type ` is specified using the :guilabel:`Is Annual Leave` checkbox." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The health benefits section for an employee, filled out with payslip deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:210 -msgid "If enabled, the rule calculates the amount of leave days deserved by the employee up to the current date and subtracts the number of annual leave days taken, and if the result is positive, this means that the employee should be compensated for remaining amount and if negative this means that the employee is liable to the company for the difference." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:286 +msgid "Other benefits section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:216 -msgid "Sick leave rules" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:288 +msgid "This section currently only houses a :guilabel:`Commuter` benefit field. Enter the amount being deducted per paycheck, for applicable commuter benefits." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:218 -msgid "Sick leave rules provide the calculation for cases where the employee is on sick leave and decides how the payslip should be affected." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:292 +msgid "Post-tax deductions section" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:221 -msgid "There are **3 cases** for the employee to have:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:294 +msgid "These types of benefits count as deductions *after* taxes are calculated. They appear towards the end of the payslip before the net amount is displayed. Currently, only one field, :guilabel:`ROTH 401(k)` appears in this section. Enter either a percentage (%) of the payslip amount, or a specific dollar amount per payslip ($/slip) being deducted from the employee's pay, and deposited into a ROTH 401(k) account." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:223 -msgid "**Fully paid sick leave:** The employee can upload a sick leave certificate (SLI). Employees are eligible for **15 days** of this type of leave per calendar year." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:301 +msgid "Payroll configuration" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:227 -msgid "The SLI is not mandatory in Odoo but can be done from the setup of the :ref:`time off types `." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:303 +msgid "Several sections within the **Payroll** app installs a Salary Structure, Structure Type, Rules, and Parameters specific to the United States." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:230 -msgid "**50% paid sick leave:** Same as the fully paid one, but the employees are eligible for **30 days** from this leave type. These 30 days are counted after the first **15** fully paid days." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:307 +msgid "Salary structures & structure types" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:233 -msgid "**0% paid sick leave:** Same as the fully paid one, but the employees are eligible for **45 days** from this leave type. These **45 days** are counted after the first **15/30** fully/half-paid days." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:309 +msgid "When the **l10n_us_hr_payroll** module is :ref:`installed `, a new :guilabel:`Salary Structure` gets installed, :guilabel:`United States: Regular Pay`. This structure includes one :guilabel:`Structure Type`, :guilabel:`United States: Regular Pay`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:238 -msgid "As per the labor law of the United Arab Emirates, the 15, 30, 45 days are not specified as working days or calendar days so this point will rely on the company policy." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:313 +msgid "The :guilabel:`Salary Structure` contains all the individual :ref:`salary rules ` that informs the **Payroll** app how to calculate employee payslips." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:241 -msgid "The amount paid for the employee per sick leave day is counted as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The United States salary structure in the salary structures list." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:244 -msgid "\\frac{\\text{Number of Leave Days} \\times \\text{Gross Per Month}}{30} \\times \\text{Percentage}" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:322 +msgid "Salary rules" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:249 -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:274 -msgid "Where the gross per month is the basic + all other allowances set on the employee's contract." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:324 +msgid "To view the salary rules that inform the salary structure what to do, navigate to :menuselection:`Payroll app --> Configuration --> Structures` and expand the :guilabel:`United States: Employee` group to reveal the :guilabel:`United States: Regular Pay` structure type. Click :guilabel:`United States: Regular Pay` to view the detailed salary rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:252 -msgid "Daman investments end of service programme (DEWS)" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The top portion of the US salary rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:254 -msgid "|DEWS| allows for calculating the |DEWS| amounts for the employees who are eligible for it and would like to be registered on it under their current contract with the company." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:332 +msgid "Each rule defines how pay is calculated, taking into account factors such as commissions, bonuses, taxes, and insurance. The *logic* behind the :guilabel:`United States: Regular Pay` rules is as follows:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:257 -msgid "It is calculated based on the number of years that employees have spent in the company:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:336 +msgid "The first four rules listed reflects all sources of income, including the basic wage listed on the contract (:guilabel:`Basic Salary`), plus any allowances, such as :guilabel:`Commissions`, :guilabel:`Tips`, and :guilabel:`Bonuses`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:259 -msgid "**Less than 5 years:** 5.83% is deducted from the employee's **BASIC** salary towards the DEWS." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:0 +msgid "The basic salary rules for the US localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:260 -msgid "**More than 5 years:** 8.33% of The employee's **BASIC** is deducted from the total payable for that employee." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:343 +msgid "Adding up these inputs is how the gross salary (:guilabel:`Gross Pay`) is calculated. This amount is the base amount used to calculate payroll taxes." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:264 -msgid "Unpaid leaves" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:346 +msgid "The next set of rules are the various pre-tax benefits and taxable income, such as :guilabel:`Medical` insurance contributions and :guilabel:`Commuter Benefits`. After the employee's :guilabel:`Gross Pay` is calculated, Odoo deducts all the pre-tax benefits listed on the employee's contract to determine the employee's :guilabel:`Taxable Income`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:266 -msgid "Unpaid leaves allows for calculating the amount to be deducted when an employee takes an unpaid leave. It is calculated by the following equation:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:0 +msgid "The pre-tax rules for the US localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:269 -msgid "\\frac{\\text{Total Number of Unpaid Leave Days} \\times \\text{Gross Per Month}}{30}" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:354 +msgid "Next, all the various tax rules are listed where both federal and state payroll withholdings are outlined. First, federal tax rules are listed, then any state rules (if any) are listed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:277 -msgid "Out of contract days" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:0 +msgid "The federal tax rules for the US localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:279 -msgid "The out of contract days rule provides a calculation for the days before/after the contract period that overlaps with the contract of days on the employee's payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:361 +msgid "The rule for federal withholdings for `Worker's Compensation` appears *after* several state-specific withholdings are listed, and does **not** appear in the above image, but are listed in the rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:283 -msgid "Payslips are generated for the period of 1st-30th of September but the contract expires on the 21st, in this case, there are 7 days flagged as out of contract." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:365 +msgid "The last rules listed are the post-tax employee deductions." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:286 -msgid "It is calculated by the following equation:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:0 +msgid "The post-tax rules for the US localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:288 -msgid "\\frac{\\text{Total Number of Unpaid Leave Days} \\times \\text{Gross Per Month}}{\\text{Number of Days in Current Month}}" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:370 +msgid "The :guilabel:`Other Inputs` tab contains anything else affecting payroll. This includes items to be added to the payslip, such as :guilabel:`Tips`, and other deductions, such as :guilabel:`Child Support`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:294 -msgid "Manual deductions" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:0 +msgid "The other inputs for the US localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:296 -msgid "Manual deductions allows the user to add manual deductions to be applied to employees per payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:377 +msgid "The employee's net salary is the amount the employee receives from the employer. The formula to calculate the net salary is:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:298 -msgid "The amount to be deducted and the description of the deduction is to be set directly on the payslip manually as other inputs." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:380 +msgid "\\text{Gross Salary} + \\text{Allowances} - \\text{Payroll Taxes} - \\text{General Deductions}" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:302 -msgid "Net salary" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:384 +msgid "Additionally, an extra section exists in payroll calculation for the US called `Employer Deductions`, and it breaks down the payments the employer must make as their portion of payroll taxes." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:304 -msgid "Net salary showcases the net amount that the employee will get based on the payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:0 +msgid "The employer deduction rules for the US localization." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:306 -msgid "It is calculated by adding basic to all allowances and deducting all deductions from it." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:392 +msgid "The rule for employer deductions for `Worker's Compensation` appears *after* several state-specific employer deductions are listed, and does **not** appear in the above image, but are listed in the rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:309 -msgid "The approach taken for the rules above is to first get the full amounts for all static amounts that are set on the contract and then deduct the amounts that should be deducted such as unpaid leaves, sick leaves, manual deductions, commission, etc." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:397 +msgid "Rule parameters" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:314 -msgid "Generating accounting entries from payslips" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:399 +msgid "Some calculations require specific rates associated with them, or wage caps. *Rules Parameters* are capable of listing a value, either a percentage or a fixed amount, to reference in the salary rules." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:316 -msgid "The accounts are linked to each payroll rule as a debit or credit so that when a draft entry is generated from a payslip, the amounts are reflected on the accounts accordingly." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:403 +msgid "The wage base for Social Security tax calculations has a cap for 2025, accounted for in the `US: FICA OASDI Cap` parameter." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:319 -msgid "The accounts need to be set in a way that would make the end-result entry balanced, otherwise a warning is raised if it is not balanced and it will not generate the entry." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:406 +msgid "Most rules pull information stored in the parameters module to get the rate of the rule (a percentage) and the cap (a dollar amount)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:322 -msgid "After reviewing the payslips and making sure that all the amounts are correct, generate a draft entry, either one entry for all employees or an entry per employee depending on the setup done on the settings." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:409 +msgid "To view rule parameters, navigate to :menuselection:`Payroll app --> Configuration --> Rule Parameters`. Here, all rule parameters are displayed with their linked :guilabel:`Salary Rules`, which can be accessed. Review the parameters associated with a rule by looking for the :guilabel:`Name` of the rule, and make any edits as needed." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:327 -msgid "Debit and credit accounts set up for the basic and allowance rules." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:415 +msgid "The Unemployment tax of a company is different from the one added by default in Odoo. To update this, navigate to :menuselection:`Payroll app --> Configuration --> Rule Parameters`, then, filter the results by :abbr:`FUTA (Federal Unemployment Tax Act)`, or the name of the state that needs editing, and edit the corresponding rate from the list." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:0 -msgid "Accounting setup for the rules." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:421 +msgid "Odoo adds updated rule parameters for the current calendar year. It is **not** recommended to edit rule parameters **unless a federal or state parameter has changed**, and is different from the rule parameters created by Odoo. Check with all local and national regulations *before* making any changes to rule parameters." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:335 -msgid "After a batch or a payslip's journal entry has been posted, the company can proceed to pay their employees." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:427 +msgid "Run US payroll" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:338 -msgid "In the batch itself or on the payslip, by clicking on the pay button, a payment is created and linked to the posted entry for the payslip. The same can be done for batch payslips if one payment is done from a single/multiple payment bank/cash journal." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:429 +msgid "Before running paypoll, the payroll officer must validate employee :doc:`work entries <../work_entries>` to confirm pay accuracy and catch errors. This includes checking that all time off is approved and any overtime is appropriate." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:343 -msgid "Once the payslip is generated, the employee will be able to access the slips from their portal users. They will automatically receive an email mentioning that the payslips are now available to be viewed on their portal view." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:433 +msgid "Work entries sync based on the employee's :doc:`contract <../contracts>` configuration. Odoo pulls from the assigned working schedule, attendance records, planning schedule, and approved time off." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:348 -msgid "Payslip printouts" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:436 +msgid "Any :ref:`discrepencies or conflicts ` must be resolved, then the work entries can be :ref:`regenerated `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:350 -msgid "Two printout formats can be extracted from the payslip, it depends on the type of the payslip either a *Monthly* payslip or an *End of Service* Payslip. It is triggered if the employee for the payslip is generated is archived during that month." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:439 +msgid "Once everything is correct, draft payslips can be :ref:`created individually ` or in :doc:`batches <../batches>`, referred to in the **Payroll** app as *Pay Runs*." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:355 -msgid "Master report" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The work entries for a pay run, with some time off entered in the work entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:357 -msgid "The *Master report* provides a detailed view of the amounts paid to employees for a specific period based on the payslips that are generated for them during that period with payslip lines being set as columns in an Excel report." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:446 +msgid "To cut down on the payroll officer's time, it is typical to process payslips in batches, either by wage type (fixed salary vs hourly), pay schedule (weekly, bi-weekly, monthly, etc.), department (direct cost vs. administration), or any other grouping that best suits the company." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:361 -msgid "It is mainly used to make the auditing process for the human resources department easier and faster." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:450 +msgid "The process of running payroll includes different actions that need to be executed to ensure that the amount withheld from payroll taxes is correct, the amount that the employee receives as their net salary is correct, and the computation of hours worked reflects the employee's actual hours worked, among others." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:363 -msgid "To access this report, go to :menuselection:`Payroll --> Reporting --> Master Report`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:455 +msgid "When running a payroll batch, check that the period, company, and employees included are correct *before* starting to analyze or validate the data." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:368 -msgid "Wages protection system (WPS) reports" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:458 +msgid "Once the payslips are drafted, review them for accuracy. Check the :guilabel:`Worked Days & Inputs` tab, and ensure the listed worked time is correct, as well as any other inputs. Add any missing inputs, such as commissions, tips, reimbursements, that are missing." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:370 -msgid "The |WPS| is a report that needs to be submitted by the company to prove that they paid their employees the right amounts on the right dates. It can either be generated per payslip or batch." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:462 +msgid "Next, check the various totals (gross pay, employee taxes, benefits, employer taxes, net salaries), then click :guilabel:`Compute Sheet` to update the salary calculations, if there were edits. If everything is correct, click :guilabel:`Validate`." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:373 -msgid "The following steps need to be followed before generating the report:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The worked days tab of a payslip." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:375 -msgid "Go to :menuselection:`Payroll --> Configuration --> Settings` and under the :guilabel:`UAE Payroll WPS Settings` section, configure the following:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:470 +msgid "Accounting check" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:378 -msgid ":guilabel:`Employer Unique ID`: Set a unique identifier for the company to be used in the |WPS| report." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:472 +msgid "The accounting process when running payroll has two components: :ref:`creating journal entries `, and :ref:`registering payments `." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:380 -msgid ":guilabel:`Salaries Bank Account`: Select a bank account or start typing to :guilabel:`Create and edit` a new bank account." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:478 +msgid "Journal entry creation" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:384 -msgid "When setting the :guilabel:`Salaries Bank Account` make sure to complete the following:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:480 +msgid "After payslips are confirmed and validated, journal entries are posted either individually, or in a batch. The journal entry is created first as a draft." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:386 -msgid ":guilabel:`Account Holder`: set as the company." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:484 +msgid "It must be decided if journal entries are done individually or in batches *before* running payroll." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:387 -msgid ":guilabel:`Account Number`: has to be a valid IBAN." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "All payslips in a draft state." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:388 -msgid ":guilabel:`Bank`: has to have the :guilabel:`UAE Routing Code Agent ID` set." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:490 +msgid "Four accounts from the US :abbr:`CoA (Chart of Accounts)` are included with the payroll localization:" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:389 -msgid ":guilabel:`Send Money`: should be enabled and set to :guilabel:`Trusted`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:493 +msgid "`611000 Salaries & Wages`: Records gross salary and the employer's portion of payroll expenses. Also groups values from rules without specific accounts (e.g., company-specific benefits)." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:391 -msgid "Set the unique identifier on all of the employees who are a part of the target of the batch/payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:495 +msgid "`230100 Employee Payroll Taxes`: Withheld taxes from employees, which the employer must file and pay. The partner and label columns of the journal entry indicate the specific tax." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:394 -msgid "The :guilabel:`Identification No` field can be found on the employee's page under the :guilabel:`Private Information` tab." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:497 +msgid "`230200 Employer Payroll Taxes`: Employer portion of payroll taxes to be filed and paid. The partner and label columns of the journal entry indicate the specific tax." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:397 -msgid "Once the initial setup is done, the |WPS| can be generated either for one payslip or for a batch as follows:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:499 +msgid "`230000 Salary Payable`: Net salary owed to the employee." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:400 -msgid "Generate the payslip one by one or as a batch." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:502 +msgid "The :abbr:`CoA (Chart of Accounts)` configuration is done by default when a company is located in the US. The account codes and names can be edited to suit the company's needs. If there is no :abbr:`CoA (Chart of Accounts)` account associated with a salary rule (used in a salary structure), Odoo uses the account `Salary Expenses` to create the journal entry, regardless of the nature of the move." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:401 -msgid "Post the draft entity related to the payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:508 +msgid "If everything seems correct on the journal entry draft, post the journal entries." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:402 -msgid "Create the payment report and set the :guilabel:`Export Format` to :guilabel:`UAE WPS`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "Journal entries posted." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:405 -msgid "The report comes in a :file:`.sif` format as per the governmental requirements, so either use software that can open :file:`.sif` files or convert it to another format (:file:`.xslx`) to be able to review it." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:516 +msgid "Register Payments" msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:409 -msgid "The resulting file consists of the following:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:518 +msgid "After the :ref:`journla entries ` are validated, Odoo can generate payments." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:411 -msgid "**Employee Detail Record** (**EDR**): includes details of the employees on the batch. There should be one :abbr:`EDR (Employee Detail Record)` record per employee." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:521 +msgid "To generate payments from payslips,employee's **must** have a *trusted* bank account. If the employee's bank account is *not* marked as `trusted`, NACHA files **cannot** be generated through Odoo." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:413 -msgid "**Employee Variable Pay** (**EVP**): includes the details of the variable salary the employee got on that payslip. If the employee has any. The variable amounts are calculated from when other inputs are used that are linked to the salary rules (:menuselection:`Payroll --> Configuration --> Rules`)." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:525 +msgid "Payments can be :guilabel:`Grouped by Partner` if there is a partner associated with a salary rule." msgstr "" -#: ../../content/applications/hr/payroll/payroll_localizations/united_arab_emirates.rst:417 -msgid "**Salary Control Record** (**SCR**): There should only be one :abbr:`SCR (Salary Control Record)` per |WPS| file as it indicates the employer details and the totals for the payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "Payslips with a status of paid." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:3 -msgid "Payslips" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:531 +msgid "Close Payroll" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:5 -msgid "*Payslips* are generated by payroll officers through the :menuselection:`Payroll` application." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:533 +msgid "If there are no errors, payroll is completed for the pay period." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:7 -msgid "The :guilabel:`Payslips` drop-down header of the :menuselection:`Payroll` application consists of three sections: :guilabel:`To Pay`, :guilabel:`All Payslips`, and :guilabel:`Batches`." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:536 +msgid "Reports" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:10 -msgid "These three sections provide all the tools needed to create payslips for employees, including individual payslips, a batch of payslips, or commission payslips." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:538 +msgid "The US localization contains several reports unique to the US, which provide tax information for employees, as well as the ability to integrate with outside organizations such as ADP." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "Payslips menu selection in Payroll." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:542 +msgid "W2 Report" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:20 -msgid "To pay" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:544 +msgid "The *W2 Report* provides a CSV file that allows employees to e-file their W2 report with third-party software. To access this report, navigate to :menuselection:`Payroll -> Reporting -> United States -> W2`." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:22 -msgid "Click on :menuselection:`Payroll app --> Payslips --> To Pay` to see the payslips that need to be paid." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:548 +msgid "To create a W2 form, click :guilabel:`New`, and a blank :guilabel:`Create W2 Form` page loads. Set the :guilabel:`Start Date` and :guilabel:`End Date` (typically a calendar year), and select the :guilabel:`Company`, if in a multi-company database." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "View all payslips that need to be paid on the Payslips To Pay page." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:552 +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:574 +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:596 +msgid "All pay runs for the time period appear in a list view. To add any missing pay runs, click :guilabel:`Add a line` at the bottom of the list, and select the missing files." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:29 -msgid "Each payslip lists the :guilabel:`Reference` number for the individual payslip, the :guilabel:`Employee` name, the :guilabel:`Batch Name`, the :guilabel:`Company`, the :guilabel:`Basic Wage`, :guilabel:`Gross Wage`, :guilabel:`Net Wage`, and the :guilabel:`Status` of the payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:555 +msgid "When done, click the :guilabel:`Generate` button to create a CSV file with a summary of all payroll related payments made during the specified time period." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:33 -msgid "Click on an individual payslip entry to view the details for that individual payslip." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The W2 report screen, with the file to download in the top half." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:38 -msgid "Create a new payslip" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:562 +msgid "Form 941" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:40 -msgid "A new payslip can be created from either the :ref:`Payslips To Pay ` page or the :ref:`Employee Payslips ` page." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:564 +msgid "The *Form 941* report is meant to inform the government of the amount of federal income tax, :abbr:`FICA (Federal Insurance Contributions Act)` taxes (Medicare and Social Security) withheld from employee paychecks. It also reports the employee's side of taxes." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:43 -msgid "Create a new payslip by clicking the :guilabel:`New` button in the top-left corner." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:568 +msgid "To create this report, navigate to :menuselection:`Payroll -> Reporting -> United States -> Form 941`. Click the :guilabel:`New` button, and a new :guilabel:`Form 941` report page loads. Configure the information on the top portion of the form, including the :guilabel:`Company`, :guilabel:`Tax Year`, :guilabel:`Quarter`, :guilabel:`IRS Payment Option` (how the money is being sent to the IRS), and :guilabel:`Deposit Schedule and Tax Liability` (how often payments are made to the IRS)." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:45 -msgid "A blank payslip form is loaded, where the necessary payslip information can be entered." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:577 +msgid "When done, click :guilabel:`Generate`, and the report is created as a CSV file, and appears on the :guilabel:`Form 941` report dashboard. Companies then download and submit this report through a third party for e-filing." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:48 -msgid "Payslip form" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The 941 report screen, with the file to download in the top half." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:50 -msgid "On the blank payslip form, several fields are required. Most of the required fields auto-populate after an employee is selected." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:585 +msgid "Form 940" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:53 -msgid "Fill out the following information on the payslip form:" +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:587 +msgid "The *Form 940* report details the annual :abbr:`FUTA (Federal Unemployment Tax Act)` withheld for payroll." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:55 -msgid ":guilabel:`Employee`: type in the name of an employee, or select the desired employee from the drop-down list in this field. This field is **required**." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:590 +msgid "To create this report, navigate to :menuselection:`Payroll -> Reporting -> United States -> Form 940`. Click the :guilabel:`New` button, and a new :guilabel:`Form 940` report page loads. Configure the information on the top portion of the form, including the :guilabel:`Company`, :guilabel:`Tax Year`, :guilabel:`Single State Payer`, :guilabel:`Multi State Employer`, :guilabel:`Paid in Credit Reduction State`, and :guilabel:`IRS Payment Option` (how the money is being sent to the IRS)." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:59 -msgid "It is recommended to **only** create payslips for employees that are already in the database. If there is no current employee record (and therefore no employee contract) it is recommended to create the new employee in the *Employees* application **before** creating payslips for that employee. Refer to the :doc:`new employee <../employees/new_employee>` documentation for instructions on how to add an employee." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:599 +msgid "When done, click :guilabel:`Generate`, and the report is created as a CSV file, and appears on the :guilabel:`Form 940` report dashboard. Companies then download and submit this report through a third party for e-filing." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:65 -msgid ":guilabel:`Period`: the first day to the last day of the *current* month auto-populates the :guilabel:`Period` fields by default. The dates can be changed, if desired." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:-1 +msgid "The 940 report screen, with the file to download in the top half." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:68 -msgid "To change the start date, click on the first date in the :guilabel:`Period` field to reveal a pop-up calendar. On this calendar, use the :guilabel:`< (less-than)` and :guilabel:`> (greater-than)` icons to select the desired month. Then, click on the desired day to select that specific date." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:607 +msgid "Export data to third-party apps" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:73 -msgid "Repeat this process to modify the end date for the payslip. These fields are **required**." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:609 +msgid "The *ADP Export* report generates a CSV file that can be submitted to ADP, which then makes payments to the employees." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:74 -msgid ":guilabel:`Contract`: using the drop-down menu, select the desired contract for the employee. Only the available corresponding contracts for the selected employee appear as options. This field is **required**." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:612 +msgid "The CSV file summarizes the employee's worked hours during a specified time period, correlating to their salary or hourly wage. The report is generated from :doc:`work entry <../work_entries>` *after* any time off is confirmed." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:77 -msgid ":guilabel:`Batch`: using the drop-down menu in this field, select the batch of payslips this new payslip should be added to." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:616 +msgid "The export format is meant to match with the ADP format. Since companies can customize their portal and may require some changes, the data is there to be fed to ADP to run payroll in it." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:79 -msgid ":guilabel:`Structure`: using the drop-down menu, select the salary structure type. Only the corresponding structures associated with the selected contract for the employee appear as options." +#: ../../content/applications/hr/payroll/payroll_localizations/united_states.rst:620 +msgid "To access the ADP Export report, the `United States - Payroll - Export to ADP` module **must** be :ref:`installed `." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:82 -msgid "If no employee and/or no contract is selected yet, all available :guilabel:`Structures` appear in the list. Once an employee and/or contract is selected, any unavailable :guilabel:`Structures` set for that employee and/or contract do not appear. This field is **required**." +#: ../../content/applications/hr/payroll/payslips.rst:3 +msgid "Payslips" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "The top fields for a new payslip all filled out for a February payslip." +#: ../../content/applications/hr/payroll/payslips.rst:5 +msgid "*Payslips* are individual records of payment, containing all the details of how the pay was calculated (hours, deductions, other inputs, etc.), and generated by payroll officers through the **Payroll** application. Payslips can be created and processed individually, or multiple payslips can be processed at one time, in a single batch." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:91 -msgid "Typically, after making a selection in the :guilabel:`Employee` field, Odoo auto-populates all other required fields (besides the :guilabel:`Period` field), but **only** if that information is already on that employee's form in the *Employees* app." +#: ../../content/applications/hr/payroll/payslips.rst:13 +msgid "Create a payslip" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:96 -msgid "If modifications to auto-populated fields are made, it is recommended to check with the accounting department to ensure every entry that affects the *Accounting* application is correct." +#: ../../content/applications/hr/payroll/payslips.rst:15 +msgid "A new payslip can be created from either the :ref:`Payslips To Pay ` page or the :ref:`Employee Payslips ` page." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:102 -msgid "Worked days & inputs tab" +#: ../../content/applications/hr/payroll/payslips.rst:18 +msgid "Navigate to :menuselection:`Payroll app --> Payslips`, and click either :guilabel:`To Pay` or :guilabel:`All Payslips`. Click the :guilabel:`New` button in the top-left corner, and a blank payslip form loads." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:104 -msgid ":guilabel:`Worked Days`: the entries under :guilabel:`Worked Days` (including the :guilabel:`Type`, :guilabel:`Description`, :guilabel:`Number of Days`, :guilabel:`Number of Hours`, and :guilabel:`Amount`) are automatically filled in, based on what was entered for the :guilabel:`Period`, :guilabel:`Contract`, and :guilabel:`Structure` fields of the payslip form." +#: ../../content/applications/hr/payroll/payslips.rst:23 +msgid "Payslip form" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:108 -msgid ":guilabel:`Other Inputs`: additional inputs affecting the payslip can be entered in this section, such as deductions, reimbursements, and expenses." +#: ../../content/applications/hr/payroll/payslips.rst:25 +msgid "Fill out the following information on the payslip form:" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:111 -msgid "Click :guilabel:`Add a line` to create an entry in the :guilabel:`Other Inputs` section." +#: ../../content/applications/hr/payroll/payslips.rst:27 +msgid ":guilabel:`Employee`: Using the drop-down menu, select the employee in this field. This field is **required**. Once a selection is made, other fields may auto-populate according to the employee record." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:113 -msgid "Using the drop-down menu in the :guilabel:`Type` column, select a :guilabel:`Type` for the input. Next, enter a :guilabel:`Description`, if desired. Lastly, enter the amount in the :guilabel:`Count` field." +#: ../../content/applications/hr/payroll/payslips.rst:32 +msgid "It is recommended to **only** create payslips for employees that are already in the database. If there is no current employee record (and therefore no employee contract) it is recommended to create the new employee in the **Employees** application *before* creating payslips for that employee. Refer to the :doc:`new employee <../employees/new_employee>` documentation for instructions on how to add an employee." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "The fields filled out in the worked days and inputs tab." +#: ../../content/applications/hr/payroll/payslips.rst:38 +msgid ":guilabel:`Contract`: The current contract for the selected employee populates this field. This field is **required**." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:122 -msgid "Salary computation tab" +#: ../../content/applications/hr/payroll/payslips.rst:42 +msgid "All employees are required to have a contract in order to generate payslips. Additionally, *only one* contract can be in the running stage for each employee, therefore the current contract populates this field, and it is **not** recommended to make changes to this field." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:124 -msgid ":guilabel:`Salary Computation`: the :guilabel:`Salary Computation` tab is automatically filled in after the :guilabel:`Compute Sheet` button is clicked. Doing so displays the wages, deductions, taxes, etc. for the entry." +#: ../../content/applications/hr/payroll/payslips.rst:46 +msgid ":guilabel:`Batch`: Using the drop-down menu, select the payslip batch this new payslip should be added to, if applicable." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "The fields filled out in the salary computation tab." +#: ../../content/applications/hr/payroll/payslips.rst:48 +msgid ":guilabel:`Structure`: The structure linked to the employee's contract auto-populates this field by default. If desired, use the drop-down menu to select a different structure." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:133 -msgid "Other info tab" +#: ../../content/applications/hr/payroll/payslips.rst:50 +msgid ":guilabel:`Period`: The first day to the last day of the *current* month auto-populates the :guilabel:`Period` fields by default. The dates can be changed, if desired." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:135 -msgid ":guilabel:`Payslip Name`: type in a name for the payslip in this field. The name should be short and descriptive, such as `(Employee Name) April 2023`. This field is **required**." +#: ../../content/applications/hr/payroll/payslips.rst:53 +msgid "To change the start date, click on the first date in the :guilabel:`Period` field to reveal a pop-up calendar. Navigate to the desired month, and click on the desired day to select that specific date." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:137 -msgid ":guilabel:`Company`: select the company the payslip applies to using the drop-down menu in this field. This field is **required**." +#: ../../content/applications/hr/payroll/payslips.rst:57 +msgid "Repeat this process to modify the end date for the payslip. These fields are **required**." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:139 -msgid ":guilabel:`Close Date`: enter the date that the payment is made to the employee in this field." +#: ../../content/applications/hr/payroll/payslips.rst:60 +msgid "Typically, after making a selection in the :guilabel:`Employee` field, Odoo auto-populates all other required fields (besides the :guilabel:`Period` field), but **only** if that information is already on that employee's form in the **Employees** app." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:141 -msgid "Click in the field to reveal a calendar pop-up window. Using the :guilabel:`< > (less-than/greater-than)` icons, navigate to the desired month and year." +#: ../../content/applications/hr/payroll/payslips.rst:65 +msgid "If modifications to auto-populated fields are made, it is recommended to check with the accounting department to ensure every entry that affects the **Accounting** application is correct." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:144 -msgid "Then, click on the desired date to select it." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "The top fields for a new payslip all filled out for a February payslip." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:145 -msgid ":guilabel:`Date Account`: enter the date on which the payslip should be posted in this field." +#: ../../content/applications/hr/payroll/payslips.rst:75 +msgid "Worked days & inputs tab" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:146 -msgid ":guilabel:`Salary Journal`: this field auto-populates after selecting an existing :guilabel:`Employee`. This field **cannot** be edited, as it is linked to the *Accounting* application. This field is **required**." +#: ../../content/applications/hr/payroll/payslips.rst:77 +msgid "The :guilabel:`Worked Days & Inputs` tab details the number of days and hours the employee worked during the specified :guilabel:`Period` of time on the top portion of the payslip form, and is calculated based on the selected :guilabel:`Contract` and :guilabel:`Structure` fields." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:149 -msgid ":guilabel:`Accounting Entry`: if applicable, this field is automatically populated once the payslip is confirmed. This field **cannot** be modified." +#: ../../content/applications/hr/payroll/payslips.rst:81 +msgid "The :guilabel:`Worked Days` section is automatically populated and lists all the individual attendance records for the time period, including both worked time and any time off taken." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:151 -msgid ":guilabel:`Add an Internal Note...`: any note or reference message for the new entry can be typed in this field." +#: ../../content/applications/hr/payroll/payslips.rst:84 +msgid "Each individual entry lists the :guilabel:`Type`, :guilabel:`Description`, :guilabel:`Number of Days`, :guilabel:`Number of Hours`, and the total :guilabel:`Amount`." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "The fields filled out in the other info tab." +#: ../../content/applications/hr/payroll/payslips.rst:87 +msgid "Additional records cannot be created for the :guilabel:`Worked Days & Inputs` as it is auto-populated according to the employee's attendance records or working schedule on their :ref:`employee record `." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:159 -msgid "Process the new payslip" +#: ../../content/applications/hr/payroll/payslips.rst:91 +msgid "The :guilabel:`Other Inputs` section is where additional inputs are listed, such as deductions, reimbursements, and expenses." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:161 -msgid "When all the necessary information on the payslip is entered, click the :guilabel:`Compute Sheet` button. Upon doing so, all the information on the payslip is saved, and the :guilabel:`Salary Computation` tab auto-populates, based on the information on the employee's contract or attendance records." +#: ../../content/applications/hr/payroll/payslips.rst:94 +msgid "Each individual item lists the :guilabel:`Type`, :guilabel:`Description`, and :guilabel:`Count`. To add a new input, click :guilabel:`Add a line`, and using the drop-down menu, select the :guilabel:`Type`. Next, enter a brief :guilabel:`Description`, and last, enter the :guilabel:`Count`." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:166 -msgid "If any modifications need to be made, first click the :guilabel:`Cancel` button, then click the :guilabel:`Set to Draft` button. Make any desired changes, then click the :guilabel:`Compute Sheet` button once again, and the changes are reflected in the :guilabel:`Worked Days` and :guilabel:`Salary Computation` tabs." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "The fields filled out in the worked days and inputs tab." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:171 -msgid "Once everything on the payslip form is correct, click the :guilabel:`Create Draft Entry` button to create the payslip." +#: ../../content/applications/hr/payroll/payslips.rst:103 +msgid "Salary computation tab" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:174 -msgid "Then, a confirmation pop-up window appears, asking :guilabel:`Are you sure you want to proceed?`. Click :guilabel:`OK` to confirm." +#: ../../content/applications/hr/payroll/payslips.rst:105 +msgid "The :guilabel:`Salary Computation` tab is where all the individual salary rules are listed and calculated, including everything from the employee's salary, to all the deductions and allowances, such as taxes, expenses, benefit contributions, and any other items associated with the installed :doc:`payroll localization `." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:178 -msgid "The database may need to be refreshed for the payslip and email to appear." +#: ../../content/applications/hr/payroll/payslips.rst:110 +msgid "When the payslip is first created, this tab remains blank. Click the :guilabel:`Compute Sheet` button in the upper-left corner, and the :guilabel:`Salary Computation` tab is populated." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:180 -msgid "To print the payslip, click the :guilabel:`Print` button. To cancel the payslip, click the :guilabel:`Cancel` button." +#: ../../content/applications/hr/payroll/payslips.rst:114 +msgid "It is **not** possible to make edits to this tab, as the calculations are based on other entries on the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "The new payslip is emailed to the employee and the email appears in the chatter." +#: ../../content/applications/hr/payroll/payslips.rst:118 +msgid "The :guilabel:`Compute Sheet` button does not disappear from view after it is clicked, so the payslip can be recalculated at any point prior to :ref:`processing it `." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:187 -msgid "Next, the payment must be sent to the employee. To do this, click the :guilabel:`Register Payment` button. Doing so reveals a pop-up form, in which the desired :guilabel:`Bank Journal` that the payment should be made against must be selected from a drop-down menu. Then, click the :guilabel:`Confirm` button to confirm the journal, and return to the payslip." +#: ../../content/applications/hr/payroll/payslips.rst:121 +msgid "If any changes need to be made to the :ref:`Worked Days & Inputs ` tab, click the :guilabel:`Compute Sheet` button to recalculate the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:193 -msgid "In order for a payslip to be paid, the employee *must* have a bank account entered in their contact information. If there is no bank information, a payslip cannot be paid, and an error appears when the :guilabel:`Make Payment` button is clicked. Banking information can be found in the :ref:`Private Information ` tab on the employee's card in the *Employees* app. Edit the employee card, and add banking information, if it is missing." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "The fields filled out in the salary computation tab." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:0 -msgid "Banking information can be entered in an employee's card." +#: ../../content/applications/hr/payroll/payslips.rst:128 +msgid "Other info tab" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:203 -msgid "Odoo automatically checks bank account information. If there is an error with the employee's listed bank account, an error appears in a pop-up window, stating, *The employee bank account is untrusted.* If this error appears, update the employee's bank account information on their :ref:`Employee Form `." +#: ../../content/applications/hr/payroll/payslips.rst:130 +msgid "The :guilabel:`Other Info` tab houses information that is required, but not associated with any inputs or calculations, as the other tabs do." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:208 -msgid "If a payment needs to be cancelled or refunded, click the corresponding :guilabel:`Cancel` or :guilabel:`Refund` button, located at the top-left of the screen." +#: ../../content/applications/hr/payroll/payslips.rst:133 +msgid "The :guilabel:`Payslip Name` is auto-populated according to the employee name and the time period the payslip is for. Make any desired edits to the name in this field. This field is **required**." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:212 -msgid "Before processing payslips, it is best practice to check the *Warnings* section of the *Payroll* app dashboard. Here, all possible issues concerning payroll appear." +#: ../../content/applications/hr/payroll/payslips.rst:136 +msgid "The :guilabel:`Company` field is also automatically populated according to the employee's record, and cannot be modified." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:215 -msgid "To view the warnings, navigate to :menuselection:`Payroll app --> Dashboard`. The warnings appear in the top-left corner of the dashboard." +#: ../../content/applications/hr/payroll/payslips.rst:139 +msgid "The end date selected in the :guilabel:`Period` field in the top half of the form populates both the :guilabel:`Close Date` and :guilabel:`Date Account` fields, by default. The :guilabel:`Close Date` is the date the payment is issued to the employee, while the :guilabel:`Date Account` is the end date the payslip covers. Modify the dates, if needed." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "The dashboard view of the Payroll app, with the warnings box highlighted." +#: ../../content/applications/hr/payroll/payslips.rst:144 +msgid "The :guilabel:`Salary Journal` field is populated by default, and **cannot** be edited. This is the accounting journal the paycheck is logged in." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:222 -msgid "Warnings are grouped by type, such as `Employees Without Running Contracts` or `Employees Without Bank account Number`. Click on a warning to view all entries associated with that specific issue." +#: ../../content/applications/hr/payroll/payslips.rst:147 +msgid "If there are any additional notes or information needed for the payslip, add them to the :guilabel:`Add an Internal Note...` field." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:225 -msgid "If the warnings are not resolved, at any point in the payslip processing process, an error may occur. Errors appear in a pop-up window, and provide details for the error, and how to resolve them." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "The fields filled out in the other info tab." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:232 -msgid "All payslips" +#: ../../content/applications/hr/payroll/payslips.rst:156 +msgid "Process a payslip" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:234 -msgid "To view all payslips, regardless of status, go to :menuselection:`Payroll app --> Payslips --> All Payslips`. The :guilabel:`Employee Payslips` page loads, displaying all payslips, organized by batch, in a default nested list view." +#: ../../content/applications/hr/payroll/payslips.rst:158 +msgid "When all the necessary information on the payslip is entered, the payslip can be processed. First, a :ref:`draft of the journal entry ` is created, followed by a :ref:`payment report `, and finally, the employee is :ref:`paid `." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:238 -msgid "Click on the :guilabel:`▶ (right arrow)` next to an individual batch name to view all the payslips in that particular batch, along with all the payslip details." +#: ../../content/applications/hr/payroll/payslips.rst:163 +msgid "Before processing payslips, it is best practice to check the *Warnings* section of the **Payroll** app dashboard. Here, all possible issues concerning payroll appear." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:241 -msgid "The number of payslips in the batch is written in parenthesis after the batch name. The :guilabel:`Status` for each individual payslip appears on the far-right side, indicating one of the following status options:" +#: ../../content/applications/hr/payroll/payslips.rst:166 +msgid "To view the warnings, navigate to :menuselection:`Payroll app --> Dashboard`. The warnings appear in the top-left corner of the dashboard." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:245 -msgid ":guilabel:`Draft`: the payslip is created, and there is still time to make edits, since the amounts are not calculated." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "The dashboard view of the Payroll app, with the warnings box visible." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:247 -msgid ":guilabel:`Waiting`: the payslip has been calculated, and the salary details can be found in the *Salary Computation* tab." +#: ../../content/applications/hr/payroll/payslips.rst:172 +msgid "Warnings are grouped by type, such as `Employees Without Running Contracts` or `Employees Without Bank account Number`. Click on a warning to view all entries associated with that specific issue." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:249 -msgid ":guilabel:`Done`: the payslip is calculated and ready to be paid." +#: ../../content/applications/hr/payroll/payslips.rst:175 +msgid "If the warnings are not resolved, at any point in the payslip processing process, an error may occur. Errors appear in a pop-up window, and provide details for the error, and how to resolve them." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:250 -msgid ":guilabel:`Paid`: the employee has been paid." +#: ../../content/applications/hr/payroll/payslips.rst:182 +msgid "Create draft entry" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "View all payslips organized by batches. Click on the arrow to expand each batch." +#: ../../content/applications/hr/payroll/payslips.rst:184 +msgid "Once everything on the payslip form is correct, click the :guilabel:`Create Draft Entry` button to create the payslip. A :guilabel:`Confirmation` pop-up window appears, asking :guilabel:`Are you sure you want to proceed?` Click :guilabel:`OK` to confirm." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:256 -msgid "Click on an individual payslip to view the details for that payslip on a separate page. Using the breadcrumb menu, click :guilabel:`Employee Payslips` to go back to the list view of all payslips." +#: ../../content/applications/hr/payroll/payslips.rst:188 +msgid "Once the payslip draft is created, the status changes to :guilabel:`Done`, a :icon:`fa-usd` :guilabel:`Journal Entry (Draft)` smart button appears at the top, and additional buttons appear in the top-left corner." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:259 -msgid "A new payslip can be created from the :guilabel:`Employee Payslips` page, by clicking the :guilabel:`New` button in the upper-left corner. Doing so reveals a separate blank payslip form page. On that blank payslip form page, enter all the necessary information, as described in the :ref:`Create new payslips ` section." +#: ../../content/applications/hr/payroll/payslips.rst:193 +msgid "After creating a draft entry, Odoo considers the payslip as confirmed." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:264 -msgid "To print PDF versions of payslips from the *Payslips to Pay* or :guilabel:`Employee Payslips` pages, first select the desired payslips by clicking on the individual checkbox to the left of each payslip to be printed. Or, click the box to the left of the :guilabel:`Reference` column title, which selects all visible payslips on the page. Then, click the :guilabel:`Print` button to print the payslips." +#: ../../content/applications/hr/payroll/payslips.rst:195 +msgid "Click the :icon:`fa-usd` :guilabel:`Journal Entry (Draft)` smart button to view the detailed accounting journal entry. Click :guilabel:`Post` to post the entry. Using the breadcrumb menu, return to the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:270 -msgid "Payslips can also be exported to an Excel spreadsheet. To export **all** payslips, click on the :guilabel:`⚙️ (gear)` icon at the end of the words :guilabel:`Employee Payslips` in the top-left corner. This reveals a drop-down menu. Click :guilabel:`Export All` to export all payslips to a spreadsheet." +#: ../../content/applications/hr/payroll/payslips.rst:199 +msgid "After the journal entry is posted, the smart button at the top changes to :icon:`fa-usd` :guilabel:`Journal Entry (Posted)`" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "Click on the Export All smart button to export all payslips to an Excel payslip." +#: ../../content/applications/hr/payroll/payslips.rst:203 +msgid "Employees cannot be :ref:`paid ` until the journal entry is posted." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:279 -msgid "To export only select payslips, first select the payslips to be exported from the list. Then, click the checkbox to the left of each individual payslip to select it. As payslips are selected, a smart button appears in the top-center of the page, indicating the number of selected payslips. Then, click the :guilabel:`⚙️ (gear) Actions` icon in the top-center of the page, and click :guilabel:`Export`." +#: ../../content/applications/hr/payroll/payslips.rst:208 +msgid "Create payment report" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "The individual list of employee ayslips with three selected to be exported." +#: ../../content/applications/hr/payroll/payslips.rst:210 +msgid "Once the payslip status has changed to :guilabel:`Done`, a payment report must be created. A payment report is a document that contains all the necessary information to transfer the employee's earnings from the company's bank account to theirs. These are submitted by the payroll department to the appropriate institution." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:290 -msgid "Both *To Pay* and *All Payslips* display all the detailed information for each payslip." +#: ../../content/applications/hr/payroll/payslips.rst:215 +msgid "Click the :guilabel:`Create Payment Report` and a pop-up window loads. Using the drop-down menu, select the :guilabel:`Export Format` for the payment report. The two default options available are :guilabel:`NACHA` and :guilabel:`CSV`. :guilabel:`NACHA` stands for the :abbr:`National Automated Clearing House Association (NACHA)`, and this selection creates a compatible ACH file which is sent to the company's bank." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:293 -msgid "Batches" +#: ../../content/applications/hr/payroll/payslips.rst:225 +msgid "If :guilabel:`CSV` is selected, all other fields are hidden from view." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:295 -msgid "To view payslips in batches, navigate to :menuselection:`Payroll app --> Payslips --> Batches` to display all the payslip batches that have been created. These payslip batches are displayed in a list view, by default." +#: ../../content/applications/hr/payroll/payslips.rst:227 +msgid "Next, select the desired :guilabel:`Bank Journal` the paycheck is logged to. Last, using the calendar selector, set the date the paycheck is issued in the :guilabel:`Effective Date` field." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:299 -msgid "Each batch displays the :guilabel:`Name`, :guilabel:`Date From` and :guilabel:`Date To` dates, its :guilabel:`Status`, the number of payslips in the batch (:guilabel:`Payslips Count`), and the :guilabel:`Company`." +#: ../../content/applications/hr/payroll/payslips.rst:230 +msgid "Once the pop-up window is configured, click the :guilabel:`Generate` button, and the file appears on the payslip form, in a new :guilabel:`Payment Report` field." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "View displaying all batches created." +#: ../../content/applications/hr/payroll/payslips.rst:236 +msgid "Pay employee" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:308 -msgid "Create a new batch" +#: ../../content/applications/hr/payroll/payslips.rst:238 +msgid "Next, the payment must be sent to the employee. To do this, click the :guilabel:`Pay` button in the upper-left corner. Doing so reveals a :guilabel:`Pay` pop-up form." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:310 -msgid "To create a new batch of payslips from the :guilabel:`Payslips Batches` page (:menuselection:`Payroll app --> Payslips --> Batches`), click the :guilabel:`New` button in the top-left corner. Doing so reveals a blank payslip batch form on a separate page." +#: ../../content/applications/hr/payroll/payslips.rst:241 +msgid "All the necessary information is pre-populated on the form according to the payslip configuration, but modifications can be made, if necessary, to any of the fields *except* the :guilabel:`Amount`. This is populated according to the payslip calculations, and **cannot** be modified." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:314 -msgid "On the new payslip batch form, enter the :guilabel:`Batch Name`." +#: ../../content/applications/hr/payroll/payslips.rst:245 +msgid ":guilabel:`Journal`: The accounting journal the payslip is logged to." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:316 -msgid "Next, select the date range to which the batch applies. Click into one of the :guilabel:`Period` fields, and a calendar pop-up window appears. From this calendar pop-up window, navigate to the correct month, and click on the corresponding day for both the start and end dates of the batch." +#: ../../content/applications/hr/payroll/payslips.rst:246 +msgid ":guilabel:`Payment Method`: Using the drop-down menu, select how the employee is being paid. The default options are:" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:320 -msgid "The current company populates the :guilabel:`Company` field. If operating in a multi-company environment, it is **not** possible to modify the :guilabel:`Company` from the form. The batch **must** be created while in the database for the desired company." +#: ../../content/applications/hr/payroll/payslips.rst:249 +msgid ":guilabel:`Manual Payment`: Select this if paying the employee in a method *other* than A :guilabel:`Check` or :guilabel:`NACHA`." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "Enter the details for the new batch." +#: ../../content/applications/hr/payroll/payslips.rst:251 +msgid ":guilabel:`Check`: Select this when issuing a check directly to the employee." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:331 -msgid "Process a batch" +#: ../../content/applications/hr/payroll/payslips.rst:252 +msgid ":guilabel:`NACHA`: Select this if using the :abbr:`National Automated Clearing House Association (NACHA)` to transfer the payment to the employee, via direct deposit." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:333 -msgid "Click on an individual batch to view the details for that batch on a separate page. On this batch detail page, different options (buttons) appear at the top, depending on the status of the batch:" +#: ../../content/applications/hr/payroll/payslips.rst:255 +msgid ":guilabel:`Group Payments`: If the employee has multiple payslips for the same time period (for example, payroll, reimbursement, and commission checks), tick the checkbox to group all payments into one payment." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:336 -msgid ":guilabel:`New` status: batches without any payslips added to them have a status of :guilabel:`New`. The following button options appear for these batches:" +#: ../../content/applications/hr/payroll/payslips.rst:258 +msgid ":guilabel:`Payment Date`: Using the calendar selector, select the date the employee is to be paid." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:0 -msgid "A batch with a status of new, with the available buttons highlighted." +#: ../../content/applications/hr/payroll/payslips.rst:260 +msgid "Once the pop-up :guilabel:`Pay` form is complete, click the :guilabel:`Create Payments` button, and the payment is processed." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:343 -msgid ":guilabel:`Add Payslips`: click the :guilabel:`Add Payslips` button to add payslips to the batch, and an :guilabel:`Add Payslips` pop-up window appears. Only payslips that can be added to the batch (payslips not currently part of a batch) appear on the list." +#: ../../content/applications/hr/payroll/payslips.rst:263 +msgid "After the payment is processed, and there is confirmation that the checks have been issued, or the funds have been directly deposited to the employee's bank account, click the :guilabel:`Mark as paid` button to mark the payslip as paid." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:347 -msgid "Select the desired payslips by clicking the checkbox to the left of each payslip name, then click the :guilabel:`Select` button to add them to the batch. Once payslips are selected and added to the batch, the status changes to :guilabel:`Confirmed`." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "Banking information can be entered in an employee's card." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:351 -msgid ":guilabel:`Generate Payslips`: after payslips have been added to the batch, click the :guilabel:`Generate Payslips` button to process the payslips and create individual payslips in the database." +#: ../../content/applications/hr/payroll/payslips.rst:271 +msgid "In order for a payslip to be paid, the employee **must** have a bank account entered in the :ref:`private information tab ` of their employee record, *and* the bank account must be marked as :guilabel:`Trusted`." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:355 -msgid "A :guilabel:`Generate Payslips` pop-up window appears. If only a specific :guilabel:`Salary Structure` and/or specific :guilabel:`Department` is desired to make payslips for, select them from the corresponding drop-down menus. If no selections are made, then all payslips listed in the pop-up window are processed as usual." +#: ../../content/applications/hr/payroll/payslips.rst:275 +msgid "If there is no bank information, or if the bank is not listed as :guilabel:`Trusted`, payslips cannot be paid, and an error appears when the :guilabel:`Pay` button is clicked. Edit the employee record, and add banking information, or trust the bank account, as needed." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:360 -msgid "Click the :guilabel:`Generate` button to create the payslips. The :guilabel:`Generate Payslips` button changes to a :guilabel:`Create Draft Entry` button, and the status changes to :guilabel:`Confirmed`." +#: ../../content/applications/hr/payroll/payslips.rst:280 +msgid "Refund a payslip" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:364 -msgid ":guilabel:`Confirmed` status: batches that have been created and have payslips in them, but the payslips have *not* been processed, have a status of :guilabel:`Confirmed`. The following two button options appear for these batches:" +#: ../../content/applications/hr/payroll/payslips.rst:282 +msgid "When refunding a payment, the refund is achieved by creating a payslip for a negative amount of the original payslip." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:0 -msgid "A batch with a status of confirmed, with the available buttons highlighted." +#: ../../content/applications/hr/payroll/payslips.rst:286 +msgid "An employee is paid $5,000.00 USD in a paycheck, in error. When refunding the payslip, a new payslip is created in the amount of $-5,000.00." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:372 -msgid ":guilabel:`Create Draft Entry`: click the :guilabel:`Create Draft Entry` button to confirm the individual payslips (and the batch), and create a draft of the payslips. The batch now has a status of :guilabel:`Done`." +#: ../../content/applications/hr/payroll/payslips.rst:289 +msgid "If a payment needs to be refunded, navigate to the individual payslip being refunded, and click the :guilabel:`Refund` button, located at the top-left of the screen. The :guilabel:`Refund Payslip` dashboard loads, with all refund payslips appearing in a list view." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:375 -#: ../../content/applications/hr/payroll/payslips.rst:397 -msgid ":guilabel:`Set to Draft`: if at any point the batch needs to be reverted back to a status of :guilabel:`New`, click the :guilabel:`Set to Draft` button. This action does **not** remove any payslips that have already been added to the batch." +#: ../../content/applications/hr/payroll/payslips.rst:294 +msgid "Since refunds are uncommon, typically only the one payslip being refunded appears in the list." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:379 -msgid ":guilabel:`Done` status: batches with confirmed payslips in them have a status of :guilabel:`Done`. The following button options appear for these batches:" +#: ../../content/applications/hr/payroll/payslips.rst:296 +msgid "By default, the refund payslip has a status of :guilabel:`Waiting`. This refund payslip is processed :ref:`in the same way a regular payslip is processed `." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:0 -msgid "A batch with a status of done, with the available buttons highlighted." +#: ../../content/applications/hr/payroll/payslips.rst:300 +msgid "Print a payslip" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:386 -msgid ":guilabel:`Create Payment Report`: click the :guilabel:`Create Payment Report` button, and a :guilabel:`Select a bank journal` pop-up window appears. Select the correct bank journal from the drop-down menu." +#: ../../content/applications/hr/payroll/payslips.rst:302 +msgid "To print a payslip, click the :guilabel:`Print` button in the upper-left corner of the individual payslip record. A PDF file is downloaded, and the payslip appears in the chatter, and the file is attached to the payslip record." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:390 -msgid "The batch name appears in the :guilabel:`File name` field, but this can be modified, if desired. Finally, click :guilabel:`Confirm` to process the payslips, and pay the employees." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "The new payslip is emailed to the employee and the email appears in the chatter." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:392 -msgid ":guilabel:`Mark as paid`: after the payments have been created via the :guilabel:`Create Payment Report` button, the payslips need to be marked as paid in the database." +#: ../../content/applications/hr/payroll/payslips.rst:312 +msgid "View all payslips" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:395 -msgid "Click the :guilabel:`Mark as paid` button, and the status of the batch changes to :guilabel:`Paid`." +#: ../../content/applications/hr/payroll/payslips.rst:314 +msgid "To view all payslips, regardless of status, go to :menuselection:`Payroll app --> Payslips --> All Payslips`. The :guilabel:`Employee Payslips` page loads, displaying all payslips, organized by batch, in a default nested list view." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:401 -msgid ":guilabel:`Paid` status: batches that have been completed have a status of :guilabel:`Paid`. No other button options appear for this status." +#: ../../content/applications/hr/payroll/payslips.rst:318 +msgid "Click the :guilabel:`▶ (right arrow)` next to an individual batch name to expand the list, and view all the payslips in that particular batch, along with all the payslip details." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:0 -msgid "A batch with a status of paid, with the available buttons highlighted." +#: ../../content/applications/hr/payroll/payslips.rst:321 +msgid "The number of payslips in the batch is written in parenthesis after the batch name. The :guilabel:`Status` for each individual payslip appears on the far-right side, indicating one of the following status options:" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:408 -msgid "On the batch detail page, the individual payslips in the batch are accessible, via the :guilabel:`Payslips` smart button, located above the batch information, in the center. Click the :guilabel:`Payslips` smart button to view a list of all the individual payslips." +#: ../../content/applications/hr/payroll/payslips.rst:325 +msgid ":guilabel:`Draft`: the payslip is created, and there is still time to make edits, since the amounts are not calculated." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:412 -msgid "Use the breadcrumb menu to navigate back to the individual batch detail page, or back to the list of all batches." +#: ../../content/applications/hr/payroll/payslips.rst:327 +msgid ":guilabel:`Waiting`: the payslip has been calculated, and the salary details can be found in the *Salary Computation* tab." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:416 -msgid "Generate warrant payslips" +#: ../../content/applications/hr/payroll/payslips.rst:329 +msgid ":guilabel:`Done`: the payslip is calculated and ready to be paid." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:418 -msgid "Commissions are paid to employees in Odoo using *warrant payslips*." +#: ../../content/applications/hr/payroll/payslips.rst:330 +msgid ":guilabel:`Paid`: the employee has been paid." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:420 -msgid "Warrant payslips can be generated directly from the :guilabel:`Payslips Batches` page (:menuselection:`Payroll app --> Payslips --> Batches`)." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "View all payslips organized by batches. Click on the arrow to expand each batch." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:423 -msgid "First, select the desired batches by clicking the box to the left of each batch for which commission payslips should be created. Next, click the :guilabel:`Generate Warrant Payslips` button at the top of the page." +#: ../../content/applications/hr/payroll/payslips.rst:335 +msgid "Click on an individual payslip to view the details for that payslip on a separate page. Using the breadcrumb menu, click :guilabel:`Employee Payslips` to go back to the list view of all payslips." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:427 -msgid "Doing so reveals a :guilabel:`Generate Warrant Payslips` pop-up window, in which the necessary information **must** be filled out." +#: ../../content/applications/hr/payroll/payslips.rst:338 +msgid "A new payslip can be created from the :guilabel:`Employee Payslips` page, by clicking the :guilabel:`New` button in the upper-left corner. Doing so reveals a separate blank payslip form page. On that blank payslip form page, enter all the necessary information, as described in the :ref:`Create a payslip ` section." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:-1 -msgid "Enter the commission details." +#: ../../content/applications/hr/payroll/payslips.rst:343 +msgid "Payslips can also be exported to an Excel spreadsheet. To export **all** payslips, click on the :icon:`fa-cog` :guilabel:`(gear)` icon at the end of the words :guilabel:`Employee Payslips` in the top-left corner. This reveals a drop-down menu. Click :icon:`fa-upload` :guilabel:`Export All` to export all payslips to a spreadsheet." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:434 -msgid "In this pop-up window, click on the drop-down menus, located beside the :guilabel:`Period` field, to reveal calendar pop-up windows. On these calendar pop-up windows, select the desired period for which the payslips are being generated. Using the :guilabel:`< (left)` and :guilabel:`> (right)` arrow icons, navigate to the correct month, and click on the date to select it." +#: ../../content/applications/hr/payroll/payslips.rst:348 +msgid "To export only select payslips, first select the payslips to be exported from the list. Then, click the checkbox to the left of each individual payslip to select it. As payslips are selected, a smart button appears in the top-center of the page, indicating the number of selected payslips. Then, click the :icon:`fa-cog` :guilabel:`Actions` icon in the top-center of the page, and click :icon:`fa-upload` :guilabel:`Export`." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:439 -msgid "In the :guilabel:`Department` field, select the desired department from the drop-down menu." +#: ../../content/applications/hr/payroll/payslips.rst:355 +msgid "Both *To Pay* and *All Payslips* display all the detailed information for each payslip." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:441 -msgid "When a department is selected, the employees listed for that department appear in the :guilabel:`Employee` section." +#: ../../content/applications/hr/payroll/payslips.rst:360 +msgid "View payslips to pay" msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:444 -msgid "Under the :guilabel:`Employee` section, enter the :guilabel:`Commission Amount` for each employee in the far-right column. To remove an employee, click the :guilabel:`🗑️ (trash)` icon to remove the line." +#: ../../content/applications/hr/payroll/payslips.rst:362 +msgid "To only view the payslips awaiting to be processed, navigate to :menuselection:`Payroll app --> Payslips --> To Pay`." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:448 -msgid "Add a new entry by clicking :guilabel:`Add a Line`, and entering the :guilabel:`Employee` and the appropriate :guilabel:`Commission Amount`." +#: ../../content/applications/hr/payroll/payslips.rst:-1 +msgid "View all payslips that need to be paid on the Payslips To Pay page." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:451 -msgid "Click the :guilabel:`Upload your file` button to add a file, if necessary. Any file type is accepted." +#: ../../content/applications/hr/payroll/payslips.rst:368 +msgid "Each payslip lists the :guilabel:`Reference` number for the individual payslip, the :guilabel:`Employee` name, the :guilabel:`Batch Name`, the :guilabel:`Company`, the :guilabel:`Basic Wage`, :guilabel:`Gross Wage`, :guilabel:`Net Wage`, and the :guilabel:`Status` of the payslip." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:454 -msgid "Once all the commissions are properly entered, click the :guilabel:`Generate Payslips` button to create the warrant payslips in a batch." +#: ../../content/applications/hr/payroll/payslips.rst:372 +msgid "Click on an individual payslip entry to view the details for that individual payslip." msgstr "" -#: ../../content/applications/hr/payroll/payslips.rst:457 -msgid ":ref:`Process the batch ` in the same way as a typical batch to complete the payment process." +#: ../../content/applications/hr/payroll/payslips.rst:374 +msgid "Process the payslips :ref:`in the same way a regular payslip is processed `, or in a batch." msgstr "" #: ../../content/applications/hr/payroll/reporting.rst:5 @@ -17770,84 +18839,16 @@ msgstr "" msgid "Finally, click :guilabel:`Save`, which saves the currently configured report. Then, it appears beneath the :guilabel:`Favorites` in the search bar drop-down mega menu of filter options." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachment.rst:3 -msgid "Salary attachment report" -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:5 -msgid "*Salary attachments* in Odoo refer to a portion of an employee's earnings that are designated for a specific purpose, both voluntary and involuntary. These can include contributions to a retirement plan, repayment of a loan, wage garnishments, or child support." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:9 -msgid "Voluntary salary attachments, such as repaying a loan, or contributing to a charity on a monthly basis, are considered *Assignments of Salary* in Odoo. Salary attachments that are required, such as a lawsuit settlement repayment, or repaying a tax lien, are considered *Attachments of Salary* in Odoo. Child support payments have their own category, and are simply referred to as *Child Support* in Odoo." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:15 -msgid "To view this report, navigate to :menuselection:`Payroll app --> Reporting --> Salary Attachment Report`. The :guilabel:`Salary Attachment Report` shows all deductions or allocations per employee, organized by payslip, in a default pivot table. The default filter is the end of the current year (:guilabel:`Payslip End Date: (year)`). The employees populate the rows, while the various deductions populate the columns, organized by type of deduction, and further grouped by individual payslip." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:22 -msgid "The default report contains **all** payslips for the current year, so the report typically contains a large number of columns. This could make it difficult to view all the data at once, as the report may be very wide and require scrolling to view all the data." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:26 -msgid "To view a condensed version of salary attachments, and have all the salary attachment columns visible on one page, click the :icon:`fa-minus-square-o` :guilabel:`Total` icon at the top of the report, above the various payslips." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:30 -msgid "This presents the salary attachments for the current year, and only displays three columns, :guilabel:`Attachment of Salary`, :guilabel:`Assignment of Salary`, and :guilabel:`Child Support.`" -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:33 -msgid "Each entry displays the total amount paid for each specific type of salary attachment, for each employee." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:-1 -msgid "The Attachment of Salary report that shows all salary garnishments in a condensed view." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:39 -msgid "The report can be downloaded as an XLSX file, or :doc:`inserted into a spreadsheet <../../productivity/spreadsheet/insert>` using the corresponding buttons at the top." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:42 -msgid "Click the :guilabel:`Measures` button to reveal the options of what data is displayed. :guilabel:`Assignment of salary`, :guilabel:`Attachment of salary`, and :guilabel:`Child support` are all selected and visible, by default, while the :guilabel:`Count` option is not." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:46 -msgid "Click an option to either show or hide that particular metric. A :icon:`fa-check` :guilabel:`(checkmark)` icon indicates the data is visible." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:50 -msgid "Compare to previous year" -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:52 -msgid "The :guilabel:`Salary Attachment Report` can be compared to the report for the previous time period or the previous year." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:55 -msgid "To view these comparisons, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon in the search bar, then click either :guilabel:`Payslip End Date: Previous Period` or :guilabel:`Payslip End Date: Previous Year`, beneath the :icon:`fa-adjust` :guilabel:`Comparison` column." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:59 -msgid "The report updates and displays the current time period values, and the previous time period values, as well as the :guilabel:`Variation` between the two, in a percentage." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachment.rst:-1 -msgid "The salary attachment report modified to compare to the previous year." -msgstr "" - #: ../../content/applications/hr/payroll/salary_attachments.rst:5 msgid "Salary attachments are portions of earnings taken directly out of a payslip for a specific purpose, whether voluntary or required." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:8 -msgid "When the deduction is voluntary, they are typically considered *deductions*. When the deduction is court-ordered, or involuntary, it is sometimes referred to as a *wage garnishment*. In Odoo, these are all universally called, *salary attachments*." +msgid "When the deduction is voluntary, they are typically considered *deductions*. When the deduction is court-ordered, or involuntary, it is sometimes referred to as a *wage garnishment*. In Odoo, these are all universally called *salary attachments*." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:12 -msgid "Note that salary attachments could also be used to give recurring amount of money to employees. Like bonus divided in multiple parts." +msgid "Note that salary attachments could also be used to give recurring amounts of money to employees, like a bonus divided in multiple payments." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:18 @@ -17855,39 +18856,39 @@ msgid "Salary attachment types" msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:20 -msgid "To view the currently configured salary attachment types, navigate to :menuselection:`Payroll app --> Configuration --> Salary Attachment Types`. The default salary attachment types are: :guilabel:`Attachment of Salary`, :guilabel:`Assignment of Salary`, and :guilabel:`Child Support`." +msgid "To view the currently configured salary attachment types, navigate to :menuselection:`Payroll app --> Configuration --> Other Input Types`. This displays *all* other salary inputs, not just the various salary attachments." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:24 -msgid "Each salary attachment type displays the :guilabel:`Name` of the attachment type, the :guilabel:`Code` used when calculating payslips, a checkbox to indicate if there is :guilabel:`No End Date`, and whether it is :guilabel:`Country` specific (or universal)." +msgid "The three default salary attachment types that appear in this list are: :guilabel:`Attachment of Salary`, :guilabel:`Assignment of Salary`, and :guilabel:`Child Support`." +msgstr "" + +#: ../../content/applications/hr/payroll/salary_attachments.rst:27 +msgid "Each salary attachment type displays the :guilabel:`Name` of the attachment type, and the :guilabel:`Code` used when calculating payslips." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:-1 msgid "The default salary attachment types." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:32 +#: ../../content/applications/hr/payroll/salary_attachments.rst:34 msgid "Create new salary attachment types" msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:35 -msgid "Upon installation of the **Payroll** application, the pre-configured default salary attachment types are linked to a variety of rules that are linked to various salary structures, as well as the installed :ref:`localization package `." +#: ../../content/applications/hr/payroll/salary_attachments.rst:37 +msgid "Upon installation of the **Payroll** application, the preconfigured default salary attachment types are linked to a variety of rules that are linked to various salary structures, as well as the installed :ref:`localization package `." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:39 +#: ../../content/applications/hr/payroll/salary_attachments.rst:41 msgid "It is **not** recommended to alter or modify **any** of the preconfigured salary attachment types, especially if they have been previously used on payslips in the database. Doing so may affect various salary rules, and can prevent the creation of payslips." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:43 +#: ../../content/applications/hr/payroll/salary_attachments.rst:45 msgid "A new salary attachment type *can* be created, but this should only be done when absolutely necessary. A salary attachment type needs to be linked to a salary rule in order to be considered in the salary computation." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:47 -msgid "To make a new type of salary attachment, click the :guilabel:`New` button, and a blank :guilabel:`Salary Attachment Types` form loads. Enter the :guilabel:`Name` for the new salary attachment type in the corresponding field. Next, enter the :guilabel:`Code` used in the salary rules to compute payslips. Last, tick the :guilabel:`No End Date` checkbox if this salary attachment never expires." -msgstr "" - -#: ../../content/applications/hr/payroll/salary_attachments.rst:53 -msgid "If in a multi-company database, with locations in multiple countries, a :guilabel:`Country` field also appears on the :guilabel:`Salary Attachment Types` form. Select the country the attachment applies to, or leave blank if it is universal." +#: ../../content/applications/hr/payroll/salary_attachments.rst:49 +msgid "To make a new type of salary attachment, click the :guilabel:`New` button, and a blank :guilabel:`Other Input Types` form loads. Enter the :guilabel:`Description` for the new salary attachment type in the corresponding field. Next, tick the :guilabel:`Available in attachments` checkbox, indicating it is available to use as a salary attachment. Enter the :guilabel:`Code` used in the salary rules to compute payslips. Lastly, if the salary attachment type should **only** be used in a specific payroll structure, use the drop-down menu in the :guilabel:`Available in Structure` field, and select the specific structure." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:60 @@ -17899,491 +18900,467 @@ msgid "All salary attachments must be configured separately for each employee, f msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:66 -msgid "All salary attachments appear in a default list view, and displays the name of the :guilabel:`Employees`, :guilabel:`Description`, the salary attachment :guilabel:`Type`, the :guilabel:`Monthly Amount`, :guilabel:`Start Date`, and current :guilabel:`Status`." +msgid "All salary attachments appear in a default list view, and displays the name of the :guilabel:`Employees`, :guilabel:`Description`, the salary attachment :guilabel:`Type`, the :guilabel:`payslips Amount`, :guilabel:`Start Date`, and current :guilabel:`Status`." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:70 -msgid "To create a new salary attachment, click the :guilabel:`New` button in the top-left corner, and a blank :guilabel:`Salary Attachment` form loads. Enter the following information on the form:" +msgid "At the end of each line is a :guilabel:`Related Payslips` button. Click this to view all payslips containing the corresponding salary attachment." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:73 +msgid "To create a new salary attachment, click the :guilabel:`New` button in the top-left corner, and a blank :guilabel:`Salary Attachment` form loads. Enter the following information on the form:" +msgstr "" + +#: ../../content/applications/hr/payroll/salary_attachments.rst:76 msgid ":guilabel:`Employees`: Using the drop-down menu, select the desired employees. Multiple employees can be listed in this field." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:75 +#: ../../content/applications/hr/payroll/salary_attachments.rst:78 msgid ":guilabel:`Description`: Enter a short description of the salary attachment." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:76 +#: ../../content/applications/hr/payroll/salary_attachments.rst:79 msgid ":guilabel:`Type`: Using the drop-down menu, select the specific :ref:`salary attachment type `." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:78 +#: ../../content/applications/hr/payroll/salary_attachments.rst:81 msgid ":guilabel:`Start Date`: Using the calendar selector, select the date the salary attachment goes into effect." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:80 -msgid ":guilabel:`Estimated End Date`: This field is **not** modifiable, and **only** appears after the :guilabel:`Monthly Amount` field is populated. This field is the estimated date when the salary attachment will be completed. Today's date populates the field by default. Then, when the :guilabel:`Total Amount` field is populated, this date is updated." +#: ../../content/applications/hr/payroll/salary_attachments.rst:83 +msgid ":guilabel:`Estimated End Date`: This field is **not** modifiable, and **only** appears after the :guilabel:`Payslip Amount` field is populated. This field is the estimated date when the salary attachment is completed. Today's date populates the field by default. Then, when the :guilabel:`Total Amount` field is populated, this date is updated." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:84 +#: ../../content/applications/hr/payroll/salary_attachments.rst:87 msgid ":guilabel:`Document`: If any documentation is needed, such as a court order, click the :guilabel:`Upload your file` button, and a file explorer window loads. Select the desired document to attach it to the record. Only **one** document can be attached to a salary attachment." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:87 -msgid ":guilabel:`Monthly Amount`: Enter the amount taken out of each paycheck every month in this field." +#: ../../content/applications/hr/payroll/salary_attachments.rst:90 +msgid ":guilabel:`No End Date`: Tick this checkbox if the salary attachment runs indefinitely. If ticked, the :guilabel:`Total Amount` field is hidden from view." +msgstr "" + +#: ../../content/applications/hr/payroll/salary_attachments.rst:92 +msgid ":guilabel:`Payslip Amount`: Enter the amount taken out of each paycheck in this field." +msgstr "" + +#: ../../content/applications/hr/payroll/salary_attachments.rst:93 +msgid ":guilabel:`Total Amount`: Enter the total amount to be paid for the salary attachment. Note that this field **only** appears if the :guilabel:`No End Date` option is **not** ticked." +msgstr "" + +#: ../../content/applications/hr/payroll/salary_attachments.rst:95 +msgid ":guilabel:`Negative Amount`: Tick this checkbox if the salary attachment" msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:88 -msgid ":guilabel:`Total Amount`: This field **only** appears if the :ref:`salary attachment type ` has no end date (the :guilabel:`No End Date` option is **not** ticked.)" +#: ../../content/applications/hr/payroll/salary_attachments.rst:96 +msgid ":guilabel:`Occurrences`: This field is **not** editable, and only appears once both the :guilabel:`Payslip Amount` and :guilabel:`Total Amount` fields are populated. The number indicates the amount of payslips needed to complete the salary attachment." msgstr "" #: ../../content/applications/hr/payroll/salary_attachments.rst:-1 msgid "The salary attachment form with all fields filled out." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:95 +#: ../../content/applications/hr/payroll/salary_attachments.rst:103 msgid "Since the salary attachment form auto saves as the fields are populated, after making a salary attachment for an individual employee, there is no further action required." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:98 +#: ../../content/applications/hr/payroll/salary_attachments.rst:106 msgid "If creating salary attachments for multiple employees on a single salary attachment form, after the form is filled out, click the :guilabel:`Create Individual Attachments` button. This creates separate salary attachments for each of the employees listed in the :guilabel:`Employees` field." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:102 +#: ../../content/applications/hr/payroll/salary_attachments.rst:110 msgid "After the separate salary attachments have been created, the screen returns to the :guilabel:`Salary Attachment` dashboard, but with a :guilabel:`Description` filter, populated with the description filled in on the salary attachment form. All the salary attachments have a status of :guilabel:`Running`, since they are currently active. Clear the filter in the search box to view the default :guilabel:`Salary Attachment` dashboard in its entirety." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:109 +#: ../../content/applications/hr/payroll/salary_attachments.rst:117 msgid "Manage salary attachments" msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:111 +#: ../../content/applications/hr/payroll/salary_attachments.rst:119 msgid "Salary attachments can have one of three statuses: *Running*, *Completed*, or *Cancelled*. To view the current status of all salary attachments, navigate to :menuselection:`Payroll app --> Contracts --> Salary Attachments`." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:115 -msgid "All salary attachments appear in the order they were configured. To view the salary attachments by a particular metric, such as the :guilabel:`Status`, or :guilabel:`Type`, click on the column title to sort by that specific column." +#: ../../content/applications/hr/payroll/salary_attachments.rst:123 +msgid "All salary attachments appear in chronological order, by :guilabel:`Start Date`, with the most recent appearing at the top. To view the salary attachments by a particular metric, such as the :guilabel:`Status`, or :guilabel:`Type`, click on the column title to sort by that specific column." +msgstr "" + +#: ../../content/applications/hr/payroll/salary_attachments.rst:-1 +msgid "All salary attachments, organized by start date." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:120 +#: ../../content/applications/hr/payroll/salary_attachments.rst:131 msgid "Completed salary attachments" msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:122 +#: ../../content/applications/hr/payroll/salary_attachments.rst:133 msgid "When a salary attachment is created, it has a status of :guilabel:`Running`. Once the salary attachment is finished (the *Total Amount* entered on the :ref:`salary attachment form ` has been paid in full), the status automatically changes to *Completed*, and the employee no longer has the money taken out of future paychecks." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:127 +#: ../../content/applications/hr/payroll/salary_attachments.rst:138 msgid "If a salary attachment has been fulfilled, but has not automatically changed to *Completed*, the record can be manually updated. To change the status, open the *Salary Attachment* dashboard by navigating to :menuselection:`Payroll app --> Contracts --> Salary Attachments`." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:131 +#: ../../content/applications/hr/payroll/salary_attachments.rst:142 msgid "Click on the record to update, and the detailed :guilabel:`Salary Attachment` form loads. On the individual :guilabel:`Salary Attachment` record, click the :guilabel:`Mark as Completed` button in the upper-left corner, and the status changes to :guilabel:`Completed`." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:136 +#: ../../content/applications/hr/payroll/salary_attachments.rst:147 msgid "The following is an example of when a payroll manager may need to manually change a salary attachment from :guilabel:`Active` to :guilabel:`Completed`." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:139 +#: ../../content/applications/hr/payroll/salary_attachments.rst:150 msgid "Rose Smith has a salary attachment for a lawsuit settlement, where she is required to pay $3,000.00. A salary attachment is created that takes $250.00 a month out of Rose's paycheck, to go towards this settlement payment." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:143 +#: ../../content/applications/hr/payroll/salary_attachments.rst:154 msgid "After six months, Rose has paid $1,500.00 from her salary. She received a tax refund, and uses the money to pay off the remainder of the lawsuit settlement. After sending the relevant documentation to the payroll manager, showing the settlement has been paid in full, the payroll manager manually changes the status of her salary attachment to :guilabel:`Completed`." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:149 +#: ../../content/applications/hr/payroll/salary_attachments.rst:160 msgid "Cancel salary attachments" msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:151 +#: ../../content/applications/hr/payroll/salary_attachments.rst:162 msgid "Any salary attachment can be cancelled at any time. To cancel a salary attachment, click on the individual attachment record from the main :guilabel:`Salary Attachment` dashboard to open the record. From the :guilabel:`Salary Attachment` record, click the :guilabel:`Cancel` button to cancel the salary attachment, and stop having the designated money taken out of future paychecks." msgstr "" -#: ../../content/applications/hr/payroll/salary_attachments.rst:157 -msgid ":doc:`salary_attachment`" -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:5 -msgid "Work entries are created automatically in the *Payroll* app, based on the employee's :ref:`salary structure type `, and from the *Planning*, *Attendances*, and *Time Off* applications." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:9 -msgid "The *Work Entries* dashboard of the *Payroll* application provides a visual overview of the individual work entries for every employee." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:12 -msgid "To open the dashboard, navigate to :menuselection:`Payroll app --> Work Entries --> Work Entries`." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:14 -msgid "On the :guilabel:`Work Entry` dashboard, work entries appear in alphabetical order, based on the first name of the employees. The entire month is displayed, with the current day highlighted in pale yellow." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:18 -msgid "If any entries have :ref:`conflicts ` that need to be resolved, the dashboard defaults to filter only the :guilabel:`Conflicting` entries." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:21 -msgid "To remove the filter from the :guilabel:`Search...` bar to view all work entries, click the :guilabel:`✖️ (remove)` icon on the :guilabel:`Conflicting` filter in the :guilabel:`Search...` bar, and all work entries appear in the list." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:3 +msgid "Time off to report" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "Conflicts dashboard view showing all employee's conflicts in work entries." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:5 +msgid "Payroll is often processed a few days before the end of a pay period, so that employees can be paid in a timely manner. When work schedules are predictable, this method often works. However, sometimes employees take time off unexpectedly, especially sick time. When this occurs, there can be discrepancies in payroll that must be addressed." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:31 -msgid "To change the view, so only the entries for a single day, week, or month are shown, click on :guilabel:`Month`. A drop-down menu appears with the options of :guilabel:`Day`, :guilabel:`Week`, or :guilabel:`Month`. Click on one of the options to only display data for that specific selection." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:11 +msgid "The payroll department for a medium-sized company processes paychecks every two weeks, on Wednesdays. Each employee is paid on the Friday after." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:35 -msgid "Use the :guilabel:`⬅️ (left arrow)` and :guilabel:`➡️ (right arrow)` icons on the left and right side of the :guilabel:`Month` button to adjust the displayed dates. The arrows adjust the date based on the type of time selected." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:14 +msgid "One employee is sick on the last Thursday and Friday of the two-week pay period. Since they have automatically generated work entries based on their working schedule, and payroll is processed on Wednesdays, the paycheck they receive incorrectly states that they were paid for a regular work day for all ten days of the two-week pay period." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:39 -msgid "For example, if :guilabel:`Month` is selected, the arrows move one month with each click of the arrow. If :guilabel:`Week` or :guilabel:`Day` is selected, the time moves by either a week or a day for each click of the arrow, respectively." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:19 +msgid "Instead of cancelling the paycheck and reissuing it, causing delays for the employee and more work for the payroll department, Odoo allows for the deferral of the time off taken, to the following pay period." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:43 -msgid "At any point, to return to a view containing the current day, click the :guilabel:`Today` button." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:23 +msgid "This ensures all time off balances are correct, and the employee is properly compensated for their time." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:48 -msgid "Add a new work entry" +#: ../../content/applications/hr/payroll/time_off_to_report.rst:29 +msgid "Time off dashboard" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:50 -msgid "If a work entry is missing and needs to be added, such as sick time, or if an employee forgot to clock in and out for a shift, click :guilabel:`New` on the :guilabel:`Work Entry` dashboard, to create a new work entry." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:31 +msgid "When time off requests are submitted for a time period that was already processed on a payslip, the time off requests appear in the *Time Off* page of the **Payroll** app. To access this, navigate to :menuselection:`Payroll app --> Work Entries --> Time Off to Report`." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:54 -msgid "A :guilabel:`Create` work entry pop-up form appears." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:35 +msgid "The :guilabel:`Time Off` page default filter is :guilabel:`To Defer`, and displays all requests with a :guilabel:`Payslip State` of :guilabel:`To defer to next payslip`. This is because the employee was *already paid* for that time as worked time, and it was logged as regular time spent at work." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:58 -msgid ":guilabel:`Description`: enter a short description for the work entry, such as `Sick Time`. If this field is left blank, it automatically populates once an employee is selected. The default entry is `Attendance: (Employee)`." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:-1 +msgid "A list of all time off requests that were not approved before payslips were generated." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:61 -msgid ":guilabel:`Employee`: select the employee the work entry is for, using the drop-down menu." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:43 +msgid "Defer multiple time off entries" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:62 -msgid ":guilabel:`Work Entry Type`: select the :ref:`work entry type ` using the drop-down menu." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:45 +msgid "In order to keep the employee's time off balances correct, the time off request **must** be applied to the following pay period. This not only ensures time off request balances are current, it also eliminates the need to redo work entries, cancel paychecks, and reissue paychecks." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:64 -msgid ":guilabel:`From` and :guilabel:`To`: enter the start (:guilabel:`From`) and end (:guilabel:`To`) dates and times for the work entry." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:49 +msgid "To select the work entries to defer, tick the box to the left of the work entry line on the :ref:`Time Off page `. To select all work entries in the list, tick the box to the left of the :guilabel:`Employee` column title, at the top of the list." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:67 -msgid "First, click on either the :guilabel:`From` or :guilabel:`To` line to reveal a calendar pop-up window. Select the date by navigating to the correct month and year, using the :guilabel:`< (left arrow)` and :guilabel:`> (right arrow)` icons, then click on the specific day." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:53 +msgid "Once any work entry is selected, two buttons appear at the top of the report: a :guilabel:`(#) selected` button, and an :icon:`fa-gear` :guilabel:`Actions` button. The :guilabel:`(#) selected` button indicates how many entries are currently selected." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:71 -msgid "Next, select the time, by clicking on either the hour or minute fields at the bottom of the calendar, and select the desired time for both the hour and minutes." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:57 +msgid "When all the desired work entries are selected, click the :icon:`fa-gear` :guilabel:`Actions` button, and a menu appears with several choices. Click :guilabel:`Defer to Next Month` in the list, and all selected entries are deferred to the following month." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:74 -msgid "When the date and time are correct for the entry, click the :guilabel:`Apply` button." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:62 +msgid "Defer individual time off entries" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:75 -msgid ":guilabel:`Duration`: displays the hours based on the :guilabel:`To` and :guilabel:`From` entries. Modifying this field modifies the :guilabel:`To` field (the :guilabel:`From` field does not change)." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:64 +msgid "Time off requests appearing on the :ref:`Time Off page ` can be deferred individually. Click on an individual time off request, and the details for that request load." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:79 -msgid "Once the desired information is entered, click :guilabel:`Save & Close` to save the entry, and close the pop-up form." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:67 +msgid "The specific details for the time off request appear on the left-hand side, and all of the employee's submitted time off requests appear on the right-hand side (including the request in the details on the left-hand side)." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "Filling in the work entry Create form in Odoo." +#: ../../content/applications/hr/payroll/time_off_to_report.rst:71 +msgid "To defer the time off request to the next payslip, click the :guilabel:`Report to Next Month` button in the upper-left corner. Once processed, the :guilabel:`Report to Next Month` button disappears, and the :guilabel:`Payslip State` changes from :guilabel:`To defer to next payslip` to :guilabel:`Computed in Current Payslip`." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:89 -msgid "Conflicts" +#: ../../content/applications/hr/payroll/time_off_to_report.rst:-1 +msgid "The time off details for an individual request that needs to be deferred." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:91 -msgid "A conflict appears for any request that has not been approved, such as sick time or vacation, or if there are any errors on the work entry, such as required fields being left blank. Conflicts are required to be resolved before payslips can be generated." +#: ../../content/applications/hr/payroll/work_entries.rst:5 +msgid "The **Payroll** app automatically creates work entries based on the employee's :ref:`salary structure type `, and from the **Planning**, **Attendances**, and **Time Off** applications." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:95 -msgid "Any work entry that has a conflict to be resolved is indicated on the main :guilabel:`Work Entry` dashboard, which can be accessed by navigating to :menuselection:`Payroll app --> Work Entries --> Work Entries`. Only conflicts needing resolution are shown by default." +#: ../../content/applications/hr/payroll/work_entries.rst:9 +msgid "Work entries provide the **Payroll** app with the worked hours used to compute employee paychecks, if the employee's salary is based on work entries, as opposed to a salaried position." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:99 -msgid "Conflicts are indicated with an orange triangle in the top-left corner of each individual work entry. Click on an individual work entry to see the date and time for the specific work entry, then click :guilabel:`Edit` to view the conflict details in a pop-up window." +#: ../../content/applications/hr/payroll/work_entries.rst:15 +msgid "Work entry dashboard" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "A row of conflicts, with one entry showing details for the conflict." +#: ../../content/applications/hr/payroll/work_entries.rst:17 +msgid "The *Work Entries* dashboard of the **Payroll** app provides a visual overview of the individual work entries for every employee." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:107 -msgid "The conflict is briefly explained in an orange text box in the :guilabel:`Open` pop-up window that appears." +#: ../../content/applications/hr/payroll/work_entries.rst:20 +msgid "To open the dashboard, navigate to :menuselection:`Payroll app --> Work Entries --> Work Entries`." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:110 -msgid "The :guilabel:`Description`, :guilabel:`Employee`, and :guilabel:`Work Entry Type` are listed on the left side of the pop-up window. The :guilabel:`From` and :guilabel:`To` date and time range, as well as the total time (in hours) in the :guilabel:`Duration` field, appears on the right side." +#: ../../content/applications/hr/payroll/work_entries.rst:22 +msgid "On the :guilabel:`Work Entry` dashboard, work entries appear in alphabetical order, based on the first name of the employees. The entire month is displayed, with the current day highlighted in pale yellow." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:114 -msgid "If the conflict is due to a time off request that has not been approved yet, a :guilabel:`Time Off` field appears on the left side, with the type of time off requested in the description." +#: ../../content/applications/hr/payroll/work_entries.rst:26 +msgid "The :guilabel:`Work Entry` dashboard has a default :guilabel:`Conflicting` filter, which displays only work entries with :ref:`conflicts ` to be resolved." msgstr "" #: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "The detailed conflict pop-up window that appears when Edit is clicked." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:122 -msgid "Time off conflicts" -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:124 -msgid "The most common work entry conflicts are for time off requests that have been submitted, but not yet approved, which results in duplicate work entries for that employee (one for time off and another for regular work)." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:128 -msgid "If there is a conflict because a time off request is in the system for the same time that a regular work entry already exists, the time off request is entered in the :guilabel:`Time Off` field." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:131 -msgid "The time off conflict can be resolved either on the work entry pop-up window, or on a detailed time off request pop-up window." +msgid "Conflicts dashboard view showing all employee's conflicts in work entries." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:135 -msgid "Resolve on work entry" +#: ../../content/applications/hr/payroll/work_entries.rst:33 +msgid "Remove the default :guilabel:`Conflicting` filter from the search bar to view *all* work entries." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:137 -msgid "To resolve the time off conflict on this work entry pop-up window, click the :guilabel:`Approve Time Off` button to approve the time off request, and resolve the work entry conflict." +#: ../../content/applications/hr/payroll/work_entries.rst:38 +msgid "Adjust view" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:140 -msgid "The :guilabel:`Approve Time Off` and :guilabel:`Refuse Time Off` buttons disappear. Click the :guilabel:`Save & Close` button to close the pop-up window. The conflict disappears from the :guilabel:`Work Entry` dashboard, since the conflict is resolved." +#: ../../content/applications/hr/payroll/work_entries.rst:40 +msgid "To change the view so that only the entries for a single day, week, month, quarter, or year are shown, click the :icon:`fa-calendar` :guilabel:`(Month)(Year)` button. A drop-down menu appears with the options of :guilabel:`Today`, :guilabel:`This week`, :guilabel:`This month`, :guilabel:`This quarter`, or :guilabel:`This year`. Click on one of the options to only display data for that specific selection." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:145 -msgid "Resolve on time off request" +#: ../../content/applications/hr/payroll/work_entries.rst:46 +msgid "Use the :icon:`oi-arrow-left` :guilabel:`(left arrow)` and :icon:`oi-arrow-right` :guilabel:`(right arrow)` buttons to adjust the displayed dates. The arrows adjust the date based on the type of time selected." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:147 -msgid "To resolve the time off conflict on the detailed time off request pop-up window, click the :guilabel:`Internal Link` button at the end of the :guilabel:`Time Off` entry line, and the time off request details appear in a new pop-up window. The request can be modified, if needed." +#: ../../content/applications/hr/payroll/work_entries.rst:50 +msgid "For example, if :guilabel:`Month` is selected, the arrows move one month with each click of the arrow. If :guilabel:`Week` or :guilabel:`Day` is selected, the time moves by either a week or a day for each click of the arrow, respectively." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:151 -msgid "Click the :guilabel:`Approve` button to approve the request, then click the :guilabel:`Save & Close` button to save the changes, and go back to the work entry conflict pop-up window." +#: ../../content/applications/hr/payroll/work_entries.rst:54 +msgid "At any point, to return to a view containing the current day, click the :icon:`fa-crosshairs` :guilabel:`(Focus Today)` button." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "The detailed time off request form." +#: ../../content/applications/hr/payroll/work_entries.rst:60 +msgid "Add a new work entry" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:158 -msgid "Now, the :guilabel:`Approve Time Off` button is hidden, only the :guilabel:`Refuse Time Off` button is visible." +#: ../../content/applications/hr/payroll/work_entries.rst:62 +msgid "If a work entry is missing, such as sick time, or if an employee forgot to clock in and out for a shift, a new work entry must be created for the missing shift." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:161 -msgid "If the approval was a mistake, the request can be refused here, by clicking the :guilabel:`Refuse Time Off` button." +#: ../../content/applications/hr/payroll/work_entries.rst:65 +msgid "Click :guilabel:`New` on the :ref:`work entry dashboard `, and a blank :guilabel:`Create` work entry pop-up form appears. Enter the following information on the form:" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:164 -msgid "Since the time off was approved in the time off window, click the :guilabel:`X` in the top-right corner to close the window. The conflict disappears from the :guilabel:`Work Entry` dashboard, since it has been resolved." +#: ../../content/applications/hr/payroll/work_entries.rst:68 +msgid ":guilabel:`Description`: Enter a short description for the work entry, such as `Sick Time`. The default entry is `Attendance: (Employee)`." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:171 -msgid "Regenerate work entries" +#: ../../content/applications/hr/payroll/work_entries.rst:70 +msgid ":guilabel:`Employee`: Select the employee the work entry is for, using the drop-down menu." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:173 -msgid "When regenerating work entries, any manual changes, such as resolved conflicts, are overwritten, and work entries are regenerated (or recreated) from the applications that created them." +#: ../../content/applications/hr/payroll/work_entries.rst:71 +msgid ":guilabel:`Work Entry Type`: Select the :ref:`work entry type ` using the drop-down menu." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:176 -msgid "This method for correcting a large amount of conflicts is recommended to keep all records correct. While :ref:`conflicts ` *can* be resolved individually, if the conflicts are caused from another application, it is best practice to ensure the records in the other applications are also correct. That is why it is recommended to resolve these conflicts in the applications that created the conflict." +#: ../../content/applications/hr/payroll/work_entries.rst:73 +msgid ":guilabel:`From` and :guilabel:`To`: Enter the start (:guilabel:`From`) and end (:guilabel:`To`) dates and times for the work entry." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:182 -msgid "Another reason this method is recommended is because, when work entries are regenerated, the conflicts reappear, if the issue in the related application is **not** resolved." +#: ../../content/applications/hr/payroll/work_entries.rst:76 +msgid "First, click on either the :guilabel:`From` or :guilabel:`To` line to reveal a calendar pop-up window. Select the date by navigating to the correct month, then click on the specific day to select it." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:185 -msgid "First, ensure the issues are resolved in the specific applications that caused the work entry conflicts." +#: ../../content/applications/hr/payroll/work_entries.rst:80 +msgid "Next, select the time, by clicking on either the hour or minute fields at the bottom of the calendar, and set the desired time." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:188 -msgid "Next, click the :guilabel:`Regenerate Work Entries` button at the top of the :guilabel:`Work Entries` dashboard, and a :guilabel:`Work Entry Regeneration` pop-up window appears." +#: ../../content/applications/hr/payroll/work_entries.rst:83 +msgid "When the date and time for the entry are correct, click the :guilabel:`Apply` button." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:191 -msgid "Select the :guilabel:`Employees` to regenerate work entries for from the drop-down menu, and adjust the :guilabel:`From` and :guilabel:`To` fields, so the correct date range is displayed." +#: ../../content/applications/hr/payroll/work_entries.rst:84 +msgid ":guilabel:`Duration`: This field displays the hours based on the :guilabel:`To` and :guilabel:`From` entries. Modifying this field modifies the :guilabel:`To` field (the :guilabel:`From` field does not change)." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:194 -msgid "Click the :guilabel:`Regenerate Work Entries` button, and the work entries are recreated. Once finished, the pop-up window closes." +#: ../../content/applications/hr/payroll/work_entries.rst:88 +msgid "Once the desired information is entered, click :guilabel:`Save & Close` to save the entry, and close the pop-up form." msgstr "" #: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "Regenerate a work entry for a particular employee." -msgstr "" - -#: ../../content/applications/hr/payroll/work_entries.rst:202 -msgid "An employee has incorrect work entries generated from the *Planning* app because they were incorrectly assigned to two work stations simultaneously. This should be fixed in the *Planning* app, instead of the *Payroll* app." +msgid "Filling in the work entry Create form in Odoo." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:206 -msgid "To correct this issue, modify the employee's schedule in the *Planning* app, so they are correctly assigned to only one work station. Then, in the *Payroll* app, regenerate work entries for that employee, for that specific time period." +#: ../../content/applications/hr/payroll/work_entries.rst:97 +msgid "Conflicts" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:210 -msgid "The *Payroll* app then pulls the new, corrected data form the *Planning* app, and recreates the correct work entries for that employee. All conflicts for that employee are now resolved." +#: ../../content/applications/hr/payroll/work_entries.rst:99 +msgid "A conflict occurs when a request has not been approved, such as sick time or vacation, or if there are any errors on the work entry. Conflicts that span the current pay period being processed **must** be resolved before payslips can be generated." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:214 -msgid "Generating payslips" +#: ../../content/applications/hr/payroll/work_entries.rst:103 +msgid "Any work entry that has a conflict to be resolved is indicated on the main :guilabel:`Work Entry` dashboard, which can be accessed by navigating to :menuselection:`Payroll app --> Work Entries --> Work Entries`. Only conflicts needing resolution are shown by default." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:216 -msgid "To generate payslips, :ref:`navigate to the time period ` the payslips should be generated for. Ensure the :guilabel:`Conflicting` filter is removed. When the desired pay period is displayed, click the :guilabel:`Generate Payslips` button." +#: ../../content/applications/hr/payroll/work_entries.rst:107 +msgid "Conflicts are indicated with an orange triangle in the top-left corner of each individual work entry. Click on an individual work entry to see the date and time for the specific work entry, then click :guilabel:`Edit` to view the conflict details in a pop-up window." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:221 -msgid "If the :guilabel:`Generate Payslips` button is not active (appears pale purple, instead of dark purple), that indicates there are conflicts, or the date selected includes dates in the future. Resolve all conflicts before generating payslips." +#: ../../content/applications/hr/payroll/work_entries.rst:-1 +msgid "A row of conflicts, with one entry showing details for the conflict." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:225 -msgid "When the :guilabel:`Generate Payslips` button is clicked, a batch entry appears on a separate page for the time period selected." +#: ../../content/applications/hr/payroll/work_entries.rst:114 +msgid "The conflict is briefly explained in an orange text box in the :guilabel:`Open` pop-up window that appears." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:228 -msgid "The batch name populates the :guilabel:`Batch Name` field in a default `From (date) to (date)` format." +#: ../../content/applications/hr/payroll/work_entries.rst:117 +msgid "The :guilabel:`Description`, :guilabel:`Employee`, and :guilabel:`Work Entry Type` are listed on the left side of the pop-up window. The :guilabel:`From` and :guilabel:`To` date and time range, as well as the total time (in hours) in the :guilabel:`Duration` field, appears on the right side." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:231 -msgid "The date range to which the payslips apply appears in the :guilabel:`Period` field, and the company appears in the :guilabel:`Company` field. It is **not** possible to make changes to this form." +#: ../../content/applications/hr/payroll/work_entries.rst:122 +msgid "Time off conflicts" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:234 -msgid "Click the :guilabel:`Create Draft Entry` button to create the payslips for the batch." +#: ../../content/applications/hr/payroll/work_entries.rst:124 +msgid "The most common work entry conflicts are for time off requests. Odoo automatically generates work entries for specific time periods. When time off is requested after these work entries are generated, it results in duplicate work entries for that employee (one for time off and another for regular work)." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:236 -msgid "Click the :guilabel:`Payslips` smart button at the top of the page to view all the payslips for the batch." +#: ../../content/applications/hr/payroll/work_entries.rst:129 +msgid "If there is a conflict because a time off request is in the system for the same time that a regular work entry already exists, the time off request is entered in a :guilabel:`Time Off` field." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "Information that appears when generating payslips." +#: ../../content/applications/hr/payroll/work_entries.rst:132 +msgid "Conflicts can be resolved either directly on the work entry or in the detailed time off request form." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:244 -msgid "Printing payslips" +#: ../../content/applications/hr/payroll/work_entries.rst:138 +msgid "Resolve on work entry" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:246 -msgid "To print payslips, first view the individual payslips by clicking the :guilabel:`Payslips` smart button on the batch form." +#: ../../content/applications/hr/payroll/work_entries.rst:140 +msgid "If no additional details are needed to determine if a time off request should be approved or refused, the time off conflict can be resolved directly from the work entry pop-up window." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:249 -msgid "Next, select the payslips to print from the :guilabel:`Payslips` list. Click the box next to each payslip to print, or click the box to the left of the :guilabel:`Reference` column title, to select all the payslips in the list at once." +#: ../../content/applications/hr/payroll/work_entries.rst:143 +msgid "Click either the :guilabel:`Refuse Time Off` or :guilabel:`Approve Time Off` buttons to refuse or approve the time off request, then the two buttons disappear. Click the :guilabel:`Save & Close` button to close the pop-up window." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:253 -msgid "Click the :guilabel:`Print` button, and a PDF file is created with all the specified payslips." +#: ../../content/applications/hr/payroll/work_entries.rst:147 +msgid "The conflict disappears from the :guilabel:`Work Entry` dashboard, since the conflict is now resolved." msgstr "" #: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "Print button for printing the payslips." +msgid "The detailed conflict pop-up window that appears when the Edit button is clicked." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:260 -msgid "The :guilabel:`Print` button does **not** appear until at least one payslip is selected in the list." +#: ../../content/applications/hr/payroll/work_entries.rst:154 +msgid "If the time off is approved, the status of the work entry conflict changes to :guilabel:`Cancelled`. If the time off is refused, the status changes to :guilabel:`Draft`." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:264 -msgid "Time off to report" +#: ../../content/applications/hr/payroll/work_entries.rst:160 +msgid "Resolve on time off request" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:266 -msgid "If a time off request is submitted for a time period that was already processed on a payslip, the time off request appears in the *Time Off* page in the *Payroll* app, which is accessible by navigating to :menuselection:`Payroll app --> Work Entries --> Time Off to Report`." +#: ../../content/applications/hr/payroll/work_entries.rst:162 +msgid "If more details are needed to make a decision about the time off request, hover over the entry in the :guilabel:`Time Off` field, and click the :icon:`fa-external-link` :guilabel:`(Internal Link)` icon that appears at the end of the line. This causes an :guilabel:`Open: Time Off` pop-up window to load, with all the time off request details. Click either the :guilabel:`Approve` or :guilabel:`Refuse` buttons to approve or refuse the request." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:270 -msgid "On the :guilabel:`Time Off` page, the request appears with a status of :guilabel:`To defer to next payslip`. This is because the employee was already paid for that day, and it was logged as time spent at work, as a typical work day." +#: ../../content/applications/hr/payroll/work_entries.rst:168 +msgid "To resolve the time off conflict on the detailed time off request pop-up window, click the :guilabel:`Internal Link` button at the end of the :guilabel:`Time Off` entry line, and the time off request details appear in a new pop-up window. The request can be modified, if needed." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:274 -msgid "In order to keep the employee's time off balances correct, the time off request **must** be applied to the following pay period. This not only ensures time off request balances are current, it also eliminates the need to redo work entries, cancel paychecks, and reissue paychecks." +#: ../../content/applications/hr/payroll/work_entries.rst:172 +msgid "Click the :guilabel:`Approve` button to approve the request, then click the :guilabel:`Save & Close` button to save the changes, and go back to the work entry conflict pop-up window." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:278 -msgid "The most common scenario when this situation occurs, is when payslips are processed a day or two before the pay period ends, and an employee is unexpectedly sick on one of the last days of the pay period. The employee puts in a time off request for a day that was already processed on a payslip as a regular work day. Instead of cancelling the payslip, modifying the work entries, and reissuing the paycheck, Odoo allows for those time off requests to be applied to the following pay period, instead." +#: ../../content/applications/hr/payroll/work_entries.rst:-1 +msgid "The detailed time off request information." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:285 -msgid "To view all the time off requests that need to be deferred to the next payslip, navigate to :menuselection:`Payroll app --> Work Entries --> Time Off to Report`. The default filter for this report is :guilabel:`To Defer`." +#: ../../content/applications/hr/payroll/work_entries.rst:178 +msgid "Now, the :guilabel:`Approve Time Off` button is hidden, only the :guilabel:`Refuse Time Off` button is visible." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:289 -msgid "All time off requests that need to be applied to the following pay period appear with a :guilabel:`Payslip State` of :guilabel:`To defer to next payslip`." +#: ../../content/applications/hr/payroll/work_entries.rst:181 +msgid "If the approval was a mistake, the request can be refused here, by clicking the :guilabel:`Refuse Time Off` button." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "A list of all time off requests that were not approved before payslips were generated." +#: ../../content/applications/hr/payroll/work_entries.rst:184 +msgid "Since the time off was approved in the time off window, click the :guilabel:`X` in the top-right corner to close the window. The conflict disappears from the :guilabel:`Work Entry` dashboard, since it has been resolved." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:297 -msgid "Defer multiple time off entries" +#: ../../content/applications/hr/payroll/work_entries.rst:191 +msgid "Regenerate work entries" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:299 -msgid "To select the work entries to defer, click the box to the left of the work entry line. To select all work entries in the list, click the box to the left of the :guilabel:`Employees` column title, at the top of the list." +#: ../../content/applications/hr/payroll/work_entries.rst:193 +msgid "After conflicts are resolved, the affected work entries must be regenerated. This recreates the specified work entries, and overwrites the previously conflicting work entries." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:303 -msgid "Once any work entry is selected, two buttons appear at the top of the report: a :guilabel:`(#) Selected` button, and an :guilabel:`Actions` button. The :guilabel:`(#) Selected` button indicates how many entries are currently selected." +#: ../../content/applications/hr/payroll/work_entries.rst:196 +msgid "While :ref:`conflicts ` *can* be resolved individually, if the conflicts are caused from another application, such as **Planning** or **Attendances**, it is best practice to correct the record in the application causing the conflict. The reason this method is recommended is because, if the issue in the related application is **not** resolved, when work entries are regenerated, the conflicts reappear." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:307 -msgid "When all the desired work entries are selected, click the :guilabel:`Actions` button, and a menu appears with several choices. Click :guilabel:`Defer to Next Month` in the list, and all selected entries are deferred to the following month." +#: ../../content/applications/hr/payroll/work_entries.rst:202 +msgid "First, ensure the issues are resolved in the specific applications that caused the work entry conflicts. Once the conflicts have been resolved in the corresponding apps, open the work entry dashboard by navigating to :menuselection:`Payroll app --> Work Entries --> Work Entries`." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "The actions button and # Selected buttons that appear after any selections are made." +#: ../../content/applications/hr/payroll/work_entries.rst:206 +msgid "Click the :guilabel:`Regenerate Work Entries` button at the top of the :guilabel:`Work Entries` dashboard, and a :guilabel:`Work Entry Regeneration` pop-up window appears." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:316 -msgid "Defer individual time off entries" +#: ../../content/applications/hr/payroll/work_entries.rst:209 +msgid "Select the :guilabel:`Employees` to regenerate work entries for, using the drop-down menu. Adjust the :guilabel:`From` and :guilabel:`To` fields, so the correct date range is displayed." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:318 -msgid "Time off requests appearing on the :guilabel:`Time Off to Report` list can be deferred individually." +#: ../../content/applications/hr/payroll/work_entries.rst:212 +msgid "Click the :guilabel:`Regenerate Work Entries` button, and the work entries are recreated. Once finished, the pop-up window closes." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:320 -msgid "Click on an individual time off request, and the details for that request load." +#: ../../content/applications/hr/payroll/work_entries.rst:-1 +msgid "Regenerate a work entry for a particular employee." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:322 -msgid "The specific details for the time off request appear on the left-hand side, and all of the employee's submitted time off requests appear on the right-hand side (including the request in the details on the left-hand side)." +#: ../../content/applications/hr/payroll/work_entries.rst:219 +msgid "An employee has incorrect work entries generated from the **Planning** app because they were incorrectly assigned to two work stations simultaneously. This should be fixed in the **Planning** app, instead of the **Payroll** app." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:326 -msgid "To defer the time off request to the next payslip, click the :guilabel:`Report to Next Month` button at the top. Once processed, the :guilabel:`Report to Next Month` button disappears, and the :guilabel:`Payslip State` changes from :guilabel:`To defer to next payslip` to :guilabel:`Computed in Current Payslip`." +#: ../../content/applications/hr/payroll/work_entries.rst:223 +msgid "To correct this issue, modify the employee's schedule in the **Planning** app, so they are correctly assigned to only one work station. Then, in the **Payroll** app, regenerate work entries for that employee, for that specific time period." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:331 -msgid "To go back to the :guilabel:`Time Off to Report` list, click on :guilabel:`Time Off` in the breadcrumb menu." +#: ../../content/applications/hr/payroll/work_entries.rst:227 +msgid "The **Payroll** app then pulls the new, corrected data form the **Planning** app, and recreates the correct work entries for that employee. All conflicts for that employee are now resolved." msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:-1 -msgid "The time off details for an individual request that needs to be deferred." +#: ../../content/applications/hr/payroll/work_entries.rst:231 +msgid ":doc:`payslips`" msgstr "" -#: ../../content/applications/hr/payroll/work_entries.rst:339 -msgid ":ref:`Configure work entries `" +#: ../../content/applications/hr/payroll/work_entries.rst:233 +msgid ":doc:`batches`" msgstr "" #: ../../content/applications/hr/payroll/work_entry_analysis.rst:3 @@ -18495,90 +19472,62 @@ msgid "Before creating a job position in Odoo, configure the necessary settings msgstr "" #: ../../content/applications/hr/recruitment.rst:39 -msgid "Job posting" -msgstr "" - -#: ../../content/applications/hr/recruitment.rst:41 -msgid "The :guilabel:`Job Posting` section of the **Recruitment** app settings has two configurations, enabling posting jobs on the company website, and on external job boards." -msgstr "" - -#: ../../content/applications/hr/recruitment.rst:44 -msgid "If job positions are to be posted to the company's website, enable the :guilabel:`Online Posting` option." -msgstr "" - -#: ../../content/applications/hr/recruitment.rst:48 -msgid "The :guilabel:`Online Posting` is only available if the :doc:`Website <../websites/website>` application is also installed." -msgstr "" - -#: ../../content/applications/hr/recruitment.rst:51 -msgid "The **Recruitment** app can post job positions directly to a job board. To enable this, click :icon:`oi-arrow-right` :guilabel:`Choose a Job Board`, and the required module is presented, if not already installed. Click :guilabel:`Install` on the corresponding module, then the main Odoo dashboard loads after a successful installation." -msgstr "" - -#: ../../content/applications/hr/recruitment.rst:56 -msgid "Open the **Recruitment** app, and navigate to :menuselection:`Recruitment app --> Configuration --> Settings`. The corresponding job board credentials are listed. Enter the :guilabel:`Username` and :guilabel:`Password` for the job board. Click the :guilabel:`Save` button after making any changes." -msgstr "" - -#: ../../content/applications/hr/recruitment.rst:61 -msgid "Currently, the only job board integration with Odoo is Monster.com." -msgstr "" - -#: ../../content/applications/hr/recruitment.rst:64 msgid "Process" msgstr "" -#: ../../content/applications/hr/recruitment.rst:66 +#: ../../content/applications/hr/recruitment.rst:41 msgid "The :guilabel:`Process` section of the settings page specifies what the database can and cannot do during the recruitment process." msgstr "" -#: ../../content/applications/hr/recruitment.rst:70 +#: ../../content/applications/hr/recruitment.rst:45 msgid "Send interview survey" msgstr "" -#: ../../content/applications/hr/recruitment.rst:72 +#: ../../content/applications/hr/recruitment.rst:47 msgid "Odoo is capable of having a survey sent to an applicant to gather more information about them. Surveys can be thought of as exams, or questionnaires, and can be customized in various ways to provide the recruitment team with valuable insights into the applicant" msgstr "" -#: ../../content/applications/hr/recruitment.rst:76 +#: ../../content/applications/hr/recruitment.rst:51 msgid "Enable the :guilabel:`Send Interview Survey` option to send surveys to applicants. Once enabled, an :icon:`fa-arrow-right` :guilabel:`Interview Survey` internal link appears. Click the :icon:`fa-arrow-right` :guilabel:`Interview Survey` link to navigate to a list of all created surveys." msgstr "" -#: ../../content/applications/hr/recruitment.rst:81 +#: ../../content/applications/hr/recruitment.rst:56 msgid "This list includes all surveys that were created in the database, not only surveys used in the **Recruitment** app. If no surveys have been created, the surveys list displays a :guilabel:`No Survey Found` message, and presents options to create a survey from several preconfigured survey templates." msgstr "" -#: ../../content/applications/hr/recruitment.rst:87 +#: ../../content/applications/hr/recruitment.rst:62 msgid ":doc:`create/edit surveys <../marketing/surveys/create>`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:90 +#: ../../content/applications/hr/recruitment.rst:65 msgid "Enabling the :guilabel:`Send Interview Survey` option will install the **Surveys** application once the settings are saved, if not already installed." msgstr "" -#: ../../content/applications/hr/recruitment.rst:96 +#: ../../content/applications/hr/recruitment.rst:71 msgid "When sending an offer to an applicant, an expiration date can be set on the offer. Enter the number of days an offer is valid for in the :guilabel:`days` field. After the set amount of days has passed, if the applicant has not accepted the offer, the offer is no longer available." msgstr "" -#: ../../content/applications/hr/recruitment.rst:103 +#: ../../content/applications/hr/recruitment.rst:78 msgid "Résumé display" msgstr "" -#: ../../content/applications/hr/recruitment.rst:105 +#: ../../content/applications/hr/recruitment.rst:80 msgid "When applicants submit an application, one of the default required fields is a résumé, or :abbr:`CV (curriculum vitae)`. All résumés are stored in the **Documents** application, and are accessible on the applicant's card." msgstr "" -#: ../../content/applications/hr/recruitment.rst:109 +#: ../../content/applications/hr/recruitment.rst:84 msgid "A résumé has the option to appear on the applicant's form, which can be viewed by clicking on the applicant's card. The résumé appears on the right-side of the screen. If this is not enabled, the résumé is accessed via a link in the chatter, where it needs to be clicked to expand and view it, or downloaded." msgstr "" -#: ../../content/applications/hr/recruitment.rst:114 +#: ../../content/applications/hr/recruitment.rst:89 msgid "Enable the :guilabel:`Résumé Display` option to show the résumé on the applicant's card by default, and in addition to the document link. When enabled, the résumé appears on the right side of the applicant's card." msgstr "" -#: ../../content/applications/hr/recruitment.rst:119 +#: ../../content/applications/hr/recruitment.rst:94 msgid "For the résumé to appear on the right-side, the browser window must be in full-screen mode (where the browser spans the entire screen)." msgstr "" -#: ../../content/applications/hr/recruitment.rst:122 +#: ../../content/applications/hr/recruitment.rst:97 msgid "If the browser window is set to a size smaller than the entire width of the screen (not full-screen), then the résumé does not appear on the right-side. Instead, the résumé appears in the :guilabel:`Files` section of the chatter, below the applicant's card." msgstr "" @@ -18586,64 +19535,64 @@ msgstr "" msgid "The résumé on an applicant's card, appearing on the right side." msgstr "" -#: ../../content/applications/hr/recruitment.rst:130 +#: ../../content/applications/hr/recruitment.rst:105 msgid "In-App Purchases" msgstr "" -#: ../../content/applications/hr/recruitment.rst:132 +#: ../../content/applications/hr/recruitment.rst:107 msgid "The :guilabel:`In-App Purchases` section of the :guilabel:`Settings` menu deals with items that required credits to use, such as :abbr:`SMS (Short Message Service)` text messages, and digitizing résumés." msgstr "" -#: ../../content/applications/hr/recruitment.rst:137 +#: ../../content/applications/hr/recruitment.rst:112 msgid ":doc:`SMS pricing and FAQs <../marketing/sms_marketing/pricing_and_faq>`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:140 +#: ../../content/applications/hr/recruitment.rst:115 #: ../../content/applications/hr/referrals/share_jobs.rst:82 msgid "Send SMS" msgstr "" -#: ../../content/applications/hr/recruitment.rst:142 +#: ../../content/applications/hr/recruitment.rst:117 msgid "It is possible to send text messages to applicants directly through the **Recruitment** app. This feature requires credits to use. Click the :icon:`fa-arrow-right` :guilabel:`Manage Service & Buy Credits` internal link, and follow the steps to :doc:`purchase credits <../marketing/sms_marketing/pricing_and_faq>`." msgstr "" -#: ../../content/applications/hr/recruitment.rst:150 +#: ../../content/applications/hr/recruitment.rst:125 msgid "Résumé digitization (OCR)" msgstr "" -#: ../../content/applications/hr/recruitment.rst:152 +#: ../../content/applications/hr/recruitment.rst:127 msgid "When an application is submitted using any of the available methods, such as an online application submission, emailing a resume to the job position alias, or creating an applicant record directly from the database, it is possible to have Odoo extract the applicant's name, phone number, and email address from the résumé and populate the applicant's form. To do so, enable the :guilabel:`Résumé Digitization (OCR)` option." msgstr "" -#: ../../content/applications/hr/recruitment.rst:158 +#: ../../content/applications/hr/recruitment.rst:133 msgid "When enabled, additional options appear. Click on the corresponding radio button to select one of the following options:" msgstr "" -#: ../../content/applications/hr/recruitment.rst:161 +#: ../../content/applications/hr/recruitment.rst:136 msgid ":guilabel:`Do not digitize`: this option turns off résumé digitization." msgstr "" -#: ../../content/applications/hr/recruitment.rst:162 +#: ../../content/applications/hr/recruitment.rst:137 msgid ":guilabel:`Digitize on demand only`: this option only digitizes resumes when requested. A :guilabel:`Digitize document` buttons appears on applicant cards. When clicked, the résumé is scanned and the applicant's card is updated." msgstr "" -#: ../../content/applications/hr/recruitment.rst:165 +#: ../../content/applications/hr/recruitment.rst:140 msgid ":guilabel:`Digitize automatically`: this option automatically digitizes all résumés when they are submitted." msgstr "" -#: ../../content/applications/hr/recruitment.rst:168 +#: ../../content/applications/hr/recruitment.rst:143 msgid "Beneath these options are two additional links. Click the :icon:`fa-arrow-right` :guilabel:`Manage Service & Buy Credits` internal link to purchase credits for résumé digitization. Click the :icon:`fa-arrow-right` :guilabel:`View My Services` internal link to view a list of all current services, and their remaining credit balances." msgstr "" -#: ../../content/applications/hr/recruitment.rst:173 +#: ../../content/applications/hr/recruitment.rst:148 msgid "For more information on document digitization and :abbr:`IAP's (in-app purchases)`, refer to the :doc:`In-app purchase (IAP) <../essentials/in_app_purchase>` documentation." msgstr "" -#: ../../content/applications/hr/recruitment.rst:177 +#: ../../content/applications/hr/recruitment.rst:152 msgid "The :guilabel:`Do not digitize` option may appear redundant but serves a distinct purpose. Disabling the :guilabel:`Résumé Digitization (OCR)` option uninstalls the module, while :guilabel:`Do not digitize` keeps the module installed but inactive—allowing the user to re-enable digitization later without reinstalling the module." msgstr "" -#: ../../content/applications/hr/recruitment.rst:185 +#: ../../content/applications/hr/recruitment.rst:160 msgid "To access the Kanban view for a job position, navigate to the main :menuselection:`Recruitment` app dashboard, which is the default view when opening the application. All job positions appear on the main dashboard. Click the :guilabel:`(#) New Applications` smart button on a job position card to navigate to the Kanban view for all the applicants for that particular job position." msgstr "" @@ -18651,35 +19600,35 @@ msgstr "" msgid "Main dashboard view of job position card, showing new applications button." msgstr "" -#: ../../content/applications/hr/recruitment.rst:193 +#: ../../content/applications/hr/recruitment.rst:168 msgid "Inside the job application, the Kanban stages appear, with all the applicants populated in their respective columns, indicating what stage they are currently in. In Odoo, six default stages are configured:" msgstr "" -#: ../../content/applications/hr/recruitment.rst:197 +#: ../../content/applications/hr/recruitment.rst:172 msgid ":ref:`New `" msgstr "" -#: ../../content/applications/hr/recruitment.rst:198 +#: ../../content/applications/hr/recruitment.rst:173 msgid ":ref:`Initial Qualification `" msgstr "" -#: ../../content/applications/hr/recruitment.rst:199 +#: ../../content/applications/hr/recruitment.rst:174 msgid ":ref:`First Interview `" msgstr "" -#: ../../content/applications/hr/recruitment.rst:200 +#: ../../content/applications/hr/recruitment.rst:175 msgid ":ref:`Second Interview `" msgstr "" -#: ../../content/applications/hr/recruitment.rst:201 +#: ../../content/applications/hr/recruitment.rst:176 msgid ":doc:`Contract Proposal `" msgstr "" -#: ../../content/applications/hr/recruitment.rst:202 +#: ../../content/applications/hr/recruitment.rst:177 msgid ":ref:`Contract Signed `" msgstr "" -#: ../../content/applications/hr/recruitment.rst:204 +#: ../../content/applications/hr/recruitment.rst:179 msgid "The last column, :guilabel:`Contract Signed`, is folded by default. Folded columns appear gray, and the applicants in it are hidden from view. To expand the folded stage and view the applicant cards for that column, click anywhere on the thin gray column that says the stage name and the column expands, revealing the applicants." msgstr "" @@ -18687,23 +19636,23 @@ msgstr "" msgid "Expand a folded column by clicking on it in the Kanban view." msgstr "" -#: ../../content/applications/hr/recruitment.rst:212 +#: ../../content/applications/hr/recruitment.rst:187 msgid "Each stage has a color-coded bar beneath the stage name, providing status information for the applicant's in that specific stage. The status colors are:" msgstr "" -#: ../../content/applications/hr/recruitment.rst:215 +#: ../../content/applications/hr/recruitment.rst:190 msgid ":guilabel:`Green`: the applicant is ready to move to the next stage." msgstr "" -#: ../../content/applications/hr/recruitment.rst:216 +#: ../../content/applications/hr/recruitment.rst:191 msgid ":guilabel:`Red`: the applicant is blocked from moving to the next stage." msgstr "" -#: ../../content/applications/hr/recruitment.rst:217 +#: ../../content/applications/hr/recruitment.rst:192 msgid ":guilabel:`Gray`: the applicant is still in progress in the current stage and is neither ready nor blocked from the next stage." msgstr "" -#: ../../content/applications/hr/recruitment.rst:220 +#: ../../content/applications/hr/recruitment.rst:195 msgid "The status for each card is set manually. To set the status, click on the small circle in the lower-left of the applicant card. A status pop-up window appears. Click on the desired status for the applicant. The status dot on the applicant card as well as the status bar updates." msgstr "" @@ -18711,23 +19660,23 @@ msgstr "" msgid "The applicant card statuses, and status bar." msgstr "" -#: ../../content/applications/hr/recruitment.rst:228 +#: ../../content/applications/hr/recruitment.rst:203 msgid "The names for the three status colors (`In Progress`, `Ready for Next Stage`, and `Blocked`) :ref:`can be modified `, if desired." msgstr "" -#: ../../content/applications/hr/recruitment.rst:234 +#: ../../content/applications/hr/recruitment.rst:209 msgid "Customize stages" msgstr "" -#: ../../content/applications/hr/recruitment.rst:236 +#: ../../content/applications/hr/recruitment.rst:211 msgid "Stages can be modified, added, or deleted to match the particular hiring steps of a business." msgstr "" -#: ../../content/applications/hr/recruitment.rst:239 +#: ../../content/applications/hr/recruitment.rst:214 msgid "New stage" msgstr "" -#: ../../content/applications/hr/recruitment.rst:241 +#: ../../content/applications/hr/recruitment.rst:216 msgid "To create a new stage, click on :icon:`fa-plus` :guilabel:`Stage` and a new column appears. Enter the title for the new stage in the :guilabel:`Stage title` field, then click :guilabel:`Add`. The new column appears, and another new stage is available to create. If no new stages are needed, click anywhere on the screen to exit the new stage creation." msgstr "" @@ -18735,12 +19684,12 @@ msgstr "" msgid "The plus sign to click to add a new column to the Kanban stages." msgstr "" -#: ../../content/applications/hr/recruitment.rst:252 +#: ../../content/applications/hr/recruitment.rst:227 #: ../../content/applications/hr/recruitment/schedule_interviews.rst:215 msgid "Modify stage" msgstr "" -#: ../../content/applications/hr/recruitment.rst:254 +#: ../../content/applications/hr/recruitment.rst:229 msgid "To modify the settings of a stage, hover over the name of the stage, and a :icon:`fa-cog` :guilabel:`(Settings)` icon appears in the upper right hand side of the stage. Click on the :icon:`fa-cog` :guilabel:`(Settings)` icon and a menu appears. Then click on the :guilabel:`Edit` option. An :guilabel:`Edit: (Stage)` form appears. Make any desired modifications to the form, then click :guilabel:`Save & Close` when done." msgstr "" @@ -18749,99 +19698,99 @@ msgid "The gear icon that appears when a column name is moused over, and the dro "displays when clicked." msgstr "" -#: ../../content/applications/hr/recruitment.rst:267 +#: ../../content/applications/hr/recruitment.rst:242 msgid "Edit stage form" msgstr "" -#: ../../content/applications/hr/recruitment.rst:269 +#: ../../content/applications/hr/recruitment.rst:244 msgid "The :guilabel:`Edit: (Stage)` form is where the stage's settings are configured. The only required field is the :guilabel:`Stage Name`." msgstr "" -#: ../../content/applications/hr/recruitment.rst:272 +#: ../../content/applications/hr/recruitment.rst:247 msgid "The fields to be populated or modified are:" msgstr "" -#: ../../content/applications/hr/recruitment.rst:274 +#: ../../content/applications/hr/recruitment.rst:249 msgid ":guilabel:`Stage Name`: Type in a name for the stage." msgstr "" -#: ../../content/applications/hr/recruitment.rst:275 +#: ../../content/applications/hr/recruitment.rst:250 msgid ":guilabel:`Email Template`: Select an email template to be used from the drop-down menu. If a template is selected, when the applicant card enters the stage, an email is automatically sent to the applicant using the selected template." msgstr "" -#: ../../content/applications/hr/recruitment.rst:278 +#: ../../content/applications/hr/recruitment.rst:253 msgid ":guilabel:`Folded in Kanban`: Check the box to have the stage appear folded (hidden) at all times in the default view." msgstr "" -#: ../../content/applications/hr/recruitment.rst:280 +#: ../../content/applications/hr/recruitment.rst:255 msgid ":guilabel:`Hired Stage`: Check the box if this stage indicates that the applicant is hired. When an applicant's card enters this stage, the card displays a :guilabel:`Hired` banner in the upper right corner. If this box is checked, this stage is used to determine the hire date of an applicant." msgstr "" -#: ../../content/applications/hr/recruitment.rst:284 +#: ../../content/applications/hr/recruitment.rst:259 msgid ":guilabel:`Job Specific`: If the stage only applies to specific job positions, select the job positions from the drop-down menu. Multiple job positions can be selected." msgstr "" -#: ../../content/applications/hr/recruitment.rst:286 +#: ../../content/applications/hr/recruitment.rst:261 msgid ":guilabel:`Show in Referrals`: Check the box if this stage should be seen in the *Referrals* application, and allow the referrer to accrue points when a referral of theirs reaches this stage. If this is active, a :guilabel:`Points` field appears. Enter the amount of referral points the employee receives when an applicant enters this stage. The **Referrals** app must be installed in order to use this option." msgstr "" -#: ../../content/applications/hr/recruitment.rst:291 +#: ../../content/applications/hr/recruitment.rst:266 msgid ":guilabel:`Points`: If :guilabel:`Show in Referrals` is enabled, this field appears. Enter the number of points the employee earns when an applicant moves to this stage." msgstr "" -#: ../../content/applications/hr/recruitment.rst:293 +#: ../../content/applications/hr/recruitment.rst:268 msgid ":guilabel:`Tooltips` section: There are three preconfigured status labels (colored circles) for each applicant's card, indicating its status. These colors are displayed at the top of each stage to reflect the statuses of the applicants in the stage. The *names* for the label can be modified, but the label itself (the color) cannot. The default names and labels are: :guilabel:`In Progress` (gray), :guilabel:`Blocked` (red), and :guilabel:`Ready for Next Stage` (green)." msgstr "" -#: ../../content/applications/hr/recruitment.rst:298 +#: ../../content/applications/hr/recruitment.rst:273 msgid ":guilabel:`Requirements`: Enter any internal notes for this stage explaining any requirements of the stage." msgstr "" -#: ../../content/applications/hr/recruitment.rst:302 +#: ../../content/applications/hr/recruitment.rst:277 msgid "Delete stage" msgstr "" -#: ../../content/applications/hr/recruitment.rst:304 +#: ../../content/applications/hr/recruitment.rst:279 msgid "If a stage is no longer needed, the stage can be deleted. To delete a stage, hover over the name of the stage, and a :icon:`fa-cog` :guilabel:`(Settings)` icon appears. First, click on the :icon:`fa-cog` :guilabel:`(Settings)` icon to reveal a drop-down menu, then click :guilabel:`Delete`. A :guilabel:`Confirmation` pop-up warning appears, asking :guilabel:`Are you sure you want to delete this column?` Click :guilabel:`Delete` to delete the column." msgstr "" -#: ../../content/applications/hr/recruitment.rst:311 +#: ../../content/applications/hr/recruitment.rst:286 msgid "If there are applicants currently in the stage being deleted, an error pops up when attempting to delete the stage. The records currently in the stage to need to be either deleted, archived, or moved to a different stage before the stage can be deleted." msgstr "" -#: ../../content/applications/hr/recruitment.rst:316 +#: ../../content/applications/hr/recruitment.rst:291 msgid "Email templates" msgstr "" -#: ../../content/applications/hr/recruitment.rst:318 +#: ../../content/applications/hr/recruitment.rst:293 msgid "To communicate with the applicant, Odoo has several preconfigured email templates that can be used. The preconfigured email templates and when to use them are as follows:" msgstr "" -#: ../../content/applications/hr/recruitment.rst:321 +#: ../../content/applications/hr/recruitment.rst:296 msgid ":guilabel:`Recruitment: Applicant Acknowledgement`: this template is used to let the applicant know that their application was received. This email is automatically sent out once the applicant is in the :guilabel:`New` stage." msgstr "" -#: ../../content/applications/hr/recruitment.rst:324 +#: ../../content/applications/hr/recruitment.rst:299 msgid ":guilabel:`Recruitment: Interest`: this template is used to let the applicant know that their application caught the recruiter's attention, and they have been shortlisted for either a phone call or an interview." msgstr "" -#: ../../content/applications/hr/recruitment.rst:327 +#: ../../content/applications/hr/recruitment.rst:302 msgid ":guilabel:`Recruitment: Not interested anymore`: this template is used when an applicant communicates that they are no longer interested in the position, and thanks them for their time and consideration." msgstr "" -#: ../../content/applications/hr/recruitment.rst:330 +#: ../../content/applications/hr/recruitment.rst:305 msgid ":guilabel:`Recruitment: Refuse`: this template is used when an applicant is no longer being considered for the position." msgstr "" -#: ../../content/applications/hr/recruitment.rst:332 +#: ../../content/applications/hr/recruitment.rst:307 msgid ":guilabel:`Recruitment: Schedule Interview`: this template is used to let the applicant know that they have passed the :guilabel:`Initial Qualification` stage, and they will soon be contacted to set up an interview with the recruiter. This email is automatically sent out once the applicant is in the :guilabel:`Initial Qualification` stage." msgstr "" -#: ../../content/applications/hr/recruitment.rst:338 +#: ../../content/applications/hr/recruitment.rst:313 msgid "Email templates can be created, modified, and deleted to suit the needs of a business. For more information on email templates, refer to the :doc:`../general/companies/email_template` document." msgstr "" -#: ../../content/applications/hr/recruitment.rst:341 +#: ../../content/applications/hr/recruitment.rst:316 msgid "To manually send an email, click :guilabel:`Send message` in the chatter. A text box appears, as well as the applicant's email address." msgstr "" @@ -18849,31 +19798,31 @@ msgstr "" msgid "Send an email from the chatter." msgstr "" -#: ../../content/applications/hr/recruitment.rst:347 +#: ../../content/applications/hr/recruitment.rst:322 msgid "Click the :icon:`fa-expand` :guilabel:`(Full composer)` icon in the bottom right corner of the :guilabel:`Send Message` tab in the chatter. A :guilabel:`Compose Email` pop-up window loads, with the :guilabel:`To` and :guilabel:`Subject` pre-populated. The applicant's email address is entered in the :guilabel:`To` field, and the :guilabel:`Subject` is `(Job Position)`. The email body is empty by default." msgstr "" -#: ../../content/applications/hr/recruitment.rst:353 +#: ../../content/applications/hr/recruitment.rst:328 msgid "To use a preconfigured email template, click the :icon:`fa-ellipsis-v` :guilabel:`(vertical elipsis)` button in the bottom of the window. Select the email template to use from the drop-down menu." msgstr "" -#: ../../content/applications/hr/recruitment.rst:357 +#: ../../content/applications/hr/recruitment.rst:332 msgid "Preconfigured email templates may contain dynamic placeholders so unique information can be populated in the email for a more personalized message to the applicant. Several preconfigured email templates are available to choose from. Depending on the template selected, the email subject or body may change." msgstr "" -#: ../../content/applications/hr/recruitment.rst:363 +#: ../../content/applications/hr/recruitment.rst:338 msgid "Only the email templates that are configured for the model load. Other email templates come preconfigured in Odoo, but if they are not configured for the recruitment application, they do not appear in the list of available templates." msgstr "" -#: ../../content/applications/hr/recruitment.rst:367 +#: ../../content/applications/hr/recruitment.rst:342 msgid "If any attachments need to be added, click the :icon:`fa-paperclip` :guilabel:`(paperclip)` button at the bottom of the window. Navigate to the file to be attached, then click :guilabel:`Open` to attach it. To delete an attachment, click the :icon:`fa-close` :guilabel:`(delete)` icon to the right of the attachment." msgstr "" -#: ../../content/applications/hr/recruitment.rst:372 +#: ../../content/applications/hr/recruitment.rst:347 msgid "If any changes need to be made to the email, edit the body of the email. If the edits should be saved to be used in the future, the email can be saved as a new template. Click the :icon:`fa-ellipsis-v` :guilabel:`(vertical elipsis)` button in the bottom of the window, and select :guilabel:`Save as Template`. Options are presented to either overwrite an existing template, or save a new template. Click on an existing template name to overwrite that template, or click :guilabel:`Save as Template` to save a new template. A :guilabel:`Create a Mail Template` pop-up window loads. Enter a name for the template in the :guilabel:`Template Name` field, then click :guilabel:`Save`." msgstr "" -#: ../../content/applications/hr/recruitment.rst:381 +#: ../../content/applications/hr/recruitment.rst:356 msgid "To send the email, click :guilabel:`Send` and the email is sent to the applicant. The email then appears in the chatter." msgstr "" @@ -18883,39 +19832,43 @@ msgid "Send a custom survey, also referred to as an interview form, to an applic "preconfigured template." msgstr "" -#: ../../content/applications/hr/recruitment.rst:389 +#: ../../content/applications/hr/recruitment.rst:364 msgid ":doc:`recruitment/new_job`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:390 +#: ../../content/applications/hr/recruitment.rst:365 +msgid ":doc:`recruitment/post_job`" +msgstr "" + +#: ../../content/applications/hr/recruitment.rst:366 msgid ":doc:`recruitment/add-new-applicants`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:391 +#: ../../content/applications/hr/recruitment.rst:367 msgid ":doc:`recruitment/schedule_interviews`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:392 +#: ../../content/applications/hr/recruitment.rst:368 msgid ":doc:`recruitment/offer_job_positions`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:393 +#: ../../content/applications/hr/recruitment.rst:369 msgid ":doc:`recruitment/refuse_applicant`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:394 +#: ../../content/applications/hr/recruitment.rst:370 msgid ":doc:`recruitment/applicant_analysis`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:395 +#: ../../content/applications/hr/recruitment.rst:371 msgid ":doc:`recruitment/source_analysis`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:396 -msgid ":doc:`recruitment/time_in_stage`" +#: ../../content/applications/hr/recruitment.rst:372 +msgid ":doc:`recruitment/velocity_analysis`" msgstr "" -#: ../../content/applications/hr/recruitment.rst:397 +#: ../../content/applications/hr/recruitment.rst:373 msgid ":doc:`recruitment/team_performance`" msgstr "" @@ -19047,10 +20000,6 @@ msgstr "" msgid "Enter any notes regarding the applicant in this tab. These notes are only visible internally, with users that have the proper access rights." msgstr "" -#: ../../content/applications/hr/recruitment/add-new-applicants.rst:109 -msgid "Details tab" -msgstr "" - #: ../../content/applications/hr/recruitment/add-new-applicants.rst:111 msgid "The :guilabel:`Details` tab houses various information regarding the applicant and the job position." msgstr "" @@ -19310,90 +20259,86 @@ msgid "Edit the job position card." msgstr "" #: ../../content/applications/hr/recruitment/new_job.rst:55 -msgid "The top-right corner of the card has a toggle to publish the job position to the website. If the job position is published, a green :guilabel:`Published` toggle is visible. If the job position is *not* published a gray :guilabel:`Not Published` toggle appears. Click the toggle to publish or unpublish the job position." -msgstr "" - -#: ../../content/applications/hr/recruitment/new_job.rst:61 msgid "Recruitment tab" msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:63 +#: ../../content/applications/hr/recruitment/new_job.rst:57 msgid "All the basic information about the job position is listed under the :guilabel:`Recruitment` tab." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:65 +#: ../../content/applications/hr/recruitment/new_job.rst:59 msgid "None of the fields are required, but it is important to configure and populate the :guilabel:`Department`, :guilabel:`Job Location`, :guilabel:`Employment Type` fields, and the :guilabel:`Job Summary` tab, as they are all visible to prospective applicants on the website." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:70 +#: ../../content/applications/hr/recruitment/new_job.rst:64 msgid "Some fields listed below may not appear depending on the database configuration and other installed applications." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:73 +#: ../../content/applications/hr/recruitment/new_job.rst:67 msgid "The fields can be filled out as follows:" msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:75 +#: ../../content/applications/hr/recruitment/new_job.rst:69 msgid ":guilabel:`Department`: Select the relevant department for the job position. This is visible on the website." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:77 +#: ../../content/applications/hr/recruitment/new_job.rst:71 msgid ":guilabel:`Job Location`: Select the physical address for the job. If the job position is remote, leave this field blank. This is visible on the website." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:79 +#: ../../content/applications/hr/recruitment/new_job.rst:73 msgid ":guilabel:`Industry`: Select the relevant industry the job position falls under. This field corresponds to the industries on job boards. Odoo comes with 86 preconfigured industries. It is *not* recommended to add a new industry, as it may hide the job position during some searched on the various job boards." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:83 +#: ../../content/applications/hr/recruitment/new_job.rst:77 msgid ":guilabel:`Email Alias`: Enter an email address to which applicants can send a resumé. Once emailed, Odoo automatically creates an application for them. If an email was entered when creating the job position, this field is populated." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:86 +#: ../../content/applications/hr/recruitment/new_job.rst:80 msgid ":guilabel:`Employment Type`: select what type of position the job is, using the drop-down menu. The default options are :guilabel:`Permanent`, :guilabel:`Temporary`, :guilabel:`Seasonal`, :guilabel:`Full-Time`, :guilabel:`Intern`, :guilabel:`Student`, :guilabel:`Apprenticeship`, :guilabel:`Thesis`, :guilabel:`Statutory`, and :guilabel:`Employee`. Depending on the installed localization, other options may be available. This is visible on the website." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:91 +#: ../../content/applications/hr/recruitment/new_job.rst:85 msgid ":guilabel:`Working Schedule`: Select the working schedule for the job position. Odoo provides one working schedule by default, :guilabel:`Standard 40 hours/week`, but all working schedules in the database are available." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:94 +#: ../../content/applications/hr/recruitment/new_job.rst:88 msgid ":guilabel:`Salary Range`: Enter both the minimum and maximum salaries offered for the position in the two fields. Then, set the last field to the time-frame for the salary range. The default options are :guilabel:`Hour`, :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Bi-Week`, :guilabel:`Month`, and :guilabel:`Year`." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:98 +#: ../../content/applications/hr/recruitment/new_job.rst:92 msgid ":guilabel:`Expected Skills`: Select all the desired skills for the job position, using the drop-down menu. The skills presented are :ref:`configured in the Employees app `." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:101 +#: ../../content/applications/hr/recruitment/new_job.rst:95 msgid ":guilabel:`Company`: Select the company the job is for. This field only appears if using a multi-company database." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:103 +#: ../../content/applications/hr/recruitment/new_job.rst:97 msgid ":guilabel:`Mission Dates`: Using the calendar selector, set the start date for the job position. If the job is temporary and has a specific end date, set the end date in the second field." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:105 +#: ../../content/applications/hr/recruitment/new_job.rst:99 msgid ":guilabel:`Target`: Enter the number of employees to be hired for this position." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:106 +#: ../../content/applications/hr/recruitment/new_job.rst:100 msgid ":guilabel:`Website`: Select the website the job is published on." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:107 +#: ../../content/applications/hr/recruitment/new_job.rst:101 msgid ":guilabel:`Recruiter`: Select the person responsible for recruiting this role." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:108 +#: ../../content/applications/hr/recruitment/new_job.rst:102 msgid ":guilabel:`Interviewers`: Select who should perform the interviews. Multiple people can be selected." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:110 +#: ../../content/applications/hr/recruitment/new_job.rst:104 msgid ":guilabel:`Interview Form`: select an :ref:`Interview form ` that applicants fill out prior to their interview." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:112 +#: ../../content/applications/hr/recruitment/new_job.rst:106 msgid ":guilabel:`Contract Template`: Select a contract template to be used when offering the job to a candidate." msgstr "" @@ -19401,11 +20346,11 @@ msgstr "" msgid "The job information details in the Recruitment tab." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:119 +#: ../../content/applications/hr/recruitment/new_job.rst:113 msgid "Job summary tab" msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:121 +#: ../../content/applications/hr/recruitment/new_job.rst:115 msgid "Enter the job description in the :guilabel:`Job Summary` tab. This description is visible on the website." msgstr "" @@ -19413,27 +20358,27 @@ msgstr "" msgid "The summary of the position in the Job Summary tab." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:128 +#: ../../content/applications/hr/recruitment/new_job.rst:122 msgid "Application info tab" msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:130 +#: ../../content/applications/hr/recruitment/new_job.rst:124 msgid "The :guilabel:`Process Details` section of the :guilabel:`Application Info` tab contains information that is displayed online for the job position. This informs the applicants of the timeline and steps for the recruitment process, so they know when to expect a reply." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:134 +#: ../../content/applications/hr/recruitment/new_job.rst:128 msgid "The following fields are populated by default, but can be modified to suit the recruitment timeline of the business:" msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:137 +#: ../../content/applications/hr/recruitment/new_job.rst:131 msgid ":guilabel:`Time to Answer`: Enter the number of days before the applicant is contacted. :guilabel:`2 open days` populates this field by default." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:139 +#: ../../content/applications/hr/recruitment/new_job.rst:133 msgid ":guilabel:`Process`: Enter the various stages the candidate goes through during the recruitment process. By default, two process steps are visible: :guilabel:`1 Phone Call` and :guilabel:`1 Onsite Interview`." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:142 +#: ../../content/applications/hr/recruitment/new_job.rst:136 msgid ":guilabel:`Days to get an Offer`: Enter the number of days before the applicant should expect an offer after the recruitment process has ended. The default is :guilabel:`4 Days after Interview`." msgstr "" @@ -19441,23 +20386,23 @@ msgstr "" msgid "Enter job information details in the recruitment tab." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:149 +#: ../../content/applications/hr/recruitment/new_job.rst:143 msgid "The :guilabel:`Process Details` section is a text field. All answers are typed in rather than selected from a drop-down menu. The text is displayed on the website exactly as it appears in this tab." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:156 +#: ../../content/applications/hr/recruitment/new_job.rst:150 msgid "Create interview form" msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:158 +#: ../../content/applications/hr/recruitment/new_job.rst:152 msgid "An *Interview Form* is used to determine if a candidate is a good fit for a job position. Interview forms can be as specific or general as desired, and can take the form of a certification, an exam, or a general questionnaire. Interview forms are determined by the recruitment team." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:162 +#: ../../content/applications/hr/recruitment/new_job.rst:156 msgid "Before creating an interview form, ensure the proper settings are enabled. Navigate to :menuselection:`Recruitment app --> Configuration --> Settings`, and under the :guilabel:`Recruitment Process` section, ensure the :guilabel:`Send Interview Survey` option is enabled." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:167 +#: ../../content/applications/hr/recruitment/new_job.rst:161 msgid "Since there are no preconfigured forms in Odoo, all interview forms must be created. To create an interview form, start from the :guilabel:`Recruitment` tab of the :guilabel:`Job Position` form. In the :guilabel:`Interview Form` field, enter a name for the new interview form. As the name is typed, several options populate beneath the entry: :guilabel:`Create (interview form name)`, :guilabel:`Search More...`, and :guilabel:`Create and edit...`. Click :guilabel:`Create and edit...` and a :guilabel:`Create Interview Form` pop-up window appears." msgstr "" @@ -19465,11 +20410,11 @@ msgstr "" msgid "The blank interview form pop-up window." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:178 +#: ../../content/applications/hr/recruitment/new_job.rst:172 msgid "The option :guilabel:`Search More...` only appears if there are any interview forms already created. If no interview forms exist, the only options available are :guilabel:`Create (interview form name)`, and :guilabel:`Create and edit...`." msgstr "" -#: ../../content/applications/hr/recruitment/new_job.rst:182 +#: ../../content/applications/hr/recruitment/new_job.rst:176 msgid "Proceed to fill out the interview form pop-up window as a typical survey. For specific directions on how to create a survey, refer to the :doc:`survey essentials <../../marketing/surveys/create>` document, which provides step-by-step instructions on how to create and configure a survey." msgstr "" @@ -19569,120 +20514,328 @@ msgstr "" msgid ":guilabel:`Department`: The department the job position falls under." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:84 -msgid ":guilabel:`Contract Start Date`: The date the proposed contract takes effect. The default date is the current date. To modify the date, click on the displayed date to reveal a calendar popover window. Navigate to the desired month, then click the day to select the date." +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:84 +msgid ":guilabel:`Contract Start Date`: The date the proposed contract takes effect. The default date is the current date. To modify the date, click on the displayed date to reveal a calendar popover window. Navigate to the desired month, then click the day to select the date." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:87 +msgid ":guilabel:`Offer Create Date`: The day the offer is created, By default, the current date populates this field and *cannot* be modified." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:89 +msgid ":guilabel:`Offer Validity Date`: The last day the offer is valid. After this date the contract cannot be signed." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:91 +msgid ":guilabel:`Link`: The link to the contract being sent to the candidate." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:92 +msgid ":guilabel:`Validity Days Count`: The number of days the contract is valid. The default expiration date is `30` days. Modify the expiration date, if desired." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:94 +msgid ":guilabel:`Applicant`: The name of the applicant appears in this field, and cannot be modified." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:97 +msgid "Send offer" +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:99 +msgid "Once all desired modifications have been made to the :guilabel:`Offer for (applicant's email)` page, click the :guilabel:`Send By Email` button to reveal an email pop-up window." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:102 +msgid "The default `Recruitment: Your Salary Package` email template is used, and the :guilabel:`To`, :guilabel:`Subject`, and email body are pre-populated based on the email template." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:105 +msgid "If any attachments need to be added, click the :icon:`fa-paperclip` :guilabel:`(paperclip)` button, and a file explorer window appears. Navigate to the desired file, then click :guilabel:`Open` to attach it to the email. The attachment loads, and is listed at the bottom of the email body." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:109 +msgid "Once the email is ready to send, click :guilabel:`Send`. The email pop-up window closes, and an :icon:`fa-handshake-o` :guilabel:`Offers` smart button appears at the top of the applicant's card." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:113 +msgid "To send an offer, ensure the **Sign** application is installed. This is necessary, so the offer can be sent to the applicant by the recruiter, and they can actually sign the offer. The applicant does **not** need any software installed to sign the offer." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:-1 +msgid "Send an email to the applicant with a link to the offered salary." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:121 +msgid "Configure your package" +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:123 +msgid "If applicable, the applicant can modify their salary package. This option is not available for all localizations. Depending on where the company is located, this option may not be available." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:126 +msgid "The email template includes a :guilabel:`Configure your package` button. This link takes the applicant to a webpage, where they can modify the proposed salary package, and enter their personal information." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:130 +msgid "Once the applicant is hired, the personal information entered on the webpage is imported to their employee record, when created." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:133 +msgid "Once all the information is completed, the applicant can then accept the offer by clicking the :guilabel:`Review Contract & Sign` button to accept the contract, and sign it using the **Sign** application." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:138 +msgid "Management signatures" +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:140 +msgid "Once the applicant has signed the contract, the next step is for the person responsible within the company (the :guilabel:`HR Responsible`) must then sign the contract." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:143 +msgid "The person responsible for signing the contract receives an activity alert that their signature is requested of them in the **Sign** app." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:149 +msgid "Contract signed" +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:151 +msgid "Once all parties have fully signed the contract, the applicant is automatically moved to the :guilabel:`Contract Signed` stage, and a green :guilabel:`HIRED` banner appears in the top-right of both the applicant's card and form." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:-1 +msgid "Hired banner in the top-right corner of applicant card." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:161 +msgid "Create employee" +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:163 +msgid "Once the applicant has been hired, the next step is to create their employee record. Click the :guilabel:`Create Employee` button in the top-left corner of the hired applicant's form." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:166 +msgid "An employee form appears, with information from the applicant's card, and the employee contract." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:168 +msgid "Fill out the rest of the employee form. For detailed information on the fields, refer to the :doc:`../employees/new_employee` documentation." +msgstr "" + +#: ../../content/applications/hr/recruitment/offer_job_positions.rst:171 +msgid "Once completed, the employee record is saved in the **Employees** app." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:3 +msgid "Post job positions" +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:5 +msgid "After a job position has been :doc:`created and configured `, the next step is to share it, so that prospective applicants can apply." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:8 +msgid "Job positions can be shared on the :ref:`company website ` or on :ref:`job boards `." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:14 +msgid "Publish to website" +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:16 +msgid "To publish a job listing on the company's website, first a setting must be enabled in the **Recruitment** app. Navigate to :menuselection:`Recruitment app --> Configuration --> Settings`, and enable the :guilabel:`Online Posting` option. Click the :guilabel:`Save` button after making any changes." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:22 +msgid "The :guilabel:`Online Posting` is only available if the :doc:`Website <../../websites/website>` application is also installed." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:25 +msgid "Once the setting has been enabled, open the main **Recruitment** dashboard by navigating to :menuselection:`Recruitment app --> Applications --> By Job Position`. A toggle appears in the lower-left corner of every job position card, and indicates whether the role is :guilabel:`Not Published` or :guilabel:`Published`." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:30 +msgid "Click on the toggle to change the current state of the job position. When a job position is published, a green :guilabel:`PUBLISHED` banner appears in the top-right corner of the card." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:33 +msgid "To view the listing on the website, click the :icon:`oi-launch` :guilabel:`Job Page` in the lower-right corner of the job card." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:39 +msgid "Post on job boards" +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:41 +msgid "Posting a job on a job board is an effective way to reach a wider audience, and attract more candidates." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:45 +msgid "Check back frequently for more updates, as more job boards are added." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:48 +msgid "Job board settings" +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:50 +msgid "To publish a job listing onto a job board outside of Odoo, first a setting must be configured in the **Recruitment** app. Navigate to :menuselection:`Recruitment app --> Configuration --> Settings`, and click :icon:`oi-arrow-right` :guilabel:`Choose a Job Board`." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:54 +msgid "This loads a page displaying the :guilabel:`Recruitment Integration Monster` module. Click :guilabel:`Activate` to install the module." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:58 +msgid "If the :guilabel:`Recruitment Integration Monster` module is already installed, no :guilabel:`Activate` button appears, only a :guilabel:`Module Info` button." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:61 +msgid "After the module is installed, the database reloads to the main dashboard. Open the **Recruitment** app, and navigate to :menuselection:`Configuration --> Settings`. A :guilabel:`Monster Credentials` section appears in the :guilabel:`Job Posting` section." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:65 +msgid "Enter the :guilabel:`Username` and :guilabel:`Password` for Monster in the corresponding fields, then click the :guilabel:`Save` button." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:69 +msgid "Publish on job board" +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:71 +msgid "Once the credentials have been configured for the job board, it is possible to post a job position. Navigate to the **Recruitment** app dashboard, and click :guilabel:`# To Recruit` on the desired job card." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:75 +msgid "Click the :guilabel:`Publish on Job Board` button, and a :guilabel:`Publish on Job Board` form loads in a pop-up window. Fill out the following information on the form:" +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:78 +msgid ":guilabel:`Job`: The name of the job position appears here by default, and cannot be modified." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:79 +msgid ":guilabel:`Job Board`: Using the drop-down menu, select the job board being posted to." +msgstr "" + +#: ../../content/applications/hr/recruitment/post_job.rst:80 +msgid ":guilabel:`Apply Method`: Click the desired radio button to determine how applicants apply for the position." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:87 -msgid ":guilabel:`Offer Create Date`: The day the offer is created, By default, the current date populates this field and *cannot* be modified." +#: ../../content/applications/hr/recruitment/post_job.rst:83 +msgid ":guilabel:`Send an Email`: Select this for applicants to apply for the job via email." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:89 -msgid ":guilabel:`Offer Validity Date`: The last day the offer is valid. After this date the contract cannot be signed." +#: ../../content/applications/hr/recruitment/post_job.rst:84 +msgid ":guilabel:`Redirect to company's website`: Select this for applicants to apply for the job via the company website." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:91 -msgid ":guilabel:`Link`: The link to the contract being sent to the candidate." +#: ../../content/applications/hr/recruitment/post_job.rst:87 +msgid ":guilabel:`Email` or :guilabel:`Job url`: The selected :guilabel:`Apply Method` determines which field appears. The field is populated with the information from the job card, if available. Make any desired modifications to this field, for example enter a tracking url for the job board listing." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:92 -msgid ":guilabel:`Validity Days Count`: The number of days the contract is valid. The default expiration date is `30` days. Modify the expiration date, if desired." +#: ../../content/applications/hr/recruitment/post_job.rst:91 +msgid ":guilabel:`From` and :guilabel:`to`: Using the calendar selector, select the date the list should be posted to the job board, in the :guilabel:`From` field. The :guilabel:`to` field says :guilabel:`No Limit`, by default. If the job position should be removed from the job board on a specific date, enter it in the second field." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:94 -msgid ":guilabel:`Applicant`: The name of the applicant appears in this field, and cannot be modified." +#: ../../content/applications/hr/recruitment/post_job.rst:95 +msgid ":guilabel:`Description` tab: The description from the job card populates this tab, by default. Make any desired changes to it in this section. This is what appears on the job board." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:97 -msgid "Send offer" +#: ../../content/applications/hr/recruitment/post_job.rst:99 +msgid "Click the :guilabel:`Generate Description` (:icon:`fa-magic` :guilabel:`AI`) to use AI to edit or create the job description." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:99 -msgid "Once all desired modifications have been made to the :guilabel:`Offer for (applicant's email)` page, click the :guilabel:`Send By Email` button to reveal an email pop-up window." +#: ../../content/applications/hr/recruitment/post_job.rst:102 +msgid "Once the listing is ready, click the :guilabel:`Post` button. After the post has been published to a job board, the page reloads to the :guilabel:`Job Boards Posts` page, and the new post appears in a Kanban card." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:102 -msgid "The default `Recruitment: Your Salary Package` email template is used, and the :guilabel:`To`, :guilabel:`Subject`, and email body are pre-populated based on the email template." +#: ../../content/applications/hr/recruitment/post_job.rst:-1 +msgid "A job board listing form filled out." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:105 -msgid "If any attachments need to be added, click the :icon:`fa-paperclip` :guilabel:`(paperclip)` button, and a file explorer window appears. Navigate to the desired file, then click :guilabel:`Open` to attach it to the email. The attachment loads, and is listed at the bottom of the email body." +#: ../../content/applications/hr/recruitment/post_job.rst:110 +msgid "Job board emails" msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:109 -msgid "Once the email is ready to send, click :guilabel:`Send`. The email pop-up window closes, and an :icon:`fa-handshake-o` :guilabel:`Offers` smart button appears at the top of the applicant's card." +#: ../../content/applications/hr/recruitment/post_job.rst:112 +msgid "When posting job positions on a job board, like Indeed or LinkedIn, the job board posts the job position, and typically allows the website visitor to apply to the job directly from the job board." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:113 -msgid "To send an offer, ensure the **Sign** application is installed. This is necessary, so the offer can be sent to the applicant by the recruiter, and they can actually sign the offer. The applicant does **not** need any software installed to sign the offer." +#: ../../content/applications/hr/recruitment/post_job.rst:115 +msgid "When someone applies to a job directly from a job board, an email is sent to Odoo from a specific email address, such as `jobs-listings@linkedin.com`. The email uses regular expression (regex) rules, which are instructions to match text in the email, and map it to specific fields in Odoo." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:-1 -msgid "Send an email to the applicant with a link to the offered salary." +#: ../../content/applications/hr/recruitment/post_job.rst:119 +msgid "When Odoo receives an email from the job board's corresponding email address, it runs the regex rule, and pulls applicant information from the email, when creating an applicant record." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:121 -msgid "Configure your package" +#: ../../content/applications/hr/recruitment/post_job.rst:123 +msgid "The regex rule for :guilabel:`LinkedIn` (emails received from: `jobs-listings@linkedin.com`) is :guilabel:`New application:.*from (.*)`. This rule tells Odoo to capture everything after the word `from` when creating the applicant record." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:123 -msgid "If applicable, the applicant can modify their salary package. This option is not available for all localizations. Depending on where the company is located, this option may not be available." +#: ../../content/applications/hr/recruitment/post_job.rst:127 +msgid "An email subject of `New application: Job ID 123 from John Doe` will capture `John Doe` and create an applicant record for `John Doe`." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:126 -msgid "The email template includes a :guilabel:`Configure your package` button. This link takes the applicant to a webpage, where they can modify the proposed salary package, and enter their personal information." +#: ../../content/applications/hr/recruitment/post_job.rst:130 +msgid "To view the currently configured job board emails, navigate to :menuselection:`Recruitment app --> Configuration --> Emails`. Three emails come preconfigured in the database; for :guilabel:`LinkedIn`, :guilabel:`Jobsdb`, and :guilabel:`Indeed`." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:130 -msgid "Once the applicant is hired, the personal information entered on the webpage is imported to their employee record, when created." +#: ../../content/applications/hr/recruitment/post_job.rst:135 +msgid "Create job board emails" msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:133 -msgid "Once all the information is completed, the applicant can then accept the offer by clicking the :guilabel:`Review Contract & Sign` button to accept the contract, and sign it using the **Sign** application." +#: ../../content/applications/hr/recruitment/post_job.rst:137 +msgid "To create a new job board email, navigate to :menuselection:`Recruitment app --> Configuration --> Emails`. Click the :guilabel:`New` button, and a blank :guilabel:`Emails` form loads." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:138 -msgid "Management signatures" +#: ../../content/applications/hr/recruitment/post_job.rst:140 +msgid "Enter the :guilabel:`Name` for the platform, such as `Glassdoor`, in the corresponding field. Next, enter the email address the applications will come from, in the :guilabel:`Email` field. Last, enter the :guilabel:`regex` rules in the corresponding field." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:140 -msgid "Once the applicant has signed the contract, the next step is for the person responsible within the company (the :guilabel:`HR Responsible`) must then sign the contract." +#: ../../content/applications/hr/recruitment/post_job.rst:145 +msgid "View job board listings" msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:143 -msgid "The person responsible for signing the contract receives an activity alert that their signature is requested of them in the **Sign** app." +#: ../../content/applications/hr/recruitment/post_job.rst:147 +msgid "To view all the job positions that have been posted to a job board, navigate to :menuselection:`Recruitment --> Applications --> Job Boards Posts`. This presents the :guilabel:`Job Boards Posts` dashboard and all job board postings." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:149 -msgid "Contract signed" +#: ../../content/applications/hr/recruitment/post_job.rst:151 +msgid "Each listing is displayed in an individual Kanban card, with the following information:" msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:151 -msgid "Once all parties have fully signed the contract, the applicant is automatically moved to the :guilabel:`Contract Signed` stage, and a green :guilabel:`HIRED` banner appears in the top-right of both the applicant's card and form." +#: ../../content/applications/hr/recruitment/post_job.rst:153 +msgid ":guilabel:`Job Board Icon`: the icon for the job board where the listing is posted." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:-1 -msgid "Hired banner in the top-right corner of applicant card." +#: ../../content/applications/hr/recruitment/post_job.rst:154 +msgid ":guilabel:`Job Board Listing Title`: the job position title and job board name." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:161 -msgid "Create employee" +#: ../../content/applications/hr/recruitment/post_job.rst:155 +msgid ":guilabel:`From`: the date the listing was published." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:163 -msgid "Once the applicant has been hired, the next step is to create their employee record. Click the :guilabel:`Create Employee` button in the top-left corner of the hired applicant's form." +#: ../../content/applications/hr/recruitment/post_job.rst:156 +msgid ":guilabel:`To`: the date the listing will be removed from the job board." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:166 -msgid "An employee form appears, with information from the applicant's card, and the employee contract." +#: ../../content/applications/hr/recruitment/post_job.rst:157 +msgid ":guilabel:`User Icon`: the icon of the user who posted the listing." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:168 -msgid "Fill out the rest of the employee form. For detailed information on the fields, refer to the :doc:`../employees/new_employee` documentation." +#: ../../content/applications/hr/recruitment/post_job.rst:159 +msgid "Click on any Kanban card to view the details for the specific job board listing." msgstr "" -#: ../../content/applications/hr/recruitment/offer_job_positions.rst:171 -msgid "Once completed, the employee record is saved in the **Employees** app." +#: ../../content/applications/hr/recruitment/post_job.rst:-1 +msgid "All job positions posted to a job board." msgstr "" #: ../../content/applications/hr/recruitment/recruitment-flow.rst:3 @@ -20569,87 +21722,87 @@ msgstr "" msgid "Additionally, :guilabel:`Maggie Davidsons` had the highest increase in number of hired applicants during the third quarter, while their number of refused applicants went down." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:3 -msgid "Time in stage analysis" +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:3 +msgid "Velocity analysis" msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:5 -msgid "The *Time In Stage Analysis* report provides information on how long applicants stay in each stage of the recruitment process. This is important, as every job position has specific :ref:`process details ` that state the length of time applicants should expect to wait between specific stages." +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:5 +msgid "The *Velocity Analysis* report provides information on how long applicants stay in each stage of the recruitment process. This is important, as every job position has specific :ref:`process details ` that state the length of time applicants should expect to wait between specific stages." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:10 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:10 msgid "Knowing how long applicants remain in each stage can help highlight possible bottlenecks. Analyzing this data allows the recruitment team to assess each stage, identify any issues, and pivot their strategies to move applicants through each stage, within the expected time interval." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:15 -msgid "Time in stage analysis report" +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:15 +msgid "Velocity analysis report" msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:17 -msgid "To access the report, navigate to :menuselection:`Recruitment app --> Reporting --> Time in Stage Analysis`. By default, the report displays data from all job positions, with the stages populating the x-axis, and the number of days populating the y-axis, in a :icon:`fa-line-chart` :guilabel:`(Line Chart)`." +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:17 +msgid "To access the report, navigate to :menuselection:`Recruitment app --> Reporting --> Velocity Analysis`. By default, the report displays data for all job positions, with the stages populating the x-axis, and the number of days populating the y-axis, in a :icon:`fa-line-chart` :guilabel:`(Line Chart)`." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:22 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:22 msgid "The default filter is :guilabel:`Last 365 Days Applicant`, showing information for the last 365 days." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:25 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:25 msgid "Hover over a stage in the line chart to reveal a popover window listing all the job positions within it, and the average number of days each job position sits in each stage." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:28 -msgid "For a more visually digestible view of the information in the :guilabel:`Time In Stage Analysis` report, click the :icon:`fa-bar-chart` :guilabel:`(Bar Chart)` icon in the upper-left corner. This displays all the information in a bar chart." +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:28 +msgid "For a more visually digestible view of the information in the :guilabel:`Velocity Analysis` report, click the :icon:`fa-bar-chart` :guilabel:`(Bar Chart)` icon in the upper-left corner. This displays all the information in a bar chart." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:32 -msgid "In this view, it is easier to visualize the differences between the job positions, regarding how long applicants stay in each stage. From this view, recruiters can more easily determine which job positions have delays or bottlenecks at certain stages." +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:32 +msgid "In this view, it is easier to visualize the differences between the job positions, regarding how long applicants stay in each stage. From this view, recruiters can determine which job positions have delays or bottlenecks at certain stages." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:-1 -msgid "The bar chart view of the Time In Stage Analysis report." +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:-1 +msgid "The bar chart view of the Velocity Analysis report." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:41 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:40 msgid "Use case: comparing times by month" msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:43 -msgid "With the :guilabel:`Time In Stage Analysis` report, it is possible to see if there are certain months where applicants take longer to be moved through the pipeline. To view this data, switch to the :icon:`oi-view-pivot` :guilabel:`(Pivot)` view in the upper-right corner." +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:42 +msgid "With the :guilabel:`Velocity Analysis` report, it is possible to see if there are certain months where applicants take longer to be moved through the pipeline. To view this data, switch to the :icon:`oi-view-pivot` :guilabel:`(Pivot)` view in the upper-right corner." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:47 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:46 msgid "This presents the data in a detailed pivot table, with the rows representing the different job positions, and the columns representing the stages. The average :guilabel:`Days in Stage` populates the various boxes." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:52 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:51 msgid "If a field is empty, it indicates no applicant has been in that stage. Instead, all applicants moved from a previous stage without being placed in the stage with an empty field." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:-1 -msgid "The pivot table view of the Time In Stage Analysis report." +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:-1 +msgid "The pivot table view of the Velocity Analysis report." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:59 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:57 msgid "Click :icon:`fa-minus-square-o` :guilabel:`Total` above the job position rows to collapse the information. Next, click :icon:`fa-plus-square` :guilabel:`Total` again, revealing a drop-down menu. Click :guilabel:`Add Custom Group` :icon:`fa-caret-down` at the bottom of the list, revealing further grouping options. Click :guilabel:`Start Date` from the expanded list." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:64 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:62 msgid "After doing so, the data presented is grouped with the various months from the previous 365 days for the rows, leaving the :guilabel:`Days In Stage` as the columns." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:-1 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:-1 msgid "The pivot table showing the months averages for times in stage." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:71 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:68 msgid "In this example, :guilabel:`July 2024` had the longest time that applicants spent in each stage, on average. In addition, the :guilabel:`Contract Proposal` stage had the longest wait time in July, with an average of :guilabel:`31.62` days in that stage." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:75 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:72 msgid "While this report does not display the reasons applicants stayed in the various stages for these lengths of time, it can be helpful to know when delays occur." msgstr "" -#: ../../content/applications/hr/recruitment/time_in_stage.rst:79 +#: ../../content/applications/hr/recruitment/velocity_analysis.rst:76 msgid ":doc:`Essentials reporting documentation <../../essentials/reporting>`" msgstr "" @@ -21512,7 +22665,7 @@ msgid "Users can :doc:`request time off <../hr/time_off/request_time_off>`, and msgstr "" #: ../../content/applications/hr/time_off.rst:15 -msgid "Detailed :ref:`reports ` can be run to see how much time off (and what kinds of time off) are being used, :ref:`accrual plans ` can be created, and :ref:`public holidays ` can be set." +msgid "Detailed :doc:`reports ` can be run to see how much time off (and what kinds of time off) are being used, :ref:`accrual plans ` can be created, and :ref:`public holidays ` can be set." msgstr "" #: ../../content/applications/hr/time_off.rst:20 @@ -21559,159 +22712,159 @@ msgstr "" msgid "The only **required** fields on the time off type form are the name of the :guilabel:`Time Off Type`, the :guilabel:`Take Time Off In`, and the :guilabel:`Kind of Time Off`. In addition, the :guilabel:`Time Off Requests` and :guilabel:`Allocation Requests` sections **must** be configured." msgstr "" -#: ../../content/applications/hr/time_off.rst:67 +#: ../../content/applications/hr/time_off.rst:69 msgid "Time off requests section" msgstr "" -#: ../../content/applications/hr/time_off.rst:69 +#: ../../content/applications/hr/time_off.rst:71 msgid "This section determines how approvals are handled for time off requests for this time off type." msgstr "" -#: ../../content/applications/hr/time_off.rst:71 +#: ../../content/applications/hr/time_off.rst:73 msgid ":guilabel:`Approval`: select what specific kind of approval is required for the time off type. The options are:" msgstr "" -#: ../../content/applications/hr/time_off.rst:74 +#: ../../content/applications/hr/time_off.rst:76 msgid ":guilabel:`No Validation`: No approvals are required when requesting this type of time off. The time off request is automatically approved." msgstr "" -#: ../../content/applications/hr/time_off.rst:76 +#: ../../content/applications/hr/time_off.rst:78 msgid ":guilabel:`By Time Off Officer`: Only the specified :ref:`Time Off Officer `, set on this form in the :guilabel:`Notified Time Off Officer` field, is required to approve the time off request. This option is selected, by default." msgstr "" -#: ../../content/applications/hr/time_off.rst:79 +#: ../../content/applications/hr/time_off.rst:81 msgid ":guilabel:`By Employee's Approver`: Only the employee's specified approver for time off, which is set on the *Work Information* tab on the :ref:`employee's form `, is required to approve the time off request." msgstr "" -#: ../../content/applications/hr/time_off.rst:82 +#: ../../content/applications/hr/time_off.rst:84 msgid ":guilabel:`By Employee's Approver and Time Off Officer`: Both the employee's :ref:`specified time off approver ` and the :ref:`Time Off Officer ` are required to approve the time off request." msgstr "" -#: ../../content/applications/hr/time_off.rst:87 +#: ../../content/applications/hr/time_off.rst:89 msgid "Allocation requests section" msgstr "" -#: ../../content/applications/hr/time_off.rst:89 +#: ../../content/applications/hr/time_off.rst:91 msgid "This section determines how allocation requests are handled for this time off type." msgstr "" -#: ../../content/applications/hr/time_off.rst:91 +#: ../../content/applications/hr/time_off.rst:93 msgid ":guilabel:`Requires allocation`: If the time off must be allocated to employees, select :guilabel:`Yes`. If the time off can be requested without time off being previously allocated, select :guilabel:`No Limit`. If :guilabel:`No Limit` is selected, the following options do not appear on the form." msgstr "" -#: ../../content/applications/hr/time_off.rst:95 +#: ../../content/applications/hr/time_off.rst:97 msgid ":guilabel:`Employee Requests`: Select :guilabel:`Extra Days Requests Allowed` if the employee is able to request more time off than was allocated." msgstr "" -#: ../../content/applications/hr/time_off.rst:98 +#: ../../content/applications/hr/time_off.rst:100 msgid "If employees should **not** be able to make requests for more time off than what was allocated, select the :guilabel:`Not Allowed` option." msgstr "" -#: ../../content/applications/hr/time_off.rst:102 +#: ../../content/applications/hr/time_off.rst:104 msgid "Ten days are allocated to the employee for this particular type of time off, and the :guilabel:`Extra Days Requests Allowed` option is enabled. The employee wants to take a vacation for twelve days. They may submit a request for two additional days, since the :guilabel:`Extra Days Requests Allowed` option is enabled." msgstr "" -#: ../../content/applications/hr/time_off.rst:108 +#: ../../content/applications/hr/time_off.rst:110 msgid "It is important to note that requesting additional time off does **not** guarantee that time off is granted." msgstr "" -#: ../../content/applications/hr/time_off.rst:111 +#: ../../content/applications/hr/time_off.rst:113 msgid ":guilabel:`Approval`: Select the type of approvals required for the allocation of this particular time off type." msgstr "" -#: ../../content/applications/hr/time_off.rst:114 +#: ../../content/applications/hr/time_off.rst:116 msgid ":guilabel:`No Validation`: No approvals are required when requesting additional allocations for the time off type. The allocation request is automatically approved." msgstr "" -#: ../../content/applications/hr/time_off.rst:116 +#: ../../content/applications/hr/time_off.rst:118 msgid ":guilabel:`By Time Off Officer`: Only the specified :ref:`Time Off Officer `, set on this form in the :guilabel:`Notified Time Off Officer` field, is required to approve the allocation request. This option is selected, by default." msgstr "" -#: ../../content/applications/hr/time_off.rst:119 +#: ../../content/applications/hr/time_off.rst:121 msgid ":guilabel:`By Employee's Approver`: Only the employee's specified approver for time off, which is set on the *Work Information* tab on the :ref:`employee's form `, is required to approve the allocation request." msgstr "" -#: ../../content/applications/hr/time_off.rst:122 +#: ../../content/applications/hr/time_off.rst:124 msgid ":guilabel:`By Employee's Approver and Time Off Officer`: Both the employee's :ref:`specified time off approver ` and the :ref:`Time Off Officer ` are required to approve the allocation request." msgstr "" -#: ../../content/applications/hr/time_off.rst:128 +#: ../../content/applications/hr/time_off.rst:129 msgid "Configuration section" msgstr "" -#: ../../content/applications/hr/time_off.rst:130 +#: ../../content/applications/hr/time_off.rst:131 msgid "This section determines all other details regarding the time off type, aside from approvals and allocations. This includes how the time off must be taken (hours, half days, or days), if the time off is visible to other users, and how the time off affects the **Payroll** app." msgstr "" -#: ../../content/applications/hr/time_off.rst:136 +#: ../../content/applications/hr/time_off.rst:137 msgid ":guilabel:`Notified Time Off Officer`: Select the user who is notified and responsible for approving requests and allocations for this specific type of time off." msgstr "" -#: ../../content/applications/hr/time_off.rst:138 +#: ../../content/applications/hr/time_off.rst:139 msgid ":guilabel:`Take Time Off in`: Select the format the time off is requested in from the drop-down menu. The options are:" msgstr "" -#: ../../content/applications/hr/time_off.rst:141 +#: ../../content/applications/hr/time_off.rst:142 msgid ":guilabel:`Day`: if time off can only be requested in full day increments (8 hours)." msgstr "" -#: ../../content/applications/hr/time_off.rst:142 +#: ../../content/applications/hr/time_off.rst:143 msgid ":guilabel:`Half Day`: if time off can only be requested in half day increments (4 hours)." msgstr "" -#: ../../content/applications/hr/time_off.rst:143 +#: ../../content/applications/hr/time_off.rst:144 msgid ":guilabel:`Hours`: if the time off can be taken in hourly increments." msgstr "" -#: ../../content/applications/hr/time_off.rst:147 +#: ../../content/applications/hr/time_off.rst:148 msgid ":guilabel:`Deduct Extra Hours`: Enable this option if the time off request should factor in any extra time accrued by the employee." msgstr "" -#: ../../content/applications/hr/time_off.rst:151 +#: ../../content/applications/hr/time_off.rst:152 msgid "If an employee works two extra hours for the week, and requests five hours of time off, the request would be for three hours, since the two extra worked hours are used first, and deducted from the request." msgstr "" -#: ../../content/applications/hr/time_off.rst:155 +#: ../../content/applications/hr/time_off.rst:156 msgid ":guilabel:`Public Holiday Included`: Enable this option if public holidays should be excluded from a time off request." msgstr "" -#: ../../content/applications/hr/time_off.rst:159 +#: ../../content/applications/hr/time_off.rst:160 msgid "An employee in the United States requests time off for the week of July 4th, for a total of five days. Since the 4th of July is a holiday in the United States, the time off request is automatically modified for four days off instead of five. That is because the holiday is included, and the user does not need to use their own vacation time for a public holiday." msgstr "" -#: ../../content/applications/hr/time_off.rst:164 +#: ../../content/applications/hr/time_off.rst:165 msgid "This option reduces extra work for users, enabling them to make only one time off request for the entire week, instead of making two separate requests, one for the days *before* the holiday, and another one for the days *after* the holiday." msgstr "" -#: ../../content/applications/hr/time_off.rst:168 +#: ../../content/applications/hr/time_off.rst:169 msgid ":guilabel:`Allow To Attach Supporting Document`: Enable this option to allow the employee to attach documents to the time off request. This is useful in situations where documentation is required, such as long-term medical leave." msgstr "" -#: ../../content/applications/hr/time_off.rst:171 +#: ../../content/applications/hr/time_off.rst:172 msgid ":guilabel:`Kind of Time Off`: From the drop-down menu, select the type of time off, either :guilabel:`Worked Time` or :guilabel:`Absence`. :guilabel:`Worked Time` indicates the time off taken counts toward worked time for any type of accrual the employee is working towards, whereas :guilabel:`Absence` does not count toward any type of accrual." msgstr "" -#: ../../content/applications/hr/time_off.rst:175 +#: ../../content/applications/hr/time_off.rst:176 msgid ":guilabel:`Company`: If multiple companies are created in the database, and this time off type only applies to one company, select the company from the drop-down menu. If this field is left blank, the time off type applies to all companies in the database. This field **only** appears in a multi-company database." msgstr "" -#: ../../content/applications/hr/time_off.rst:181 +#: ../../content/applications/hr/time_off.rst:182 msgid "Negative cap section" msgstr "" -#: ../../content/applications/hr/time_off.rst:183 +#: ../../content/applications/hr/time_off.rst:184 msgid "Enable the :guilabel:`Allow Negative Cap` option if employees are able to request more time off than they currently have, allowing a negative balance. If enabled, an :guilabel:`Maximum Excess Amount` field appears. In this field, enter the maximum amount of negative time allowed, in days." msgstr "" -#: ../../content/applications/hr/time_off.rst:188 +#: ../../content/applications/hr/time_off.rst:189 msgid "Sara currently has three days of the time off type `Vacation`. She is planning a trip that requires five days of time off." msgstr "" -#: ../../content/applications/hr/time_off.rst:191 +#: ../../content/applications/hr/time_off.rst:192 msgid "The `Vacation` time off type has the :guilabel:`Allow Negative Cap` option enabled, and the :guilabel:`Maximum Excess Amount` is set to five." msgstr "" -#: ../../content/applications/hr/time_off.rst:194 +#: ../../content/applications/hr/time_off.rst:195 msgid "These settings allow Sara to submit a request for five days of the `Vacation` time off type. If approved, her `Vacation` time off balance will be negative two (-2) days." msgstr "" @@ -21720,43 +22873,43 @@ msgid "The top half of the time off type form, with all the information filled o "off." msgstr "" -#: ../../content/applications/hr/time_off.rst:202 +#: ../../content/applications/hr/time_off.rst:203 msgid "Payroll section" msgstr "" -#: ../../content/applications/hr/time_off.rst:204 +#: ../../content/applications/hr/time_off.rst:205 msgid "If the time off type should create :doc:`../hr/payroll/work_entries` in the **Payroll** app, select the :guilabel:`Work Entry Type` from the drop-down list." msgstr "" -#: ../../content/applications/hr/time_off.rst:208 +#: ../../content/applications/hr/time_off.rst:209 msgid "Timesheets section" msgstr "" -#: ../../content/applications/hr/time_off.rst:211 +#: ../../content/applications/hr/time_off.rst:212 msgid "The :guilabel:`Timesheets` section only appears if the user is in developer mode. Refer to the :ref:`developer-mode` document for details on how to access the developer mode." msgstr "" -#: ../../content/applications/hr/time_off.rst:214 +#: ../../content/applications/hr/time_off.rst:215 msgid "When an employee takes time off, and is also using timesheets, Odoo creates entries in the **Timesheets** app for the time off. This section defines how they are entered." msgstr "" -#: ../../content/applications/hr/time_off.rst:217 +#: ../../content/applications/hr/time_off.rst:218 msgid ":guilabel:`Project`: Select the project the time off type entries appear in." msgstr "" -#: ../../content/applications/hr/time_off.rst:218 +#: ../../content/applications/hr/time_off.rst:219 msgid ":guilabel:`Task`: Select the task that appears in the timesheet for this time off type. The default options are: :guilabel:`Time Off`, :guilabel:`Meeting`, or :guilabel:`Training`." msgstr "" -#: ../../content/applications/hr/time_off.rst:222 +#: ../../content/applications/hr/time_off.rst:223 msgid "Display option section" msgstr "" -#: ../../content/applications/hr/time_off.rst:224 +#: ../../content/applications/hr/time_off.rst:225 msgid ":guilabel:`Color`: Select a color to be used in the **Time Off** app dashboard." msgstr "" -#: ../../content/applications/hr/time_off.rst:225 +#: ../../content/applications/hr/time_off.rst:226 msgid ":guilabel:`Cover Image`: Select an icon to be used in the **Time Off** app dashboard." msgstr "" @@ -21765,75 +22918,75 @@ msgid "The lower half of the time off type form, with all the information filled "off." msgstr "" -#: ../../content/applications/hr/time_off.rst:234 +#: ../../content/applications/hr/time_off.rst:235 msgid "Accrual plans" msgstr "" -#: ../../content/applications/hr/time_off.rst:236 +#: ../../content/applications/hr/time_off.rst:237 msgid "Some time off is earned through an accrual plan, meaning that for every specified amount of time an employee works (hour, day, week, etc), they earn or *accrue* a specified amount of time off." msgstr "" -#: ../../content/applications/hr/time_off.rst:240 +#: ../../content/applications/hr/time_off.rst:241 msgid "If an employee accrues a vacation day for every week they work, they would earn 0.2 vacation days for each hour they work. At the end of a forty hour work week, they would earn one whole vacation day (8 hours)." msgstr "" -#: ../../content/applications/hr/time_off.rst:245 +#: ../../content/applications/hr/time_off.rst:246 msgid "Create accrual plan" msgstr "" -#: ../../content/applications/hr/time_off.rst:247 +#: ../../content/applications/hr/time_off.rst:248 msgid "To create a new accrual plan, navigate to :menuselection:`Time Off app --> Configuration --> Accrual Plans`. Then, click the :guilabel:`New` button, which reveals a blank accrual plan form." msgstr "" -#: ../../content/applications/hr/time_off.rst:252 +#: ../../content/applications/hr/time_off.rst:253 msgid ":guilabel:`Name`: Enter the accrual plan name." msgstr "" -#: ../../content/applications/hr/time_off.rst:253 +#: ../../content/applications/hr/time_off.rst:254 msgid ":guilabel:`Accrued Gain Time`: Select when the employee begins to accrue time off, either :guilabel:`At the start of the accrual period` or :guilabel:`At the end of the accrual period`." msgstr "" -#: ../../content/applications/hr/time_off.rst:255 +#: ../../content/applications/hr/time_off.rst:256 msgid ":guilabel:`Carry-Over Time`: Select when the employee received previously earned time. The options are:" msgstr "" -#: ../../content/applications/hr/time_off.rst:258 +#: ../../content/applications/hr/time_off.rst:259 msgid ":guilabel:`At the start of the year`: Select this if the accrual rolls over on January 1 of the upcoming year." msgstr "" -#: ../../content/applications/hr/time_off.rst:260 +#: ../../content/applications/hr/time_off.rst:261 msgid ":guilabel:`At the allocation date`: Select this if the accrual rolls over as soon as time is allocated to the employee." msgstr "" -#: ../../content/applications/hr/time_off.rst:262 +#: ../../content/applications/hr/time_off.rst:263 msgid ":guilabel:`Other`: Select this option if neither of the other two options are applicable. When selected, a :guilabel:`Carry-Over Date` field appears. Select the date using the two drop-down menus, one for the day and one for the month." msgstr "" -#: ../../content/applications/hr/time_off.rst:266 +#: ../../content/applications/hr/time_off.rst:267 msgid ":guilabel:`Based on worked time`: Enable this option if time off accrual is determined by the employee's worked hours. Days **not** considered as worked time do **not** contribute to the accrual plan in Odoo." msgstr "" -#: ../../content/applications/hr/time_off.rst:271 +#: ../../content/applications/hr/time_off.rst:272 msgid "An employee is granted time off from an accrual plan configured to accrue one day of vacation for every five days worked. The accrual plan is based on the employee's worked time (the :guilabel:`Based on worked time` checkbox is ticked), which means they **only** earn vacation time for the five weekdays they work, *not* the entire seven day week period." msgstr "" -#: ../../content/applications/hr/time_off.rst:276 +#: ../../content/applications/hr/time_off.rst:277 msgid "The employee works standard 40-hour weeks. According to the accrual plan, they should earn four vacation days per month." msgstr "" -#: ../../content/applications/hr/time_off.rst:279 +#: ../../content/applications/hr/time_off.rst:280 msgid "The employee takes five days off using a :ref:`time off type ` with the :guilabel:`Kind of Time Off` set as an :guilabel:`Absence`. Because the plan grants vacation only for worked time, those five days do not count toward accrual." msgstr "" -#: ../../content/applications/hr/time_off.rst:283 +#: ../../content/applications/hr/time_off.rst:284 msgid "As a result, the employee accrues only three vacation days that month instead of four." msgstr "" -#: ../../content/applications/hr/time_off.rst:285 +#: ../../content/applications/hr/time_off.rst:286 msgid ":guilabel:`Milestone Transition`: This field is **only** visible after a minimum of two :ref:`rules ` have been configured on the accrual plan. This selection determines when employees move up to a new milestone. If they qualify to change milestones in the middle of a pay period, decide whether the employee changes milestones :guilabel:`Immediately` or :guilabel:`After this accrual's period` (after the current pay period)." msgstr "" -#: ../../content/applications/hr/time_off.rst:290 +#: ../../content/applications/hr/time_off.rst:291 msgid ":guilabel:`Company`: This field **only** appears in a multi-company database. Using the drop-down menu, select the company the accrual plan applies to. If left blank, the accrual plan is available for all companies." msgstr "" @@ -21841,135 +22994,135 @@ msgstr "" msgid "An accrual plan form with all the entries filled out." msgstr "" -#: ../../content/applications/hr/time_off.rst:302 +#: ../../content/applications/hr/time_off.rst:303 msgid "Rules must be created in order for employees to accrue time off from the accrual plan." msgstr "" -#: ../../content/applications/hr/time_off.rst:304 +#: ../../content/applications/hr/time_off.rst:305 msgid "To create a new rule, click the :guilabel:`New Milestone` button in the gray :guilabel:`Rules` section, and a :guilabel:`Create Milestone` modal form appears." msgstr "" -#: ../../content/applications/hr/time_off.rst:311 +#: ../../content/applications/hr/time_off.rst:312 msgid ":guilabel:`Employee accrue`: Select the parameters for earned time off in this section." msgstr "" -#: ../../content/applications/hr/time_off.rst:313 +#: ../../content/applications/hr/time_off.rst:314 msgid "First, select either :guilabel:`Days` or :guilabel:`Hours` for the increment of accrued time using the drop-down menu." msgstr "" -#: ../../content/applications/hr/time_off.rst:316 +#: ../../content/applications/hr/time_off.rst:317 msgid "Next, enter the numerical amount of the selected parameter that is accrued. The numerical format is `X.XXXX`, so that partial days or hours can also be configured." msgstr "" -#: ../../content/applications/hr/time_off.rst:319 +#: ../../content/applications/hr/time_off.rst:320 msgid "Last, select how often the time is accrued using the drop-down menu. The default options are :guilabel:`Hourly`, :guilabel:`Daily`, :guilabel:`Weekly`, :guilabel:`Twice a month`, :guilabel:`Monthly`, :guilabel:`Twice a year`, and :guilabel:`Yearly`." msgstr "" -#: ../../content/applications/hr/time_off.rst:323 +#: ../../content/applications/hr/time_off.rst:324 msgid "Depending on which option is selected, additional fields may appear. For example, if :guilabel:`Twice a month` is selected, two additional fields appear, to specify the two days of each month the milestone occurs." msgstr "" -#: ../../content/applications/hr/time_off.rst:326 +#: ../../content/applications/hr/time_off.rst:327 msgid ":guilabel:`Cap accrued time`: If there is a maximum amount of time the employee can accrue with this plan, enable this option." msgstr "" -#: ../../content/applications/hr/time_off.rst:329 +#: ../../content/applications/hr/time_off.rst:330 msgid "When enabled, two additional fields appear to the right of the checkbox. The second field is populated with either :guilabel:`Days` or :guilabel:`Hours`, matching the selection made in the :ref:`Employee Accrue ` section." msgstr "" -#: ../../content/applications/hr/time_off.rst:333 +#: ../../content/applications/hr/time_off.rst:334 msgid "Enter a numerical value in the first field to specify the maximum amount of time that can be accrued, in the specified increments." msgstr "" -#: ../../content/applications/hr/time_off.rst:335 +#: ../../content/applications/hr/time_off.rst:336 msgid ":guilabel:`Start Accruing`: Enter the number and value of the time period that must pass before the employee starts to accumulate time off." msgstr "" -#: ../../content/applications/hr/time_off.rst:338 +#: ../../content/applications/hr/time_off.rst:339 msgid "Use the first field to enter a numerical value, then set the second field to the desired time increment (either :guilabel:`Days`, :guilabel:`Months`, or :guilabel:`Years`)." msgstr "" -#: ../../content/applications/hr/time_off.rst:340 +#: ../../content/applications/hr/time_off.rst:341 msgid ":guilabel:`Carry over`: select how any unused time off is handled. The options are either:" msgstr "" -#: ../../content/applications/hr/time_off.rst:342 +#: ../../content/applications/hr/time_off.rst:343 msgid ":guilabel:`None. Accrued time reset to 0`: Any unused time off is lost." msgstr "" -#: ../../content/applications/hr/time_off.rst:343 +#: ../../content/applications/hr/time_off.rst:344 msgid ":guilabel:`All accrued time carried over`: All unused time off is rolled over to the next calendar year." msgstr "" -#: ../../content/applications/hr/time_off.rst:345 +#: ../../content/applications/hr/time_off.rst:346 msgid ":guilabel:`Carry over with a maximum`: Unused time off is rolled over to the next calendar year, but there is a cap. An :guilabel:`Up to` field appears if this is selected." msgstr "" -#: ../../content/applications/hr/time_off.rst:348 +#: ../../content/applications/hr/time_off.rst:349 msgid "Enter the maximum number of :guilabel:`Hours` or :guilabel:`Days` that can roll over to the following year. The presented time increment is determined by how the :ref:`Employee Accrue ` section is configured." msgstr "" -#: ../../content/applications/hr/time_off.rst:352 +#: ../../content/applications/hr/time_off.rst:353 msgid "Any time off beyond this parameter is lost." msgstr "" -#: ../../content/applications/hr/time_off.rst:355 +#: ../../content/applications/hr/time_off.rst:356 msgid "If the :guilabel:`Carry over` field is set to :guilabel:`None. Accrued time reset to 0`, that rule *overrides* the :guilabel:`Carry-Over Time` set on the accrual plan." msgstr "" -#: ../../content/applications/hr/time_off.rst:358 +#: ../../content/applications/hr/time_off.rst:359 msgid "If a company creates an accrual plan, granting employees time off :guilabel:`At the start of the accrual period` (i.e., the beginning of the year), and sets the :guilabel:`Carry-Over Time` on the *accrual plan* to :guilabel:`At the start of the year`, it allows unused vacation time to rollover to the following year." msgstr "" -#: ../../content/applications/hr/time_off.rst:363 +#: ../../content/applications/hr/time_off.rst:364 msgid "Then, the company adds rules to the accrual plan, allocating five days of vacation, annually, on the first of the year (one week of vacation allocated on January 1st)." msgstr "" -#: ../../content/applications/hr/time_off.rst:366 +#: ../../content/applications/hr/time_off.rst:367 msgid "If the :guilabel:`Carry over` field is set to :guilabel:`None. Accrual time reset to 0` on the :guilabel:`Create Milestone` pop-up for, any unused vacation time *does not* carry over, even though on the :guilabel:`Accrual Plan` form, the :guilabel:`Carry-Over Time` is set to :guilabel:`At the start of the year`." msgstr "" -#: ../../content/applications/hr/time_off.rst:371 +#: ../../content/applications/hr/time_off.rst:372 msgid "The carry over set on the *rule* takes precedence over the carry over set on the *accrual plan form*." msgstr "" -#: ../../content/applications/hr/time_off.rst:374 +#: ../../content/applications/hr/time_off.rst:375 msgid ":guilabel:`Milestone cap`: Tick this checkbox to set a limit on the total amount of time that can be accrued every calendar year. Enter the total maximum number of :guilabel:`Hours` or :guilabel:`Days` the employee can accrue during a year. The presented time increment is determined by how the :ref:`Employee Accrue ` section is configured." msgstr "" -#: ../../content/applications/hr/time_off.rst:379 +#: ../../content/applications/hr/time_off.rst:380 msgid "If the :guilabel:`Carry over` field is set to :guilabel:`None. Accrued time reset to 0`, the :guilabel:`Milestone cap` field does not appear." msgstr "" -#: ../../content/applications/hr/time_off.rst:381 +#: ../../content/applications/hr/time_off.rst:382 msgid ":guilabel:`Carry Over Validity`: Tick this checkbox to set a time-limit on how long the employee has to use any rolled over time off. First, set the second field to the desired time-period using the drop-down menu, either :guilabel:`Days` or :guilabel:`Months`." msgstr "" -#: ../../content/applications/hr/time_off.rst:385 +#: ../../content/applications/hr/time_off.rst:386 msgid "Next, enter the maximum number of :guilabel:`Days` or :guilabel:`Months` the employee has to use their rolled over time off. After that time period passes, any unused rolled over time will expire." msgstr "" -#: ../../content/applications/hr/time_off.rst:389 +#: ../../content/applications/hr/time_off.rst:390 msgid "If the :guilabel:`Carry over` field is set to :guilabel:`None. Accrued time reset to 0`, the :guilabel:`Carry Over Validity` field does not appear." msgstr "" -#: ../../content/applications/hr/time_off.rst:392 +#: ../../content/applications/hr/time_off.rst:393 msgid "Once the form is completed, click :guilabel:`Save & Close` to save the :guilabel:`Create Milestone` form, and close the modal, or click :guilabel:`Save & New` to save the form and create another milestone. Add as many milestones as desired." msgstr "" -#: ../../content/applications/hr/time_off.rst:397 +#: ../../content/applications/hr/time_off.rst:398 msgid "This milestone form is configured so the employee earns five days a year. They start to earn this time yearly, on January 1st." msgstr "" -#: ../../content/applications/hr/time_off.rst:400 +#: ../../content/applications/hr/time_off.rst:401 msgid "The employee can never accrue more than 120 days of time off with this accrual plan. Anytime they have 120 days banked, they will stop accruing more time off." msgstr "" -#: ../../content/applications/hr/time_off.rst:403 +#: ../../content/applications/hr/time_off.rst:404 msgid "Additionally, they can roll over up to 100 days of time off to the next year, and they have three months to use that rollover time." msgstr "" -#: ../../content/applications/hr/time_off.rst:406 +#: ../../content/applications/hr/time_off.rst:407 msgid "Note that due to the :guilabel:`Capped accrued time` of 120 days, the employee cannot carry over any time off that exceeds 120 days in total." msgstr "" @@ -21977,80 +23130,80 @@ msgstr "" msgid "A milestone form with all the entries filled out." msgstr "" -#: ../../content/applications/hr/time_off.rst:415 +#: ../../content/applications/hr/time_off.rst:416 msgid "Public holidays" msgstr "" -#: ../../content/applications/hr/time_off.rst:417 +#: ../../content/applications/hr/time_off.rst:418 msgid "Since holidays vary from country to country, or even city to city, there are no public holidays preconfigured in Odoo. To observe public or national holidays, and provide extra days off as holidays to employees, configure the observed public holidays in Odoo." msgstr "" -#: ../../content/applications/hr/time_off.rst:421 +#: ../../content/applications/hr/time_off.rst:422 msgid "It is important to configure public holidays in Odoo, so employees are aware of the days they have off, and do not request time off on days that are already set as a public holiday (non-working days)." msgstr "" -#: ../../content/applications/hr/time_off.rst:425 +#: ../../content/applications/hr/time_off.rst:426 msgid "Additionally, all public holidays configured in the **Time Off** app are also reflected in any app that uses working schedules, such as **Calendar**, **Planning**, **Manufacturing**, and more." msgstr "" -#: ../../content/applications/hr/time_off.rst:428 +#: ../../content/applications/hr/time_off.rst:429 msgid "Due to Odoo's integration with other apps that use working schedules, it is considered best practice to ensure *all* public holidays are configured." msgstr "" -#: ../../content/applications/hr/time_off.rst:432 +#: ../../content/applications/hr/time_off.rst:433 msgid "Create public holidays" msgstr "" -#: ../../content/applications/hr/time_off.rst:434 +#: ../../content/applications/hr/time_off.rst:435 msgid "To create a public holiday, navigate to :menuselection:`Time Off app --> Configuration --> Public Holidays`. All currently configured public holidays appear in a default list view." msgstr "" -#: ../../content/applications/hr/time_off.rst:437 +#: ../../content/applications/hr/time_off.rst:438 msgid "Click the :guilabel:`New` button, and a new line appears at the bottom of the list." msgstr "" -#: ../../content/applications/hr/time_off.rst:439 -#: ../../content/applications/hr/time_off.rst:501 +#: ../../content/applications/hr/time_off.rst:440 +#: ../../content/applications/hr/time_off.rst:502 msgid "Enter the following information on that new line:" msgstr "" -#: ../../content/applications/hr/time_off.rst:441 +#: ../../content/applications/hr/time_off.rst:442 msgid ":guilabel:`Name`: Enter the name of the holiday." msgstr "" -#: ../../content/applications/hr/time_off.rst:442 +#: ../../content/applications/hr/time_off.rst:443 msgid ":guilabel:`Company`: If in a multi-company database, the current company populates this field by default. It is **not** possible to edit this field." msgstr "" -#: ../../content/applications/hr/time_off.rst:446 +#: ../../content/applications/hr/time_off.rst:447 msgid "The :guilabel:`Company` field is hidden, by default. To view this field, click the :icon:`oi-settings-adjust` :guilabel:`(settings adjusts)` icon in the top-right corner of the list, to the far-right of the column titles, and activate the :guilabel:`Company` selection from the drop-down menu that appears." msgstr "" -#: ../../content/applications/hr/time_off.rst:451 +#: ../../content/applications/hr/time_off.rst:452 msgid ":guilabel:`Start Date`: Using the date and time picker, select the date and time the holiday starts, then click :icon:`fa-check` :guilabel:`Apply`. By default, this field is configured for the current date. The start time is set according to the start time for the company (according to the :ref:`working schedules `). If the user's computer is set to a different time zone, the start time is adjusted accordingly, compared to the company's time zone." msgstr "" -#: ../../content/applications/hr/time_off.rst:456 +#: ../../content/applications/hr/time_off.rst:457 msgid ":guilabel:`End Date`: Using the date and time picker, select the date and time the holiday ends, then click :icon:`fa-check` :guilabel:`Apply`. By default, this field is configured for the current date, and the time is set to the end time for the company (according to the :ref:`working schedules `). If the user's computer is set to a different time zone, the start time is adjusted accordingly, compared to the company's time zone." msgstr "" -#: ../../content/applications/hr/time_off.rst:463 +#: ../../content/applications/hr/time_off.rst:464 msgid "A company located in San Francisco operates from 9:00 AM - 6:00 PM, with an eight hour work day and one hour lunch break." msgstr "" -#: ../../content/applications/hr/time_off.rst:466 +#: ../../content/applications/hr/time_off.rst:467 msgid "For a user in New York, with a computer time zone set to Eastern Standard Time, a created public holiday displays a start time of 12:00 PM - 9:00 PM, accounting for the three hour time zone difference." msgstr "" -#: ../../content/applications/hr/time_off.rst:470 +#: ../../content/applications/hr/time_off.rst:471 msgid "Similarly, a user located in Los Angeles, with a computer time zone set to Pacific Standard Time, sees a public holiday time as 9:00 AM - 6:00 PM." msgstr "" -#: ../../content/applications/hr/time_off.rst:473 +#: ../../content/applications/hr/time_off.rst:474 msgid ":guilabel:`Working Hours`: If the holiday should only apply to employees who have a specific set of working hours, select the working hours from the drop-down menu. If left blank, the holiday applies to all employees." msgstr "" -#: ../../content/applications/hr/time_off.rst:476 +#: ../../content/applications/hr/time_off.rst:477 msgid ":guilabel:`Work Entry Type`: If using the **Payroll** app, this field defines how the :ref:`work entries ` for the holiday appear. Select the work entry type from the drop-down menu." msgstr "" @@ -22058,59 +23211,59 @@ msgstr "" msgid "The list of public holidays in the configuration menu." msgstr "" -#: ../../content/applications/hr/time_off.rst:484 +#: ../../content/applications/hr/time_off.rst:485 msgid "Mandatory days" msgstr "" -#: ../../content/applications/hr/time_off.rst:486 +#: ../../content/applications/hr/time_off.rst:487 msgid "Some companies have special days where specific departments, or the entire staff, is required to be present, and time off is not allowed on those specific days." msgstr "" -#: ../../content/applications/hr/time_off.rst:489 +#: ../../content/applications/hr/time_off.rst:490 msgid "These types of days are called *mandatory days* in Odoo. These can be configured to be company-wide, or department specific. When configured, employees in the specified department or company are unable to submit time off requests for these mandatory days." msgstr "" -#: ../../content/applications/hr/time_off.rst:494 +#: ../../content/applications/hr/time_off.rst:495 msgid "Create mandatory days" msgstr "" -#: ../../content/applications/hr/time_off.rst:496 +#: ../../content/applications/hr/time_off.rst:497 msgid "No mandatory days are configured in Odoo by default. To create a mandatory day, navigate to :menuselection:`Time Off app --> Configuration --> Mandatory Days`." msgstr "" -#: ../../content/applications/hr/time_off.rst:499 +#: ../../content/applications/hr/time_off.rst:500 msgid "Click the :guilabel:`New` button in the top-left corner, and a blank line appears in the list." msgstr "" -#: ../../content/applications/hr/time_off.rst:503 +#: ../../content/applications/hr/time_off.rst:504 msgid ":guilabel:`Name`: Enter the name of the mandatory day." msgstr "" -#: ../../content/applications/hr/time_off.rst:504 +#: ../../content/applications/hr/time_off.rst:505 msgid ":guilabel:`Company`: If in a multi-company database, this field is visible, and the current company populates this field, by default. Using the drop-down menu, select the company the mandatory day is for." msgstr "" -#: ../../content/applications/hr/time_off.rst:507 +#: ../../content/applications/hr/time_off.rst:508 msgid ":guilabel:`Departments`: This column is hidden by default. First, click the :icon:`oi-settings-adjust` :guilabel:`(additional options)` icon in the top-right corner, next to :guilabel:`Color`, and then tick the checkbox next to :guilabel:`Departments` to reveal that column." msgstr "" -#: ../../content/applications/hr/time_off.rst:512 +#: ../../content/applications/hr/time_off.rst:513 msgid "Next, select the desired departments from the drop-down menu. Multiple departments can be selected, and there is no limit to the amount of departments that can be added." msgstr "" -#: ../../content/applications/hr/time_off.rst:515 +#: ../../content/applications/hr/time_off.rst:516 msgid "If this field is left blank, the mandatory day applies to the entire company." msgstr "" -#: ../../content/applications/hr/time_off.rst:516 +#: ../../content/applications/hr/time_off.rst:517 msgid ":guilabel:`Start Date`: Using the calendar picker, select the date the mandatory day starts." msgstr "" -#: ../../content/applications/hr/time_off.rst:517 +#: ../../content/applications/hr/time_off.rst:518 msgid ":guilabel:`End Date`: Using the calendar picker, select the date the mandatory day ends. If creating a single mandatory day, the end date should be the same as the start date." msgstr "" -#: ../../content/applications/hr/time_off.rst:519 +#: ../../content/applications/hr/time_off.rst:520 msgid ":guilabel:`Color`: If desired, select a color from the available presented options. If no color is desired, select the `No color` option, represented by a white box with. The selected color appears on the main **Time Off** app dashboard, in both the calendar and in the legend." msgstr "" @@ -22118,43 +23271,43 @@ msgstr "" msgid "The Mandatory Days section with three configured days." msgstr "" -#: ../../content/applications/hr/time_off.rst:529 +#: ../../content/applications/hr/time_off.rst:530 msgid "To view a color-coded schedule of the user's time off, and/or of the team managed by them, navigate to :menuselection:`Time Off app --> Overview`. This presents a calendar with the default filter of `My Team`, in a quarterly (three month) view." msgstr "" -#: ../../content/applications/hr/time_off.rst:533 +#: ../../content/applications/hr/time_off.rst:534 msgid "To change the time period displayed, click on the :icon:`fa-calendar` :guilabel:`(time period)` button to reveal a drop-down menu. Then, select either :guilabel:`Today`, :guilabel:`This week`, :guilabel:`This month`, :guilabel:`This year`, or a custom time period, to present the calendar in that corresponding view." msgstr "" -#: ../../content/applications/hr/time_off.rst:538 +#: ../../content/applications/hr/time_off.rst:539 msgid "To navigate forward or backward in time, in the selected increment (:guilabel:`Month`, :guilabel:`Week`, etc.), click the :icon:`oi-arrow-left` :guilabel:`(left arrow)` or :icon:`oi-arrow-right` :guilabel:`(right arrow)` buttons to move either forward or backward in that specified amount of time. For example, if :guilabel:`Month` is selected, the arrows adjust the view by one month." msgstr "" -#: ../../content/applications/hr/time_off.rst:544 +#: ../../content/applications/hr/time_off.rst:545 msgid "To return to a view containing the current day, click the :icon:`fa-crosshairs` :guilabel:`(Focus Today)` button at any time." msgstr "" -#: ../../content/applications/hr/time_off.rst:547 +#: ../../content/applications/hr/time_off.rst:548 msgid "Team members are listed alphabetically on individual lines, and their requested time off, regardless of the status (*validated* or *to approve*), is visible on the calendar." msgstr "" -#: ../../content/applications/hr/time_off.rst:550 +#: ../../content/applications/hr/time_off.rst:551 msgid "Each employee is color-coded. The employee's color is selected at random, and does *not* correspond to the type of time off they requested." msgstr "" -#: ../../content/applications/hr/time_off.rst:553 +#: ../../content/applications/hr/time_off.rst:554 msgid "The status of the time off is represented by the color detail of the request, either appearing solid (*validated*) or striped (*to approve*)." msgstr "" -#: ../../content/applications/hr/time_off.rst:556 +#: ../../content/applications/hr/time_off.rst:557 msgid "The number of days or hours requested is written on the request (if there is enough space)." msgstr "" -#: ../../content/applications/hr/time_off.rst:558 +#: ../../content/applications/hr/time_off.rst:559 msgid "At the bottom of the calendar, in the :guilabel:`Total` line, a bar graph shows how many people are projected to be out on any given day. The number on each individual bar represents the number of employees out for those highlighted days." msgstr "" -#: ../../content/applications/hr/time_off.rst:562 +#: ../../content/applications/hr/time_off.rst:563 msgid "Click on a time off entry to view the details for the specific time off entry. The total number of hours or days are listed, along with the start and end time of the time off. To view the details of the time off request in a modal, click the :guilabel:`View` button." msgstr "" @@ -22162,115 +23315,26 @@ msgstr "" msgid "Overview of the user's team, with time off requests shown." msgstr "" -#: ../../content/applications/hr/time_off.rst:574 -msgid "The reporting feature allows users to view time off for their team, either by employee or type of time off. This allows users to see which employees are taking time off, how much time off they are taking, and what time off types are being used." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:578 -msgid "Any report can be added to a spreadsheet, when in either the :icon:`fa-area-chart` :guilabel:`(Graph)` or :icon:`oi-view-pivot` :guilabel:`(Pivot)` view, through the *Insert in Spreadsheet* button that appears in the top-left of a report." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:583 -msgid "If the **Documents** app is installed, an option to add the report to a spreadsheet appears. If not, the report can be added to a *Dashboard*." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:587 -msgid "By employee" -msgstr "" - -#: ../../content/applications/hr/time_off.rst:589 -msgid "To view a list of employee time off requests, navigate to :menuselection:`Time Off app --> Reporting --> by Employee`." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:592 -msgid "The default report presents the current year's data in a list view, displaying all the employees in alphabetical order. Each employee's line is collapsed by default. To expand a line, click anywhere on the line." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:596 -msgid "The view expands, and has the time off requests organized by time off type. Click anywhere on a time off type line to expand it, and view all the individual time off requests that fall under that type." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:599 -msgid "The information shown in the list includes: the :guilabel:`Employee` name, :guilabel:`Number of Days` off requested, the :guilabel:`Start Date`, :guilabel:`End Date`, :guilabel:`Status`, and :guilabel:`Description`." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:-1 -msgid "Report of time off, shown by each employee in a list view." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:606 -msgid "The report can be displayed in other ways, as well. Click the corresponding button option in the top-right corner of the page to view the data in that specific way. The various options are a :icon:`oi-view-list` :guilabel:`(List)`, or default view, :icon:`fa-area-chart` :guilabel:`(Graph)`, :icon:`oi-view-pivot` :guilabel:`(Pivot)` table, or :icon:`fa-calendar` :guilabel:`(Calendar)` view." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:611 -msgid "When a selection has been made, additional options appear for that particular selection. For more detailed information on the reports and their various options, refer to the :doc:`reporting <../essentials/reporting>` documentation." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:616 -msgid "By type" -msgstr "" - -#: ../../content/applications/hr/time_off.rst:618 -msgid "To view a graph of all time off, organized by time off type, navigate to :menuselection:`Time Off app --> Reporting --> by Type`. This shows all time off requests in a default bar chart." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:621 -msgid "Hover over a bar to view the :guilabel:`Duration (Days)` of that specific time off type." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:-1 -msgid "The various time off types, and how many days requested, in a bar chart. Details are\n" -"highlighted in a red box." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:627 -msgid "Click on a bar to go to a detailed list view of all the time off requests for that time off type." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:629 -msgid "Each request is listed, with the following information displayed: the :guilabel:`Employee`, :guilabel:`Number of Days`, :guilabel:`Request Type`, :guilabel:`Start Date`, :guilabel:`End Date`, :guilabel:`Status`, and the :guilabel:`Description`." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:633 -msgid "The report can be displayed in other ways, as well. Click the corresponding button option in the top-right corner of the page to view the data in that way. The various options are a :icon:`fa-area-chart` :guilabel:`(Graph)` (the default view), :icon:`oi-view-list` :guilabel:`(List)`, or :icon:`oi-view-pivot` :guilabel:`(Pivot)` table." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:638 -msgid "When a selection has been made, additional options appear for that particular selection. For more detailed information on the reports, and their various options, refer to the :doc:`reporting <../essentials/reporting>` documentation." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:643 -msgid "Balance" -msgstr "" - -#: ../../content/applications/hr/time_off.rst:645 -msgid "To view a pivot table of all time off balances, organized by time off type, then further organized by how many days and hours are :guilabel:`Left` and :guilabel:`Planned`, navigate to :menuselection:`Time Off app --> Reporting --> Balance`." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:649 -msgid "This shows all time off balances in a default pivot table. The employees populate the rows, while the various time off types and balances populate the columns." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:-1 -msgid "The various time off balances, in a pivot table." -msgstr "" - -#: ../../content/applications/hr/time_off.rst:656 +#: ../../content/applications/hr/time_off.rst:571 msgid ":doc:`time_off/allocations`" msgstr "" -#: ../../content/applications/hr/time_off.rst:657 +#: ../../content/applications/hr/time_off.rst:572 msgid ":doc:`time_off/request_time_off`" msgstr "" -#: ../../content/applications/hr/time_off.rst:658 +#: ../../content/applications/hr/time_off.rst:573 msgid ":doc:`time_off/my_time`" msgstr "" -#: ../../content/applications/hr/time_off.rst:659 +#: ../../content/applications/hr/time_off.rst:574 msgid ":doc:`time_off/management`" msgstr "" +#: ../../content/applications/hr/time_off.rst:575 +msgid ":doc:`time_off/reporting`" +msgstr "" + #: ../../content/applications/hr/time_off/allocations.rst:3 msgid "Allocations" msgstr "" @@ -22793,90 +23857,199 @@ msgstr "" msgid "My Allocations list view with all requests." msgstr "" +#: ../../content/applications/hr/time_off/reporting.rst:5 +msgid "The **Time Off** app's reporting feature lets managers view team time off by employee, type, or remaining balances. This allows managers to see :ref:`who is taking time off, how much they have used `, :ref:`which types are more commonly used `, and :ref:`how much each employee still has available `." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:10 +msgid "Any report can be added to a spreadsheet, when in either the :icon:`fa-area-chart` :guilabel:`(Graph)` or :icon:`oi-view-pivot` :guilabel:`(Pivot)` view, through the *Insert in Spreadsheet* button that appears in the top-left of a report." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:15 +msgid "If the **Documents** app is installed, an option to add the report to a spreadsheet appears. If not, the report can be added to a *Dashboard*." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:21 +msgid "By employee" +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:23 +msgid "Viewing time off by employee helps managers track usage patterns, monitor remaining balances, ensure policy compliance, and plan coverage for upcoming absences. To view a list of employee time off requests, navigate to :menuselection:`Time Off app --> Reporting --> by Employee`." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:27 +msgid "The default report presents the current year's data in a list view, displaying all the employees in alphabetical order. Each employee's line is collapsed by default. To expand a line, click anywhere on the line." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:31 +msgid "The view expands, and has the time off requests organized by time off type. Click anywhere on a time off type line to expand it, and view all the individual time off requests that fall under that type." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:34 +msgid "The information shown in the list includes: the :guilabel:`Employee` name, :guilabel:`Number of Days` off requested, the :guilabel:`Start Date`, :guilabel:`End Date`, :guilabel:`Status`, and :guilabel:`Description`." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:-1 +msgid "Report of time off, shown by each employee in a list view." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:41 +msgid "The report can be displayed in other ways, as well. Click the corresponding button option in the top-right corner of the page to view the data in that specific way. The various options are a :icon:`oi-view-list` :guilabel:`(List)`, or default view, :icon:`fa-area-chart` :guilabel:`(Graph)`, :icon:`oi-view-pivot` :guilabel:`(Pivot)` table, or :icon:`fa-calendar` :guilabel:`(Calendar)` view." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:46 +msgid "When a selection has been made, additional options appear for that particular selection. For more detailed information on the reports and their various options, refer to the :doc:`reporting <../../essentials/reporting>` documentation." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:53 +msgid "By type" +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:55 +msgid "Viewing company-wide time off by type can help managers determine if employees are using their time off, which types are used more than others, and can spot any trends. High totals in certain time off types, like sick time off, can indicate health or morale concerns." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:59 +msgid "To view a graph of all time off, organized by time off type, navigate to :menuselection:`Time Off app --> Reporting --> by Type`. This shows all time off requests in a default bar chart." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:62 +msgid "Hover over a bar to view the :guilabel:`Duration (Days)` of that specific time off type." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:-1 +msgid "The various time off types, and how many days requested, in a bar chart. Details are\n" +"highlighted in a red box." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:68 +msgid "Click on a bar to go to a detailed list view of all the time off requests for that time off type." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:70 +msgid "Each request is listed, with the following information displayed: the :guilabel:`Employee`, :guilabel:`Number of Days`, :guilabel:`Request Type`, :guilabel:`Start Date`, :guilabel:`End Date`, :guilabel:`Status`, and the :guilabel:`Description`." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:74 +msgid "The report can be displayed in other ways, as well. Click the corresponding button option in the top-right corner of the page to view the data in that way. The various options are a :icon:`fa-area-chart` :guilabel:`(Graph)` (the default view), :icon:`oi-view-list` :guilabel:`(List)`, or :icon:`oi-view-pivot` :guilabel:`(Pivot)` table." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:79 +msgid "When a selection has been made, additional options appear for that particular selection. For more detailed information on the reports, and their various options, refer to the :doc:`reporting <../../essentials/reporting>` documentation." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:86 +msgid "Balance" +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:88 +msgid "When some time off types have restrictions, such as rollover rules and balance limits, viewing time off balances can help managers see a high-level overview of time off. If certain employees have a lot of time that will expire soon, they can inform their employees and adjust scheduled accordingly to be prepared for their absences." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:93 +msgid "To view a pivot table of all time off balances, organized by time off type, then further organized by how many days and hours are :guilabel:`Left` and :guilabel:`Planned`, navigate to :menuselection:`Time Off app --> Reporting --> Balance`." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:97 +msgid "This shows all time off balances in a default pivot table. The employees populate the rows, while the various time off types and balances populate the columns." +msgstr "" + +#: ../../content/applications/hr/time_off/reporting.rst:-1 +msgid "The various time off balances, in a pivot table." +msgstr "" + #: ../../content/applications/hr/time_off/request_time_off.rst:3 msgid "Request time off" msgstr "" #: ../../content/applications/hr/time_off/request_time_off.rst:5 -msgid "Once time off has been allocated to an employee, a request to use it can be submitted." +msgid "When employees wish to take time off, they first submit a time off request through the **Time Off** application. Once their request has been submitted, it is then reviewed by either the employee's manager or their time off officer (depending on who the employee's :ref:`time off approver is `)." +msgstr "" + +#: ../../content/applications/hr/time_off/request_time_off.rst:11 +msgid "If the time off type the employee is requesting :ref:`does not require approval `, the time off is automatically approved, and does not need to be reviewed." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:7 -msgid "Time off can be requested in one of two ways: either from the main *Time Off* application :guilabel:`Dashboard` (:menuselection:`Time Off app --> My Time --> Dashboard`), or from the :guilabel:`My Time Off` dashboard view (:menuselection:`Time Off app --> My Time --> My Time Off`)." +#: ../../content/applications/hr/time_off/request_time_off.rst:16 +msgid "Submit time off request" msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:11 -msgid "To create a new request for time off, click the :guilabel:`New` button on either the main *Time Off* :guilabel:`Dashboard` or the :guilabel:`My Time Off` dashboard, in the default list view." +#: ../../content/applications/hr/time_off/request_time_off.rst:18 +msgid "To request time off, click the :guilabel:`New` button in the top-left corner of the **Time Off** app dashboard, and a :guilabel:`New Time Off` pop-up form loads." +msgstr "" + +#: ../../content/applications/hr/time_off/request_time_off.rst:21 +msgid "Fill out the :ref:`fields on the form `, and then click :guilabel:`Save & Close` to submit the request." +msgstr "" + +#: ../../content/applications/hr/time_off/request_time_off.rst:25 +msgid "Requesting time off can be done either form the main **Time Off** app dashboard, or by navigating to :menuselection:`Time Off --> My Time --> My Time Off`, and clicking :guilabel:`New`." +msgstr "" + +#: ../../content/applications/hr/time_off/request_time_off.rst:-1 +msgid "A time off request for three hours of vacation time off." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:15 -msgid "Both :guilabel:`New` buttons allow the user to request time off, but when requested from the :guilabel:`Dashboard`, a :guilabel:`New Time Off` request form appears in a pop-up window. When requested from the :guilabel:`My Time Off` list view, the screen navigates to a new time off request page, instead." +#: ../../content/applications/hr/time_off/request_time_off.rst:34 +msgid "Time off fields" msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:20 +#: ../../content/applications/hr/time_off/request_time_off.rst:36 msgid "Enter the following information on the :guilabel:`New Time Off` request form:" msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:22 -msgid ":guilabel:`Time Off Type`: select the type of time off being requested from the drop-down menu." +#: ../../content/applications/hr/time_off/request_time_off.rst:38 +msgid ":guilabel:`Time Off Type`: Using the drop-down menu, select the type of time off being requested." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:23 -msgid ":guilabel:`Dates`: enter the dates that the time off falls under. There are two fields to populate: the start and end dates. Click on either date field and a popover calendar appears." +#: ../../content/applications/hr/time_off/request_time_off.rst:39 +msgid ":guilabel:`Dates`: Enter the dates that the time off falls under. There are two fields to populate: the start and end dates. Click on either date field and a popover calendar appears." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:26 +#: ../../content/applications/hr/time_off/request_time_off.rst:42 msgid "Click on the start date, then click on the end date. The selected start and end dates are circled, and the dates between them are highlighted (if applicable)." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:29 +#: ../../content/applications/hr/time_off/request_time_off.rst:45 msgid "If only requesting time off for a single day, click on the start date, then click the same date again for the end date." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:32 +#: ../../content/applications/hr/time_off/request_time_off.rst:48 msgid "When the correct dates are selected, click the :guilabel:`Apply` button." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:34 +#: ../../content/applications/hr/time_off/request_time_off.rst:50 msgid "The selected dates now populate the two portions of the :guilabel:`Dates` field." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:36 +#: ../../content/applications/hr/time_off/request_time_off.rst:52 msgid "If the selected :guilabel:`Time Off Type` is configured to have the time off taken in hours, the following two fields also appear:" msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:39 -msgid ":guilabel:`Half Day`: if the time off request is for a half day, tick this checkbox. When this is selected, the second date field disappears, and is replaced with a drop-down menu. From that drop-down menu, select either :guilabel:`Morning` or :guilabel:`Afternoon` to indicate which half of the day is being requested." +#: ../../content/applications/hr/time_off/request_time_off.rst:55 +msgid ":guilabel:`Half Day`: If the time off request is for a half day, tick this checkbox. When this is selected, the second date field disappears, and is replaced with a drop-down menu. From that drop-down menu, select either :guilabel:`Morning` or :guilabel:`Afternoon` to indicate which half of the day is being requested off." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:43 -msgid ":guilabel:`Custom Hours`: if the time off requested is not a whole or half day, tick this checkbox. If selected, a :guilabel:`From` and :guilabel:`To` field appears beneath this option. Using the drop-down menu, select the start and end time for the time off request." +#: ../../content/applications/hr/time_off/request_time_off.rst:59 +msgid ":guilabel:`Custom Hours`: If the time off requested is not a whole or half day, tick this checkbox. If selected, a :guilabel:`From` and :guilabel:`To` field appears beneath this option. Using the drop-down menu, select the start and end time for the time off request." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:47 -msgid ":guilabel:`Duration`: this field updates automatically once the :guilabel:`Date` section is completed. If the :guilabel:`Date` section is modified, this section automatically updates to reflect the total time off requested. This field is in either hours or days, depending on how the selected :guilabel:`Time Off Type` is configured." +#: ../../content/applications/hr/time_off/request_time_off.rst:63 +msgid ":guilabel:`Requested (Days/Hours)`: This field updates automatically once the :guilabel:`Date` section is completed. If the :guilabel:`Date` section is modified, this section automatically updates to reflect the total time off requested. This field is in either hours or days, depending on how the selected :ref:`Time Off Type ` is configured." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:51 -msgid ":guilabel:`Description`: enter a description for the time off request. This should include any details that managers and approvers may need to approve the request." +#: ../../content/applications/hr/time_off/request_time_off.rst:67 +msgid ":guilabel:`Description`: Enter a description for the time off request. This should include any details that managers and approvers may need to approve the request." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:53 -msgid ":guilabel:`Supporting Document`: this field only appears if the :guilabel:`Time Off Type` selected allows for the attachment of documents. Click the :guilabel:`Attach File` button, and a file explorer window appears." +#: ../../content/applications/hr/time_off/request_time_off.rst:69 +msgid ":guilabel:`Supporting Document`: This field **only** appears if the :ref:`Time Off Type ` selected allows for the attachment of documents. Click the :icon:`fa-paperclip` :guilabel:`Attach File` button, and a file explorer window appears." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:57 +#: ../../content/applications/hr/time_off/request_time_off.rst:73 msgid "Navigate to the desired files that should be attached, select them, then click The :guilabel:`Open` button. The files then appear on the time off request form. Multiple documents can be attached, if necessary." msgstr "" -#: ../../content/applications/hr/time_off/request_time_off.rst:61 -msgid "If the request was created from the :guilabel:`Dashboard`, click the :guilabel:`Save & Close` button to save the information, and submit the request." -msgstr "" - -#: ../../content/applications/hr/time_off/request_time_off.rst:64 -msgid "If the form was completed from the :guilabel:`My Time Off` list view, the information is automatically saved as it is entered. However, the form can be saved manually at any time by clicking the :icon:`fa-cloud-upload` :guilabel:`(cloud upload)` icon." -msgstr "" - #: ../../content/applications/hr/time_off/request_time_off.rst:-1 -msgid "A time off request form filled out for an employee home sick for two days with the flu." +msgid "A time off request form filled out for an employee home sick with the flu." msgstr "" diff --git a/locale/sources/inventory_and_mrp.pot b/locale/sources/inventory_and_mrp.pot index 52382157ac..c867452dab 100644 --- a/locale/sources/inventory_and_mrp.pot +++ b/locale/sources/inventory_and_mrp.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -98,7 +98,6 @@ msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.rst:44 #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs.rst:18 #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:20 -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:18 #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/delivery_three_steps.rst:16 #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/putaway.rst:21 #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/receipts_delivery_one_step.rst:20 @@ -1027,7 +1026,7 @@ msgstr "" #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:221 #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_nomenclature.rst:223 #: ../../content/applications/inventory_and_mrp/barcode/operations/gs1_usage.rst:43 -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:80 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:81 #: ../../content/applications/inventory_and_mrp/purchase/products/pricelist.rst:144 msgid "Quantity" msgstr "" @@ -4446,7 +4445,7 @@ msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.rst:149 #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.rst:175 #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.rst:246 -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:93 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:94 msgid "$10" msgstr "" @@ -4461,7 +4460,7 @@ msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.rst:173 #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.rst:241 #: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config.rst:244 -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:88 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:89 msgid "$0" msgstr "" @@ -5294,155 +5293,155 @@ msgid "Please read this :doc:`introduction to inventory valuation `. After that, go to :menuselection:`Inventory app --> Products --> Products`, and select the desired product, or create a new product, by clicking :guilabel:`New`." +msgid "To enable valuation by lots or serial numbers, begin by enabling the :ref:`Lots and Serial Numbers feature `. After that, go to :menuselection:`Inventory app --> Products --> Products`, and select the desired product, or create a new product, by clicking :guilabel:`New`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:26 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:27 msgid "On the product form, in the :guilabel:`Category` field, choose a product category. Ensure the product category's :ref:`Costing Method ` is set to *First In First Out (FIFO)* or *Average Cost (AVCO)*." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:31 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:32 msgid "To check the costing method set on the product category, hover over the :guilabel:`Category` field, and click the :icon:`oi-arrow-right` :guilabel:`(Internal Link)` icon." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:35 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:36 msgid ":ref:`Costing methods `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:37 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:38 msgid "Next, activate the product to be tracked by lots or serial numbers by ticking the :guilabel:`Track Inventory` checkbox. Then, click the adjacent field that appears, and choose either :guilabel:`By Lots` or :guilabel:`By Unique Serial Number` from the resulting drop-down menu." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:41 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:42 msgid "Doing so makes the :guilabel:`Valuation by Lot/Serial number` checkbox appear below it. Tick that checkbox, and the configuration to track valuation by lot or serial numbers is complete." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:47 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:48 msgid "Product form showing the Valuation by Lot or Serial Number feature." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:47 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:48 msgid "Product form showing the Valuation by Lot or Serial Number feature" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:50 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:51 msgid "Valuation layers" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:52 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:53 msgid "To understand how valuation by lots and serial numbers works, consider these scenarios:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:54 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:55 msgid ":ref:`Purchase and sell products `: cost is calculated based on the *product category's* costing method." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:56 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:57 msgid ":ref:`Create new lot/serial numbers ` using an inventory adjustment: value of the new lot/serial number is assigned to the cost from the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:59 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:60 msgid "Inventory adjustment to update quantities for an :ref:`existing lot/serial number `: value is assigned based on the most recent cost for that lot/serial number." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:63 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:64 msgid "For both :abbr:`AVCO (Average Cost)` and :abbr:`FIFO (First In First Out)` methods, the *Cost* field on the product form is calculated using this formula:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:66 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:67 msgid ":math:`Avg~Cost = \\frac{Total~Value}{Total~Qty}`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:71 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:72 msgid "Purchase products" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:73 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:74 msgid "Consider how purchasing products affect the inventory valuation, in the table below." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:81 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:82 msgid "Lot number" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:82 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:83 msgid "Math" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:83 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:84 msgid "Average cost on product form" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:84 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:85 msgid "Empty stock" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:85 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:86 msgid "0.00" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:89 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:90 msgid "Day 1: Receive one product at $10/unit" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:90 -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:95 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:91 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:96 msgid "1.00" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:91 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:92 msgid "LOT 1" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:92 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:93 msgid ":math:`\\frac{10}{1}`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:94 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:95 msgid "Day 2: Receive another product at $20/unit" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:96 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:97 msgid "LOT 2" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:97 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:98 msgid ":math:`\\frac{10+20}{2}`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:98 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:99 msgid "$15" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:103 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:104 msgid "Show Cost on the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:103 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:104 msgid "As a result, the product form displays an average cost of $15 in the **Cost** field." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:108 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:109 msgid "Create new lot/serial number" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:110 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:111 msgid "Creating a new lot/serial number through an :doc:`inventory adjustment <../../warehouses_storage/inventory_management/count_products>` assigns the same value as the cost on the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:114 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:115 msgid "To make an inventory adjustment, and assign a lot number, go to :menuselection:`Inventory app --> Operations --> Physical Inventory`. Then, click :guilabel:`New`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:117 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:118 msgid "In the new inventory adjustment line that appears, set the :guilabel:`Product`, create the :guilabel:`Lot/Serial Number`, set the :guilabel:`Counted Quantity`, and click :icon:`fa-floppy-o` :guilabel:`Apply`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:121 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:122 msgid "To view the valuation layer, go to :menuselection:`Inventory app --> Reporting --> Valuation`. The :guilabel:`Total Value` per unit matches the *Cost* on the product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:125 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:126 msgid "Continuing the example in the table above, when the product cost is `$15`, the valuation for a newly-created `LOT3` is also be `$15`." msgstr "" @@ -5450,19 +5449,19 @@ msgstr "" msgid "Show inventory adjustment valuation." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:134 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:135 msgid "Existing lot/serial number" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:136 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:137 msgid "When adjusting the quantity of an existing lot/serial number, the value is based on the most recent valuation layer for that specific lot/serial number." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:140 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:141 msgid "Continuing the example in the table above, the value for `LOT 1` is `$10`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:142 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:143 msgid "So, when the quantity is updated from `1.00` to `2.00`, the additional quantity is also valued at `$10`, reflecting the latest valuation layer for `LOT 1`." msgstr "" @@ -5470,55 +5469,55 @@ msgstr "" msgid "Show valuation of LOT 1 getting updated." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:148 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:149 msgid "The inventory adjustment (top line) is valued the same as LOT 1 (bottom line)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:153 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:154 msgid "View valuation" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:155 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:156 msgid "To find the average cost of a specific lot/serial number, go to :menuselection:`Inventory app --> Products --> Lots/Serial Numbers`, and select the desired record." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:158 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:159 msgid "Both the :guilabel:`Cost` and :guilabel:`Average Cost` fields show a unit's average cost. The :guilabel:`Total Value` reflects the total on-hand value for that lot/serial number." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:162 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:163 msgid "Ensure the costing method is set to *First In First Out (FIFO)* or *Average Cost (AVCO)* to display the cost on this page." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:168 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:169 msgid "Show cost of the lot/serial number." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:168 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:169 msgid "Lot form, displaying **Cost** field. The **Valuation** smart button is in the top-right." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:170 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:171 msgid "Valuation layers of a lot/serial number can be viewed through the :ref:`valuation report `, or by clicking the lot/serial number's :guilabel:`Valuation` smart button. These detailed, line-by-line records can help determine how each inventory move of the specific lot/serial number affects its valuation." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:178 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:179 msgid "Valuation report" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:180 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:181 msgid "Display the valuation of lots and serial numbers in the database by going to :menuselection:`Inventory app --> Reporting --> Valuation`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:183 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:184 msgid "On the resulting :guilabel:`Stock Valuation` report, click the search bar, and in the :icon:`oi-group` :guilabel:`Group By` section of the resulting drop-down menu, select :guilabel:`Lot/Serial number`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:188 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:189 msgid "Click the :icon:`fa-plus` :guilabel:`(plus)` icon to the right of a collapsed lot number line to :ref:`manually modify the cost `." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:191 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:192 msgid "This is useful for adjusting individual lot prices when a purchase order or bill includes multiple lots/serial numbers, as initial prices are identical upon reception." msgstr "" @@ -5526,23 +5525,23 @@ msgstr "" msgid "Show valuation report, by lots." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:198 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:199 msgid "Valuation smart button" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:200 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:201 msgid "To access a filtered part of the *Stock Valuation* report, specific to a lot or serial number, go to :menuselection:`Inventory app --> Products --> Lots/Serial Numbers`, and select the desired item." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:203 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:204 msgid "On the :guilabel:`Lot/Serial Numbers` page, click the :guilabel:`Valuation` smart button." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:208 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:209 msgid "All stock moves relating to `LOT 1`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:208 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots.rst:209 msgid "All stock moves that affect the valuation of `LOT 1`." msgstr "" @@ -5570,17 +5569,17 @@ msgstr "" msgid ":doc:`product_tracking/serial_numbers`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:24 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:26 #: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:24 #: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/serial_numbers.rst:21 msgid "Enable lots & serial numbers" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:26 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:28 msgid "To track products using lots and serial numbers, the *Lots & Serial Numbers* feature must be enabled." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:29 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:31 msgid "To do that, go to the :menuselection:`Inventory app --> Configuration --> Settings`, scroll down to the :guilabel:`Traceability` section, and click the box next to :guilabel:`Lots & Serial Numbers`. Then, click the :guilabel:`Save` button to save changes." msgstr "" @@ -5589,11 +5588,11 @@ msgstr "" msgid "Enabled lots and serial numbers feature in inventory settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:38 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:40 msgid "When to use lots" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:40 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:42 msgid "Lots are useful for products that are manufactured or received in large quantities, such as clothes or food. Lots and can be used to trace a product back to a group, which is especially useful when managing product recalls or expiration dates." msgstr "" @@ -5601,15 +5600,15 @@ msgstr "" msgid "Created lot with quantity of products in it." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:49 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:51 msgid "Manufacturers assign lot numbers to groups of products that have common properties; this can lead to multiple goods sharing the same lot number. This helps identify a number of products in a single group, and allows for end-to-end traceability of these products through each step in their life cycles." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:55 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:57 msgid "When to use serial numbers" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:57 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:59 msgid "The goal of assigning serial numbers to individual products is to make sure every item's history is identifiable when it travels through the supply chain. This can be especially useful for manufacturers that provide after-sales services related to products they sell and deliver." msgstr "" @@ -5617,32 +5616,32 @@ msgstr "" msgid "List of serial numbers for product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:66 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:68 msgid "Serial numbers can contain many different types of characters: numbers, letters, typographical symbols, or a mixture of all three types." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:70 -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:379 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:72 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:353 msgid "Traceability" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:72 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:74 msgid "Manufacturers and companies can refer to traceability reports to see the entire life cycle of a product. These reports include vital information, like where it came from (and when), where it was stored, and to whom it was sent." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:76 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:78 msgid "To see the full traceability of a product, or group products by lots and/or serial numbers, go to :menuselection:`Inventory app --> Products --> Lots/Serial Numbers`. Doing so reveals the :guilabel:`Lots/Serial Numbers` dashboard." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:80 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:82 msgid "From here, products with lots or serial numbers assigned to them are listed by default. They can also be expanded to show what lots or serial numbers have been specifically assigned to them." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:83 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:85 msgid "To group by lots or serial numbers, first remove any default filters from the search bar in the upper-right corner. Then, click :guilabel:`Group By`, and select :guilabel:`Add Custom Group`, which reveals a mini drop-down menu. From this mini drop-down menu, select :guilabel:`Lot/Serial Number`, and click :guilabel:`Apply`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:88 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:90 msgid "Doing so reveals all existing lots and serial numbers, and each can be expanded to show all product quantities with that assigned number. For unique serial numbers that are *not* reused, there should *only* be one product per serial number." msgstr "" @@ -5650,7 +5649,7 @@ msgstr "" msgid "Reporting page with drop-down lists of lots and serial numbers." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:97 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking.rst:99 msgid "For additional information regarding an individual lot number or serial number, click the line item for the lot or serial number to reveal that specific number's :guilabel:`Lot` or :guilabel:`Serial Number` form. From this form, click the :guilabel:`Location` and :guilabel:`Traceability` smart buttons to see all stock on-hand using that serial number. Any operations made using that lot or serial number can be found here, as well." msgstr "" @@ -5863,7 +5862,7 @@ msgid "To sell perishable products with expiration dates, the :guilabel:`Removal msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/expiration_dates.rst:194 -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:189 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:178 #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/use_locations.rst:133 msgid ":doc:`../../shipping_receiving/removal_strategies`" msgstr "" @@ -5944,18 +5943,6 @@ msgstr "" msgid "When the expiation date passes for a lot/serial number for this product, a notification is sent to the user in this field." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/expiration_dates.rst:261 -msgid "Once the expiration date is due, expiration alerts are created on the form view of the lot/serial number of the product." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/expiration_dates.rst:264 -msgid "To customize these alerts, turn on :ref:`developer mode `, go to :menuselection:`Settings app --> Technical --> Activity Types`, and select the :guilabel:`Alert Date Reached` alert." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/expiration_dates.rst:268 -msgid "The :guilabel:`Default User` assigned will be notified once the expiration date is reached. If no default user is configured, the activity will be assigned to the :guilabel:`Responsible` user selected on the product's :guilabel:`Inventory` tab." -msgstr "" - #: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:3 msgid "Lot numbers" msgstr "" @@ -5988,16 +5975,16 @@ msgstr "" msgid ":ref:`Print GS1 barcodes for lots and serial numbers `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:42 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:41 msgid "Track by lots" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:44 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:43 msgid "Once the :guilabel:`Lots & Serial Numbers` feature is activated, configure individual products to be tracked using lots. To do this, go to :menuselection:`Inventory app --> Products --> Products`, and choose a product to configure." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:48 -msgid "On the product form, go to the :guilabel:`Inventory` tab. In the :guilabel:`Traceability` section, select the :guilabel:`By Lots` option in the :guilabel:`Tracking` field. Now, new or existing lot numbers can be assigned to newly-received or manufactured batches of this product." +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:47 +msgid "On the product form, click into the :guilabel:`General Information` tab. In the :guilabel:`Track Inventory` field, tick the checkbox, then select :guilabel:`By Lots` from the drop-down menu. Now, new or existing lot numbers can be assigned to newly-received or manufactured batches of this product." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:53 @@ -6013,31 +6000,31 @@ msgstr "" msgid "Enabled tracking by lots feature on product form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:65 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:64 msgid "Assign lots for shipping and receiving" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:67 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:66 msgid "Assign new lot numbers to :ref:`incoming goods ` on the receipt form. When shipping :ref:`outgoing goods `, select products with specific lot numbers on the delivery order form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:75 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:74 msgid "On receipts" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:77 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:76 msgid "Assigning new or existing lot numbers to incoming goods can be done directly on receipts." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:79 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:78 msgid "To begin, go to the :menuselection:`Purchase` app to `create and confirm `_ a |PO| for products tracked by lot numbers. Then, click the :guilabel:`Receipt` smart button that appears at the top of the page to navigate to the warehouse receipt form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:85 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:84 msgid "Alternatively, navigate to an existing receipt by going to the :menuselection:`Inventory` app, clicking the :guilabel:`Receipts` Kanban card, and choosing the desired receipt." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:89 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:88 msgid "Clicking :guilabel:`Validate` before assigning a lot number triggers an error, indicating that a lot number **must** be assigned before validating the receipt." msgstr "" @@ -6045,7 +6032,7 @@ msgstr "" msgid "Add lot/serial number user error popup." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:96 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:94 msgid "On the receipt form, on the product line in the :guilabel:`Operations` tab, select the |list| icon to the right of the product that is tracked by lot numbers." msgstr "" @@ -6053,23 +6040,23 @@ msgstr "" msgid "Show the bulleted list icon on the product line." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:103 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:100 msgid "Doing so opens the :guilabel:`Open: Stock move` pop-up window, where the :guilabel:`Lot/Serial Number` and :guilabel:`Quantity` are assigned." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:106 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:103 msgid "The two ways to assign lot numbers: **manually** and **importing**." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:109 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:106 msgid "Manual assignment" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:111 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:108 msgid "To manually assign lot numbers, click :guilabel:`Add a line`. Input the :guilabel:`Lot/Serial Number`, :guilabel:`Store To` location for the lot, :guilabel:`Quantity`, and :guilabel:`Destination Package`, if any." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:116 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:113 msgid "To assign multiple lot numbers, or store to multiple locations, click :guilabel:`Add a line`, and type a new :guilabel:`Lot/Serial Number` for additional quantities. Repeat until the total in the :guilabel:`Quantity` column matches the :guilabel:`Demand` at the top." msgstr "" @@ -6077,81 +6064,73 @@ msgstr "" msgid "Assign lot number detailed operations popup." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:125 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:121 msgid "Import lots" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:127 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:123 msgid "In the :guilabel:`Open: Stock move` pop-up window, click :guilabel:`Import Serials/Lots`, then paste the bulk lot numbers, in the :guilabel:`Lots/Serial numbers` field." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:134 -msgid "List of lot numbers copied on excel spreadsheet." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:134 -msgid "List of lot numbers copied on *Google* spreadsheets." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:140 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:129 msgid "Lot numbers copied to the lot number line." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:140 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:129 msgid "Lot numbers pasted to the \"Lots/Serial numbers\" field, in the **Import Lots** pop-up window." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:142 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:131 msgid "Tick the :guilabel:`Keep current lines` checkbox to generate *additional* lot numbers in the :guilabel:`Open: Stock move` pop-up window. To replace the lot numbers in the list, leave the :guilabel:`Keep current lines` option unticked." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:146 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:135 #: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/serial_numbers.rst:253 msgid "Finally, click :guilabel:`Generate`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:148 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:137 msgid "Once all product quantities have been assigned a lot number, click :guilabel:`Save` to close the pop-up window. Then, click :guilabel:`Validate` on the receipt form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:152 -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:200 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:141 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:188 msgid ":ref:`Traceability report for lot numbers `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:157 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:146 msgid "On delivery orders" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:159 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:148 msgid "Odoo makes it possible to specify which lot numbers for a product are chosen for outgoing shipment on a delivery order form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:162 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:151 msgid "To begin, create or select an existing quotation from the :menuselection:`Sales` app. After confirming the |SO|, the :guilabel:`Delivery` smart button becomes available. Click the :guilabel:`Delivery` smart button to view the warehouse receipt form for that specific |SO|." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:167 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:156 msgid "Alternatively, navigate to delivery orders by going to the :menuselection:`Inventory` app, and clicking the :guilabel:`Delivery Orders` kanban card." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:170 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:159 msgid "Clicking the :guilabel:`Delivery` smart button opens the the delivery order form, where lot numbers are picked for delivery. In the :guilabel:`Operations` tab, click the |list| icon to the right of the product that is tracked by lot numbers. Clicking that icon reveals a :guilabel:`Open: Stock move` pop-up window." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:175 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:164 msgid "In the pop-up window, the chosen lot number and its storage location is displayed in the :guilabel:`Pick From` column, with the with the full :guilabel:`Quantity` taken from that specific lot (if there is enough stock in that particular lot)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:179 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:168 msgid "If there is insufficient stock in that lot, or if partial quantities of the :guilabel:`Demand` should be taken from multiple lots, change the :guilabel:`Quantity` directly." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:183 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:172 msgid "The lot automatically chosen for delivery orders varies, depending on the selected removal strategy (:abbr:`FIFO (First In, First Out)`, :abbr:`LIFO (Last In, First Out)`, or :abbr:`FEFO (First Expiry, First Out)`). It also depends on the ordered quantity, and whether the lot's on-hand quantity is enough to fulfill the order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:191 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:180 msgid "Repeat the above steps to select enough lots to fulfill the :guilabel:`Demand`, and click :guilabel:`Save` to close the pop-up window. Lastly, click the :guilabel:`Validate` button on the |DO| to deliver the products." msgstr "" @@ -6159,59 +6138,59 @@ msgstr "" msgid "Popup for source lot number on sales order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:203 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:191 msgid "Lot management" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:205 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:193 msgid "Manage and view existing lot numbers for products in the :guilabel:`Lot/Serial Numbers` dashboard by going to :menuselection:`Inventory app --> Products --> Lots/Serial Numbers`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:208 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:196 msgid "By default, lot numbers are grouped by product, and selecting the drop-down menu for each product displays the existing lot numbers. Select a lot number to :ref:`modify or add details ` linked to the lot. Lot numbers can also be :ref:`created ` from this page, by clicking the :guilabel:`New` button." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:218 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:205 msgid "Show the \"Lot/Serial Number\" dashboard." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:218 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:205 msgid "Display lot numbers, grouped by products, on the **Lot/Serial Number** dashboard." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:223 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:210 msgid "Modify lot" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:225 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:212 msgid "Clicking a lot from the :guilabel:`Lot/Serial Number` dashboard reveals a separate page where additional information can be provided about the lot." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:229 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:216 msgid "Odoo automatically generates a new :guilabel:`Lot/Serial Number` to follow the most recent number. However, it can be edited, by clicking the line under the :guilabel:`Lot/Serial Number` field, and changing the generated number to any desired one." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:233 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:220 msgid "On the lot number form, the following fields can be modified:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:235 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:222 msgid ":guilabel:`Lot/Serial Number`: change the lot number linked to the :guilabel:`Product`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:236 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:223 msgid ":guilabel:`Internal Reference`: records an alternative lot/serial number used within the warehouse that differs from the one used by the supplier manufacturer." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:238 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:225 msgid ":guilabel:`Company`: specify the company where the lot number is available." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:239 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:226 msgid ":guilabel:`Description`: add extra details about the lot or serial number in this text field." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:242 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:229 msgid "On existing lots, the :guilabel:`Product` and :guilabel:`On Hand Quantity` fields **cannot** be modified, as the lot numbers are linked with existing stock moves." msgstr "" @@ -6219,31 +6198,31 @@ msgstr "" msgid "Show the lot number form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:250 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:236 msgid ":doc:`Set expiration dates for lots `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:253 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:239 msgid "Add property" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:255 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:241 msgid "To add custom fields to lots for enhanced traceability, there are two methods of adding properties on a lot number form:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:258 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:244 msgid "Click the :icon:`fa-cog` :guilabel:`(cog)` icon at the top-left of the page, then select :icon:`fa-cogs` :guilabel:`Add Properties` from the drop-down menu." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:260 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:246 msgid "Click the :icon:`fa-plus` :guilabel:`Add a Property` button, located below the existing fields." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:262 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:248 msgid "Name and :doc:`configure the new field `. Once finished, enter the property value in the new field." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:266 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:252 msgid "The new property, `Wood type`, is added. The value is recorded as `Cherry wood`." msgstr "" @@ -6251,31 +6230,31 @@ msgstr "" msgid "Show the \"Add Properties\" button on a lot number form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:273 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:258 msgid ":doc:`Configuring custom properties `" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:278 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:263 msgid "Reserve lot number for a product" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:280 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:265 msgid "To create a lot number for a product, begin by going to :menuselection:`Inventory app --> Products --> Lot/Serial Numbers`, and click :guilabel:`New`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:284 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:269 msgid "Creating a lot number reserves it for a product but **does not** assign it. To assign lot numbers, refer to the section on :ref:`assigning lot numbers on receipts `." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:289 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:274 msgid "While Odoo automatically generates a new :guilabel:`Lot/Serial Number` to follow the most recent number, it can be edited and changed to any desired number, by clicking the line under the :guilabel:`Lot/Serial Number` field on the lot form, and changing the generated number." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:293 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:278 msgid "Once the new :guilabel:`Lot/Serial Number` is generated, click the blank field next to :guilabel:`Product` to reveal a drop-down menu. From this menu, select the product to which this new number will be assigned." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:298 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:283 msgid "The lot number, `000001`, is created for the product, `Drawer Black`." msgstr "" @@ -6283,31 +6262,23 @@ msgstr "" msgid "New lot number creation form with assigned product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:304 -msgid "After a new lot number has been created, saved, and assigned to the desired product, the lot number is saved as an existing lot number linked to the product, and can be selected when :ref:`assigning lot numbers to products on a receipt `, or when making an inventory adjustment." +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:288 +msgid "After a new lot number has been created, saved, and assigned to the desired product, the lot number is saved as an existing lot number linked to the product, and can be selected when :ref:`assigning lot numbers to products on a receipt `." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:310 -msgid "After creating the lot number, `000001` appears as an option for `Drawer Black` when assigning lot numbers on the :guilabel:`Inventory Adjustment` page." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:0 -msgid "Show how to assign lot numbers on the Inventory Adjustment page." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:318 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:293 msgid "Manage lots for different operations types" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:320 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:295 msgid "By default, new lots can only be created when receiving products, and existing lot numbers cannot be used. For sales orders, only existing lot numbers can be utilized, and new ones cannot be created on the delivery order." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:324 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:299 msgid "To change the ability to use new (or existing) lot numbers on any operation type, go to the :menuselection:`Inventory app --> Configuration --> Operations Types`, and select the desired operation type." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:328 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:303 msgid "On the operation type form, under the :guilabel:`Lots/Serial Numbers` section, tick the :guilabel:`Create New` checkbox to enable new lot numbers to be created during this operation type. Choose :guilabel:`Use Existing ones` if only existing lot numbers can be selected." msgstr "" @@ -6315,40 +6286,40 @@ msgstr "" msgid "Enabled traceability setting on operations type form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:337 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:311 msgid "For inter-warehouse transfers involving products tracked by lots, it can be useful to enable the :guilabel:`Use Existing Lots/Serial Numbers` option for warehouse receipts." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:343 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:317 msgid "Display lots on delivery slips" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:345 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:319 msgid "When selling products tracked with lots, it is possible to include the lot numbers on the delivery slips sent to customers. This can be helpful to customers in cases where lot numbers are needed, such as filing an RMA or repair request, or registering the product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:349 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:323 msgid "To include lot numbers on delivery slips, open the :menuselection:`Inventory` app, and navigate to :menuselection:`Configuration --> Settings`. Scroll down to the :guilabel:`Traceability` section, tick the :guilabel:`Display Lots & Serial Numbers on Delivery Slips` checkbox, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:354 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:328 msgid "After enabling the :guilabel:`Display Lots & Serial Numbers on Delivery Slips` setting, lot numbers are listed on delivery slips for products tracked by lots, once the delivery order is validated." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:357 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:331 msgid "To view lot numbers on delivery orders and delivery slips, navigate to the :menuselection:`Inventory` app, click on :guilabel:`Delivery Orders`, and select an order containing a product tracked using lots." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:361 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:335 msgid "To view the lot numbers of products included in the order, make sure the :guilabel:`Operations` tab is selected, then click the :icon:`oi-settings-adjust` :guilabel:`(adjust)` button to the right of the tab. Ensure that the :guilabel:`Serial Numbers` checkbox is ticked, which causes a :guilabel:`Serial Numbers` column to appear. The lot number(s) for each product included in the order are displayed in this column." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:367 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:341 #: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/serial_numbers.rst:326 msgid "When the order is ready to be processed, click :guilabel:`Validate` to confirm the delivery and add product information to the delivery slip." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:370 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:344 msgid "At the top of the order's form, click the :icon:`fa-cog` :guilabel:`(Actions)` button, and select :guilabel:`Print --> Delivery Slip`. The delivery slip is then downloaded. Open the delivery slip using the device's browser or file manager. Lot numbers are listed next to their respective products in the :guilabel:`Lot/Serial Number` column." msgstr "" @@ -6357,23 +6328,23 @@ msgstr "" msgid "The order lines section of a delivery slip, showing a product and its serial number." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:381 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:355 msgid "Manufacturers and companies can refer to traceability reports to see the entire lifecycle of a product: where it came from, when it arrived, where it was stored, who it went to (and when)." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:384 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:358 msgid "To see the full traceability of a product, or group by lots, go to the :menuselection:`Inventory app --> Products --> Lots/Serial Numbers`. Doing so reveals the :menuselection:`Lots/Serial Numbers` dashboard." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:388 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:362 msgid "From here, products with lot numbers assigned to them will be listed by default, and can be expanded to show the lot numbers those products have assigned to them." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:391 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:365 msgid "To group by lots, begin by removing any filters in the :guilabel:`Search...` bar. Then, click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon to open a drop-down menu of :guilabel:`Filters`, :guilabel:`Group By` options, and :guilabel:`Favorites`. Under the :guilabel:`Group By` section, click the :guilabel:`Add Custom Group` option, and select :guilabel:`Lot/Serial Number` from the drop-down menu." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:397 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:371 msgid "Doing so reorganizes all the records on the page to display all existing lots and serial numbers, and can be expanded to show all quantities of products with that assigned number." msgstr "" @@ -6381,11 +6352,11 @@ msgstr "" msgid "Lots and serial numbers traceability report." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:405 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:378 msgid "Traceability report" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:407 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:380 msgid "To view a full stock moves report for a lot number, select the lot number line from the :guilabel:`Lots/Serial Number` dashboard. On the lot number form, click the :guilabel:`Traceability` smart button." msgstr "" @@ -6393,7 +6364,7 @@ msgstr "" msgid "Show the Traceability Report for a lot, that displays the stock moves." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:416 +#: ../../content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots.rst:388 msgid ":doc:`../product_tracking`" msgstr "" @@ -7017,69 +6988,17 @@ msgid "Delivery" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations.rst:113 -msgid "Tailor the outgoing shipment process to fit the business needs. Picking methods and removal strategies control how products are reserved for orders, while cross-docking and dropshipping determine how they move. Configuring these options in Odoo ensures visibility into product movement and confirms that items reach customers efficiently." +msgid "Tailor the outgoing shipment process to fit the business needs. Picking methods and removal strategies control how products are reserved for orders, while dropshipping determines how they move. Configuring these options in Odoo ensures visibility into product movement and confirms that items reach customers efficiently." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations.rst:141 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations.rst:136 msgid "Customization" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations.rst:143 +#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations.rst:138 msgid "Odoo's flexible framework enables businesses to tailor workflows to match specific operational needs." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:3 -msgid "Organize a cross-dock in a warehouse" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:5 -msgid "Cross-docking is the process of sending products that are received directly to the customers, without making them enter the stock. The trucks are simply unloaded in a *Cross-Dock* area in order to reorganize products and load another truck." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:13 -msgid "For more information on how to organize your warehouse, read our blog: `What is cross-docking and is it for me? `_" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:20 -msgid "In the *Inventory* app, open :menuselection:`Configuration --> Settings` and activate the *Multi-Step Routes*." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:27 -msgid "Doing so will also enable the *Storage Locations* feature." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:29 -msgid "Now, both *Incoming* and *Outgoing* shipments should be configured to work with 2 steps. To adapt the configuration, go to :menuselection:`Inventory --> Configuration --> Warehouses` and edit your warehouse." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:36 -msgid "This modification will lead to the creation of a *Cross-Docking* route that can be found in :menuselection:`Inventory --> Configuration --> Routes`." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:43 -msgid "Configure products with Cross-Dock Route" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:45 -msgid "Create the product that uses the *Cross-Dock Route* and then, in the inventory tab, select the routes *Buy* and *Cross-Dock*. Now, in the purchase tab, specify the vendor to who you buy the product and set a price for it." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:55 -msgid "Once done, create a sale order for the product and confirm it. Odoo will automatically create two transfers which will be linked to the sale order. The first one is the transfer from the *Input Location* to the *Output Location*, corresponding to the move of the product in the *Cross-Dock* area. The second one is the delivery order from the *Output Location* to your *Customer Location. Both are in state *Waiting Another Operation* because we still need to order the product to our supplier." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:68 -msgid "Now, go to the *Purchase* app. There, you will find the purchase order that has been automatically triggered by the system. Validate it and receive the products in the *Input Location*." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:77 -msgid "When the products have been received from the supplier, you can go back to your initial sale order and validate the internal transfer from *Input* to *Output*." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/cross_dock.rst:86 -msgid "The delivery order is now ready to be processed and can be validated too." -msgstr "" - #: ../../content/applications/inventory_and_mrp/inventory/shipping_receiving/daily_operations/delivery_three_steps.rst:3 msgid "Three-step delivery" msgstr "" @@ -16190,7 +16109,7 @@ msgid ":guilabel:`Short Name` (*required field*): the abbreviated code for the w msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.rst:26 -msgid "The :guilabel:`Short Name` appears on warehouse documents, so it is recommended to use an memorable one, like \"WH[first letters of location]\" (e.g. `WHA`, `WHB`, etc.)." +msgid "The :guilabel:`Short Name` appears on warehouse documents, so it is recommended to use a memorable one, like \"WH[first letters of location]\" (e.g. `WHA`, `WHB`, etc.)." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses.rst:29 @@ -16257,88 +16176,88 @@ msgstr "" msgid "Each replenishment mechanism triggers the creation or suggestion of a purchase order (PO) or manufacturing order (MO), with the best choice depending on the business process." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:42 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:48 msgid "Replenishment strategies" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:45 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:51 msgid "Replenishment report and reordering rules" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:47 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:53 msgid "Reordering rules are rules that can be set up to maintain a minimum stock level. They are often configured to support manufacturing or sales requirements. When a product's stock falls at or below the minimum level, Odoo generates (or suggests) a purchase or manufacturing order to replenish stock to the maximum level." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:52 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:58 msgid "When using automatic reordering rules, Odoo generates a new order. When using manual, Odoo suggests orders on the replenishment report. For detailed guidance, refer to the :doc:`replenishment report ` and :doc:`reordering rules `." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:56 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:62 msgid "Key points include:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:58 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:64 msgid ":ref:`Automatic reordering rules `: Automatically create |POs| or |MOs| when stock falls below the minimum level. While this is convenient, it is less flexible." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:61 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:67 msgid ":ref:`Manual reordering rules `: Generate suggestions in the replenishment report for user review, allowing adjustments and batch orders while meeting deadlines." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:64 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:70 msgid ":ref:`Just-in-time logic `: A strategy to replenish only what is needed to prevent overstocking." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:68 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:74 msgid ":doc:`replenishment/reordering_rules`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:69 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:75 msgid ":doc:`replenishment/report`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:74 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:80 msgid "Make to order" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:76 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:82 msgid "An |MTO| strategy means that procurement or production is triggered only after a sales order has been confirmed. This strategy is recommended when products are customizable, demand is unpredictable, there is limited storage capacity, and when products are high in value and low in demand. In such cases, it does not make sense to keep on-hand inventory." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:81 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:87 msgid "Unlike products replenished using reordering rules, Odoo automatically links the sales order to the |PO| or |MO| generated by the |MTO| route." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:84 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:90 msgid "Another difference between reordering rules and |MTO| is, with |MTO|, Odoo generates a draft |PO| or |MO| immediately after the |SO| is confirmed. With reordering rules, Odoo generates a draft |PO| or |MO| when the product's forecasted stock falls below the set minimum quantity." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:88 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:94 msgid "In addition, Odoo automatically adds quantities to the |PO| or |MO| as the forecast changes, so long as the |PO| or |MO| is not confirmed." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:91 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:97 msgid "The |MTO| route is the best replenishment strategy for products that are customized, and/or for products that have no stock kept on-hand." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:95 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:101 msgid ":doc:`replenishment/mto`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:98 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:104 #: ../../content/applications/inventory_and_mrp/manufacturing/workflows/use_mps.rst:3 msgid "Master production schedule" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:100 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:106 msgid "The :abbr:`MPS (Master Production Schedule)` is a dashboard where products and their forecasted quantities are entered. Based on confirmed manufacturing and purchase orders, the dashboard recommends amounts to order or produce." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:104 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:110 msgid "This a useful **manual** tool for keeping track of quantities. The :abbr:`MPS (Master Production Schedule)` **should absolutely not** be used alongside reordering rules, as the automated workflow disrupts its manual replenishment method." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:109 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst:115 msgid ":doc:`../../manufacturing/workflows/use_mps`" msgstr "" @@ -16852,30 +16771,50 @@ msgid "Replenish on order (MTO)" msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:13 -msgid "*Replenish on order*, also known as *MTO* (make to order), is a replenishment strategy that creates a draft order for a product every time it is required to fulfill a sales order (SO), or when it is needed as a component in a manufacturing order (MO)." +msgid "*Replenish on order*, also known as *MTO* (make to order), is a replenishment strategy that creates a draft order every time a product is needed to fulfill a sales order (SO) or as a component in a manufacturing order (MO)." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:17 -msgid "For products that are purchased from a vendor, a request for quotation (RFQ) is created to replenish the product, while an |MO| is created for products that are manufactured. The creation of an |RFQ| or |MO| occurs every time an |SO| or |MO| that requires the product is confirmed, regardless of the current stock level of the product being ordered." +msgid "For :doc:`purchased products <../../../purchase/manage_deals/rfq>`, Odoo creates a |RFQ|" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:23 -msgid "In order to use the |MTO| route, the :guilabel:`Multi-Step Routes` feature must be enabled. To do so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`, and tick the checkbox next to :guilabel:`Multi-Step Routes`, under the :guilabel:`Warehouse` heading." +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:18 +msgid "For :doc:`manufactured products <../../../manufacturing/basic_setup/configure_manufacturing_product>`, it creates a |MO|" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:21 +msgid "If stock is available, no |RFQ| or |MO| is generated and the sale proceeds normally. Otherwise, the |RFQ| or |MO| is generated and directly linked to the originating |SO| through a smart button." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:24 +msgid "This approach offers clear traceability, since each |RFQ| or |MO| is tied back to its demand." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:27 -msgid "Finally, click :guilabel:`Save` to save the change." +msgid "The |RFQ| or |MO| generated by |MTO| is designed to fulfill the originating |SO|. These documents should normally be confirmed or adjusted rather than cancelled. If the demand changes, update the document instead of cancelling it." msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:32 +msgid "If an |RFQ| or |MO| is cancelled, Odoo does not automatically generate a replacement. A new replenishment document must be created manually, but it **cannot** be linked back to the original |SO| through the smart button." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:36 +msgid "Finally, click :guilabel:`Save` to save the change." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:41 msgid "Unarchive MTO route" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:34 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:43 +msgid "In order to use the |MTO| route, the :guilabel:`Multi-Step Routes` feature must be enabled. To do so, navigate to :menuselection:`Inventory app --> Configuration --> Settings`, and tick the checkbox next to :guilabel:`Multi-Step Routes`, under the :guilabel:`Warehouse` heading." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:47 msgid "By default, Odoo sets the |MTO| route as *archived*. This is because |MTO| is a somewhat niche workflow that is only used by certain companies. However, it is easy to unarchive the route in just a few simple steps." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:38 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:51 msgid "To do so, begin by navigating to :menuselection:`Inventory app --> Configuration --> Routes`. On the :guilabel:`Routes` page, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon on the right side of the search bar, and click the :guilabel:`Archived` filter to enable it." msgstr "" @@ -16883,7 +16822,7 @@ msgstr "" msgid "The archived filter on the Routes page." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:46 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:59 msgid "After enabling the :guilabel:`Archived` filter, the :guilabel:`Routes` page shows all routes which are currently archived. Tick the checkbox next to :guilabel:`Replenish on Order (MTO)`, then click the :icon:`fa-cog` :guilabel:`Actions` button to reveal a drop-down menu. From the drop-down menu, select :guilabel:`Unarchive`." msgstr "" @@ -16891,23 +16830,23 @@ msgstr "" msgid "The unarchive action on the Routes page." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:55 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:68 msgid "Finally, remove the :guilabel:`Archived` filter from the search bar. The :guilabel:`Routes` page now shows all unarchived routes, including :guilabel:`Replenish on Order (MTO)`, which is selectable on the *Inventory* tab of each product page." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:60 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:73 msgid "Configure product for MTO" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:62 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:75 msgid "With the |MTO| route unarchived, products can now be properly configured to use replenish on order. To do so, begin by going to :menuselection:`Inventory app --> Products --> Products`, then select an existing product, or click :guilabel:`New` to configure a new one." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:66 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:79 msgid "On the product page, select the :guilabel:`Inventory` tab and enable the :guilabel:`Replenish on Order (MTO)` route in the :guilabel:`Routes` section, along with the :guilabel:`Buy` or :guilabel:`Manufacture` route." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:71 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:84 msgid "The :guilabel:`Replenish on Order (MTO)` route **does not** work unless another route is selected as well. This is because Odoo needs to know how to replenish the product when an order is placed for it (buy or manufacture it)." msgstr "" @@ -16915,79 +16854,87 @@ msgstr "" msgid "Select the MTO route and a second route on the Inventory tab." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:79 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:92 msgid "If the product is purchased from a vendor to fulfill |SOs|, enable the :guilabel:`Can be Purchased` checkbox under the product name. Doing so makes the :guilabel:`Purchase` tab appear alongside the other tabs below." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:83 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:96 msgid "Click the :guilabel:`Purchase` tab and specify a :guilabel:`Vendor` and the :guilabel:`Price` they sell the product for." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:87 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:100 msgid "Specifying a vendor is essential for this workflow, because Odoo cannot generate an |RFQ| without knowing who the product is purchased from." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:90 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:103 msgid "If the product is manufactured, make sure it has a bill of materials (BOM) configured for it. To do so, click the :guilabel:`Bill of Materials` smart button at the top of the screen, then click :guilabel:`New` on the :guilabel:`Bill of Materials` page to configure a new |BOM| for the product." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:95 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:108 msgid "For a full overview of |BOM| creation, see the documentation on :doc:`bills of materials <../../../manufacturing/basic_setup/bill_configuration>`." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:99 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:112 msgid "Replenish using MTO" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:101 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:114 msgid "After configuring a product to use the |MTO| route, a replenishment order is created for it every time an |SO| or |MO| including the product is confirmed. The type of order created depends on the second route selected in addition to |MTO|." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:105 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:118 msgid "For example, if *Buy* was the second route selected, then a |PO| is created upon confirmation of an |SO|." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:109 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:122 msgid "When the |MTO| route is enabled for a product, a replenishment order is always created upon confirmation of an |SO| or |MO|. This is the case, even if there is enough stock of the product on-hand to fulfill the |SO|, without buying or manufacturing additional units of it." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:113 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:126 msgid "While the |MTO| route can be used in unison with the *Buy* or *Manufacture* routes, the *Buy* route is used as the example for this workflow. Begin by navigating to the :menuselection:`Sales` app, then click :guilabel:`New`, which opens a blank quotation form." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:117 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:130 msgid "On the blank quotation form, add a :guilabel:`Customer`. Then, click :guilabel:`Add a product` under the :guilabel:`Order Lines` tab, and enter a product configured to use the *MTO* and *Buy* routes. Click :guilabel:`Confirm`, and the quotation is turned into an |SO|." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:121 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:134 msgid "A :guilabel:`Purchase` smart button now appears at the top of the page. Clicking it opens the |RFQ| associated with the |SO|." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:124 -msgid "Click :guilabel:`Confirm Order` to confirm the |RFQ|, and turn it into a |PO|. A purple :guilabel:`Receive Products` button now appears above the |PO|. Once the products are received, click :guilabel:`Receive Products` to open the receipt order, and click :guilabel:`Validate` to enter the products into inventory." +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:137 +msgid "After receiving approval from the vendor that they can meet the demand by the :guilabel:`Expected Arrival` date, click :guilabel:`Confirm Order` to turn it into a |PO|. A purple :guilabel:`Receive Products` button now appears above the |PO|. Once the products are received, click :guilabel:`Receive Products` to open the receipt order, and click :guilabel:`Validate` to enter the products into inventory." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:129 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:143 msgid "Return to the |SO| by clicking the :guilabel:`SO` breadcrumb, or by navigating to :menuselection:`Sales app --> Orders --> Orders`, and selecting the|SO|." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:132 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:146 msgid "Finally, click the :guilabel:`Delivery` smart button at the top of the order to open the delivery order. Once the products have been shipped to the customer, click :guilabel:`Validate` to confirm the delivery." msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:137 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:151 +msgid "Cancelling an SO with an MTO product" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:153 +msgid "When a |SO| is cancelled, and it had created an |RFQ| or |MO|, the related delivery order is cancelled automatically. However, the |RFQ| or |MO| themselves are **not** cancelled. Instead, a warning appears in their chatter noting the |SO| cancellation. These documents remain active, so the user can either cancel them manually or repurpose the replenishment for another order." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:159 msgid "For information on workflows that include the |MTO| route, see the following documentation:" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:139 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:161 msgid ":doc:`resupply_warehouses`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:140 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:162 msgid ":doc:`../../../manufacturing/subcontracting/subcontracting_basic`" msgstr "" -#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:141 +#: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/mto.rst:163 msgid ":doc:`../../../manufacturing/advanced_configuration/sub_assemblies`" msgstr "" @@ -18774,6 +18721,7 @@ msgstr "" #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/moves_history.rst:49 #: ../../content/applications/inventory_and_mrp/inventory/warehouses_storage/reporting/stock.rst:70 +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:38 msgid "Filters" msgstr "" @@ -22176,6 +22124,102 @@ msgstr "" msgid "The assignment labels generated by clicking Print Labels or Print Label." msgstr "" +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:3 +msgid "Delays" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:11 +msgid "Odoo's *Manufacturing* app displays *delays* in manufacturing orders through the :guilabel:`Delayed Productions` filter. If the |MO|'s end date exceeds its deadline, the deadline is highlighted in red to draw attention to the delay." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:-1 +msgid "The delayed production filter in Odoo." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:19 +msgid "Deadline calculation" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:21 +msgid "The |MO| deadline depends on how the |MO| was created, and is calculated as follows:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:23 +msgid "**Make To Order**: the |MO| deadline is the *Sales Order Delivery Date*." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:24 +msgid "**Replenishment**: the |MO| deadline is *today + Manufacturing Lead Time*." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:25 +msgid "**Manually created MO**: the deadline field remains empty." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:28 +msgid "The |MO| *deadline* is not the same as the |MO| *end date*." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:30 +msgid "The end date is computed as:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:32 +msgid "\\text{End date} =\n" +" \\text{Scheduled start date}\n" +" +\\text{Total duration of all operations}\n" +"\n" +"" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:40 +msgid "Several additional filters are available to help track delays:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:42 +msgid ":guilabel:`Delayed Productions`: the |MO|'s *scheduled start date* is later than the deadline." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:43 +msgid ":guilabel:`Late`: the |MO|'s *scheduled end date* exceeds the deadline, highlighted in red." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:44 +msgid ":guilabel:`Late Availability`: one or more required components are not available before the deadline. For example, a confirmed purchase order or manufacturing order for components is scheduled to end *after* the |MO| deadline." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:47 +msgid ":guilabel:`Components Available`: all components are available to begin production." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:50 +msgid "Use case" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:52 +msgid "Consider an |MO| with a deadline of **September 17th**:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:54 +msgid "If production on the |MO| starts after September 17th, it appears in the :guilabel:`Delayed Productions` filter." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:56 +msgid "If required components are scheduled to arrive after September 17th, the |MO| appears in the :guilabel:`Late Availability` filter." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:58 +msgid "If the |MO| has a scheduled end date after September 17th, it appears in the :guilabel:`Late` filter." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:-1 +msgid "An MO with the deadline emphasized." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst:64 +msgid "By combining these indicators, planners can quickly identify where production is at risk of missing delivery commitments." +msgstr "" + #: ../../content/applications/inventory_and_mrp/manufacturing/reporting/oee.rst:3 msgid "Overall equipment effectiveness" msgstr "" @@ -24720,14 +24764,14 @@ msgstr "" #: ../../content/applications/inventory_and_mrp/manufacturing/workflows/manufacturing_backorders.rst:82 #: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:121 #: ../../content/applications/inventory_and_mrp/quality/quality_check_types/picture_check.rst:133 -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:129 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:131 msgid "On the |MO|, select the :guilabel:`Work Orders` tab, and then click the :guilabel:`Open Work Order (external link icon)` button on the line of the work order to be processed. On the resulting :guilabel:`Work Orders` pop-up window, click the :guilabel:`Open Shop Floor` button to open the *Shop Floor* module." msgstr "" #: ../../content/applications/inventory_and_mrp/manufacturing/workflows/manufacturing_backorders.rst:87 #: ../../content/applications/inventory_and_mrp/quality/quality_check_types/instructions_check.rst:80 #: ../../content/applications/inventory_and_mrp/quality/quality_check_types/pass_fail_check.rst:126 -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:138 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:140 msgid "When accessed from a specific work order, the *Shop Floor* module opens to the page for the work center where the order is configured to be processed, and isolates the work order's card so that no other cards are shown." msgstr "" @@ -26769,6 +26813,328 @@ msgstr "" msgid "To save this report as a *favorite*, see :ref:`search/favorites`." msgstr "" +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:3 +msgid "Suggest quantities based on historical demand" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:7 +msgid "For a straightforward push-based replenishment strategy, the *Suggest* feature recommends quantities to order on requests for quotations (RFQs) based on historical demand." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:11 +msgid "Key parameters" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:13 +msgid "*Replenish for*: future coverage window (days)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:14 +msgid "*Based on*: period that defines historical demand: last 7 days, 30 days, 3 months, 12 months, or the same month or quarter the previous year." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:16 +msgid "*Factor*: growth or decline factor (default 100%). After obtaining the total from the period, multiply the historical demand by this percentage to determine how much of the demand should be replenished. (e.g., input `120%` if sales are projected to grow 20% more than the previous period)" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:21 +msgid "Demand calculation" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:23 +msgid "To find the *average daily demand*, Odoo sums all :ref:`validated deliveries `, :ref:`components consumed in manufacturing orders ` (MOs), or used to :doc:`resupply subcontractors <../../manufacturing/subcontracting/subcontracting_resupply>` in the *Based on* period and divides that total by the number of days in the *Based on* period. Lastly, that value is multiplied by the *Factor* to determine volume." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:31 +msgid "In a :ref:`multi-warehouse ` setup, an *In* field appears. Choose a specific warehouse or leave blank to use all warehouses to calculate demand accordingly." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:35 +msgid "Average~Daily~Demand = \\frac{Delivered~or~Consumed~Items}{Based~on~Days} \\times Factor" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:41 +msgid "Recommended quantity" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:43 +msgid "To find the suggested quantity, Odoo multiplies the average by *Replenish for* days to get the recommended quantity." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:46 +msgid "Recommended~Quantity = Average~Daily~Demand \\times Replenish~for~Days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:52 +msgid "In :ref:`example 1 `, Odoo recommends `19` units to *Replenish for* `14` days *Based on* the past month's `40` delivered units." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:56 +msgid "Prerequisite setup" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:58 +msgid "**Purchase** and **Inventory** apps must be :ref:`installed `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:59 +msgid ":ref:`Validate at least one delivery order ` for each product." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:61 +msgid "Ensures there is a past delivery record so the system can calculate average daily demand." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:63 +msgid ":ref:`Add a vendor to the vendor pricelist ` with a purchase price for each product." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:66 +msgid "The *Suggest* feature is vendor-specific, so each product needs a matching vendor for accurate purchase quantity and price calculations." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:69 +msgid "Set the *Product Type* to *Goods* and ensure the product is :ref:`Tracked by quantity `." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:72 +msgid "Ensures the system can manage stock levels and calculate recommended replenishment quantities for tangible items." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:76 +msgid "Suggest quantities to order" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:78 +msgid "To suggest quantities based on past sales, navigate to the :menuselection:`Purchase` app. Create a :guilabel:`New` |RFQ| or select an existing one." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:81 +msgid "In the |RFQ|, set the :guilabel:`Vendor` field to the chosen supplier." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:83 +msgid "In the :guilabel:`Products` tab, click the :guilabel:`Catalog` button to view that vendor's items." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:86 +msgid "Verify that each product in the catalog is configured with the chosen vendor." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:89 +msgid "By default, products listed in the product catalog are filtered by vendor." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:91 +msgid "Remove the filter in the search bar to view all items or use the built-in :icon:`oi-group` :guilabel:`Group By` for :guilabel:`Product Category`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:94 +msgid "Inside the :guilabel:`Catalog`, click :guilabel:`Suggest` in the upper-left corner to open the :guilabel:`Suggest Quantities based on Sales & Demands` pop-up window. Complete its fields as follows:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:98 +msgid ":guilabel:`Replenish for`: Number of days intended to stock products." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:99 +msgid ":guilabel:`Based on`: There are two inputs:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:101 +msgid "Period: select the time frame that represents historical demand (e.g., :guilabel:`Last 30 Days`, :guilabel:`April 2024`)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:104 +msgid "Growth factor %: scale the demand up or down (e.g., 120% for 20% growth, 30% for 70% drop)." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:106 +msgid "The total in the lower-right corner shows the order value. Odoo multiplies the vendor's *Unit Price* by the suggested quantity." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:109 +msgid "Once the parameters are confirmed, click :guilabel:`Compute` to calculate recommended quantities, which are auto-filled in each product's quantities in the catalog. Adjust amounts if needed, then click :guilabel:`Back to Quotation` to confirm the final numbers on the |RFQ|." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:116 +msgid "Recommend at 100% growth" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:118 +msgid "A company needs to replenish orchids for 14 days, referencing the last 30 days of historical data, assuming the revenue growth is the same this month, at 100%." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:-1 +msgid "Compute suggestion for example 1." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:124 +msgid "Delivered/consumed within the period:" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:126 +msgid "20 units delivered 15 days ago in a `WH/OUT` operation." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:127 +msgid "20 units delivered 1 day ago" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:128 +msgid "Total: 40 units in the last 30 days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:131 +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:168 +msgid "Variables" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:133 +msgid "Replenish for: 14 days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:134 +msgid "Based on: 30 days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:136 +msgid "total delivered/consumed in the period: 40 units" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:138 +msgid "Factor: 100%" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:140 +msgid "Average~Daily~Demand = \\frac{40}{30} \\approx 1.33 \\text{ units/day}" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:145 +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:182 +msgid "Suggested quantity" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:147 +msgid "Suggested~Quantity = 1.33 \\times 14 \\approx 18.67 \\text{ (rounded to 19 units)}" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:154 +msgid "Suggestion to purchase 19 units." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:154 +msgid "Suggestion to purchase 19 orchids. Since the *Unit Price* is $3, :math:`$3 \\times 19 = $57`, which is the total amount displayed in the :guilabel:`Suggest Quantities based on Sales & Demands` pop-up window." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:159 +msgid "Recommend at 120% growth" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:161 +msgid "To plan for ordering roses this month, the company reviews the previous week's sales. Since a local event is coming up, the company expects 120% growth." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:-1 +msgid "Compute suggestion for example 2." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:170 +msgid "Replenish for 30 days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:171 +msgid "Based on: 7 days" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:173 +msgid "total delivered/consumed in the past week: 166 units" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:175 +msgid "Factor: 120%" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:177 +msgid "Average~Daily~Demand = \\frac{166}{7} \\times 1.20 \\approx 28.46 \\text{ units/day}" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:184 +msgid "Suggested~Quantity = 28.46 \\times 30 \\approx 853.8 \\text{ (rounded to 854 units)}" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:191 +msgid "Suggestion to purchase 854 roses." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:191 +msgid "Suggestion to purchase 854 roses. Each rose costs $4.58 with the chosen vendor, so :math:`$4.58 \\times 854 = $3911.32`." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:197 +msgid "Recommend from specific warehouse" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:199 +msgid "When there are multiple warehouses in a company, analyze delivered or consumed quantities in a specific warehouse to narrow the results. This is particularly helpful when multiple warehouses serve different communities, franchises, or branch stores." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:203 +msgid "To do that, ensure :doc:`multiple warehouses are set up <../../inventory/warehouses_storage/inventory_management/warehouses>` and deliveries or :abbr:`MOs (manufacturing orders)` are validated in each warehouse." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:207 +msgid "Navigate to the suggestion window by going to the :menuselection:`Purchase` app, clicking the desired |RFQ|, clicking the :guilabel:`Catalog` button in the product line, and then clicking :guilabel:`Suggest` in the upper-left corner." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:211 +msgid "With multiple warehouses set up, the :guilabel:`In` field becomes available, where the specific warehouse can be selected to analyze quantities consumed only in the specific warehouse, or leave the field blank to observe quantities across all warehouses." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:-1 +msgid "Show In field in the popup, displaying different warehouses to choose from." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:219 +msgid "Best practices" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:221 +msgid "Validate historical data" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:223 +msgid "Forecasts are based on validated delivery orders, manufacturing orders, and other inventory actions that consume quantities. For delivery orders, the *Effective Date* field is considered the date the quantities were consumed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:0 +msgid "Example of effective date field." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:230 +msgid "Maintain accurate vendor pricelists" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:232 +msgid "Review and update vendor pricelists to reflect the latest pricing and supplier information to ensure correct suggestions." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:235 +msgid "Test sales projections based on seasonality" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:237 +msgid "Reference prior months or quarters to capture seasonal fluctuations and experiment with growth and decline factors to project sales." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:240 +msgid "Review suggestions critically" +msgstr "" + +#: ../../content/applications/inventory_and_mrp/purchase/advanced/suggest.rst:242 +msgid "Although the tool provides a baseline recommendation, always apply business judgment. Market changes, promotions, and upcoming events can affect actual demand." +msgstr "" + #: ../../content/applications/inventory_and_mrp/purchase/advanced/vendor_costs_report.rst:3 msgid "Vendor costs report" msgstr "" @@ -27300,56 +27666,50 @@ msgid ":doc:`blanket_orders`" msgstr "" #: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:3 -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/manage.rst:20 -msgid "Bill control policies" +msgid "Control policies" msgstr "" #: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:10 -msgid "In Odoo's *Purchase* app, the *bill control* policy determines the quantities billed by vendors on every purchase order (PO), for either ordered or received quantities." +msgid "In Odoo's **Purchase** app, the *Control Policy* determines the quantities billed by vendors on every purchase order (PO). For example, choosing *On ordered quantities* means the bill is based on ordered items, even if they have not been received yet." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:13 -msgid "The policy selected in the *Purchase* app settings acts as the default value, and is applied to any new product created." +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:14 +msgid "The control policy is selected on the *Product* record." msgstr "" #: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:19 -msgid "To configure the *bill control* policy, navigate to :menuselection:`Purchase app --> Configuration --> Settings`, and scroll down to the :guilabel:`Invoicing` section. Under :guilabel:`Bill Control`, select either :guilabel:`Ordered quantities` or :guilabel:`Received quantities`. Then, click :guilabel:`Save`." +msgid "To configure the control policy for a product, navigate to :menuselection:`Purchse app --> Prodcuts --> Products`, then click on a product record to open it. Click to the :guilabel:`Purchase` tab. Scroll to the :guilabel:`Vendor Bills` section. Under :guilabel:`Control Policy`, tick the radio button for either :guilabel:`On ordered quantities` or :guilabel:`On recieved quantities`." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:-1 -msgid "Selected bill control policy in Purchase app settings." +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:24 +msgid ":guilabel:`On ordered quantities`: Creates a vendor bill as soon as a |PO| is confirmed. The products and quantities in the |PO| are used to generate a draft bill." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:28 -msgid ":guilabel:`Ordered quantities`: creates a vendor bill as soon as a |PO| is confirmed. The products and quantities in the |PO| are used to generate a draft bill." +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:26 +msgid ":guilabel:`On received quantities`: A bill is created only *after* part of the total order has been received. The products and quantities received are used to generate a draft bill. An error message appears if creation of a vendor bill is attempted without receiving anything." msgstr "" #: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:30 -msgid ":guilabel:`Received quantities`: a bill is created only *after* part of the total order has been received. The products and quantities received are used to generate a draft bill. An error message appears if creation of a vendor bill is attempted without receiving anything." +msgid "The default control policy for a product is determined by the :guilabel:`Product Type`:" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:0 -msgid "Bill control policy draft bill error message." +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:32 +msgid "**Services**: The default control policy is *On ordered quantities*." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:39 -msgid "If a specific product should use a different control policy than selected in the *Purchase* app settings, the :guilabel:`Bill Control` policy for that product can be changed from its product form." +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:33 +msgid "**Goods**: The default control policy is *On delivered quantities*" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:43 -msgid "To do that, navigate to :menuselection:`Purchase app --> Products --> Products`, and select a product. From the product form, click the :guilabel:`Purchase` tab. Under the :guilabel:`Vendor Bills` section, modify the selection in the :guilabel:`Control Policy` field." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:48 -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/manage.rst:51 -msgid "3-way matching" +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:36 +msgid "Pay vendor bills with 3-way matching" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:50 -msgid "The *3-way matching* feature ensures vendor bills are only paid once some (or all) of the products included in the |PO| have been received." +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:38 +msgid "The *3-way matching* feature ensures vendor bills are only paid once some, or all, of the products included in the |PO| have been received." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:53 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:41 msgid "To activate *3-way matching*, navigate to :menuselection:`Purchase app --> Configuration --> Settings`, and scroll down to the :guilabel:`Invoicing` section. Then, tick the checkbox for :guilabel:`3-way matching` to enable the feature, and click :guilabel:`Save`." msgstr "" @@ -27357,31 +27717,23 @@ msgstr "" msgid "Enabled 3-way matching feature in Purchase app settings." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:62 -msgid "The :guilabel:`3-way matching` feature **only** works with the :guilabel:`Bill Control` policy set to :guilabel:`Received quantities`." -msgstr "" - -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:66 -msgid "Pay vendor bills with 3-way matching" -msgstr "" - -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:68 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:48 msgid "When *3-way matching* is enabled, vendor bills display a :guilabel:`Should Be Paid` field under the :guilabel:`Other Info` tab. When a new vendor bill is created, the field is set to :guilabel:`Yes`, since a bill **cannot** be created until at least some of the products included in a |PO| have been received." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:73 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:53 msgid "To create a vendor bill from a |PO|, navigate to :menuselection:`Purchase app --> Orders --> Purchase Orders`. From the :guilabel:`Purchase Orders` page, select the desired |PO| from the list. Then, click :guilabel:`Create Bill`. Doing so opens a new draft :guilabel:`Vendor Bill` form, in the :guilabel:`Draft` stage. Click the :guilabel:`Other Info` tab, and locate the :guilabel:`Should Be Paid` field." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:80 -msgid "The |PO| selected from the list **must not** be billed yet, or an :guilabel:`Invalid Operation` pop-up window appears. This occurs for |POs| with a :guilabel:`Received quantities` policy, and a :guilabel:`Fully Billed` :guilabel:`Billing Status`." +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:60 +msgid "The |PO| selected from the list **must not** be billed yet, or an :guilabel:`Invalid Operation` pop-up window appears." msgstr "" #: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:0 msgid "Invalid Operation pop-up window for billed Purchase Order." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:88 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:66 msgid "Click the drop-down menu next to :guilabel:`Should Be Paid` to view the available options: :guilabel:`Yes`, :guilabel:`No`, and :guilabel:`Exception`." msgstr "" @@ -27389,47 +27741,47 @@ msgstr "" msgid "Should Be Paid field status on draft vendor bill." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:96 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:73 msgid "If the total quantity of products from a |PO| has not been received, Odoo only includes the products that *have* been received in the draft vendor bill." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:99 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:76 msgid "Draft vendor bills can be edited to increase the billed quantity, change the price of the products in the bill, and add additional products to the bill." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:102 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:79 msgid "If the draft bill's information is changed, the :guilabel:`Should Be Paid` field status is set to :guilabel:`Exception`. This means that Odoo notices the discrepancy, but does not block the changes or display an error message, since there might be a valid reason for making changes to the draft bill." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:107 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:84 msgid "To process the vendor bill, select a date in the :guilabel:`Bill Date` field, and click :guilabel:`Confirm`, followed by :guilabel:`Register Payment`." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:110 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:87 msgid "This opens a :guilabel:`Register Payment` pop-up window. From this window, accounting information is pre-populated based on the database's accounting settings. Click :guilabel:`Create Payment` to process the vendor bill." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:114 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:91 msgid "Once payment has been registered for a vendor bill, and the bill displays the green :guilabel:`Paid` banner, the :guilabel:`Should Be Paid` field status is set to :guilabel:`No`." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:118 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:95 msgid "The :guilabel:`Should Be Paid` status on bills is automatically set by Odoo. However, the status can be manually changed by clicking the field's drop-down menu inside the :guilabel:`Other Info` tab." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:123 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:100 msgid "View a purchase order's billing status" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:125 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:102 msgid "Once a |PO| is confirmed, its :guilabel:`Billing Status` can be viewed under the :guilabel:`Other Information` tab on the |PO| form." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:128 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:105 msgid "To view the :guilabel:`Billing Status` of a |PO|, navigate to :menuselection:`Purchase app --> Orders --> Purchase Orders`, and select a |PO| to view." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:131 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:108 msgid "Click the :guilabel:`Other Information` tab, and locate the :guilabel:`Billing Status` field." msgstr "" @@ -27437,60 +27789,60 @@ msgstr "" msgid "Billing status field on a purchase order form." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:137 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:113 msgid "The table below details the different values the :guilabel:`Billing Status` field could read, and when they are displayed, depending on the *Bill Control* policy used." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:144 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:120 msgid "Billing Status" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:145 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:121 msgid "On received quantities" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:146 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:122 msgid "On ordered quantities" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:147 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:123 msgid "Nothing to Bill" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:148 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:124 msgid "PO confirmed; no products received" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:149 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:125 msgid "*Not applicable*" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:150 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:126 msgid "Waiting Bills" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:151 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:127 msgid "All/some products received; bill not created" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:152 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:128 msgid "PO confirmed" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:153 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:129 msgid "Fully Billed" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:154 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:130 msgid "All/some products received; draft bill created" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:155 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:131 msgid "Draft bill created" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:158 -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:218 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/control_bills.rst:134 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:220 msgid ":doc:`manage`" msgstr "" @@ -27506,6 +27858,10 @@ msgstr "" msgid "In Odoo, a vendor bill can be created at different points in the purchasing process, depending on the *bill control* policy chosen in the *Purchase* app's settings." msgstr "" +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/manage.rst:20 +msgid "Bill control policies" +msgstr "" + #: ../../content/applications/inventory_and_mrp/purchase/manage_deals/manage.rst:22 msgid "To configure the default bill control policy, navigate to :menuselection:`Purchase app --> Configuration --> Settings`, and scroll to the :guilabel:`Invoicing` section." msgstr "" @@ -27542,6 +27898,10 @@ msgstr "" msgid "Control policy field on product form." msgstr "" +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/manage.rst:51 +msgid "3-way matching" +msgstr "" + #: ../../content/applications/inventory_and_mrp/purchase/manage_deals/manage.rst:53 msgid "The *3-way matching* policy ensures vendor bills are only paid once all (or some) products in a purchase order (PO) have been received." msgstr "" @@ -28044,35 +28404,35 @@ msgstr "" msgid ":doc:`../../../essentials/contacts`" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:191 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:193 msgid "Confirm order" msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:193 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:195 msgid "Clicking :guilabel:`Confirm Order` directly transforms the |RFQ| into an active |PO|." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:196 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:198 msgid "Odoo tracks communications on each order through the chatter of the |PO| form. This shows the emails sent between the user and the contact, as well as any internal notes and activities. Messages, notes, and activities can also be logged on the chatter." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:200 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:202 msgid "Once an |RFQ| is confirmed, it creates a |PO|." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:202 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:204 msgid "On the new |PO|, the :guilabel:`Order Deadline` field changes to :guilabel:`Confirmation Date`, which displays the date and time the user confirmed the order." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:205 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:207 msgid "Depending on the user's chosen configuration in the **Purchase** app settings, a *vendor bill* is created once products have been ordered or received. For more information, refer to the documentation on :doc:`managing vendor bills `." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:210 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:212 msgid "After an order is placed, clicking :guilabel:`Receive Products` records the reception of new products into the database." msgstr "" -#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:214 +#: ../../content/applications/inventory_and_mrp/purchase/manage_deals/rfq.rst:216 msgid "With the **Inventory** app installed, confirming a |PO| automatically creates a receipt document, with the product information and expected arrival dates automatically populated." msgstr "" @@ -29649,26 +30009,30 @@ msgid ":guilabel:`Take a Picture` requires a picture to be attached to the check msgstr "" #: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:53 -msgid ":guilabel:`Pass - Fail` is used when the product being checked must meet a certain criteria to pass the check." +msgid ":guilabel:`Print label` opens a pop-up from which labels can be printed. This step can be customized to provide instructions about where to add the labels on a product." msgstr "" #: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:55 -msgid "Selecting :guilabel:`Measure` causes a :guilabel:`Measure` input field to appear, in which a measurement must be entered before the check can be completed." +msgid ":guilabel:`Pass - Fail` is used when the product being checked must meet a certain criteria to pass the check." msgstr "" #: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:57 +msgid "Selecting :guilabel:`Measure` causes a :guilabel:`Measure` input field to appear, in which a measurement must be entered before the check can be completed." +msgstr "" + +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:59 msgid "Selecting :guilabel:`Worksheet` causes a :guilabel:`Quality Template` drop-down field to appear. Use it to select a quality worksheet that must be filled out to complete the check." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:60 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:62 msgid "In the :guilabel:`Team` field, select the quality team that is responsible for the quality check. In the :guilabel:`Company` field, select the company that owns the product being inspected." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:63 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:65 msgid "On the :guilabel:`Notes` tab at the bottom of the form, enter any relevant instructions in the :guilabel:`Instructions` text entry box (ex. 'Attach a picture of the product'). In the :guilabel:`Notes` text entry box, enter any relevant information about the quality check (who created it, why it was created, etc.)." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:68 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:70 msgid "Finally, if the check is being processed immediately, click the :guilabel:`Pass` button at the top left of the screen if the check passes, or the :guilabel:`Fail` button if the check fails." msgstr "" @@ -29676,43 +30040,43 @@ msgstr "" msgid "A quality check form filled out for a Pass - Fail check." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:76 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:78 msgid "Process quality check" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:78 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:80 msgid "Quality checks can be processed directly on the quality check's page, or from a manufacturing or inventory order for which a check is required. Alternatively, if a quality check is created for a specific work order operation, the check is processed in the *Shop Floor* module." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:83 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:85 msgid "It is not possible to manually create a single quality check that is assigned to a specific work order operation. Quality checks for work order operations can only be created by a |QCP|. See the documentation on :ref:`Quality Control Points ` for information about how to configure a |QCP| that will create quality checks for a specific work order operation." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:90 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:92 msgid "Quality check page" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:92 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:94 msgid "To process a quality check from the check's page, begin by navigating to :menuselection:`Quality --> Quality Control --> Quality Checks`, then select the check to process. Follow the instructions for how to complete the check, listed in the :guilabel:`Instructions` field of the :guilabel:`Notes` tab at the bottom of the page." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:97 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:99 msgid "If the quality check passes, click the :guilabel:`Pass` button at the top of the page. If the check fails, click the :guilabel:`Fail` button, instead." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:101 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:103 msgid "Quality check on order" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:103 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:105 msgid "To process a quality check on an order, select a manufacturing or inventory order (receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be selected by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and clicking on an order. Inventory orders can be selected by navigating to :menuselection:`Inventory`, clicking the :guilabel:`# To Process` button on an operation card, and selecting an order." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:109 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:111 msgid "On the selected inventory or manufacturing order, a purple :guilabel:`Quality Checks` button appears at the top of the order. Click the button to open the :guilabel:`Quality Check` pop-up window, which shows all of the quality checks required for that order." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:113 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:115 msgid "Follow the instructions that appear on the :guilabel:`Quality Check` pop-up window. If a Pass - Fail check is being processed, complete the check by clicking :guilabel:`Pass` or :guilabel:`Fail` at the bottom of the pop-up window. For all other quality check types, a :guilabel:`Validate` button appears instead. Click it to complete the check." msgstr "" @@ -29720,43 +30084,43 @@ msgstr "" msgid "The \"Quality Check\" pop-up window on a manufacturing order." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:123 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:125 msgid "Quality check on work order" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:125 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:127 msgid "To process a quality check for a work order, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`. Select an |MO| that includes a work order for which a quality check is required." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:135 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:137 msgid "For a full guide to the Shop Floor module, see the :doc:`Shop Floor overview <../../manufacturing/shop_floor/shop_floor_overview>` documentation." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:142 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:144 msgid "Process the work order's steps until the quality check step is reached. Click on the step to open a pop-up window that details how the check should be completed. After following the instructions, click :guilabel:`Validate` to complete the check. Alternatively, if a *Pass - Fail* check is being processed, click either the :guilabel:`Pass` or :guilabel:`Fail` button." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:147 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:149 msgid "It is also possible to complete a quality check by clicking the checkbox on the right side of the step. Doing so automatically marks the check as *Passed*." msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:151 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:153 msgid "The specific steps for processing a quality check depend upon the type of check being conducted. For information about processing each type of quality check, see the associated documentation:" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:154 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:156 msgid ":doc:`../quality_check_types/instructions_check`" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:155 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:157 msgid ":doc:`../quality_check_types/pass_fail_check`" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:156 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:158 msgid ":doc:`../quality_check_types/measure_check`" msgstr "" -#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:157 +#: ../../content/applications/inventory_and_mrp/quality/quality_management/quality_checks.rst:159 msgid ":doc:`../quality_check_types/picture_check`" msgstr "" diff --git a/locale/sources/marketing.pot b/locale/sources/marketing.pot index f1bc3f6920..3a5c8e2fcf 100644 --- a/locale/sources/marketing.pot +++ b/locale/sources/marketing.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1683,13 +1683,13 @@ msgid "Throughout the campaign, the marketing team continuously refers to the sm msgstr "" #: ../../content/applications/marketing/email_marketing/lost_leads_email.rst:355 -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:223 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:225 #: ../../content/applications/marketing/email_marketing/unsubscriptions.rst:129 msgid ":doc:`../email_marketing`" msgstr "" #: ../../content/applications/marketing/email_marketing/lost_leads_email.rst:356 -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:224 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:226 msgid ":doc:`unsubscriptions`" msgstr "" @@ -1782,31 +1782,31 @@ msgstr "" msgid "Once all the configurations on the mailing list form are complete, Odoo automatically adds the new mailing list to the :guilabel:`Mailing List` page in the *Email Marketing* app (:menuselection:`Email Marketing app --> Mailing Lists --> Mailing Lists`)." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:64 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:66 msgid "Add contacts to mailing list" msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:66 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:68 msgid "In Odoo *Email Marketing*, there are a few different ways to add contacts to a mailing list." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:68 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:70 msgid "From the :guilabel:`Mailing Lists` page (:menuselection:`Email Marketing --> Mailing Lists --> Mailing Lists`), click the :guilabel:`Total Contacts` link on the line of the desired mailing list to which contacts should be added." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:72 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:74 msgid "Doing so reveals a separate :guilabel:`Mailing List Contacts` page for that specific mailing list, where contacts can be created or imported, and then added to the specific mailing list." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:75 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:77 msgid "This same page can also be accessed by clicking the desired mailing list from the :guilabel:`Mailing Lists` page, and then clicking the :guilabel:`Recipients` smart button on the mailing list form." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:78 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:80 msgid "Doing so *also* reveals a separate :guilabel:`Mailing List Contacts` page for that specific mailing list, where contacts can be created or imported, and then added to the specific mailing list." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:81 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:83 msgid "Contacts can also be directly imported to a specific mailing list from the :guilabel:`Mailing Lists` page, by clicking :guilabel:`Import Contacts` to the far-right of the desired mailing list." msgstr "" @@ -1814,7 +1814,7 @@ msgstr "" msgid "The import contacts button of a mailing list line in Odoo Email Marketing." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:88 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:90 msgid "Doing so reveals an :guilabel:`Import Mailing Contacts` pop-up form." msgstr "" @@ -1822,19 +1822,19 @@ msgstr "" msgid "The import mailing contacts pop-up form that appears in Odoo Email Marketing." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:94 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:96 msgid "Here, the desired mailing list is auto-populated in the :guilabel:`Import contacts in` field. Beneath that, write or paste email addresses in the :guilabel:`Contact List` field." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:97 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:99 msgid "The option to import a country, company name, and more is available, via the :guilabel:`Upload a file` link at the bottom of the pop-up form." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:100 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:102 msgid "When all contacts and configurations are complete, click :guilabel:`Import`." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:102 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:104 msgid "To add contacts to a specific mailing list from a master list of all mailing list contacts in the database, navigate to :menuselection:`Email Marketing app --> Mailing Lists --> Mailing List Contacts`. Doing so reveals the :guilabel:`Mailing List Contacts` page, featuring a list of all contacts associated with every mailing list." msgstr "" @@ -1842,19 +1842,19 @@ msgstr "" msgid "The Mailing List page in the Odoo Email Marketing application." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:111 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:113 msgid "The default :guilabel:`Exclude Blacklisted Emails` filter appears in the search bar." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:113 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:115 msgid "From the :guilabel:`Mailing List Contacts` page, contacts can be created and/or imported, and then added to a mailing list." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:116 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:118 msgid "To add an existing contact to a mailing list, select the desired contact from the list on the :guilabel:`Mailing List Contacts` page to reveal their contact form." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:119 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:121 msgid "At the bottom of their contact form, click :guilabel:`Add a line` under the :guilabel:`Mailing List` column, locate the desired mailing list from the drop-down menu, and select it." msgstr "" @@ -1862,55 +1862,55 @@ msgstr "" msgid "The Add a line for mailing lists on a standard contact form in Odoo Email Marketing." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:127 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:129 msgid "A mailing list can be created directly from a contact form, by typing the name of the new mailing list in the :guilabel:`Mailing List` field. Then, after a new mailing list name has been entered, two options appear on the drop-down menu beneath the new mailing list name." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:131 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:133 msgid "From this drop-down menu, select :guilabel:`Create` to create the mailing list and edit it later, or select :guilabel:`Create and edit...` to create and edit the new mailing list right away." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:134 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:136 msgid "To remove a contact from a mailing list that the contact has been added to, enable the :guilabel:`Opt Out` checkbox. If the :guilabel:`Opt Out` checkbox is ticked, the ability to add a :guilabel:`Reason` why the contact opted-out is also available." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:138 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:140 msgid "When/if a contact *has* opted-out of a mailing list, the date they activated their opt-out appears in the :guilabel:`Unsubscription Date` column on their contact form." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:141 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:143 msgid "Lastly, the initial :guilabel:`Subscription Date` can be seen, as well. This field is auto-populated with the date and time their subscription to the mailing list has been saved." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:144 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:146 msgid "Multiple mailing lists can be added to a single contact form." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:146 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:148 msgid "To delete any mailing list from a contact form, simply click the :guilabel:`🗑️ (trash can)` icon." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:149 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:151 msgid "Link mailing list to website" msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:151 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:153 msgid "When a mailing list is created in the database, Odoo provides the option to directly link the mailing list to the Odoo-built website (created via the Odoo *Website* application)." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:154 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:156 msgid "To link a mailing list to a website, navigate to the front-end of the website, which can be accomplished in a variety of ways throughout the database. The most direct way to get to the front-end of the website is to simply open the :menuselection:`Website` application from the main Odoo dashboard." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:159 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:161 msgid "Doing so reveals the designated homepage of the Odoo-built website for the database." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:161 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:163 msgid "From the front-end of the website, click the :guilabel:`Edit` button in the upper-right corner. When clicked, Odoo reveals a right-sidebar, filled with drag-and-drop *building blocks*, packed with various features, options, and design elements." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:165 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:167 msgid "Next, in the search bar of the right-sidebar, search for `Newsletter`. The :guilabel:`Newsletter` selection of building blocks is used to add subscription fields for any mailing list onto the website." msgstr "" @@ -1918,11 +1918,11 @@ msgstr "" msgid "View of how to quickly search for Newsletter blocks in the Odoo Website application." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:173 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:175 msgid "Doing so reveals the following building block options: :guilabel:`Newsletter Block`, :guilabel:`Newsletter Popup`, and :guilabel:`Newsletter`. Any of these options can be used to add subscription fields for a mailing list onto the website." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:177 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:179 msgid "The :guilabel:`Newsletter Block` option places a customizable block onto the body of the website where a visitor to enter their email and click a button to subscribe to a designated mailing list." msgstr "" @@ -1931,7 +1931,7 @@ msgstr "" msgid "Sample of how a newsletter block appears on an Odoo Website." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:184 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:186 msgid "The :guilabel:`Newsletter Popup` option reveals a customizable pop-up window that appears when a visitor scrolls to the specific section of the webpage on which the building block is placed. When the visitor reaches the designated section, a pop-up window appears, in which a visitor can enter their email address, click a button, and subscribe to that predetermined mailing list." msgstr "" @@ -1939,19 +1939,19 @@ msgstr "" msgid "Sample of how a newsletter popup block appears on an Odoo Website." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:193 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:195 msgid "The :guilabel:`Newsletter` option provides the same functionality as the other options. However, it only consists of a field for the visitor to enter their email address, and a button to subscribe to the mailing list." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:197 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:199 msgid "It is covertly designed in this fashion to be cleanly implemented into the content of the webpage and/or footer." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:204 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:206 msgid "Once the desired newsletter building block is chosen, drag-and-drop it onto the body of the website. Then, select the newly-placed newsletter building block to reveal its configuration options on the right-sidebar." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:208 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:210 msgid "From there, open the :guilabel:`Newsletter` drop-down menu, and select the specific mailing list that should be applied to the block." msgstr "" @@ -1959,11 +1959,11 @@ msgstr "" msgid "The newsletter drop-down menu in the customize sidebar that appears in Odoo Website." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:215 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:217 msgid "Once the desired configurations and customizations are complete, be sure to click the :guilabel:`Save` button in the upper-right corner." msgstr "" -#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:218 +#: ../../content/applications/marketing/email_marketing/mailing_lists.rst:220 msgid "Now, when a visitor enters their email address, and clicks the button to subscribe, they are instantly subscribed to that pre-configured mailing list. They are also added as a contact for that mailing list in Odoo *Email Marketing*." msgstr "" @@ -4839,7 +4839,7 @@ msgid "The default confirmation button, in the body of the template, links direc msgstr "" #: ../../content/applications/marketing/marketing_automation/campaign_templates/double_optin.rst:84 -msgid "To provide a streamlined experience for the contact, consider :doc:`creating a page on the website <../../../websites/website/pages>` that expresses gratitude to the contact for confirming their subscription to the mailing list. Add the link to that page in the URL of the confirmation button." +msgid "To provide a streamlined experience for the contact, consider :doc:`creating a page on the website <../../../websites/website/structure/pages>` that expresses gratitude to the contact for confirming their subscription to the mailing list. Add the link to that page in the URL of the confirmation button." msgstr "" #: ../../content/applications/marketing/marketing_automation/campaign_templates/double_optin.rst:90 @@ -5800,35 +5800,35 @@ msgstr "" msgid "Odoo's *SMS Marketing* application can also help boost conversion rates around valuable actions, such as event registrations, free trials, purchases, etc., since text and mobile-based marketing channels typically yield higher :abbr:`CTOR (click-to-open rate)` and :abbr:`CTR (click-through rate)` outcomes." msgstr "" -#: ../../content/applications/marketing/sms_marketing.rst:49 +#: ../../content/applications/marketing/sms_marketing.rst:55 msgid "SMS marketing dashboard" msgstr "" -#: ../../content/applications/marketing/sms_marketing.rst:51 +#: ../../content/applications/marketing/sms_marketing.rst:57 msgid "When the application is opened, Odoo displays the main :guilabel:`SMS Marketing` dashboard, which showcases the various SMS mailings that have been created, along with pertinent information and data related to that specific message." msgstr "" -#: ../../content/applications/marketing/sms_marketing.rst:55 +#: ../../content/applications/marketing/sms_marketing.rst:61 msgid "The :icon:`oi-view-kanban` :guilabel:`Kanban` view is the default Odoo uses when the application is opened, which provides an organized display of the SMS mailings that have been created, and what their current status is at the moment." msgstr "" -#: ../../content/applications/marketing/sms_marketing.rst:60 +#: ../../content/applications/marketing/sms_marketing.rst:66 msgid "An :abbr:`SMS (Short Message Service)` mailing can have one of the following statuses: :guilabel:`Draft`, :guilabel:`In Queue`, :guilabel:`Sending`, or :guilabel:`Sent`." msgstr "" -#: ../../content/applications/marketing/sms_marketing.rst:63 +#: ../../content/applications/marketing/sms_marketing.rst:69 msgid "In the upper right corner of the main :guilabel:`SMS Marketing` dashboard, there are a few different view options to choose from. Each one provides a unique take on the same SMS information." msgstr "" -#: ../../content/applications/marketing/sms_marketing.rst:66 +#: ../../content/applications/marketing/sms_marketing.rst:72 msgid "The :icon:`oi-view-list` :guilabel:`List` view provides the same useful data related to SMS mailings, but in a more traditional list layout." msgstr "" -#: ../../content/applications/marketing/sms_marketing.rst:69 +#: ../../content/applications/marketing/sms_marketing.rst:75 msgid "The :icon:`fa-calendar` :guilabel:`Calendar` view shows when SMS mailings are scheduled or have been sent. Clicking a future date opens a blank SMS template to be scheduled for that date." msgstr "" -#: ../../content/applications/marketing/sms_marketing.rst:72 +#: ../../content/applications/marketing/sms_marketing.rst:78 msgid "Lastly, the :icon:`fa-area-chart` :guilabel:`Graph` view visualizes that same SMS-related data in series of graphs and charts. Odoo also provides various ways to sort and group the data for more detailed analysis." msgstr "" @@ -6607,6 +6607,142 @@ msgstr "" msgid "Add any necessary notes under the :guilabel:`Notes` tab. Finally, navigate away from the completed automation rule, or manually save (by clicking the :guilabel:`☁️ (cloud)` icon), to implement the change." msgstr "" +#: ../../content/applications/marketing/sms_marketing/twilio.rst:4 +msgid "SMS via Twilio" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:7 +msgid "What is Twilio" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:9 +msgid "Twilio is a third-party provider that enables you to send SMS messages to your clients. Odoo provides an easy way to use this service within your Odoo apps." +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:13 +msgid "Why would I need it?" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:15 +msgid "Although Odoo already comes with an out-of-the-box (IAP) solution for SMS messages, it might not work in some countries with stricter legal requirements. Currently, Odoo registers itself when possible to avoid extra setup for its customers, however in some countries that is not enough and the client itself must do it. This can be done through Twilio." +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:21 +msgid "Setup your Twilio account" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:23 +msgid "By creating a Twilio account, you will be able to create a virtual phone number from which you will be able to send SMS messages. These cost credits that are to be bought on Twilio, not Odoo." +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:26 +msgid "Go to `Twilio `_" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:27 +msgid "Sign up and create a Twilio account" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:28 +msgid "Within your Twilio account, you can create multiple accounts (e.g. one for testing, one for each sub-company, etc.)" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:30 +msgid "Create a new account" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:32 +msgid "Enter the name, and select :guilabel:`Twilio` for the type" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:33 +msgid "Select your :guilabel:`Billing Country` and click :guilabel:`Create new account`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:34 +msgid "Select the different options that match your needs" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:36 +msgid "For the :guilabel:`Twilio product`, select :guilabel:`SMS`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:37 +msgid "For :guilabel:`How to build with Twilio`, select :guilabel:`With no code at all`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:38 +msgid "For your :guilabel:`goal`, select :guilabel:`3rd party integrations`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:39 +msgid "Click on :guilabel:`Get Started with Twilio`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:40 +msgid "You account is now created, and you should arrive on your :guilabel:`Dashboard`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:41 +msgid "Go to :menuselection:`Phone Numbers --> Manage --> Buy a number`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:42 +msgid "Buy a number (it is a paying service, but you should have received some credits to start with)" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:43 +msgid "Go back to bottom of the :guilabel:`Dashboard` page" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:44 +msgid "Copy the :guilabel:`Account SID` and :guilabel:`Auth Token`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:47 +msgid "In case of a testing account, you will only be able to send SMS to phones that you have verified within `Twilio's console `_." +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:51 +msgid "Sending SMS to some countries (such as the US or Canada) might require a registration. This can only be done by you, and not by Odoo. Please check out `Twilio's Help Center `_." +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:57 +msgid "Setup Odoo to use Twilio" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:59 +msgid ":ref:`Install ` the :guilabel:`Twilio SMS` module (`sms_twilio`)" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:60 +msgid "In Odoo, go to :menuselection:`Settings --> General Settings --> Contacts --> Send SMS`, select :guilabel:`Send via Twilio` option, and save your change." +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:62 +msgid "Go back to that option, and click :guilabel:`Configure Twilio Account`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:63 +msgid "Paste the copied credentials accordingly" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:64 +msgid "Click on :guilabel:`Reload numbers`" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:65 +msgid "Your newly bought phone number should appear in the list" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:66 +msgid "You can use the :guilabel:`Test Number` field to send an SMS" +msgstr "" + +#: ../../content/applications/marketing/sms_marketing/twilio.rst:68 +msgid "You can have multiple numbers (for instance once per country, or one per campaign), in that case, you can reorder the numbers. By default, when sending an SMS to a client, Odoo will select the number whose country is the same as the client. If none matches, Odoo will use the first number available from the list respecting the order you have chosen." +msgstr "" + #: ../../content/applications/marketing/social_marketing.rst:5 msgid "Social Marketing" msgstr "" diff --git a/locale/sources/productivity.pot b/locale/sources/productivity.pot index 207156c723..7cbc10aea6 100644 --- a/locale/sources/productivity.pot +++ b/locale/sources/productivity.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -31,7 +31,7 @@ msgstr "" #: ../../content/applications/productivity/appointments.rst:16 #: ../../content/applications/productivity/appointments/create-opps.rst:13 #: ../../content/applications/productivity/documents.rst:39 -#: ../../content/applications/productivity/spreadsheet/insert.rst:580 +#: ../../content/applications/productivity/spreadsheet/insert.rst:590 #: ../../content/applications/productivity/voip/axivox/axivox_config.rst:17 #: ../../content/applications/productivity/voip/onsip.rst:33 msgid "Configuration" @@ -1322,7 +1322,7 @@ msgstr "" #: ../../content/applications/productivity/data_cleaning.rst:0 #: ../../content/applications/productivity/whatsapp.rst:275 -#: ../../content/applications/productivity/whatsapp.rst:679 +#: ../../content/applications/productivity/whatsapp.rst:680 msgid "Name" msgstr "" @@ -2201,9 +2201,9 @@ msgid "Icon" msgstr "" #: ../../content/applications/productivity/discuss.rst:114 -#: ../../content/applications/productivity/knowledge.rst:93 -#: ../../content/applications/productivity/knowledge.rst:275 -#: ../../content/applications/productivity/knowledge.rst:297 +#: ../../content/applications/productivity/knowledge.rst:94 +#: ../../content/applications/productivity/knowledge.rst:279 +#: ../../content/applications/productivity/knowledge.rst:301 msgid "Use" msgstr "" @@ -2308,7 +2308,7 @@ msgid ":doc:`discuss/team_communication`" msgstr "" #: ../../content/applications/productivity/discuss.rst:164 -#: ../../content/applications/productivity/discuss/team_communication.rst:114 +#: ../../content/applications/productivity/discuss/team_communication.rst:100 msgid ":doc:`/applications/essentials/activities`" msgstr "" @@ -2337,7 +2337,7 @@ msgid "A live chat conversation using a canned response." msgstr "" #: ../../content/applications/productivity/discuss/canned_responses.rst:18 -msgid "Canned responses are available :ref:`to use ` in **Live Chat** conversations, the **Discuss** app, and the *Chatter* composer. This includes direct message conversations, channel conversations, and **WhatsApp** messages." +msgid "Canned responses are available :ref:`to use ` in **Live Chat** conversations, the **Discuss** app, and the *Chatter*. Canned responses are also available in direct message conversations, channel conversations, and *WhatsApp* messages." msgstr "" #: ../../content/applications/productivity/discuss/canned_responses.rst:25 @@ -2369,95 +2369,87 @@ msgid "Try to connect the shortcut to the topic of the substitution. Not only do msgstr "" #: ../../content/applications/productivity/discuss/canned_responses.rst:48 -msgid "In the :guilabel:`Description` field, add any information that provides context for this response, such as guidelines for when it should or should not be used." -msgstr "" - -#: ../../content/applications/productivity/discuss/canned_responses.rst:51 msgid "The :guilabel:`Created by` field automatically populates with the name of the user that creates a new response. This field cannot be edited." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:54 +#: ../../content/applications/productivity/discuss/canned_responses.rst:51 msgid "To :ref:`share ` this response with other users, select one or more groups in the :guilabel:`Authorized Group` field that should have access." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:58 +#: ../../content/applications/productivity/discuss/canned_responses.rst:55 msgid "If the :guilabel:`Authorized Group` field is left blank, the response can **only** be used by the user that created it." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:61 -msgid "Canned responses created by the database are automatically credited as created by *OdooBot*. They must be assigned to an *authorized group* before they can be used by **any** users. To view the responses created by *OdooBot*, navigate to :menuselection:`Discuss app --> Configuration --> Canned Responses`. Click into the search bar, and remove any filters." +#: ../../content/applications/productivity/discuss/canned_responses.rst:58 +msgid "Canned responses created by the database are automatically credited as created by *OdooBot*. They must be assigned to an *authorized group* before they can be used by **any** users. To view the responses created by *OdooBot*, navigate to :menuselection:`Discuss app --> Configuration --> Canned Responses`." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:66 +#: ../../content/applications/productivity/discuss/canned_responses.rst:63 msgid "Lastly, the :guilabel:`Last Used` field keeps track of the date and time each response was most recently used. This field cannot be edited." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:72 +#: ../../content/applications/productivity/discuss/canned_responses.rst:69 msgid "Share responses" msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:74 +#: ../../content/applications/productivity/discuss/canned_responses.rst:71 msgid "Canned responses, by default, are made available **only** to the user who creates them. To make a canned response available for others to use, they need to be shared." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:78 +#: ../../content/applications/productivity/discuss/canned_responses.rst:75 msgid "Users with *Administrator* access rights can view and edit canned responses created by other users through the **Discuss** app. However, they are **only** able to use them if they are included in an authorized group that has been designated on that canned responses item line, located on the :guilabel:`Canned Responses` page." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:83 +#: ../../content/applications/productivity/discuss/canned_responses.rst:80 msgid "Access to shared responses is granted on the :ref:`groups ` level." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:85 +#: ../../content/applications/productivity/discuss/canned_responses.rst:82 msgid "To view the *Groups* a user is a member of, first enable :ref:`Developer mode `, then navigate to :menuselection:`Settings app --> Users & Companies --> Users`. Select a user from the list, and click to open their :guilabel:`User Record`. Then, click the :guilabel:`Groups` smart button at the top of the page." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:91 +#: ../../content/applications/productivity/discuss/canned_responses.rst:88 msgid "To view a list of users in a specific group, first enable :doc:`Developer mode <../../general/developer_mode/>`. Next, navigate to :menuselection:`Settings app --> Users & Companies --> Groups`. Select a group from the list, then click to open the :guilabel:`Group Record`. A list of users is included on the :guilabel:`Users` tab." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:96 +#: ../../content/applications/productivity/discuss/canned_responses.rst:93 msgid "After determining what groups should have access to a response, they **must** :ref:`be added ` to the :guilabel:`Authorized Groups` field for each canned response." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:101 +#: ../../content/applications/productivity/discuss/canned_responses.rst:98 msgid "The user who created the response can use it, even if they are not a member of one of the *Authorized Groups*." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:107 +#: ../../content/applications/productivity/discuss/canned_responses.rst:104 msgid "Use a canned response" msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:109 -msgid "Canned responses can be used in the **Discuss** app, in a **Live Chat** conversation, or on any record that contains a *Chatter* composer. This includes direct message conversations, channel conversations, and *WhatsApp* messages." -msgstr "" - -#: ../../content/applications/productivity/discuss/canned_responses.rst:113 -msgid "To use a canned response, type a colon (`:`) into a *Chatter* composer or chat window, followed by the shortcut. Then press :kbd:`Enter`. This replaces the shortcut with the substitution, though the response can still be edited before it is sent." +#: ../../content/applications/productivity/discuss/canned_responses.rst:106 +msgid "To use a canned response in a conversation, click the :icon:`fa-plus-circle` :guilabel:`(plus)` icon in the message window. Then, click :guilabel:`Insert a Canned Response`. This opens a list of available canned responses. Either select a response from the list, or type the appropriate shortcut, then click the :icon:`fa-paper-plane` :guilabel:`(send)` icon or hit :kbd:`Enter`." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:118 -msgid "Typing `:` in the *Chatter* composer, or chat window, on its own generates a drop-down list of available canned responses. A response can be selected from the list, in addition to the use of shortcuts." +#: ../../content/applications/productivity/discuss/canned_responses.rst:112 +msgid "Typing `::` in the *Chatter* composer, or chat window, on its own generates a drop-down list of available canned responses. A response can be selected from the list, in addition to the use of shortcuts." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:122 -msgid "To search through the list of available responses, type `:`, followed by the first few letters of the shortcut." +#: ../../content/applications/productivity/discuss/canned_responses.rst:116 +msgid "To search through the list of available responses, type `::`, followed by the first few letters of the shortcut." msgstr "" #: ../../content/applications/productivity/discuss/canned_responses.rst:0 msgid "A live chat window with a list of all available canned responses." msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:129 +#: ../../content/applications/productivity/discuss/canned_responses.rst:123 msgid ":doc:`Chatter `" msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:130 -#: ../../content/applications/productivity/discuss/chatter.rst:421 +#: ../../content/applications/productivity/discuss/canned_responses.rst:124 +#: ../../content/applications/productivity/discuss/chatter.rst:430 msgid ":doc:`Discuss <../discuss>`" msgstr "" -#: ../../content/applications/productivity/discuss/canned_responses.rst:131 +#: ../../content/applications/productivity/discuss/canned_responses.rst:125 msgid ":ref:`Commands and Canned Responses `" msgstr "" @@ -2465,35 +2457,35 @@ msgstr "" msgid "Chatter" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:8 +#: ../../content/applications/productivity/discuss/chatter.rst:9 msgid "The *Chatter* feature is integrated throughout Odoo to streamline communication, maintain traceability, and provide accountability among team members. Chatter windows, known as *composers*, are located on almost every record within the database, and allow users to communicate with both internal users and external contacts." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:13 +#: ../../content/applications/productivity/discuss/chatter.rst:14 msgid "Chatter composers also enable users to log notes, upload files, and schedule activities." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:16 +#: ../../content/applications/productivity/discuss/chatter.rst:17 msgid "Chatter thread" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:18 -msgid "A *chatter thread* can be found on most pages in the database, and serves as a record of the updates and edits made to a record. A note is logged in the chatter thread when a change is made. The note includes details of the change, and a time stamp." +#: ../../content/applications/productivity/discuss/chatter.rst:19 +msgid "A *chatter thread* can be found on most pages in the database, and serves as a record of the updates and edits made to a record. A note is logged in the chatter thread when a change is made to the record. The note includes details of the change, and a time stamp." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:23 +#: ../../content/applications/productivity/discuss/chatter.rst:24 msgid "A user, Mitchell Admin, needs to update the email address of a contact. After they save the changes to the contact record, a note is logged in the chatter of the contact record with the following information:" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:27 +#: ../../content/applications/productivity/discuss/chatter.rst:28 msgid "The date when the change occurred." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:28 +#: ../../content/applications/productivity/discuss/chatter.rst:29 msgid "The email address as it was previously listed." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:29 +#: ../../content/applications/productivity/discuss/chatter.rst:30 msgid "The updated email address." msgstr "" @@ -2509,111 +2501,111 @@ msgstr "" msgid "A close up of a chatter thread of an OdooBot created contact record." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:46 +#: ../../content/applications/productivity/discuss/chatter.rst:45 msgid "Add followers" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:48 +#: ../../content/applications/productivity/discuss/chatter.rst:47 msgid "A *follower* is a user or contact that is added to a record and is notified when the record is updated, based on specific :ref:`follower subscription settings `. Followers can add themselves, or can be added by another user." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:53 +#: ../../content/applications/productivity/discuss/chatter.rst:52 msgid "If a user creates, or is assigned to a record, they are automatically added as a follower." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:55 +#: ../../content/applications/productivity/discuss/chatter.rst:54 msgid "To follow a record, navigate to any record with a chatter thread. For example, to open a *Helpdesk* ticket, navigate to :menuselection:`Helpdesk app --> Tickets --> All Tickets`, and select a ticket from the list to open it." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:59 +#: ../../content/applications/productivity/discuss/chatter.rst:58 msgid "At the top-right, above the chatter composer, click :guilabel:`Follow`. Doing this changes the button to read :guilabel:`Following`. Click it again to :guilabel:`Unfollow`." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:63 +#: ../../content/applications/productivity/discuss/chatter.rst:62 msgid "Manage followers" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:65 +#: ../../content/applications/productivity/discuss/chatter.rst:64 msgid "To add another user, or contact, as a follower, click the |user|. This opens a drop-down list of the current followers. Click :guilabel:`Add Followers` to open an :guilabel:`Invite Follower` pop-up window." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:69 +#: ../../content/applications/productivity/discuss/chatter.rst:68 msgid "Select one or more contacts from the :guilabel:`Recipients` drop-down list. To notify the contacts, tick the :guilabel:`Send Notification` checkbox. Edit the message template as desired, then click :guilabel:`Add Followers`." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:73 +#: ../../content/applications/productivity/discuss/chatter.rst:72 msgid "To remove followers, click the |user| to open the current followers list. Find the name of the follower to be removed, and click the :icon:`fa-remove` :guilabel:`(remove)` icon." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:79 +#: ../../content/applications/productivity/discuss/chatter.rst:78 msgid "Edit follower subscription" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:81 +#: ../../content/applications/productivity/discuss/chatter.rst:80 msgid "The updates a follower receives can vary based on their subscription settings. To see the type of updates a follower is subscribed to, and to edit the list, click the |user|. Find the appropriate follower in the list, then click the :icon:`fa-pencil` :guilabel:`(pencil)` icon. This opens the :guilabel:`Edit Subscription` pop-up window for the follower." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:86 +#: ../../content/applications/productivity/discuss/chatter.rst:85 msgid "The list of available subscription settings varies depending on the record type. For example, a follower of a *Helpdesk* ticket may be informed when the ticket is rated. This option would not be available for the followers of a *CRM* opportunity." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:90 +#: ../../content/applications/productivity/discuss/chatter.rst:89 msgid "Tick the checkbox for any updates the follower should receive, and clear the checkbox for any updates they should **not** receive. Click :guilabel:`Apply` when finished." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:97 +#: ../../content/applications/productivity/discuss/chatter.rst:95 msgid "The Edit Subscription window on a Helpdesk ticket." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:97 +#: ../../content/applications/productivity/discuss/chatter.rst:95 msgid "The Edit Subscription options vary depending on the record type. These are the options for a Helpdesk ticket." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:103 +#: ../../content/applications/productivity/discuss/chatter.rst:101 msgid "Log notes" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:105 +#: ../../content/applications/productivity/discuss/chatter.rst:103 msgid "The chatter function includes the ability to log internal notes on individual records. These notes are only accessible to internal users, and are available on any records that feature a chatter thread." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:109 +#: ../../content/applications/productivity/discuss/chatter.rst:107 msgid "To log an internal note, first navigate to a record. For example, to open a *CRM* opportunity, navigate to :menuselection:`CRM app --> Sales --> My Pipeline`, and click on the Kanban card of an opportunity to open it. Then, at the top-right, above the chatter composer, click :guilabel:`Log note`." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:114 +#: ../../content/applications/productivity/discuss/chatter.rst:112 msgid "Enter the note in the chatter composer. To tag an internal user, type `@`, and begin typing the name of the person to tag. Then, select a name from the drop-down menu. Depending on their notification settings, the user is notified by email, or through Odoo." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:119 +#: ../../content/applications/productivity/discuss/chatter.rst:117 msgid "Outside contacts can also be tagged in an internal log note. The contact then receives an email with the contents of the note they were tagged in, including any attachments added directly to the note. If they respond to the email, their response is logged in the chatter, and they are added to the record as a follower." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:124 +#: ../../content/applications/productivity/discuss/chatter.rst:122 msgid "Outside contacts are **not** able to log in to view the entire chatter thread, and are only notified of specific updates, based on their :ref:`follower subscription settings `, or when they are tagged directly." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:131 +#: ../../content/applications/productivity/discuss/chatter.rst:129 msgid "Send messages" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:133 +#: ../../content/applications/productivity/discuss/chatter.rst:131 msgid "Chatter composers can send messages to outside contacts, without having to leave the database, or open a different application. This makes it easy to communicate with potential customers in the *Sales* and *CRM* applications, or vendors in the *Purchase* app." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:137 +#: ../../content/applications/productivity/discuss/chatter.rst:135 msgid "To send a message, first navigate to a record. For example, to send a message from a *CRM* opportunity, navigate to :menuselection:`CRM app --> Sales --> My Pipeline`, and click on the Kanban card of an opportunity to open it. Then, at the top-right, above the chatter composer, click :guilabel:`Send message`." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:143 +#: ../../content/applications/productivity/discuss/chatter.rst:141 msgid "Press :command:`Ctrl + Enter` to send a message, instead of using the :guilabel:`Send` button." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:145 +#: ../../content/applications/productivity/discuss/chatter.rst:143 msgid "If any :ref:`followers ` have been added to the record, they are added as recipients of the message." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:149 +#: ../../content/applications/productivity/discuss/chatter.rst:147 msgid ":ref:`Followers ` of a record are added as recipients of a message automatically. If a follower should **not** receive a message, they must be removed as a follower before the message is sent, or a note is logged." msgstr "" @@ -2622,39 +2614,39 @@ msgid "A chatter composer preparing to send a message to the followers of a CRM "the customer listed on the opportunity record." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:159 +#: ../../content/applications/productivity/discuss/chatter.rst:156 msgid "Expand full composer" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:161 +#: ../../content/applications/productivity/discuss/chatter.rst:158 msgid "The chatter composer can be expanded to a larger pop-up window, allowing for additional customizations." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:164 +#: ../../content/applications/productivity/discuss/chatter.rst:161 msgid "To open the full composer, click the :icon:`fa-expand` :guilabel:`(expand)` icon in the bottom-right corner of the composer window." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:171 +#: ../../content/applications/productivity/discuss/chatter.rst:167 msgid "A chatter composer with emphasis on the expand icon." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:171 +#: ../../content/applications/productivity/discuss/chatter.rst:167 msgid "The expand icon in a chatter composer." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:173 +#: ../../content/applications/productivity/discuss/chatter.rst:169 msgid "Doing this opens a :guilabel:`Compose Email` pop-up window. Confirm or edit the intended :guilabel:`Recipients` of the message, or add additional recipients. The :guilabel:`Subject` field auto-populates based on the title of the record, though it can be edited, if desired." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:177 -msgid "To use an :doc:`email template <../../general/companies/email_template/>` for the message, select it from the drop-down menu in the :guilabel:`Load template` field." +#: ../../content/applications/productivity/discuss/chatter.rst:173 +msgid "To use an :doc:`email template <../../general/companies/email_template/>` for the message, click the |ve| icon, then select a template from the list. Existing templates can also be overwritten or deleted from this menu." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:181 +#: ../../content/applications/productivity/discuss/chatter.rst:178 msgid "The number and type of templates available vary, based on the record the message is created from." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:183 +#: ../../content/applications/productivity/discuss/chatter.rst:180 msgid "Click :icon:`fa-paperclip` :guilabel:`(paperclip)` icon to add any files to the message, then click :guilabel:`Send`." msgstr "" @@ -2662,127 +2654,155 @@ msgstr "" msgid "The expanded full chatter composer in the CRM application." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:191 +#: ../../content/applications/productivity/discuss/chatter.rst:187 +msgid "Generate text with AI" +msgstr "" + +#: ../../content/applications/productivity/discuss/chatter.rst:189 +msgid "To generate message text using AI, click the AI icon from the expanded chatter composer. This opens a :guilabel:`Generate Text with AI` pop-up." +msgstr "" + +#: ../../content/applications/productivity/discuss/chatter.rst:192 +msgid "Enter a prompt in the :guilabel:`Send a message` field to instruct the AI on the type of content needed, then press enter, or click the :icon:`fa-paper-plane` :guilabel:`(paper plane)` icon." +msgstr "" + +#: ../../content/applications/productivity/discuss/chatter.rst:-1 +msgid "The generate text with AI popup." +msgstr "" + +#: ../../content/applications/productivity/discuss/chatter.rst:198 +msgid "After the text is generated, click :guilabel:`Insert` to insert the text into the message composer." +msgstr "" + +#: ../../content/applications/productivity/discuss/chatter.rst:201 +msgid "Before sending the final message, be sure to edit any commentary from the AI, or any text in brackets." +msgstr "" + +#: ../../content/applications/productivity/discuss/chatter.rst:0 +msgid "A draft of an email with text generated by AI." +msgstr "" + +#: ../../content/applications/productivity/discuss/chatter.rst:208 msgid "Edit sent messages" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:193 +#: ../../content/applications/productivity/discuss/chatter.rst:210 msgid "Messages can be edited after they are sent, to fix typos, correct mistakes, or add missing information." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:197 +#: ../../content/applications/productivity/discuss/chatter.rst:214 msgid "When messages are edited after they have been sent, an updated message is **not** sent to the recipient." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:200 -msgid "To edit a sent message, click the :icon:`fa-ellipsis-h` :guilabel:`(ellipsis)` icon menu to the right of the message. Then, select :guilabel:`Edit`. Make any necessary adjustments to the message." +#: ../../content/applications/productivity/discuss/chatter.rst:217 +msgid "To edit a sent message, click the |ve| menu to the right of the message. Then, select :guilabel:`Edit`. Make any necessary adjustments to the message." msgstr "" #: ../../content/applications/productivity/discuss/chatter.rst:-1 msgid "The edit message option in a chatter thread." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:207 +#: ../../content/applications/productivity/discuss/chatter.rst:223 msgid "To save the changes, press :command:`Ctrl + Enter`. To discard the changes, press :command:`Escape`." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:210 +#: ../../content/applications/productivity/discuss/chatter.rst:226 msgid "Users with Admin-level access rights can edit any sent messages. Users without Admin rights can **only** edit messages they created." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:216 +#: ../../content/applications/productivity/discuss/chatter.rst:232 msgid "Search messages" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:218 +#: ../../content/applications/productivity/discuss/chatter.rst:234 msgid "Chatter threads can become long after a while, because of all the information they contain. To make it easier to find a specific entry, users can search the text of messages and notes for specific keywords." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:222 +#: ../../content/applications/productivity/discuss/chatter.rst:238 msgid "First, select a record with a chatter thread. For example, to search a *CRM* opportunity, navigate to :menuselection:`CRM app --> Sales --> My Pipeline`, and click on the Kanban card of an opportunity to open it. Then, at the top-right, above the chatter composer, click the :icon:`oi-search` :guilabel:`(search)` icon to open the search bar." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:227 +#: ../../content/applications/productivity/discuss/chatter.rst:243 msgid "Enter a keyword or phrase into the search bar, then hit :command:`Enter`, or click the :icon:`oi-search` :guilabel:`(search)` icon to the right of the search bar. Any messages or notes containing the keyword or phrase entered are listed below the search bar, with the keyword highlighted." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:232 +#: ../../content/applications/productivity/discuss/chatter.rst:248 msgid "To be taken directly to a particular message in the chatter thread, hover over the upper-right corner of the result to reveal a :guilabel:`Jump` button. Click this button to be directed to that message's location in the thread." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:240 +#: ../../content/applications/productivity/discuss/chatter.rst:255 msgid "Search results in a chatter thread emphasising the search icon and the jump button." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:240 +#: ../../content/applications/productivity/discuss/chatter.rst:255 msgid "Search results in a chatter thread. Hover over the upper-right corner of a result to see the **Jump** option. Click it to be taken directly to that message in the chatter thread." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:246 +#: ../../content/applications/productivity/discuss/chatter.rst:261 msgid "Schedule activities" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:248 +#: ../../content/applications/productivity/discuss/chatter.rst:263 msgid "*Activities* are follow-up tasks tied to a record in an Odoo database. Activities can be scheduled on any database page that contains a chatter thread, Kanban view, list view, or activities view of an application." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:252 +#: ../../content/applications/productivity/discuss/chatter.rst:267 msgid "To schedule an activity through a chatter thread, click the :guilabel:`Activities` button, located at the top of the chatter on any record. On the :guilabel:`Schedule Activity` pop-up window that appears, select an :guilabel:`Activity Type` from the drop-down menu." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:257 +#: ../../content/applications/productivity/discuss/chatter.rst:272 msgid "Individual applications have a list of *Activity Types* dedicated to that application. For example, to view and edit the activities available for the *CRM* application, go to :menuselection:`CRM app --> Configuration --> Activity Types`." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:261 +#: ../../content/applications/productivity/discuss/chatter.rst:276 msgid "Enter a title for the activity in the :guilabel:`Summary` field, located in the :guilabel:`Schedule Activity` pop-up window." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:264 +#: ../../content/applications/productivity/discuss/chatter.rst:279 msgid "Select a name from the :guilabel:`Assigned to` drop-down menu to assign the activity to a different user. Otherwise, the user creating the activity is automatically assigned." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:267 +#: ../../content/applications/productivity/discuss/chatter.rst:282 msgid "Add any additional information in the optional :guilabel:`Log a note...` field." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:270 +#: ../../content/applications/productivity/discuss/chatter.rst:285 msgid "The :guilabel:`Due Date` field on the :guilabel:`Schedule Activity` pop-up window auto-populates based on the configuration settings for the selected :guilabel:`Activity Type`. However, this date can be changed by selecting a day on the calendar in the :guilabel:`Due Date` field." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:274 +#: ../../content/applications/productivity/discuss/chatter.rst:289 msgid "Lastly, click one of the following buttons:" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:276 +#: ../../content/applications/productivity/discuss/chatter.rst:291 msgid ":guilabel:`Schedule`: adds the activity to the chatter under :guilabel:`Planned activities`." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:277 -msgid ":guilabel:`Mark as Done`: adds the details of the activity to the chatter under :guilabel:`Today`. The activity is not scheduled, it is automatically marked as completed." +#: ../../content/applications/productivity/discuss/chatter.rst:292 +msgid ":guilabel:`Schedule & Mark as Done`: adds the details of the activity to the chatter under :guilabel:`Today`. The activity is added to :guilabel:`Today`, and is automatically marked as done." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:279 +#: ../../content/applications/productivity/discuss/chatter.rst:295 msgid ":guilabel:`Done \\& Schedule Next`: adds the task under :guilabel:`Today` marked as done, and opens a new activity window." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:281 -msgid ":guilabel:`Discard`: discards any changes made on the pop-up window." +#: ../../content/applications/productivity/discuss/chatter.rst:297 +msgid ":guilabel:`Cancel`: discards any changes made on the pop-up window." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:283 +#: ../../content/applications/productivity/discuss/chatter.rst:299 msgid "Scheduled activities are added to the chatter for the record under :guilabel:`Planned activities`, and are color-coded based on their due date." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:286 +#: ../../content/applications/productivity/discuss/chatter.rst:302 msgid "**Red** icons indicate an overdue activity." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:287 +#: ../../content/applications/productivity/discuss/chatter.rst:303 msgid "**Yellow** icons indicate an activity with a due date scheduled for the current date." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:288 +#: ../../content/applications/productivity/discuss/chatter.rst:304 msgid "**Green** icons indicate an activity with a due date scheduled in the future." msgstr "" @@ -2790,7 +2810,7 @@ msgstr "" msgid "A chatter thread with planned activities with varying due dates." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:295 +#: ../../content/applications/productivity/discuss/chatter.rst:310 msgid "Click the :icon:`fa-info-circle` :guilabel:`(info)` icon next to a planned activity to see additional details." msgstr "" @@ -2798,11 +2818,11 @@ msgstr "" msgid "A detailed view of a planned activity." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:302 +#: ../../content/applications/productivity/discuss/chatter.rst:316 msgid "After completing an activity, click :guilabel:`Mark Done` under the activity entry in the chatter. This opens a :guilabel:`Mark Done` pop-up window, where additional notes about the activity can be entered. After adding any comments to the pop-up window, click: :guilabel:`Done \\& Schedule Next`, :guilabel:`Done`, or :guilabel:`Discard`." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:307 +#: ../../content/applications/productivity/discuss/chatter.rst:321 msgid "After the activity is marked complete, an entry with the activity type, title, and any other details that were included in the pop-up window are listed in the chatter." msgstr "" @@ -2810,35 +2830,35 @@ msgstr "" msgid "A chatter thread with a completed activity, included additional details." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:317 +#: ../../content/applications/productivity/discuss/chatter.rst:330 msgid "Attach files" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:319 +#: ../../content/applications/productivity/discuss/chatter.rst:332 msgid "Files can be added as attachments in the chatter, either to send with messages, or to include with a record." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:323 +#: ../../content/applications/productivity/discuss/chatter.rst:336 msgid "After a file has been added to a chatter thread, it can be downloaded by any user with access to the thread. Click the |paperclip| to make the files header visible, if necessary. Then, click the :icon:`fa-download` :guilabel:`(download)` icon the file to download it." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:327 +#: ../../content/applications/productivity/discuss/chatter.rst:340 msgid "To attach a file, click the |paperclip| located at the top of the chatter composer of any record that contains a chatter thread." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:330 +#: ../../content/applications/productivity/discuss/chatter.rst:343 msgid "This opens a file explorer pop-up window. Navigate to the desired file, select it, then click :guilabel:`Open` to add it to the record. Alternatively, files can be dragged and dropped directly onto a chatter thread." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:334 +#: ../../content/applications/productivity/discuss/chatter.rst:347 msgid "After files have been added, they are listed in the chatter thread, under a :guilabel:`Files` heading." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:338 +#: ../../content/applications/productivity/discuss/chatter.rst:351 msgid "After at least one file has been added to a chatter record, a new button labeled :guilabel:`Attach files` appears below the :guilabel:`Files` heading. To attach any additional files, this is the button that **must** be used, instead of the |paperclip| at the top of the chatter thread." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:343 +#: ../../content/applications/productivity/discuss/chatter.rst:356 msgid "After the :guilabel:`Files` section heading appears in the thread, clicking the |paperclip| no longer opens a file explorer pop-up window. Instead, clicking the |paperclip| toggles the :guilabel:`Files` section from visible to invisible in the chatter thread." msgstr "" @@ -2846,45 +2866,45 @@ msgstr "" msgid "A chatter thread with a file attached and the Attach files button added." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:354 +#: ../../content/applications/productivity/discuss/chatter.rst:366 msgid "Integrations" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:356 +#: ../../content/applications/productivity/discuss/chatter.rst:368 msgid "Beyond the standard features, additional integrations can be enabled to work with the chatter feature, specifically *WhatsApp* and *Google Translate*." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:360 +#: ../../content/applications/productivity/discuss/chatter.rst:372 msgid "Before the *WhatsApp* and *Google Translate* integrations can be used with the chatter, they **must** be configured. Step-by-step instructions on how to set-up each of these features can be found in the documentation below:" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:364 -#: ../../content/applications/productivity/discuss/chatter.rst:424 +#: ../../content/applications/productivity/discuss/chatter.rst:376 +#: ../../content/applications/productivity/discuss/chatter.rst:433 msgid ":doc:`WhatsApp <../whatsapp>`" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:365 +#: ../../content/applications/productivity/discuss/chatter.rst:377 msgid ":doc:`Google Translate <../../general/integrations/google_translate>`" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:368 +#: ../../content/applications/productivity/discuss/chatter.rst:380 #: ../../content/applications/productivity/whatsapp.rst:3 msgid "WhatsApp" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:370 +#: ../../content/applications/productivity/discuss/chatter.rst:382 msgid "*WhatsApp* is an instant messaging and voice-over-IP app that allows users to send and receive messages, as well as share content." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:374 +#: ../../content/applications/productivity/discuss/chatter.rst:386 msgid "*WhatsApp* is an Odoo Enterprise-only application that does **not** work in the Odoo Community edition. To sign up for an Odoo Enterprise edition, click here: `Odoo Free Trial `_." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:378 +#: ../../content/applications/productivity/discuss/chatter.rst:390 msgid "After *WhatsApp* has been configured and enabled within a database, a :guilabel:`WhatsApp` button is added above the chatter composer on any applicable record. If one or more approved *WhatsApp* templates are found for that model, clicking this button opens a :guilabel:`Send WhatsApp Message` pop-up window." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:384 +#: ../../content/applications/productivity/discuss/chatter.rst:396 msgid "*WhatsApp* templates **must** be approved before they can be used. See :ref:`WhatsApp templates ` for more information." msgstr "" @@ -2892,43 +2912,43 @@ msgstr "" msgid "A send WhatsApp message pop-up window." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:392 +#: ../../content/applications/productivity/discuss/chatter.rst:403 msgid "Google Translate" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:394 +#: ../../content/applications/productivity/discuss/chatter.rst:405 msgid "*Google Translate* can be used to translate user-generated text in the Odoo chatter." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:396 +#: ../../content/applications/productivity/discuss/chatter.rst:407 msgid "To enable *Google Translate* on a database, an *API key* must first :doc:`be created <../../general/integrations/google_translate>` through the `Google API Console `_." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:400 +#: ../../content/applications/productivity/discuss/chatter.rst:411 msgid "After creating the API key, navigate to the :menuselection:`Settings app --> Discuss section` and paste the key in the :guilabel:`Message Translation` field. Click :guilabel:`Save` to save the changes." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:405 +#: ../../content/applications/productivity/discuss/chatter.rst:416 msgid "Translate a chatter message" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:407 -msgid "To translate a user's text from another language, click the :icon:`fa-ellipsis-h` :guilabel:`(ellipsis)` menu to the right of the chatter. Then, select :guilabel:`Translate`. The content translates to the language set in the :doc:`user's preferences <../../general/users/language/>`." +#: ../../content/applications/productivity/discuss/chatter.rst:418 +msgid "To translate a user's text from another language, click the |ve| menu to the right of the chatter. Then, select :guilabel:`Translate`. The content translates to the language set in the :doc:`user's preferences <../../general/users/language/>`." msgstr "" #: ../../content/applications/productivity/discuss/chatter.rst:-1 msgid "alt text" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:417 +#: ../../content/applications/productivity/discuss/chatter.rst:426 msgid "Using the *Google Translate* API **requires** a current billing account with `Google `_." msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:422 +#: ../../content/applications/productivity/discuss/chatter.rst:431 msgid ":doc:`Discuss Channels <../discuss/team_communication/>`" msgstr "" -#: ../../content/applications/productivity/discuss/chatter.rst:423 +#: ../../content/applications/productivity/discuss/chatter.rst:432 msgid ":doc:`Activities <../../essentials/activities>`" msgstr "" @@ -3037,110 +3057,110 @@ msgid "Use channels for team communication" msgstr "" #: ../../content/applications/productivity/discuss/team_communication.rst:5 -msgid "Use channels in the Odoo *Discuss* app to organize discussions between individual teams, departments, projects, or any other group that requires regular communication. With channels, employees can communicate inside dedicated spaces within the Odoo database around specific topics, updates, and latest developments having to do with the organization." +msgid "Use channels in the Odoo **Discuss** app to organize discussions between individual teams, departments, projects, or any other group that requires regular communication. With channels, employees can communicate inside dedicated spaces within the Odoo database around specific topics, updates, and latest developments having to do with the organization." msgstr "" #: ../../content/applications/productivity/discuss/team_communication.rst:11 -msgid "Public and private channels" +msgid "Create a new channel" msgstr "" #: ../../content/applications/productivity/discuss/team_communication.rst:13 -msgid "A *Public* channel can be seen by everyone, while a *Private* one is only visible to users invited to it. To create a new channel, navigate to the :menuselection:`Discuss` app, and then click on the :guilabel:`➕ (plus)` icon next to the :guilabel:`Channels` heading in the left-side menu. After typing the name of the channel, two selectable options will appear: The first is a channel with a hashtag (`#`) to indicate that it is a public channel; the second option is a channel with a lock icon (`🔒`) next to it, to indicate that it is a private channel. Select the channel type that best fits the communication needs." +msgid "To create a new channel, navigate to the :menuselection:`Discuss` app, and then click on the :icon:`fa-plus` :guilabel:`(plus)` icon next to the :guilabel:`Channels` heading in the left-side menu." msgstr "" #: ../../content/applications/productivity/discuss/team_communication.rst:-1 msgid "View of discuss's sidebar and a channel being created in Odoo Discuss." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:26 -msgid "A public channel is best used when many employees need to access information (such as company announcements), whereas a private channel could be used whenever information should be limited to specific groups (such as a specific department)." +#: ../../content/applications/productivity/discuss/team_communication.rst:20 +msgid "The channel's :guilabel:`Group Name`, :guilabel:`Description`, and :guilabel:`Privacy` settings can be modified by clicking on the channel's settings, represented by a :icon:`fa-cog` :guilabel:`(gear)` icon in the left sidebar menu, next to the channel's name." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:31 -msgid "Configuration options" +#: ../../content/applications/productivity/discuss/team_communication.rst:25 +msgid "Privacy tab" msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:33 -msgid "The channel's :guilabel:`Group Name`, :guilabel:`Description`, and :guilabel:`Privacy` settings can be modified by clicking on the channel's settings, represented by a :guilabel:`⚙️ (gear)` icon in the left sidebar menu, next to the channel's name." +#: ../../content/applications/productivity/discuss/team_communication.rst:27 +msgid "To control which users can join a channel, open the channel's setting page and navigate to the :guilabel:`Privacy` tab." msgstr "" #: ../../content/applications/productivity/discuss/team_communication.rst:-1 msgid "View of a channel's settings form in Odoo Discuss." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:42 -msgid "Privacy and Members tabs" +#: ../../content/applications/productivity/discuss/team_communication.rst:33 +msgid "To limit access of the channel to a specific group, select an option from the :guilabel:`Authorized Group` drop-down menu." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:44 -msgid "Changing :guilabel:`Who can follow the group's activities?` controls which groups can have access to the channel." +#: ../../content/applications/productivity/discuss/team_communication.rst:36 +msgid "To automatically add members of a group as followers of the channel, click the :guilabel:`Auto Subscribe Groups` field, and select one or more groups from the list." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:48 -msgid "Allowing :guilabel:`Everyone` to follow a private channel lets other users view and join it, as they would a public one." +#: ../../content/applications/productivity/discuss/team_communication.rst:40 +msgid "Users who are automatically added as followers can manually edit their subscription to the channel, if necessary." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:51 -msgid "When choosing :guilabel:`Invited people only`, specify in the :guilabel:`Members` tab which members should be invited. Inviting members can also be done from the *Discuss* app's main dashboard, by selecting the channel, clicking the *add user* icon in the top-right corner of the dashboard, and finally clicking :guilabel:`Invite to Channel` once all the users have been added." +#: ../../content/applications/productivity/discuss/team_communication.rst:43 +msgid "The option to :guilabel:`Auto Subscribe Groups` automatically adds users of that particular user group as followers. In other words, while :guilabel:`Authorized Groups` limits which users can access the channel, :guilabel:`Auto Subscribe Groups` automatically adds users as members as long as they are part of a specific user group. The same is true for :guilabel:`Auto Subscribe Departments`." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:-1 -msgid "View of Discuss' option to invite members in Odoo Discuss." +#: ../../content/applications/productivity/discuss/team_communication.rst:49 +msgid "Invite members to a channel" +msgstr "" + +#: ../../content/applications/productivity/discuss/team_communication.rst:51 +msgid "To invite members to a channel, click on the :guilabel:`Members` tab. Click :guilabel:`Add a line`, then select either a :guilabel:`Partner` or :guilabel:`Guest` from the drop-down menu." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:60 -msgid "When the :guilabel:`Selected group of users` option is selected, it reveals the ability to add an :guilabel:`Authorized Group`, along with the options to :guilabel:`Auto Subscribe Groups` and :guilabel:`Auto Subscribe Departments`." +#: ../../content/applications/productivity/discuss/team_communication.rst:54 +msgid "Inviting members can also be done from the **Discuss** app's main dashboard, by selecting the channel, clicking the :icon:`fa-user-plus` :guilabel:`(add user)` icon in the top-right corner of the dashboard, and finally clicking :guilabel:`Invite to Channel` once all the users have been added." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:64 -msgid "The option to :guilabel:`Auto Subscribe Groups` automatically adds users of that particular user group as followers. In other words, while :guilabel:`Authorized Groups` limits which users can access the channel, :guilabel:`Auto Subscribe Groups` automatically adds users as members as long as they are part of a specific user group. The same is true for :guilabel:`Auto Subscribe Departments`." +#: ../../content/applications/productivity/discuss/team_communication.rst:-1 +msgid "View of Discuss' option to invite members in Odoo Discuss." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:70 +#: ../../content/applications/productivity/discuss/team_communication.rst:63 msgid "Quick search bar" msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:72 -msgid "Once at least 20 channels, direct messages, or live chat conversations (if *Live Chat* module is installed on the database) are pinned in the sidebar, a :guilabel:`Quick search…` bar is displayed. This feature is a convenient way to filter conversations and quickly find relevant communications." +#: ../../content/applications/productivity/discuss/team_communication.rst:65 +msgid "Once at least 20 channels, direct messages, or live chat conversations are pinned in the sidebar, a :guilabel:`Quick search…` bar is displayed. This feature is a convenient way to filter conversations and find relevant communications." msgstr "" #: ../../content/applications/productivity/discuss/team_communication.rst:-1 msgid "View of the Discuss' sidebar emphasizing the quick search bar in Odoo Discuss." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:81 +#: ../../content/applications/productivity/discuss/team_communication.rst:73 msgid "Finding channels" msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:83 -msgid "Click on the settings :guilabel:`⚙️ (gear)` icon, located in the left sidebar, to the right of the :guilabel:`CHANNELS` collapsible menu item. Doing so will lead to a mosaic view containing all the public channels available. Users can join or leave channels on this screen by clicking the :guilabel:`JOIN` or :guilabel:`LEAVE` buttons that appear in the channel boxes." +#: ../../content/applications/productivity/discuss/team_communication.rst:75 +msgid "To view all available channels, click on the :icon:`fa-cog` :guilabel:`(gear)` icon to the right of the :guilabel:`CHANNELS` menu. Users can join or leave channels on this screen by clicking the :guilabel:`Join` or :guilabel:`Leave` buttons that appear in the channel boxes." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:88 +#: ../../content/applications/productivity/discuss/team_communication.rst:79 msgid "There is also the ability to apply filtering criteria and save them for later use. The :guilabel:`Search...` function accepts wildcards by using the underscore character [ `_` ], and specific searches can be saved by using the :menuselection:`Favorites --> Save Current Search` drop-down menu." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:-1 -msgid "View of a channel being searched through filters in Odoo Discuss" -msgstr "" - -#: ../../content/applications/productivity/discuss/team_communication.rst:98 +#: ../../content/applications/productivity/discuss/team_communication.rst:85 msgid "Linking channel in chatter" msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:100 -msgid "Channels can be linked in the chatter (log note) of a record in Odoo. To do so, simply type: `#` and the channel name. Click or press enter on the *channel* name. Upon logging the note a link to the channel will appear. After clicking on the link a chat window with the channel conversation will pop up in the lower right corner of the screen." +#: ../../content/applications/productivity/discuss/team_communication.rst:87 +msgid "Channels can be linked in the *chatter* of a record to share relvant discussions. To do so, type: `#` and the channel name. Click or press enter on the *Channel* name. Upon logging the note a link to the channel appears. After clicking on the link a chat window with the channel conversation pops up in the lower right corner of the screen." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:105 -msgid "Users are able to contribute to this group channel (either public or member based) by typing messages in window and pressing *enter*." +#: ../../content/applications/productivity/discuss/team_communication.rst:92 +msgid "Users are able to contribute to this group channel by typing messages in window and pressing *enter*." msgstr "" #: ../../content/applications/productivity/discuss/team_communication.rst:-1 -msgid "Channel linked in chatter with the channel open on the lower right quadrant." +msgid "Channel linked in chatter." msgstr "" -#: ../../content/applications/productivity/discuss/team_communication.rst:113 +#: ../../content/applications/productivity/discuss/team_communication.rst:99 msgid ":doc:`../discuss`" msgstr "" @@ -3300,7 +3320,7 @@ msgid ":icon:`fa-cog` :guilabel:`Automations`: Create :doc:`automation rules `_." +msgid "Setting up automation rules requires activating :doc:`/applications/studio`, which may impact your `pricing plan `_." msgstr "" #: ../../content/applications/productivity/documents.rst:124 @@ -3308,7 +3328,7 @@ msgid "Files" msgstr "" #: ../../content/applications/productivity/documents.rst:126 -msgid "To upload a file, select the desired folder in the tree, click :guilabel:`New` and select :guilabel:`Upload`." +msgid "To upload a file, select the desired folder in the tree, click :guilabel:`New`, and select :guilabel:`Upload`." msgstr "" #: ../../content/applications/productivity/documents.rst:130 @@ -3348,7 +3368,7 @@ msgid "Several buttons are available in the top bar when opening a file:" msgstr "" #: ../../content/applications/productivity/documents.rst:156 -msgid "the :icon:`fa-cog` :guilabel:`Action` menu, which includes the options described below" +msgid "the :icon:`fa-cog` :guilabel:`Actions` menu, which includes the options described below" msgstr "" #: ../../content/applications/productivity/documents.rst:157 @@ -3364,7 +3384,7 @@ msgid "any :ref:`buttons defined for the folder `" msgstr "" #: ../../content/applications/productivity/documents.rst:161 -msgid "The following options are available in the :icon:`fa-cog` :guilabel:`Action` menu:" +msgid "The following options are available in the :icon:`fa-cog` :guilabel:`Actions` menu:" msgstr "" #: ../../content/applications/productivity/documents.rst:163 @@ -3412,7 +3432,7 @@ msgid "Splitting and merging PDFs" msgstr "" #: ../../content/applications/productivity/documents.rst:193 -msgid "To divide a PDF into individual or groups of pages, open the PDF and click :icon:`fa-scissors` :guilabel:`Split PDF` in the upper-right part of the document preview. Click the :icon:`fa-scissors` (:guilabel:`scissors`) icon between pages to remove a split if needed, then click :guilabel:`Split` to confirm." +msgid "To divide a PDF into individual or groups of pages, open the PDF, click the :icon:`fa-cog` :guilabel:`Actions` button, and select :icon:`fa-scissors` :guilabel:`Split PDF`. Click the :icon:`fa-scissors` (:guilabel:`scissors`) icon between pages to remove a split if needed, then click :guilabel:`Split` to confirm." msgstr "" #: ../../content/applications/productivity/documents.rst:-1 @@ -3424,11 +3444,15 @@ msgid "To merge PDF files, follow these steps:" msgstr "" #: ../../content/applications/productivity/documents.rst:203 -msgid "Navigate to the folder containing the files you want to merge, then switch to the list view and select the relevant files." +msgid "Navigate to the folder containing the files you want to merge." +msgstr "" + +#: ../../content/applications/productivity/documents.rst:204 +msgid "Hold down **Ctrl** and click the relevant files." msgstr "" #: ../../content/applications/productivity/documents.rst:205 -msgid "Click the :icon:`fa-cog` :guilabel:`Action` button and select :icon:`fa-scissors` :guilabel:`Merge PDFs`." +msgid "Click the :icon:`fa-cog` :guilabel:`Actions` button and select :icon:`fa-scissors` :guilabel:`Merge PDFs`." msgstr "" #: ../../content/applications/productivity/documents.rst:207 @@ -3472,7 +3496,7 @@ msgid "Enter a :guilabel:`Document Name` and select the person you're requesting msgstr "" #: ../../content/applications/productivity/documents.rst:229 -msgid "If needed, set a :guilabel:`Due Date In`, choose the :guilabel:`Folder` where the file should be added, add :guilabel:`Tags`, and write a :guilabel:`Message`." +msgid "If needed, set a :guilabel:`Due Date In`, edit the :guilabel:`Folder` where the file should be added, add :guilabel:`Tags`, and write a :guilabel:`Message`." msgstr "" #: ../../content/applications/productivity/documents.rst:231 @@ -3520,103 +3544,127 @@ msgid "Details panel" msgstr "" #: ../../content/applications/productivity/documents.rst:261 -msgid "To view a folder's or file's information and tags, select the folder or file, then click the :icon:`fa-info-circle` (:guilabel:`Info & Tags`) button in the upper-right corner next to the view icons." +msgid "To view a folder's or file's information and tags, select the folder or file, then click the :icon:`fa-cog` icon (for folders) or :icon:`fa-cog` :guilabel:`Actions` button (for files) and select :icon:`fa-info-circle` :guilabel:`Info & Tags`." +msgstr "" + +#: ../../content/applications/productivity/documents.rst:266 +msgid "Alternatively, for folders, you can also click the :icon:`fa-info-circle` (:guilabel:`Info & Tags`) button in the upper-right corner next to the view icons." msgstr "" -#: ../../content/applications/productivity/documents.rst:265 +#: ../../content/applications/productivity/documents.rst:269 msgid "The details panel allows the following:" msgstr "" -#: ../../content/applications/productivity/documents.rst:267 +#: ../../content/applications/productivity/documents.rst:271 msgid "Change the file's folder or the folder's name." msgstr "" -#: ../../content/applications/productivity/documents.rst:268 +#: ../../content/applications/productivity/documents.rst:272 msgid "View the file's or folder's size and the folder's item count." msgstr "" -#: ../../content/applications/productivity/documents.rst:269 -msgid "Change the file's or folder's :guilabel:`Owner` and :guilabel:`Contact`. By default, the person who creates a file or folder is set as its :guilabel:`Owner` and granted full access rights to it. To change it, select the required user from the dropdown list. The :guilabel:`Contact` is a person who only has :guilabel:`Viewer` :ref:`access rights ` to the file or folder, e.g., an existing supplier in the database." +#: ../../content/applications/productivity/documents.rst:273 +msgid "Change the file's or folder's owner and contact. By default, the person who creates a file or folder is set as its owner and granted full access rights to it. To change it, select the required user from the dropdown list. The contact is a person who only has :guilabel:`Viewer` :ref:`access rights ` to the file or folder, e.g., an existing supplier in the database." +msgstr "" + +#: ../../content/applications/productivity/documents.rst:279 +msgid "To close the details panel, click the :icon:`fa-remove` (:guilabel:`remove`) button in the upper-right corner." msgstr "" -#: ../../content/applications/productivity/documents.rst:276 -msgid "To view a file from their user profile, a user must be set as the :guilabel:`Contact` and have at least :guilabel:`Viewer` :ref:`access `." +#: ../../content/applications/productivity/documents.rst:283 +msgid "To view a file from their user profile, a user must be set as the contact and have at least :guilabel:`Viewer` :ref:`access `." msgstr "" -#: ../../content/applications/productivity/documents.rst:282 +#: ../../content/applications/productivity/documents.rst:289 msgid "Email aliases" msgstr "" -#: ../../content/applications/productivity/documents.rst:284 +#: ../../content/applications/productivity/documents.rst:291 msgid "You can use an email alias to automatically save files sent to the email alias into a specific folder. To set up an email alias for a folder, follow these steps:" msgstr "" -#: ../../content/applications/productivity/documents.rst:287 +#: ../../content/applications/productivity/documents.rst:294 +msgid "Make sure a :ref:`custom alias domain ` is configured in the :guilabel:`General Settings`." +msgstr "" + +#: ../../content/applications/productivity/documents.rst:296 msgid "Select the folder where files should be saved." msgstr "" -#: ../../content/applications/productivity/documents.rst:288 +#: ../../content/applications/productivity/documents.rst:297 msgid "Click the :icon:`fa-info-circle` (:guilabel:`Info & Tags`) in the upper-right corner next to the view icons." msgstr "" -#: ../../content/applications/productivity/documents.rst:290 -msgid "In the details panel, enter the desired :guilabel:`Email` alias and select or create the domain." +#: ../../content/applications/productivity/documents.rst:299 +msgid "In the details panel, enter the desired email alias." msgstr "" -#: ../../content/applications/productivity/documents.rst:291 +#: ../../content/applications/productivity/documents.rst:300 msgid "Optionally, specify an :guilabel:`Activity type` and assignee to create an :doc:`activity ` when a file is received via the alias." msgstr "" -#: ../../content/applications/productivity/documents.rst:293 +#: ../../content/applications/productivity/documents.rst:302 msgid "Optionally, select the :ref:`Tags ` to automatically apply to the files created through the alias." msgstr "" -#: ../../content/applications/productivity/documents.rst:297 +#: ../../content/applications/productivity/documents.rst:306 msgid ":doc:`/applications/general/email_communication/email_servers_inbound`" msgstr "" -#: ../../content/applications/productivity/documents.rst:302 +#: ../../content/applications/productivity/documents.rst:311 #: ../../content/applications/productivity/sign.rst:297 msgid "Tags" msgstr "" -#: ../../content/applications/productivity/documents.rst:304 +#: ../../content/applications/productivity/documents.rst:313 msgid "Tags help organize and categorize files, making it easier to search and filter them. To configure tags for files, go to :menuselection:`Documents --> Configuration --> Tags`. Click :guilabel:`New` to create a new tag. Enter the :guilabel:`Tag Name`, select a :guilabel:`Color`, and optionally add a :guilabel:`Tooltip` that appears when hovering over the tag." msgstr "" -#: ../../content/applications/productivity/documents.rst:309 -msgid "To add tags to a file, open the file, click the :icon:`fa-info-circle` (:guilabel:`Info & Tags`) in the upper-right corner next to the view icons, and then, in the details panel, select a tag from the dropdown list." +#: ../../content/applications/productivity/documents.rst:318 +msgid "To add tags to a file, open the file, click the :icon:`fa-cog` :guilabel:`Actions`, select :icon:`fa-info-circle` :guilabel:`Info & Tags`, and then, in the details panel, select a tag from the :guilabel:`Tags` dropdown menu (identifiable by its placeholder :guilabel:`Add tags`)." msgstr "" -#: ../../content/applications/productivity/documents.rst:314 +#: ../../content/applications/productivity/documents.rst:323 msgid ":ref:`Alias tags ` can also be used to automatically apply tags to files created through the alias." msgstr "" -#: ../../content/applications/productivity/documents.rst:320 +#: ../../content/applications/productivity/documents.rst:327 +msgid "Linked records" +msgstr "" + +#: ../../content/applications/productivity/documents.rst:329 +msgid "To link the file to a specific record, select the appropriate model from the :guilabel:`Linked to` dropdown menu (identifiable by its placeholder :guilabel:`No linked model`), then select the desired record." +msgstr "" + +#: ../../content/applications/productivity/documents.rst:334 +msgid "If :ref:`file centralization ` is enabled for a specific app, adding a file to the Documents app by uploading an attachment automatically adds the corresponding record in the :guilabel:`Linked to field` of the file." +msgstr "" + +#: ../../content/applications/productivity/documents.rst:341 msgid "Share and access rights" msgstr "" -#: ../../content/applications/productivity/documents.rst:323 +#: ../../content/applications/productivity/documents.rst:344 msgid "You can only share folders and files and edit their access rights if you have editing rights." msgstr "" -#: ../../content/applications/productivity/documents.rst:325 +#: ../../content/applications/productivity/documents.rst:346 msgid "Access rights can be set on:" msgstr "" -#: ../../content/applications/productivity/documents.rst:327 +#: ../../content/applications/productivity/documents.rst:348 msgid "folders: Select the folder, click the :icon:`fa-cog` (:guilabel:`gear`) icon, and select :guilabel:`Share`." msgstr "" -#: ../../content/applications/productivity/documents.rst:329 +#: ../../content/applications/productivity/documents.rst:350 msgid "files: Open the file and click :guilabel:`Share` in the top bar." msgstr "" -#: ../../content/applications/productivity/documents.rst:331 -msgid "In the :guilabel:`Share` pop-up, grant access to specific users or contacts by selecting their name from the dropdown menu or by adding their email address manually, then select :guilabel:`Viewer` or :guilabel:`Editor`." +#: ../../content/applications/productivity/documents.rst:352 +msgid "In the :guilabel:`Share` pop-up, click :guilabel:`Invite people` to grant access to specific users or contacts. Select their name from the dropdown menu or enter their email address in the :guilabel:`People` field, then set the :guilabel:`Role` field to :guilabel:`Viewer` or :guilabel:`Editor`." msgstr "" -#: ../../content/applications/productivity/documents.rst:336 +#: ../../content/applications/productivity/documents.rst:358 msgid "To remove a permission or set an expiration date for it, hover the mouse over the relevant contact and click the :icon:`fa-remove` (:guilabel:`remove`) or :icon:`fa-calendar` (:guilabel:`calendar`) button, respectively." msgstr "" @@ -3624,31 +3672,31 @@ msgstr "" msgid "Hover the mouse over a permission to reveal the buttons." msgstr "" -#: ../../content/applications/productivity/documents.rst:343 +#: ../../content/applications/productivity/documents.rst:365 msgid "To set :guilabel:`General access` for :guilabel:`Internal users` or :guilabel:`Anyone with the link`, select :guilabel:`Viewer`, :guilabel:`Editor`, or :guilabel:`None` (to restrict access completely). For :guilabel:`Anyone with the link`, you can further specify whether the folder or file should be :guilabel:`Discoverable` (accessible through browsing) or require that users :guilabel:`Must have the link to access` it." msgstr "" -#: ../../content/applications/productivity/documents.rst:350 +#: ../../content/applications/productivity/documents.rst:372 msgid "Public users :guilabel:`Must have the link to access` a folder or file on the portal when connecting for the first time." msgstr "" -#: ../../content/applications/productivity/documents.rst:352 +#: ../../content/applications/productivity/documents.rst:374 msgid "Each folder and file URL includes the access rights that have been set for it. When you share a folder, the person you share it with is directed to a dedicated portal where they can view the files in that folder, excluding any with restricted access." msgstr "" -#: ../../content/applications/productivity/documents.rst:357 +#: ../../content/applications/productivity/documents.rst:379 msgid ":doc:`Portal users ` can access folders and files they have permission to view or edit through the customer portal by clicking the :guilabel:`Documents` card." msgstr "" -#: ../../content/applications/productivity/documents.rst:362 +#: ../../content/applications/productivity/documents.rst:386 msgid "File digitization with AI" msgstr "" -#: ../../content/applications/productivity/documents.rst:364 +#: ../../content/applications/productivity/documents.rst:388 msgid "Files available in the Finance folder can be digitized. Select the file, click :guilabel:`Create Vendor Bill`, :guilabel:`Create Customer Invoice`, or :guilabel:`Create Customer Credit Note`, then click :guilabel:`Send for Digitization`." msgstr "" -#: ../../content/applications/productivity/documents.rst:369 +#: ../../content/applications/productivity/documents.rst:393 msgid ":doc:`AI-powered document digitization <../finance/accounting/vendor_bills/invoice_digitization>`" msgstr "" @@ -3685,544 +3733,553 @@ msgid "From scratch" msgstr "" #: ../../content/applications/productivity/knowledge.rst:31 -msgid "To create an article from scratch, click :guilabel:`New` in the top right corner or hover over the :guilabel:`Private` or :guilabel:`Workspace` category in the sidebar tree, then click the :icon:`fa-plus` :guilabel:`(plus)` icon. Start typing text or select one of the suggested options:" +msgid "To create an article from scratch, click :icon:`fa-plus` :guilabel:`New Article` in the top-left corner or hover over the :guilabel:`Private` or :guilabel:`Workspace` category in the sidebar tree, then click the :icon:`fa-plus` :guilabel:`(plus)` icon. Start typing text or select one of the suggested options:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:35 +#: ../../content/applications/productivity/knowledge.rst:36 msgid ":guilabel:`Load a Template`: Select a preconfigured template and click :guilabel:`Load Template`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:36 +#: ../../content/applications/productivity/knowledge.rst:37 msgid ":guilabel:`Build an Item Kanban`: Create items to visualize and manage them in a Kanban view." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:37 +#: ../../content/applications/productivity/knowledge.rst:38 msgid ":guilabel:`Build an Item List`: Create a structured list of items to centralize them in a single article." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:39 +#: ../../content/applications/productivity/knowledge.rst:40 msgid ":guilabel:`Build an Item Calendar`: Create a calendar view to manage and track items by date." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:40 +#: ../../content/applications/productivity/knowledge.rst:41 msgid ":guilabel:`Generate an Article with AI`: Generate content based on a prompt." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:43 +#: ../../content/applications/productivity/knowledge.rst:44 msgid "After writing the header, click or hover over :guilabel:`Untitled` in the top bar to automatically name the article after the header. This action does not apply if the article is already titled." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:48 +#: ../../content/applications/productivity/knowledge.rst:49 msgid "From a template" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:50 +#: ../../content/applications/productivity/knowledge.rst:51 msgid "To create an article from a template, follow these steps:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:52 +#: ../../content/applications/productivity/knowledge.rst:53 msgid "Click :icon:`fa-paint-brush` :guilabel:`Browse Templates` at the bottom of the sidebar tree." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:53 +#: ../../content/applications/productivity/knowledge.rst:54 msgid "Select a preferred template." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:54 +#: ../../content/applications/productivity/knowledge.rst:55 msgid "Click :guilabel:`Load Template`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:59 +#: ../../content/applications/productivity/knowledge.rst:60 msgid "Article editing" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:61 +#: ../../content/applications/productivity/knowledge.rst:62 msgid "To edit an article, select it in the sidebar tree, then edit its content and format it using the :ref:`text editor toolbar `, typing :ref:`powerbox commands `, and adding a :ref:`cover picture ` with a :ref:`title emoji `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:69 +#: ../../content/applications/productivity/knowledge.rst:70 msgid "Text editor toolbar" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:71 +#: ../../content/applications/productivity/knowledge.rst:72 msgid "To edit a word, sentence, or paragraph, select or double-click it to display the text editor toolbar and apply the desired :doc:`formatting options `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:75 -msgid "Click :icon:`fa-commenting` :guilabel:`Comment` to add a comment to the selected text." +#: ../../content/applications/productivity/knowledge.rst:76 +msgid "Click :icon:`fa-commenting-o` :guilabel:`Comment` to add a comment to the selected text." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:80 +#: ../../content/applications/productivity/knowledge.rst:81 msgid "Commands" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:82 +#: ../../content/applications/productivity/knowledge.rst:83 msgid "Type `/` to open the :ref:`powerbox ` and use a command. The following commands are exclusive to the Knowledge app:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:92 +#: ../../content/applications/productivity/knowledge.rst:93 msgid "Command" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:94 +#: ../../content/applications/productivity/knowledge.rst:95 msgid ":guilabel:`Index`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:95 +#: ../../content/applications/productivity/knowledge.rst:96 msgid "Show :ref:`nested articles `: Display the child pages of the parent article." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:97 +#: ../../content/applications/productivity/knowledge.rst:98 msgid ":guilabel:`Item Kanban`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:98 +#: ../../content/applications/productivity/knowledge.rst:99 msgid "Insert a Kanban view and create :ref:`article items `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:100 +#: ../../content/applications/productivity/knowledge.rst:101 msgid ":guilabel:`Item Cards`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:101 +#: ../../content/applications/productivity/knowledge.rst:102 msgid "Insert a Card view and create :ref:`article items `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:102 +#: ../../content/applications/productivity/knowledge.rst:103 msgid ":guilabel:`Item List`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:103 +#: ../../content/applications/productivity/knowledge.rst:104 msgid "Insert a List view and create :ref:`article items `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:104 +#: ../../content/applications/productivity/knowledge.rst:105 msgid ":guilabel:`Item Calendar`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:105 +#: ../../content/applications/productivity/knowledge.rst:106 msgid "Insert a Calendar view and create :ref:`article items `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:111 +#: ../../content/applications/productivity/knowledge.rst:112 msgid "Article items" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:113 +#: ../../content/applications/productivity/knowledge.rst:114 msgid "Article items are active building blocks within an article, allowing the addition, management, and viewing of various organized content and data." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:116 +#: ../../content/applications/productivity/knowledge.rst:117 msgid "Article items within a parent article can contain :ref:`properties `, which are shared data fields from the parent, ensuring consistent information across related items and articles." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:123 +#: ../../content/applications/productivity/knowledge.rst:124 msgid "Cover pictures" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:125 +#: ../../content/applications/productivity/knowledge.rst:126 msgid "To add a cover picture, click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon, then :guilabel:`Add Cover`. The following options enable selecting and inserting pictures from different sources:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:129 +#: ../../content/applications/productivity/knowledge.rst:130 msgid "Search the :doc:`Unsplash ` database to find a suitable picture. If the database and **Unsplash** account are associated, the cover picture is automatically selected based on the article's name." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:132 +#: ../../content/applications/productivity/knowledge.rst:133 msgid ":guilabel:`Add URL`: Copy-paste the **image address**." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:133 +#: ../../content/applications/productivity/knowledge.rst:134 msgid ":guilabel:`Upload an image`: Upload the file into the image library." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:135 +#: ../../content/applications/productivity/knowledge.rst:136 msgid "To manage the cover picture, hover the mouse over it and select the preferred option:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:137 +#: ../../content/applications/productivity/knowledge.rst:138 msgid ":guilabel:`Replace Cover` and search from the database or library, or add a different URL." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:139 +#: ../../content/applications/productivity/knowledge.rst:140 msgid ":guilabel:`Reposition` and adjust the picture before clicking :guilabel:`Save Position`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:141 -msgid ":guilabel:`Remove Cover`." +#: ../../content/applications/productivity/knowledge.rst:142 +msgid ":guilabel:`Remove`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:146 +#: ../../content/applications/productivity/knowledge.rst:147 msgid "Title emoji" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:148 +#: ../../content/applications/productivity/knowledge.rst:149 msgid "To add a title emoji to the article's name and header:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:150 +#: ../../content/applications/productivity/knowledge.rst:151 msgid "Click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon, then :guilabel:`Add Icon` to generate a random emoji. Click the emoji to select a different one." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:153 +#: ../../content/applications/productivity/knowledge.rst:154 msgid "Alternatively, click the :icon:`fa-file-text-o` :guilabel:`(page)` icon next to the article's name in the sidebar or the top bar and select the preferred emoji." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:159 +#: ../../content/applications/productivity/knowledge.rst:160 msgid "Views and links from other apps" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:161 +#: ../../content/applications/productivity/knowledge.rst:162 msgid "To insert a view or a view link into an article, follow these steps:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:163 +#: ../../content/applications/productivity/knowledge.rst:164 msgid "Go to the desired app and select the preferred view." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:164 +#: ../../content/applications/productivity/knowledge.rst:165 msgid "Click the :icon:`fa-cog` :guilabel:`(cog)` icon, then select :menuselection:`Knowledge --> Insert view in article` or :guilabel:`Insert link in article`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:166 +#: ../../content/applications/productivity/knowledge.rst:167 msgid "Choose the article to insert the view or link to." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:169 +#: ../../content/applications/productivity/knowledge.rst:170 msgid "Once the view or link is inserted:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:171 +#: ../../content/applications/productivity/knowledge.rst:172 msgid "Users without access to the view cannot see it in Knowledge, even if they can access the article." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:173 -msgid "Clicking the inserted link opens a pop-up with the view's name next to the :icon:`fa-clipboard` (:guilabel:`copy`), :icon:`fa-pencil-square-o` (:guilabel:`edit`), and :icon:`fa-chain-broken` (:guilabel:`remove`) icons. Click the name inside the pop-up to open the linked view." +#: ../../content/applications/productivity/knowledge.rst:174 +msgid "Clicking the inserted link opens a pop-up with the view's name next to the :icon:`fa-clipboard` (:guilabel:`Copy Link`), :icon:`fa-pencil-square-o` (:guilabel:`Edit Link`), and :icon:`fa-chain-broken` (:guilabel:`Remove Link`) icons. Click the name inside the pop-up to open the linked view." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:179 +#: ../../content/applications/productivity/knowledge.rst:180 msgid "Article management" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:181 +#: ../../content/applications/productivity/knowledge.rst:182 msgid "Knowledge allows for managing articles, which consists of :ref:`structuring `, :ref:`sharing `, :ref:`removing `, and :ref:`retrieving ` them." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:187 +#: ../../content/applications/productivity/knowledge.rst:188 msgid "Basic management" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:189 +#: ../../content/applications/productivity/knowledge.rst:190 msgid "Click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) icon and select one of the following actions for basic article management:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:192 +#: ../../content/applications/productivity/knowledge.rst:193 msgid ":guilabel:`Move To`: Select the article to move under a category or another article, then click :guilabel:`Move Article`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:194 +#: ../../content/applications/productivity/knowledge.rst:195 msgid ":guilabel:`Lock Content`: Lock the article to stop edits. Click :guilabel:`Unlock` to edit again." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:195 +#: ../../content/applications/productivity/knowledge.rst:196 msgid ":guilabel:`Create a Copy`: Copy the article under the :guilabel:`Private` section." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:196 +#: ../../content/applications/productivity/knowledge.rst:197 +msgid ":guilabel:`Open Version History`: Restore a previous version of the article." +msgstr "" + +#: ../../content/applications/productivity/knowledge.rst:198 msgid ":guilabel:`Export`: Open the browser's print function." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:197 -msgid ":guilabel:`Send to Trash`: Move the article to the trash." +#: ../../content/applications/productivity/knowledge.rst:199 +msgid ":guilabel:`Add to Templates`: Add the article to the list of templates." msgstr "" #: ../../content/applications/productivity/knowledge.rst:200 +msgid ":guilabel:`Send to Trash`: Move the article to the trash." +msgstr "" + +#: ../../content/applications/productivity/knowledge.rst:203 msgid "The following actions only apply to :ref:`nested articles ` and :ref:`article items `:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:204 +#: ../../content/applications/productivity/knowledge.rst:207 msgid ":guilabel:`Convert into Article Item`: Convert the nested article into an :ref:`article item `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:206 +#: ../../content/applications/productivity/knowledge.rst:209 msgid ":guilabel:`Convert into Article`: Convert the article item into a :ref:`nested article `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:210 +#: ../../content/applications/productivity/knowledge.rst:213 msgid "Move an article directly from the sidebar tree by dragging and dropping it under another article or category." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:212 -msgid "Press `CTRL` / `CMD` + `K` to open the command palette, then type `?` to search for visible articles or `$` for :ref:`hidden articles `. Alternatively, hover over the :guilabel:`Workspace` category and click the :icon:`fa-eye` (:guilabel:`eye`) icon to find hidden articles." +#: ../../content/applications/productivity/knowledge.rst:215 +msgid "Click the :icon:`fa-search` (:guilabel:`serch`) icon in the top-left corner or press `CTRL` / `CMD` + `K` to open the command palette, then type `?` to search for visible articles or `$` for :ref:`hidden articles `. Alternatively, hover over the :guilabel:`Workspace` category and click the :icon:`fa-eye` (:guilabel:`eye`) icon to find hidden articles." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:220 +#: ../../content/applications/productivity/knowledge.rst:224 msgid "Structuring" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:223 +#: ../../content/applications/productivity/knowledge.rst:227 msgid "Sidebar structure" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:225 +#: ../../content/applications/productivity/knowledge.rst:229 msgid "The sidebar structure follows a hierarchy with parent and nested articles organized within the following categories:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:228 +#: ../../content/applications/productivity/knowledge.rst:232 msgid "The :guilabel:`Favorites` category displays all articles marked as favorites." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:229 +#: ../../content/applications/productivity/knowledge.rst:233 msgid "The :guilabel:`Workspace` category displays articles accessible to all internal users." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:230 +#: ../../content/applications/productivity/knowledge.rst:234 msgid "The :guilabel:`Shared` category displays articles shared with specific users." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:231 +#: ../../content/applications/productivity/knowledge.rst:235 msgid "The :guilabel:`Private` category displays personal articles." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:234 +#: ../../content/applications/productivity/knowledge.rst:238 msgid "To mark an article as a favorite and display the :guilabel:`Favorites` category, click the :icon:`fa-star-o` (:guilabel:`star`) icon in the top-right menu." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:238 +#: ../../content/applications/productivity/knowledge.rst:242 msgid "Article structure" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:240 +#: ../../content/applications/productivity/knowledge.rst:244 msgid "Nested articles inherit their parent's :ref:`access rights `, and :ref:`properties ` are applied to a group of nested articles under the same parent." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:247 +#: ../../content/applications/productivity/knowledge.rst:251 msgid "Sharing" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:249 +#: ../../content/applications/productivity/knowledge.rst:253 msgid "Sharing an article involves configuring :ref:`access rights `, inviting :ref:`users `, providing :ref:`online access `, and determining its visibility in the :ref:`sidebar tree `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:254 +#: ../../content/applications/productivity/knowledge.rst:258 msgid "Articles listed under a category in the sidebar tree are **visible**. Articles that certain users must search for through the command palette due to restricted access rights are **hidden**." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:260 +#: ../../content/applications/productivity/knowledge.rst:264 msgid "Configure access rights" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:262 +#: ../../content/applications/productivity/knowledge.rst:266 msgid "Click :guilabel:`Share` in the top-right menu to configure access rights." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:265 +#: ../../content/applications/productivity/knowledge.rst:269 msgid "Default access rights" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:274 -#: ../../content/applications/productivity/knowledge.rst:296 +#: ../../content/applications/productivity/knowledge.rst:278 +#: ../../content/applications/productivity/knowledge.rst:300 msgid "Setting" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:276 +#: ../../content/applications/productivity/knowledge.rst:280 msgid ":guilabel:`Can edit`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:277 +#: ../../content/applications/productivity/knowledge.rst:281 msgid "Allow all internal users to edit the article." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:278 +#: ../../content/applications/productivity/knowledge.rst:282 msgid ":guilabel:`Can read`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:279 +#: ../../content/applications/productivity/knowledge.rst:283 msgid "Allow all internal users to read the article only." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:280 +#: ../../content/applications/productivity/knowledge.rst:284 msgid ":guilabel:`No access`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:281 +#: ../../content/applications/productivity/knowledge.rst:285 msgid "Prevent all users from accessing the article in the sidebar tree or searching in the command palette." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:287 +#: ../../content/applications/productivity/knowledge.rst:291 msgid "Visibility" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:298 +#: ../../content/applications/productivity/knowledge.rst:302 msgid ":guilabel:`Everyone`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:299 +#: ../../content/applications/productivity/knowledge.rst:303 msgid "The article is visible in the sidebar tree to all internal users." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:300 +#: ../../content/applications/productivity/knowledge.rst:304 msgid ":guilabel:`Members`" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:301 +#: ../../content/applications/productivity/knowledge.rst:305 msgid "The article is only visible in the sidebar tree to :ref:`invited users `, while other users can find it using the hidden article search by pressing `CTRL` / `CMD` + `K` and typing `$`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:306 +#: ../../content/applications/productivity/knowledge.rst:310 msgid "The :guilabel:`Default Access Rights` apply to all internal users except invited users; specific access rights override default access rights." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:308 +#: ../../content/applications/productivity/knowledge.rst:312 msgid "Selecting `Can edit` or `Can read` in the :guilabel:`Default Access Rights` moves the article to the :guilabel:`Workspace` category while selecting `No access` moves it to the :guilabel:`Private` category if it is not shared with an invited user." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:311 +#: ../../content/applications/productivity/knowledge.rst:315 msgid "The :guilabel:`Visibility` setting only applies to :guilabel:`Workspace` articles." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:316 +#: ../../content/applications/productivity/knowledge.rst:320 msgid "Invite specific users" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:318 +#: ../../content/applications/productivity/knowledge.rst:322 msgid "To grant specific internal or portal users access to a private article or to share a :guilabel:`Workspace` article with a portal user, follow these steps:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:321 +#: ../../content/applications/productivity/knowledge.rst:325 msgid "Click :guilabel:`Share` in the top-right menu." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:322 -#: ../../content/applications/productivity/knowledge.rst:324 +#: ../../content/applications/productivity/knowledge.rst:326 +#: ../../content/applications/productivity/knowledge.rst:328 msgid "Click :guilabel:`Invite`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:323 +#: ../../content/applications/productivity/knowledge.rst:327 msgid "Select the preferred :guilabel:`Permission` and add users in the :guilabel:`Recipients` field." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:329 +#: ../../content/applications/productivity/knowledge.rst:333 msgid "Generate article URL" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:331 -msgid "Click :guilabel:`Share` and activate the :guilabel:`Share to web` toggle to generate a URL. Click the :icon:`fa-clone` (:guilabel:`copy`) icon to copy the article's URL." +#: ../../content/applications/productivity/knowledge.rst:335 +msgid "Click :guilabel:`Share` and activate the :guilabel:`Share to web` toggle to generate a URL. Click :guilabel:`Copy Link` to copy the article's URL." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:335 +#: ../../content/applications/productivity/knowledge.rst:339 msgid "If an article contains :ref:`inserted views `, users with the URL do not see them unless they can access the inserted content." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:337 +#: ../../content/applications/productivity/knowledge.rst:341 msgid "Having the Website app is necessary to share an article's URL." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:342 +#: ../../content/applications/productivity/knowledge.rst:346 msgid "Removal" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:344 +#: ../../content/applications/productivity/knowledge.rst:348 msgid "Removing an article involves deleting or archiving it." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:347 +#: ../../content/applications/productivity/knowledge.rst:351 msgid "Delete an article" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:349 -msgid "Select an article in the sidebar tree and click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) icon, then :guilabel:`Send to Trash`. The article is moved to the trash for 30 days before being permanently deleted." +#: ../../content/applications/productivity/knowledge.rst:353 +msgid "Select an article in the sidebar tree and click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) icon, then :guilabel:`Send to Trash`. Alternatively, hold click the article and drag it to the :guilabel:`Drop here to delete this article` at the bottom left corner. The article is moved to the trash for 30 days before being permanently deleted." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:353 -msgid "To permanently delete an article, click :guilabel:`Search` in the top-left menu, select an article, and click :menuselection:`Actions --> Delete --> Delete`." +#: ../../content/applications/productivity/knowledge.rst:358 +msgid "To permanently delete an article, click :guilabel:`Articles` in the top-left menu, select an article, and click :menuselection:`Actions --> Delete --> Delete`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:357 -msgid "To restore a trashed article, click :guilabel:`Open the Trash` at the bottom of the sidebar tree, select an article, and click :guilabel:`Restore`. Alternatively, click :guilabel:`Search` in the top-left menu. In the search bar, click :menuselection:`Filters --> Trashed`. Click the article, then :guilabel:`Restore`." +#: ../../content/applications/productivity/knowledge.rst:362 +msgid "To restore a trashed article, click :guilabel:`Open the Trash` at the bottom of the sidebar tree, select an article, and click :guilabel:`Restore`. Alternatively, click :guilabel:`Articles` in the top-left menu. In the search bar, click :menuselection:`Filters --> Trashed`. Click the article, then :guilabel:`Restore`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:363 +#: ../../content/applications/productivity/knowledge.rst:368 msgid "Archive an article" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:365 -msgid "Click :guilabel:`Search`, select an article, and click :menuselection:`Actions --> Archive --> Archive`." +#: ../../content/applications/productivity/knowledge.rst:370 +msgid "Click :guilabel:`Articles`, select an article, and click :menuselection:`Actions --> Archive --> Archive`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:369 -msgid "To restore an archived article, click :guilabel:`Search`. In the search bar, click :menuselection:`Filters --> Archived`. Select the article and go to :menuselection:`Actions --> Unarchive`." +#: ../../content/applications/productivity/knowledge.rst:374 +msgid "To restore an archived article, click :guilabel:`Articles`. In the search bar, click :menuselection:`Filters --> Archived`. Select the article and go to :menuselection:`Actions --> Unarchive`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:376 +#: ../../content/applications/productivity/knowledge.rst:381 msgid "Retrieval" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:378 +#: ../../content/applications/productivity/knowledge.rst:383 msgid "Retrieving Knowledge articles consists of accessing them from various Odoo apps or restoring previous versions." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:382 +#: ../../content/applications/productivity/knowledge.rst:387 msgid "Access articles from various apps" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:384 +#: ../../content/applications/productivity/knowledge.rst:389 msgid "Knowledge articles are accessible from the :ref:`form view ` of various apps. Click the :icon:`fa-bookmark` :guilabel:`(Knowledge)` icon in the top right corner to open the command palette, then choose one of the following search methods:" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:388 +#: ../../content/applications/productivity/knowledge.rst:393 msgid ":guilabel:`Search for an article`: start typing the text to execute a semantic search that identifies relevant article information." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:390 +#: ../../content/applications/productivity/knowledge.rst:395 msgid ":guilabel:`Advanced Search`: after typing the text in the search bar, click :guilabel:`Advanced Search` to perform a parametric search with options to filter, group, or save articles." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:394 +#: ../../content/applications/productivity/knowledge.rst:399 +#: ../../content/applications/productivity/spreadsheet.rst:143 msgid "Version history" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:396 -msgid "To retrieve a previous version of an article, select it in the sidebar tree and click the :icon:`fa-history` (:guilabel:`history`) icon in the top-right menu to open the version history. Select a version and click :guilabel:`Restore history`." +#: ../../content/applications/productivity/knowledge.rst:401 +msgid "To retrieve a previous version of an article, select it in the sidebar tree and click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) icon, then the :icon:`fa-history` (:guilabel:`history`) icon to open the version history. Select a version and click :guilabel:`Restore history`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:401 +#: ../../content/applications/productivity/knowledge.rst:406 msgid "In the version history, the :guilabel:`Content` tab shows the selected version, while the :guilabel:`Comparison` tab displays the differences between the article's previous and current versions." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:408 +#: ../../content/applications/productivity/knowledge.rst:413 msgid "Properties" msgstr "" -#: ../../content/applications/productivity/knowledge.rst:410 +#: ../../content/applications/productivity/knowledge.rst:415 msgid "Properties are custom fields for storing and managing information that users with `Can edit` :ref:`access rights ` can add to :ref:`nested articles ` or :ref:`article items `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:415 +#: ../../content/applications/productivity/knowledge.rst:420 msgid "To add a property, click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) icon, then :menuselection:`Add Properties --> Add a Property`, enter a :guilabel:`Label`, and select a :guilabel:`Field Type`." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:419 +#: ../../content/applications/productivity/knowledge.rst:424 msgid "To learn more about properties and field types, go to :doc:`Property fields `." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:423 +#: ../../content/applications/productivity/knowledge.rst:428 msgid "Click outside the property field window to save a property." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:424 +#: ../../content/applications/productivity/knowledge.rst:429 msgid "To remove a property, hover over its name, click the :icon:`fa-pencil` (:guilabel:`pencil`) icon, then click :menuselection:`Delete --> Delete`. Deleting a property is permanent, and deleting all properties removes the property sidebar panel." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:429 +#: ../../content/applications/productivity/knowledge.rst:434 msgid "Hover over the property name and click the :icon:`fa-pencil` (:guilabel:`pencil`) icon to edit it or the :icon:`oi-draggable` (:guilabel:`drag handle`) icon to move it above or below another property." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:432 +#: ../../content/applications/productivity/knowledge.rst:437 msgid "Tick :guilabel:`Display in Cards` to show the properties in an :ref:`article item's view ` that is visible from a parent article." msgstr "" -#: ../../content/applications/productivity/knowledge.rst:434 +#: ../../content/applications/productivity/knowledge.rst:439 msgid "Click the :icon:`fa-cogs` (:guilabel:`cogs`) icon to hide the property sidebar panel. Exiting and returning to the article causes the panel to reappear." msgstr "" @@ -7627,24 +7684,24 @@ msgstr "" msgid "The information provided on this page is for general informational purposes only and does not constitute legal advice. While Odoo Sign complies with the Electronic Signature Law of Vietnam, users should consult with legal professionals to ensure specific document types and use cases meet all legal requirements. Compliance with additional industry-specific regulations may also be necessary." msgstr "" -#: ../../content/applications/productivity/spreadsheet.rst:6 +#: ../../content/applications/productivity/spreadsheet.rst:5 msgid "Spreadsheet" msgstr "" -#: ../../content/applications/productivity/spreadsheet.rst:17 +#: ../../content/applications/productivity/spreadsheet.rst:16 msgid "**Odoo Spreadsheet** allows you to organize, manipulate, analyze, and visualize data. It offers similar functionality to other spreadsheet solutions with the added benefit of integrating directly with your Odoo database." msgstr "" -#: ../../content/applications/productivity/spreadsheet.rst:21 -msgid "With **Odoo Spreadsheet**, you can:" +#: ../../content/applications/productivity/spreadsheet.rst:20 +msgid "With Odoo Spreadsheet, you can:" msgstr "" -#: ../../content/applications/productivity/spreadsheet.rst:23 -msgid "create spreadsheets or upload existing `.xlsx` files and edit them" +#: ../../content/applications/productivity/spreadsheet.rst:22 +msgid ":ref:`create spreadsheets ` or :ref:`upload files ` and open them with Odoo Spreadsheet" msgstr "" #: ../../content/applications/productivity/spreadsheet.rst:24 -msgid "create :doc:`templates `" +msgid ":doc:`create templates `" msgstr "" #: ../../content/applications/productivity/spreadsheet.rst:25 @@ -7671,118 +7728,346 @@ msgstr "" msgid "share files internally and externally" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:3 -msgid "Dynamic pivot tables" +#: ../../content/applications/productivity/spreadsheet.rst:33 +msgid "The Spreadsheet module is part of **Odoo Documents**." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:5 -msgid "When a pivot view from an Odoo database is inserted in a spreadsheet, it is by default a static pivot table. Each cell in a static pivot table contains an :ref:`Odoo-specific function ` that retrieves data from your database." +#: ../../content/applications/productivity/spreadsheet.rst:36 +msgid "Within a spreadsheet, opening the command palette, using the :doc:`keyboard shortcut <../../applications/essentials/keyboard_shortcuts>` `Ctrl` + `K` or `Command` + `K`, allows you to browse and execute spreadsheet commands via the keyboard, without having to navigate menus." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:-1 -msgid "Function of static pivot table cell" +#: ../../content/applications/productivity/spreadsheet.rst:41 +msgid "Odoo spreadsheets serve as the foundation for the dashboards available in **Odoo Dashboards**. On a dashboard, charts and data tables are used to display dynamic Odoo data and provide an overview of key business metrics." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:12 -msgid "When the corresponding data in your database changes, e.g., the sales related to a given quarter or an individual salesperson, the cells of your static pivot table are updated." +#: ../../content/applications/productivity/spreadsheet.rst:45 +msgid "Standard, pre-configured dashboards can be customized by editing the dashboard's underlying spreadsheet via Dashboards. Custom dashboards can also be created from scratch, starting from an Odoo spreadsheet; any subsequent modifications are performed via Dashboards." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:15 -msgid "However, a static pivot table does not expand automatically to accommodate new data, e.g., sales data for a new quarter or for a newly hired salesperson. Neither is it possible to add or manipulate dimensions (i.e., columns or rows) or measures via the pivot table properties." +#: ../../content/applications/productivity/spreadsheet.rst:52 +msgid "Create a new spreadsheet" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:20 -msgid "If you attempt to update or manipulate the properties of a pivot table that has just been inserted into a spreadsheet, an error message appears in the top right corner of the screen:" +#: ../../content/applications/productivity/spreadsheet.rst:54 +msgid "To create a new spreadsheet:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:0 -#: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Error message when trying to manipulate static pivot table" +#: ../../content/applications/productivity/spreadsheet.rst:56 +msgid "Open Odoo Documents and navigate to the section or folder in which the spreadsheet should be created." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:26 -msgid "To have more flexibility in how you can manipulate your pivot table, you can :ref:`create a dynamic pivot table ` from a static pivot table." +#: ../../content/applications/productivity/spreadsheet.rst:58 +msgid "Click :guilabel:`New` and select :guilabel:`Spreadsheet`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:32 -msgid "Create a dynamic pivot table" +#: ../../content/applications/productivity/spreadsheet.rst:61 +msgid "Alternatively, from the :icon:`fa-folder-o` :guilabel:`All` folder, click :guilabel:`New` and select :guilabel:`Spreadsheet`, then select in which :guilabel:`Folder` the spreadsheet should be created." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:34 -msgid "There are two main ways to create a dynamic pivot table from a static pivot table:" +#: ../../content/applications/productivity/spreadsheet.rst:65 +msgid "Click :guilabel:`Blank spreadsheet` or, to create a new spreadsheet using an existing :doc:`template `, select the relevant template." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:36 -msgid "**Duplicate the static pivot table from the pivot table properties**: :ref:`Open the pivot table properties `, click the :icon:`fa-cog` (:guilabel:`gear`) icon at the top right of the pane, then click :icon:`fa-clone` :guilabel:`Duplicate`." +#: ../../content/applications/productivity/spreadsheet.rst:67 +msgid "Click :guilabel:`Create`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:41 -msgid "A new data source is created and a dynamic version of the pivot table is inserted into a new sheet. The dynamic pivot table has the same styling as the original pivot table." +#: ../../content/applications/productivity/spreadsheet.rst:68 +msgid "Click on `Untitled spreadsheet` at the top of the screen to edit the name of the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:45 -msgid "When you use this method, your new dynamic pivot table gets the next available pivot ID. This means you can create multiple pivot views associated with the same model, but with distinct settings, groupings, or calculations." +#: ../../content/applications/productivity/spreadsheet.rst:71 +msgid "It is also possible to create a new spreadsheet by:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:49 -msgid "**Re-insert the dynamic pivot table from the Data menu**: On the sheet that contains your static pivot table, position your cursor in an empty cell. Click :menuselection:`Data -->` :icon:`os-insert-pivot` :menuselection:`Re-insert dynamic pivot` from the menu bar, then select the relevant pivot table." +#: ../../content/applications/productivity/spreadsheet.rst:73 +msgid "clicking :menuselection:`File -->` :icon:`os-clear-and-reload` :menuselection:`New` from the menu bar of an open spreadsheet; or" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:54 -msgid "A new, dynamic pivot table appears, with the same styling as the original pivot table." +#: ../../content/applications/productivity/spreadsheet.rst:75 +msgid ":doc:`inserting a list, pivot table, or chart from another Odoo app ` into a new spreadsheet directly from the app in question." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:57 -msgid "When you use this method, your static and dynamic pivot share the same data source, and, consequently, the same pivot ID. To avoid confusion, delete the original static pivot table." +#: ../../content/applications/productivity/spreadsheet.rst:78 +msgid "In these cases, the new spreadsheet is saved in Odoo Documents in the :icon:`fa-hdd-o` :guilabel:`My Drive` personal folder." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:61 -msgid "It is also possible to directly enter the :ref:`function ` of the dynamic pivot table in an empty cell. However, with this method, the table styling needs to be re-applied manually." +#: ../../content/applications/productivity/spreadsheet.rst:84 +msgid "Upload files" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:68 -msgid "Dynamic pivot table functions" +#: ../../content/applications/productivity/spreadsheet.rst:86 +msgid "Files in `.xlsx` or `.csv` format can be uploaded into Odoo Documents and opened with Odoo Spreadsheet. To do so:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:70 -msgid "Instead of each cell containing a unique function that retrieves data from your database, as in a :ref:`static pivot table `, a dynamic pivot table has a single function:" +#: ../../content/applications/productivity/spreadsheet.rst:89 +msgid "Open Odoo Documents and navigate to the section or folder where the spreadsheet should be saved." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:78 -#: ../../content/applications/productivity/spreadsheet/insert.rst:177 -msgid "The arguments of the function are as follows:" +#: ../../content/applications/productivity/spreadsheet.rst:90 +msgid "Click :guilabel:`New` and select :guilabel:`Upload`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:80 -#: ../../content/applications/productivity/spreadsheet/insert.rst:411 -msgid "`pivot_id`: the ID assigned when the pivot table is inserted. The first pivot table inserted in a spreadsheet is assigned pivot ID `1`, the second, pivot ID `2`, etc." +#: ../../content/applications/productivity/spreadsheet.rst:91 +msgid "Select the relevant `.xlsx` or `.csv` file and click :guilabel:`Open`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:82 -msgid "`row_count` and `column count`: the number of rows and columns respectively." +#: ../../content/applications/productivity/spreadsheet.rst:92 +msgid "Click on the uploaded file." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:83 -msgid "`include_total` and `include_column_titles`: values of `0` remove the total and column titles respectively." +#: ../../content/applications/productivity/spreadsheet.rst:93 +msgid "By default, the original file is deleted when it is opened with Odoo Spreadsheet. To preserve the original file in the same folder in Odoo Documents, disable :guilabel:`Send source file to trash`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:86 -msgid "This is an array function, which allows the pivot table to expand automatically to accommodate the results of the function." +#: ../../content/applications/productivity/spreadsheet.rst:96 +msgid "Click :guilabel:`Open with Odoo Spreadsheet`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:89 -msgid "The top-left cell contains the editable function, while clicking on any other cell reveals this formula greyed out." +#: ../../content/applications/productivity/spreadsheet.rst:98 +msgid "The file can now be fully edited in Odoo Spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:-1 -msgid "Array function of a dynamic pivot table" +#: ../../content/applications/productivity/spreadsheet.rst:103 +msgid "Manage spreadsheets" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:96 -msgid "If necessary, you can update the function of a dynamic pivot table to remove elements like the total or column titles." +#: ../../content/applications/productivity/spreadsheet.rst:105 +msgid "Users with :guilabel:`Editor` rights to a specific spreadsheet have various options for managing the spreadsheet via the :guilabel:`File` menu:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:99 +#: ../../content/applications/productivity/spreadsheet.rst:108 +msgid ":icon:`os-copy-file` :guilabel:`Make a copy`: creates a duplicate of the current spreadsheet with the same :ref:`regional settings ` (or locale)." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:110 +msgid ":icon:`os-save` :guilabel:`Save as template`: allows the current spreadsheet to be used as a :doc:`template ` for future spreadsheets." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:112 +msgid ":icon:`os-download` :guilabel:`Download`: downloads the spreadsheet in `.xlsx` format." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:115 +msgid "When you download a spreadsheet in `.xlsx` format, any spreadsheet formulas that retrieve Odoo data from your database, e.g., via an :doc:`inserted list ` or via other :doc:`Odoo-specific functions `, are converted to the values they would have returned at the moment the spreadsheet was downloaded." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:121 +msgid "Users with :guilabel:`Viewer` rights can also download a spreadsheet in `.xlsx` format." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:123 +msgid ":icon:`os-version-history` :guilabel:`See version history`: provides read-only :ref:`access to previous versions ` of the current spreadsheet, which can be named and restored if needed." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:126 +msgid ":icon:`fa-print` :guilabel:`Print`: prints a copy of the spreadsheet on a connected printer." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:127 +msgid ":icon:`os-cog` :guilabel:`Settings`: allows you to view and change the :ref:`locale ` of the current spreadsheet." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:129 +msgid ":icon:`os-add-to-dashboard` :guilabel:`Add to dashboard`: allows you to turn the current spreadsheet into a new dashboard that is accessible via Odoo Dashboards. The following fields must be completed: :guilabel:`Dashboard Name`, the :guilabel:`Dashboard Section` in which the new dashboard will be saved, and :guilabel:`Access Groups` to determine which user groups can access the dashboard." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:136 +msgid "When a spreadsheet is converted into a dashboard, the original spreadsheet is deleted from Odoo Spreadsheet. However, it is still possible to edit the dashboards's underlying spreadsheet via Odoo Dashboards." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:145 +msgid "Odoo Spreadsheet automatically saves versions of spreadsheets as changes are made, allowing users with :guilabel:`Editor` rights to browse and restore previous versions." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:148 +msgid "To access the version history of a spreadsheet, click :menuselection:`File -->` :icon:`os-version-history` :menuselection:`See version history` from the menu bar. Saved versions appear in a panel on the right of the spreadsheet. The name of the user who made the change is shown, as well as the date and time of the change." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:153 +msgid "The following actions are possible:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:155 +msgid "**View an earlier version** in read-only format by clicking on the relevant version." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:156 +msgid "**Restore an earlier version** by clicking :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` then :guilabel:`Restore this version`." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:158 +msgid "**Copy an earlier version** by clicking :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` then :menuselection:`Make a copy`. A copy of the version opens as a new spreadsheet." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:160 +msgid "**Create named versions** by clicking on the date and time of the relevant version and entering the desired name. The date and time of the version are then displayed below the new name." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:164 +msgid "When viewing an earlier, read-only version of a spreadsheet, the following actions are still possible:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:167 +msgid "Search the spreadsheet by clicking :menuselection:`Edit -->` :icon:`fa-search` :menuselection:`Find and replace` or using the shortcut `Ctrl` + `H`." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:169 +msgid "Copy an individual cell or selected area by clicking :menuselection:`Edit -->` :icon:`fa-clipboard` :menuselection:`Copy` or using the shortcut `Ctrl` + `C`." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:175 +msgid "Regional settings" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:177 +msgid "To ensure data is displayed consistently for all users, the regional settings (or locale) of a spreadsheet, are managed at spreadsheet level. This locale affects the following settings and formats:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:181 +msgid "thousand and decimal separators" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:182 +msgid "date and time formats" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:183 +msgid "first day of the week" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:185 +msgid "By default, a new spreadsheet inherits the regional settings of the user who created it. For example, any spreadsheets created by a user whose language is set to :guilabel:`French (BE) / Français (BE)` will follow Belgian French conventions." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:189 +msgid "A spreadsheet's locale can be viewed and changed at any time by a user with :guilabel:`Editor` rights. To view the locale of a spreadsheet, click :menuselection:`File -->` :icon:`os-cog` :menuselection:`Settings` from the menu bar. The :guilabel:`Spreadsheet settings` panel opens on the right of the spreadsheet. To change the locale, select the appropriate locale from the dropdown." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:195 +msgid "When you open a spreadsheet that has a different locale to that of your user profile, a blue :icon:`fa-globe` :guilabel:`(globe)` icon appears at the top right of the spreadsheet. Hovering over the icon reveals a warning message that indicates the spreadsheet locale and highlights formats that differ." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:-1 +msgid "Warning about difference between user and spreadsheet locale" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet.rst:203 +msgid "If no :icon:`fa-globe` :guilabel:`(globe)` icon is shown, this means the spreadsheet's locale is the same as that of your user profile." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:3 +msgid "Dynamic pivot tables" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:5 +msgid "When a pivot view from an Odoo database is inserted in a spreadsheet, it is by default a static pivot table. Each cell in a static pivot table contains an :ref:`Odoo-specific function ` that retrieves data from your database." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:-1 +msgid "Function of static pivot table cell" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:12 +msgid "When the corresponding data in your database changes, e.g., the sales related to a given quarter or an individual salesperson, the cells of your static pivot table are updated." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:15 +msgid "However, a static pivot table does not expand automatically to accommodate new data, e.g., sales data for a new quarter or for a newly hired salesperson. Neither is it possible to add or manipulate dimensions (i.e., columns or rows) or measures via the pivot table properties." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:20 +msgid "If you attempt to update or manipulate the properties of a pivot table that has just been inserted into a spreadsheet, an error message appears in the top right corner of the screen:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:0 +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Error message when trying to manipulate static pivot table" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:26 +msgid "To have more flexibility in how you can manipulate your pivot table, you can :ref:`create a dynamic pivot table ` from a static pivot table." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:32 +msgid "Create a dynamic pivot table" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:34 +msgid "There are two main ways to create a dynamic pivot table from a static pivot table:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:36 +msgid "**Duplicate the static pivot table from the pivot table properties**: :ref:`Open the pivot table properties `, click the :icon:`fa-cog` (:guilabel:`gear`) icon at the top right of the pane, then click :icon:`fa-clone` :guilabel:`Duplicate`." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:41 +msgid "A new data source is created and a dynamic version of the pivot table is inserted into a new sheet. The dynamic pivot table has the same styling as the original pivot table." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:45 +msgid "When you use this method, your new dynamic pivot table gets the next available pivot ID. This means you can create multiple pivot views associated with the same model, but with distinct settings, groupings, or calculations." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:49 +msgid "**Re-insert the dynamic pivot table from the Data menu**: On the sheet that contains your static pivot table, position your cursor in an empty cell. Click :menuselection:`Data -->` :icon:`os-insert-pivot` :menuselection:`Re-insert dynamic pivot` from the menu bar, then select the relevant pivot table." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:54 +msgid "A new, dynamic pivot table appears, with the same styling as the original pivot table." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:57 +msgid "When you use this method, your static and dynamic pivot share the same data source, and, consequently, the same pivot ID. To avoid confusion, delete the original static pivot table." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:61 +msgid "It is also possible to directly enter the :ref:`function ` of the dynamic pivot table in an empty cell. However, with this method, the table styling needs to be re-applied manually." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:68 +msgid "Dynamic pivot table functions" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:70 +msgid "Instead of each cell containing a unique function that retrieves data from your database, as in a :ref:`static pivot table `, a dynamic pivot table has a single function:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:78 +#: ../../content/applications/productivity/spreadsheet/insert.rst:194 +msgid "The arguments of the function are as follows:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:80 +#: ../../content/applications/productivity/spreadsheet/insert.rst:423 +msgid "`pivot_id`: the ID assigned when the pivot table is inserted. The first pivot table inserted in a spreadsheet is assigned pivot ID `1`, the second, pivot ID `2`, etc." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:82 +msgid "`row_count` and `column count`: the number of rows and columns respectively." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:83 +msgid "`include_total` and `include_column_titles`: values of `0` remove the total and column titles respectively." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:86 +msgid "This is an array function, which allows the pivot table to expand automatically to accommodate the results of the function." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:89 +msgid "The top-left cell contains the editable function, while clicking on any other cell reveals this formula greyed out." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:-1 +msgid "Array function of a dynamic pivot table" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:96 +msgid "If necessary, you can update the function of a dynamic pivot table to remove elements like the total or column titles." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:99 msgid "With the function open in the formula bar or the top-left cell of the pivot table, position your cursor after the pivot ID then type `,` to advance to the optional field you want to modify. In the example below, adding the value `0` for `[include_total]` removes both the row total and column total from the pivot table." msgstr "" @@ -7895,35 +8180,39 @@ msgstr "" msgid "choose how measures are aggregated, e.g., by :guilabel:`Sum`, :guilabel:`Average`, :guilabel:`Minimum`" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:188 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:186 +msgid "To sort the values of a dynamic pivot table by measure for a specific dimension, right-click any pivot table value, then click :icon:`os-sort-range` :guilabel:`Sort pivot` and select :guilabel:`Ascending` or :guilabel:`Descending` from the dropdown. To return to the default order, follow the same steps then select :guilabel:`No sorting` from the dropdown." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:194 msgid "Calculated measures" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:190 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:196 msgid "It is possible to add calculated measures if the desired measure did not exist in the original pivot view. For example, a calculated measure could be added to show the average revenue per order or the profit margin per product." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:194 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:200 msgid "To add a calculated measure:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:196 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:202 msgid "From the :guilabel:`Measures` section of the pivot table properties, click :guilabel:`Add`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:197 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:203 msgid "Below the scrollable list, click :icon:`os-formula` :guilabel:`Add calculated measure`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:198 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:204 msgid "Rename the calculated measure by clicking on the name and typing." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:199 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:205 msgid "Click on the line starting with `=` and enter the formula." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:202 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:208 msgid "In the below example, the average revenue per order is added by dividing the sum of the sales by the number of orders." msgstr "" @@ -7931,11 +8220,11 @@ msgstr "" msgid "Formula for a calculated measure" msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:208 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:214 msgid "Choose how the measure should be aggregated by selecting a value from the dropdown." msgstr "" -#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:211 +#: ../../content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst:217 msgid "There are advantages to using a static pivot table, for example, being able to see the functions behind individual cells. To have this possibility, select the relevant portion of your dynamic pivot table, copy it, then paste it into an empty part of the sheet. Click on any pasted cell to see the :ref:`Odoo function ` used to retrieve the data." msgstr "" @@ -8016,7 +8305,7 @@ msgid "Formulas containing functions that are not compatible with Excel are repl msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:33 -#: ../../content/applications/productivity/spreadsheet/functions.rst:840 +#: ../../content/applications/productivity/spreadsheet/functions.rst:842 msgid "Array" msgstr "" @@ -8028,22 +8317,22 @@ msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:237 #: ../../content/applications/productivity/spreadsheet/functions.rst:361 #: ../../content/applications/productivity/spreadsheet/functions.rst:393 -#: ../../content/applications/productivity/spreadsheet/functions.rst:425 -#: ../../content/applications/productivity/spreadsheet/functions.rst:469 -#: ../../content/applications/productivity/spreadsheet/functions.rst:597 -#: ../../content/applications/productivity/spreadsheet/functions.rst:639 -#: ../../content/applications/productivity/spreadsheet/functions.rst:653 -#: ../../content/applications/productivity/spreadsheet/functions.rst:773 -#: ../../content/applications/productivity/spreadsheet/functions.rst:827 -#: ../../content/applications/productivity/spreadsheet/functions.rst:846 -#: ../../content/applications/productivity/spreadsheet/functions.rst:860 -#: ../../content/applications/productivity/spreadsheet/functions.rst:886 -#: ../../content/applications/productivity/spreadsheet/functions.rst:914 -#: ../../content/applications/productivity/spreadsheet/functions.rst:930 -#: ../../content/applications/productivity/spreadsheet/functions.rst:944 -#: ../../content/applications/productivity/spreadsheet/functions.rst:960 -#: ../../content/applications/productivity/spreadsheet/functions.rst:998 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1022 +#: ../../content/applications/productivity/spreadsheet/functions.rst:427 +#: ../../content/applications/productivity/spreadsheet/functions.rst:471 +#: ../../content/applications/productivity/spreadsheet/functions.rst:599 +#: ../../content/applications/productivity/spreadsheet/functions.rst:641 +#: ../../content/applications/productivity/spreadsheet/functions.rst:655 +#: ../../content/applications/productivity/spreadsheet/functions.rst:775 +#: ../../content/applications/productivity/spreadsheet/functions.rst:829 +#: ../../content/applications/productivity/spreadsheet/functions.rst:848 +#: ../../content/applications/productivity/spreadsheet/functions.rst:862 +#: ../../content/applications/productivity/spreadsheet/functions.rst:888 +#: ../../content/applications/productivity/spreadsheet/functions.rst:916 +#: ../../content/applications/productivity/spreadsheet/functions.rst:932 +#: ../../content/applications/productivity/spreadsheet/functions.rst:946 +#: ../../content/applications/productivity/spreadsheet/functions.rst:962 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1000 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1024 msgid "Name and arguments" msgstr "" @@ -8055,32 +8344,32 @@ msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:238 #: ../../content/applications/productivity/spreadsheet/functions.rst:362 #: ../../content/applications/productivity/spreadsheet/functions.rst:394 -#: ../../content/applications/productivity/spreadsheet/functions.rst:426 -#: ../../content/applications/productivity/spreadsheet/functions.rst:470 -#: ../../content/applications/productivity/spreadsheet/functions.rst:598 -#: ../../content/applications/productivity/spreadsheet/functions.rst:640 -#: ../../content/applications/productivity/spreadsheet/functions.rst:654 -#: ../../content/applications/productivity/spreadsheet/functions.rst:774 -#: ../../content/applications/productivity/spreadsheet/functions.rst:828 -#: ../../content/applications/productivity/spreadsheet/functions.rst:847 -#: ../../content/applications/productivity/spreadsheet/functions.rst:861 -#: ../../content/applications/productivity/spreadsheet/functions.rst:887 -#: ../../content/applications/productivity/spreadsheet/functions.rst:915 -#: ../../content/applications/productivity/spreadsheet/functions.rst:931 -#: ../../content/applications/productivity/spreadsheet/functions.rst:945 -#: ../../content/applications/productivity/spreadsheet/functions.rst:961 -#: ../../content/applications/productivity/spreadsheet/functions.rst:999 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1023 +#: ../../content/applications/productivity/spreadsheet/functions.rst:428 +#: ../../content/applications/productivity/spreadsheet/functions.rst:472 +#: ../../content/applications/productivity/spreadsheet/functions.rst:600 +#: ../../content/applications/productivity/spreadsheet/functions.rst:642 +#: ../../content/applications/productivity/spreadsheet/functions.rst:656 +#: ../../content/applications/productivity/spreadsheet/functions.rst:776 +#: ../../content/applications/productivity/spreadsheet/functions.rst:830 +#: ../../content/applications/productivity/spreadsheet/functions.rst:849 +#: ../../content/applications/productivity/spreadsheet/functions.rst:863 +#: ../../content/applications/productivity/spreadsheet/functions.rst:889 +#: ../../content/applications/productivity/spreadsheet/functions.rst:917 +#: ../../content/applications/productivity/spreadsheet/functions.rst:933 +#: ../../content/applications/productivity/spreadsheet/functions.rst:947 +#: ../../content/applications/productivity/spreadsheet/functions.rst:963 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1001 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1025 msgid "Description or link" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:41 -#: ../../content/applications/productivity/spreadsheet/functions.rst:848 +#: ../../content/applications/productivity/spreadsheet/functions.rst:850 msgid "ARRAY.CONSTRAIN(input_range, rows, columns)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:42 -#: ../../content/applications/productivity/spreadsheet/functions.rst:849 +#: ../../content/applications/productivity/spreadsheet/functions.rst:851 msgid "Returns a result array constrained to a specific width and height (not compatible with Excel)" msgstr "" @@ -8109,12 +8398,12 @@ msgid "`Excel EXPAND article `_" +msgid "`Excel SORT article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:225 @@ -8665,7 +8954,7 @@ msgid "`Excel UNIQUE article `_" +msgid "`Excel SWITCH article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:413 -msgid "XOR(logical_expression1, [logical_expression2, ...])" +msgid "TRUE()" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:414 -msgid "`Excel XOR article `_" +msgid "`Excel TRUE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:419 -#: ../../content/applications/productivity/spreadsheet/functions.rst:908 -msgid "Lookup" +#: ../../content/applications/productivity/spreadsheet/functions.rst:415 +msgid "XOR(logical_expression1, [logical_expression2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:427 -msgid "ADDRESS(row, column, [absolute_relative_mode], [use_a1_notation], [sheet])" +#: ../../content/applications/productivity/spreadsheet/functions.rst:416 +msgid "`Excel XOR article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:428 -msgid "`Excel ADDRESS article `_" +#: ../../content/applications/productivity/spreadsheet/functions.rst:421 +#: ../../content/applications/productivity/spreadsheet/functions.rst:910 +msgid "Lookup" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:429 -msgid "COLUMN([cell_reference])" +msgid "ADDRESS(row, column, [absolute_relative_mode], [use_a1_notation], [sheet])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:430 -msgid "`Excel COLUMN article `_" +msgid "`Excel ADDRESS article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:431 -msgid "COLUMNS(range)" +msgid "COLUMN([cell_reference])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:432 -msgid "`Excel COLUMNS article `_" +msgid "`Excel COLUMN article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:433 -msgid "HLOOKUP(search_key, range, index, [is_sorted])" +msgid "COLUMNS(range)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:434 -msgid "`Excel HLOOKUP article `_" +msgid "`Excel COLUMNS article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:435 -msgid "INDEX(reference, row, column)" +msgid "HLOOKUP(search_key, range, index, [is_sorted])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:436 -msgid "`Excel INDEX article `_" +msgid "`Excel HLOOKUP article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:437 -msgid "INDIRECT(reference, [use_a1_notation])" +msgid "INDEX(reference, row, column)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:438 -msgid "`Excel INDIRECT article `_" +msgid "`Excel INDEX article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:439 -msgid "LOOKUP(search_key, search_array, [result_range])" +msgid "INDIRECT(reference, [use_a1_notation])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:440 -msgid "`Excel LOOKUP article `_" +msgid "`Excel INDIRECT article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:441 -msgid "MATCH(search_key, range, [search_type])" +msgid "LOOKUP(search_key, search_array, [result_range])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:442 -msgid "`Excel MATCH article `_" +msgid "`Excel LOOKUP article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:443 -msgid "OFFSET(reference, rows, cols, [height], [width])" +msgid "MATCH(search_key, range, [search_type])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:444 -msgid "`Excel OFFSET article `_" +msgid "`Excel MATCH article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:445 -#: ../../content/applications/productivity/spreadsheet/functions.rst:916 -msgid "PIVOT(pivot_id, [row_count], [include_total], [include_column_titles], [column_count])" +msgid "OFFSET(reference, rows, cols, [height], [width])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:446 -#: ../../content/applications/productivity/spreadsheet/functions.rst:917 -msgid "Get a pivot table (not compatible with Excel)" +msgid "`Excel OFFSET article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:447 #: ../../content/applications/productivity/spreadsheet/functions.rst:918 -msgid "PIVOT.HEADER(pivot_id, [domain_field_name, ...], [domain_value, ...])" +msgid "PIVOT(pivot_id, [row_count], [include_total], [include_column_titles], [column_count])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:448 #: ../../content/applications/productivity/spreadsheet/functions.rst:919 -msgid "Get the header of a pivot table (not compatible with Excel)" +msgid "Get a pivot table (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:449 #: ../../content/applications/productivity/spreadsheet/functions.rst:920 -msgid "PIVOT.VALUE(pivot_id, measure_name, [domain_field_name, ...], [domain_value, ...])" +msgid "PIVOT.HEADER(pivot_id, [domain_field_name, ...], [domain_value, ...])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:450 #: ../../content/applications/productivity/spreadsheet/functions.rst:921 -msgid "Get the value from a pivot table (not compatible with Excel)" +msgid "Get the header of a pivot table (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:451 -msgid "ROW([cell_reference])" +#: ../../content/applications/productivity/spreadsheet/functions.rst:922 +msgid "PIVOT.VALUE(pivot_id, measure_name, [domain_field_name, ...], [domain_value, ...])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:452 -msgid "`Excel ROW article `_" +#: ../../content/applications/productivity/spreadsheet/functions.rst:923 +msgid "Get the value from a pivot table (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:453 -msgid "ROWS(range)" +msgid "ROW([cell_reference])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:454 -msgid "`Excel ROWS article `_" +msgid "`Excel ROW article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:455 -msgid "VLOOKUP(search_key, range, index, [is_sorted])" +msgid "ROWS(range)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:456 -msgid "`Excel VLOOKUP article `_" +msgid "`Excel ROWS article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:457 -msgid "XLOOKUP(search_key, lookup_range, return_range, [if_not_found], [match_mode], [search_mode])" +msgid "VLOOKUP(search_key, range, index, [is_sorted])" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:458 +msgid "`Excel VLOOKUP article `_" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/functions.rst:459 +msgid "XLOOKUP(search_key, lookup_range, return_range, [if_not_found], [match_mode], [search_mode])" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/functions.rst:460 msgid "`Excel XLOOKUP article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:463 -#: ../../content/applications/productivity/spreadsheet/functions.rst:924 +#: ../../content/applications/productivity/spreadsheet/functions.rst:465 +#: ../../content/applications/productivity/spreadsheet/functions.rst:926 msgid "Math" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:471 +#: ../../content/applications/productivity/spreadsheet/functions.rst:473 msgid "ABS(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:472 +#: ../../content/applications/productivity/spreadsheet/functions.rst:474 msgid "`Excel ABS article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:473 +#: ../../content/applications/productivity/spreadsheet/functions.rst:475 msgid "ACOS(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:474 +#: ../../content/applications/productivity/spreadsheet/functions.rst:476 msgid "`Excel ACOS article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:475 +#: ../../content/applications/productivity/spreadsheet/functions.rst:477 msgid "ACOSH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:476 +#: ../../content/applications/productivity/spreadsheet/functions.rst:478 msgid "`Excel ACOSH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:477 +#: ../../content/applications/productivity/spreadsheet/functions.rst:479 msgid "ACOT(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:478 +#: ../../content/applications/productivity/spreadsheet/functions.rst:480 msgid "`Excel ACOT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:479 +#: ../../content/applications/productivity/spreadsheet/functions.rst:481 msgid "ACOTH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:480 +#: ../../content/applications/productivity/spreadsheet/functions.rst:482 msgid "`Excel ACOTH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:481 +#: ../../content/applications/productivity/spreadsheet/functions.rst:483 msgid "ASIN(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:482 +#: ../../content/applications/productivity/spreadsheet/functions.rst:484 msgid "`Excel ASIN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:483 +#: ../../content/applications/productivity/spreadsheet/functions.rst:485 msgid "ASINH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:484 +#: ../../content/applications/productivity/spreadsheet/functions.rst:486 msgid "`Excel ASINH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:485 +#: ../../content/applications/productivity/spreadsheet/functions.rst:487 msgid "ATAN(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:486 +#: ../../content/applications/productivity/spreadsheet/functions.rst:488 msgid "`Excel ATAN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:487 +#: ../../content/applications/productivity/spreadsheet/functions.rst:489 msgid "ATAN2(x, y)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:488 +#: ../../content/applications/productivity/spreadsheet/functions.rst:490 msgid "`Excel ATAN2 article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:489 +#: ../../content/applications/productivity/spreadsheet/functions.rst:491 msgid "ATANH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:490 +#: ../../content/applications/productivity/spreadsheet/functions.rst:492 msgid "`Excel ATANH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:491 +#: ../../content/applications/productivity/spreadsheet/functions.rst:493 msgid "CEILING(value, [factor])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:492 +#: ../../content/applications/productivity/spreadsheet/functions.rst:494 msgid "`Excel CEILING article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:493 +#: ../../content/applications/productivity/spreadsheet/functions.rst:495 msgid "CEILING.MATH(number, [significance], [mode])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:494 +#: ../../content/applications/productivity/spreadsheet/functions.rst:496 msgid "`Excel CEILING.MATH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:495 +#: ../../content/applications/productivity/spreadsheet/functions.rst:497 msgid "CEILING.PRECISE(number, [significance])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:496 +#: ../../content/applications/productivity/spreadsheet/functions.rst:498 msgid "`Excel CEILING.PRECISE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:497 +#: ../../content/applications/productivity/spreadsheet/functions.rst:499 msgid "COS(angle)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:498 +#: ../../content/applications/productivity/spreadsheet/functions.rst:500 msgid "`Excel COS article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:499 +#: ../../content/applications/productivity/spreadsheet/functions.rst:501 msgid "COSH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:500 +#: ../../content/applications/productivity/spreadsheet/functions.rst:502 msgid "`Excel COSH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:501 +#: ../../content/applications/productivity/spreadsheet/functions.rst:503 msgid "COT(angle)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:502 +#: ../../content/applications/productivity/spreadsheet/functions.rst:504 msgid "`Excel COT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:503 +#: ../../content/applications/productivity/spreadsheet/functions.rst:505 msgid "COTH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:504 +#: ../../content/applications/productivity/spreadsheet/functions.rst:506 msgid "`Excel COTH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:505 +#: ../../content/applications/productivity/spreadsheet/functions.rst:507 msgid "COUNTBLANK(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:506 +#: ../../content/applications/productivity/spreadsheet/functions.rst:508 msgid "`Excel COUNTBLANK article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:507 +#: ../../content/applications/productivity/spreadsheet/functions.rst:509 msgid "COUNTIF(range, criterion)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:508 +#: ../../content/applications/productivity/spreadsheet/functions.rst:510 msgid "`Excel COUNTIF article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:509 +#: ../../content/applications/productivity/spreadsheet/functions.rst:511 msgid "COUNTIFS(criteria_range1, criterion1, [criteria_range2, ...], [criterion2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:510 +#: ../../content/applications/productivity/spreadsheet/functions.rst:512 msgid "`Excel COUNTIFS article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:511 +#: ../../content/applications/productivity/spreadsheet/functions.rst:513 msgid "CSC(angle)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:512 +#: ../../content/applications/productivity/spreadsheet/functions.rst:514 msgid "`Excel CSC article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:513 +#: ../../content/applications/productivity/spreadsheet/functions.rst:515 msgid "CSCH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:514 +#: ../../content/applications/productivity/spreadsheet/functions.rst:516 msgid "`Excel CSCH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:515 +#: ../../content/applications/productivity/spreadsheet/functions.rst:517 msgid "DECIMAL(value, base)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:516 +#: ../../content/applications/productivity/spreadsheet/functions.rst:518 msgid "`Excel DECIMAL article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:517 +#: ../../content/applications/productivity/spreadsheet/functions.rst:519 msgid "DEGREES(angle)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:518 +#: ../../content/applications/productivity/spreadsheet/functions.rst:520 msgid "`Excel DEGREES article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:519 +#: ../../content/applications/productivity/spreadsheet/functions.rst:521 msgid "EXP(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:520 +#: ../../content/applications/productivity/spreadsheet/functions.rst:522 msgid "`Excel EXP article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:521 +#: ../../content/applications/productivity/spreadsheet/functions.rst:523 msgid "FLOOR(value, [factor])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:522 +#: ../../content/applications/productivity/spreadsheet/functions.rst:524 msgid "`Excel FLOOR article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:523 +#: ../../content/applications/productivity/spreadsheet/functions.rst:525 msgid "FLOOR.MATH(number, [significance], [mode])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:524 +#: ../../content/applications/productivity/spreadsheet/functions.rst:526 msgid "`Excel FLOOR.MATH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:525 +#: ../../content/applications/productivity/spreadsheet/functions.rst:527 msgid "FLOOR.PRECISE(number, [significance])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:526 +#: ../../content/applications/productivity/spreadsheet/functions.rst:528 msgid "`Excel FLOOR.PRECISE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:527 +#: ../../content/applications/productivity/spreadsheet/functions.rst:529 msgid "INT(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:528 +#: ../../content/applications/productivity/spreadsheet/functions.rst:530 msgid "`Excel INT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:529 +#: ../../content/applications/productivity/spreadsheet/functions.rst:531 msgid "ISEVEN(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:530 +#: ../../content/applications/productivity/spreadsheet/functions.rst:532 msgid "`Excel ISEVEN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:531 +#: ../../content/applications/productivity/spreadsheet/functions.rst:533 msgid "ISO.CEILING(number, [significance])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:532 +#: ../../content/applications/productivity/spreadsheet/functions.rst:534 msgid "`Excel ISO.CEILING article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:533 +#: ../../content/applications/productivity/spreadsheet/functions.rst:535 msgid "ISODD(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:534 +#: ../../content/applications/productivity/spreadsheet/functions.rst:536 msgid "`Excel ISODD article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:535 +#: ../../content/applications/productivity/spreadsheet/functions.rst:537 msgid "LN(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:536 +#: ../../content/applications/productivity/spreadsheet/functions.rst:538 msgid "`Excel LN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:537 +#: ../../content/applications/productivity/spreadsheet/functions.rst:539 msgid "LOG(value, [base])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:538 +#: ../../content/applications/productivity/spreadsheet/functions.rst:540 msgid "Get the logarithm of a number for a given base (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:539 +#: ../../content/applications/productivity/spreadsheet/functions.rst:541 msgid "MOD(dividend, divisor)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:540 +#: ../../content/applications/productivity/spreadsheet/functions.rst:542 msgid "`Excel MOD article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:541 +#: ../../content/applications/productivity/spreadsheet/functions.rst:543 msgid "MUNIT(dimension)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:542 +#: ../../content/applications/productivity/spreadsheet/functions.rst:544 msgid "`Excel MUNIT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:543 +#: ../../content/applications/productivity/spreadsheet/functions.rst:545 msgid "ODD(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:544 +#: ../../content/applications/productivity/spreadsheet/functions.rst:546 msgid "`Excel ODD article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:545 +#: ../../content/applications/productivity/spreadsheet/functions.rst:547 msgid "PI()" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:546 +#: ../../content/applications/productivity/spreadsheet/functions.rst:548 msgid "`Excel PI article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:547 +#: ../../content/applications/productivity/spreadsheet/functions.rst:549 msgid "POWER(base, exponent)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:548 +#: ../../content/applications/productivity/spreadsheet/functions.rst:550 msgid "`Excel POWER article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:549 +#: ../../content/applications/productivity/spreadsheet/functions.rst:551 msgid "PRODUCT(factor1, [factor2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:550 +#: ../../content/applications/productivity/spreadsheet/functions.rst:552 msgid "`Excel PRODUCT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:551 +#: ../../content/applications/productivity/spreadsheet/functions.rst:553 msgid "RAND()" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:552 +#: ../../content/applications/productivity/spreadsheet/functions.rst:554 msgid "`Excel RAND article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:553 +#: ../../content/applications/productivity/spreadsheet/functions.rst:555 msgid "RANDARRAY([rows], [columns], [min], [max], [whole_number])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:554 +#: ../../content/applications/productivity/spreadsheet/functions.rst:556 msgid "`Excel RANDARRAY article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:555 +#: ../../content/applications/productivity/spreadsheet/functions.rst:557 msgid "RANDBETWEEN(low, high)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:556 +#: ../../content/applications/productivity/spreadsheet/functions.rst:558 msgid "`Excel RANDBETWEEN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:557 +#: ../../content/applications/productivity/spreadsheet/functions.rst:559 msgid "ROUND(value, [places])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:558 +#: ../../content/applications/productivity/spreadsheet/functions.rst:560 msgid "`Excel ROUND article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:559 +#: ../../content/applications/productivity/spreadsheet/functions.rst:561 msgid "ROUNDDOWN(value, [places])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:560 +#: ../../content/applications/productivity/spreadsheet/functions.rst:562 msgid "`Excel ROUNDDOWN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:561 +#: ../../content/applications/productivity/spreadsheet/functions.rst:563 msgid "ROUNDUP(value, [places])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:562 +#: ../../content/applications/productivity/spreadsheet/functions.rst:564 msgid "`Excel ROUNDUP article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:563 +#: ../../content/applications/productivity/spreadsheet/functions.rst:565 msgid "SEC(angle)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:564 +#: ../../content/applications/productivity/spreadsheet/functions.rst:566 msgid "`Excel SEC article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:565 +#: ../../content/applications/productivity/spreadsheet/functions.rst:567 msgid "SECH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:566 +#: ../../content/applications/productivity/spreadsheet/functions.rst:568 msgid "`Excel SECH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:567 +#: ../../content/applications/productivity/spreadsheet/functions.rst:569 msgid "SEQUENCE(rows, [columns], [start], ][step])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:568 -msgid "`Excel SEQUENCE article `_" +#: ../../content/applications/productivity/spreadsheet/functions.rst:570 +msgid "`Excel SEQUENCE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:569 +#: ../../content/applications/productivity/spreadsheet/functions.rst:571 msgid "SIN(angle)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:570 +#: ../../content/applications/productivity/spreadsheet/functions.rst:572 msgid "`Excel SIN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:571 +#: ../../content/applications/productivity/spreadsheet/functions.rst:573 msgid "SINH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:572 +#: ../../content/applications/productivity/spreadsheet/functions.rst:574 msgid "`Excel SINH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:573 +#: ../../content/applications/productivity/spreadsheet/functions.rst:575 msgid "SQRT(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:574 +#: ../../content/applications/productivity/spreadsheet/functions.rst:576 msgid "`Excel SQRT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:575 +#: ../../content/applications/productivity/spreadsheet/functions.rst:577 msgid "SUM(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:576 +#: ../../content/applications/productivity/spreadsheet/functions.rst:578 msgid "`Excel SUM article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:577 +#: ../../content/applications/productivity/spreadsheet/functions.rst:579 msgid "SUMIF(criteria_range, criterion, [sum_range])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:578 +#: ../../content/applications/productivity/spreadsheet/functions.rst:580 msgid "`Excel SUMIF article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:579 +#: ../../content/applications/productivity/spreadsheet/functions.rst:581 msgid "SUMIFS(sum_range, criteria_range1, criterion1, [criteria_range2, ...], [criterion2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:580 +#: ../../content/applications/productivity/spreadsheet/functions.rst:582 msgid "`Excel SUMIFS article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:581 +#: ../../content/applications/productivity/spreadsheet/functions.rst:583 msgid "TAN(angle)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:582 +#: ../../content/applications/productivity/spreadsheet/functions.rst:584 msgid "`Excel TAN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:583 +#: ../../content/applications/productivity/spreadsheet/functions.rst:585 msgid "TANH(value)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:584 +#: ../../content/applications/productivity/spreadsheet/functions.rst:586 msgid "`Excel TANH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:585 +#: ../../content/applications/productivity/spreadsheet/functions.rst:587 msgid "TRUNC(value, [places])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:586 +#: ../../content/applications/productivity/spreadsheet/functions.rst:588 msgid "`Excel TRUNC article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:591 -#: ../../content/applications/productivity/spreadsheet/functions.rst:954 +#: ../../content/applications/productivity/spreadsheet/functions.rst:593 +#: ../../content/applications/productivity/spreadsheet/functions.rst:956 msgid "Operators" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:599 -#: ../../content/applications/productivity/spreadsheet/functions.rst:962 -msgid "ADD(value1, value2)" -msgstr "" - -#: ../../content/applications/productivity/spreadsheet/functions.rst:600 -#: ../../content/applications/productivity/spreadsheet/functions.rst:963 -msgid "Sum of two numbers (not compatible with Excel)" -msgstr "" - #: ../../content/applications/productivity/spreadsheet/functions.rst:601 -msgid "CONCAT(value1, value2)" +#: ../../content/applications/productivity/spreadsheet/functions.rst:964 +msgid "ADD(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:602 -msgid "`Excel CONCAT article `_" +#: ../../content/applications/productivity/spreadsheet/functions.rst:965 +msgid "Sum of two numbers (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:603 -#: ../../content/applications/productivity/spreadsheet/functions.rst:964 -msgid "DIVIDE(dividend, divisor)" +msgid "CONCAT(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:604 -#: ../../content/applications/productivity/spreadsheet/functions.rst:965 -msgid "One number divided by another (not compatible with Excel)" +msgid "`Excel CONCAT article `_" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:605 #: ../../content/applications/productivity/spreadsheet/functions.rst:966 -msgid "EQ(value1, value2)" +msgid "DIVIDE(dividend, divisor)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:606 #: ../../content/applications/productivity/spreadsheet/functions.rst:967 -msgid "Equal (not compatible with Excel)" +msgid "One number divided by another (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:607 #: ../../content/applications/productivity/spreadsheet/functions.rst:968 -msgid "GT(value1, value2)" +msgid "EQ(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:608 #: ../../content/applications/productivity/spreadsheet/functions.rst:969 -msgid "Strictly greater than (not compatible with Excel)" +msgid "Equal (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:609 #: ../../content/applications/productivity/spreadsheet/functions.rst:970 -msgid "GTE(value1, value2)" +msgid "GT(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:610 #: ../../content/applications/productivity/spreadsheet/functions.rst:971 -msgid "Greater than or equal to (not compatible with Excel)" +msgid "Strictly greater than (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:611 #: ../../content/applications/productivity/spreadsheet/functions.rst:972 -msgid "LT(value1, value2)" +msgid "GTE(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:612 #: ../../content/applications/productivity/spreadsheet/functions.rst:973 -msgid "Less than (not compatible with Excel)" +msgid "Greater than or equal to (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:613 #: ../../content/applications/productivity/spreadsheet/functions.rst:974 -msgid "LTE(value1, value2)" +msgid "LT(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:614 #: ../../content/applications/productivity/spreadsheet/functions.rst:975 -msgid "Less than or equal to (not compatible with Excel)" +msgid "Less than (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:615 #: ../../content/applications/productivity/spreadsheet/functions.rst:976 -msgid "MINUS(value1, value2)" +msgid "LTE(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:616 #: ../../content/applications/productivity/spreadsheet/functions.rst:977 -msgid "Difference of two numbers (not compatible with Excel)" +msgid "Less than or equal to (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:617 #: ../../content/applications/productivity/spreadsheet/functions.rst:978 -msgid "MULTIPLY(factor1, factor2)" +msgid "MINUS(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:618 #: ../../content/applications/productivity/spreadsheet/functions.rst:979 -msgid "Product of two numbers (not compatible with Excel)" +msgid "Difference of two numbers (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:619 #: ../../content/applications/productivity/spreadsheet/functions.rst:980 -msgid "NE(value1, value2)" +msgid "MULTIPLY(factor1, factor2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:620 #: ../../content/applications/productivity/spreadsheet/functions.rst:981 -msgid "Not equal (not compatible with Excel)" +msgid "Product of two numbers (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:621 #: ../../content/applications/productivity/spreadsheet/functions.rst:982 -msgid "POW(base, exponent)" +msgid "NE(value1, value2)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:622 #: ../../content/applications/productivity/spreadsheet/functions.rst:983 -msgid "A number raised to a power (not compatible with Excel)" +msgid "Not equal (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:623 #: ../../content/applications/productivity/spreadsheet/functions.rst:984 -msgid "UMINUS(value)" +msgid "POW(base, exponent)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:624 #: ../../content/applications/productivity/spreadsheet/functions.rst:985 -msgid "A number with the sign reversed (not compatible with Excel)" +msgid "A number raised to a power (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:625 #: ../../content/applications/productivity/spreadsheet/functions.rst:986 -msgid "UNARY.PERCENT(percentage)" +msgid "UMINUS(value)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:626 #: ../../content/applications/productivity/spreadsheet/functions.rst:987 -msgid "Value interpreted as a percentage (not compatible with Excel)" +msgid "A number with the sign reversed (not compatible with Excel)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:627 #: ../../content/applications/productivity/spreadsheet/functions.rst:988 -msgid "UPLUS(value)" +msgid "UNARY.PERCENT(percentage)" msgstr "" #: ../../content/applications/productivity/spreadsheet/functions.rst:628 #: ../../content/applications/productivity/spreadsheet/functions.rst:989 +msgid "Value interpreted as a percentage (not compatible with Excel)" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/functions.rst:629 +#: ../../content/applications/productivity/spreadsheet/functions.rst:990 +msgid "UPLUS(value)" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/functions.rst:630 +#: ../../content/applications/productivity/spreadsheet/functions.rst:991 msgid "A specified number, unchanged (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:633 +#: ../../content/applications/productivity/spreadsheet/functions.rst:635 msgid "Parser" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:641 +#: ../../content/applications/productivity/spreadsheet/functions.rst:643 msgid "CONVERT(number, from_unit, to_unit)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:642 -msgid "`Excel CONVERT article `_" +#: ../../content/applications/productivity/spreadsheet/functions.rst:644 +msgid "`Excel CONVERT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:647 -#: ../../content/applications/productivity/spreadsheet/functions.rst:992 +#: ../../content/applications/productivity/spreadsheet/functions.rst:649 +#: ../../content/applications/productivity/spreadsheet/functions.rst:994 msgid "Statistical" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:655 +#: ../../content/applications/productivity/spreadsheet/functions.rst:657 msgid "AVEDEV(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:656 +#: ../../content/applications/productivity/spreadsheet/functions.rst:658 msgid "`Excel AVEDEV article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:657 +#: ../../content/applications/productivity/spreadsheet/functions.rst:659 msgid "AVERAGE(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:658 +#: ../../content/applications/productivity/spreadsheet/functions.rst:660 msgid "`Excel AVERAGE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:659 +#: ../../content/applications/productivity/spreadsheet/functions.rst:661 msgid "AVERAGEA(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:660 +#: ../../content/applications/productivity/spreadsheet/functions.rst:662 msgid "`Excel AVERAGEA article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:661 +#: ../../content/applications/productivity/spreadsheet/functions.rst:663 msgid "AVERAGEIF(criteria_range, criterion, [average_range])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:662 +#: ../../content/applications/productivity/spreadsheet/functions.rst:664 msgid "`Excel AVERAGEIF article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:663 +#: ../../content/applications/productivity/spreadsheet/functions.rst:665 msgid "AVERAGEIFS(average_range, criteria_range1, criterion1, [criteria_range2, ...], [criterion2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:664 +#: ../../content/applications/productivity/spreadsheet/functions.rst:666 msgid "`Excel AVERAGEIFS article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:665 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1000 +#: ../../content/applications/productivity/spreadsheet/functions.rst:667 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1002 msgid "AVERAGE.WEIGHTED(values, weights, [additional_values, ...], [additional_weights, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:666 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1001 +#: ../../content/applications/productivity/spreadsheet/functions.rst:668 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1003 msgid "Weighted average (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:667 +#: ../../content/applications/productivity/spreadsheet/functions.rst:669 msgid "CORREL(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:668 +#: ../../content/applications/productivity/spreadsheet/functions.rst:670 msgid "`Excel CORREL article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:669 +#: ../../content/applications/productivity/spreadsheet/functions.rst:671 msgid "COUNT(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:670 +#: ../../content/applications/productivity/spreadsheet/functions.rst:672 msgid "`Excel COUNT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:671 +#: ../../content/applications/productivity/spreadsheet/functions.rst:673 msgid "COUNTA(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:672 +#: ../../content/applications/productivity/spreadsheet/functions.rst:674 msgid "`Excel COUNTA article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:673 +#: ../../content/applications/productivity/spreadsheet/functions.rst:675 msgid "COVAR(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:674 +#: ../../content/applications/productivity/spreadsheet/functions.rst:676 msgid "`Excel COVAR article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:675 +#: ../../content/applications/productivity/spreadsheet/functions.rst:677 msgid "COVARIANCE.P(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:676 +#: ../../content/applications/productivity/spreadsheet/functions.rst:678 msgid "`Excel COVARIANCE.P article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:677 +#: ../../content/applications/productivity/spreadsheet/functions.rst:679 msgid "COVARIANCE.S(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:678 +#: ../../content/applications/productivity/spreadsheet/functions.rst:680 msgid "`Excel COVARIANCE.S article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:679 +#: ../../content/applications/productivity/spreadsheet/functions.rst:681 msgid "FORECAST(x, data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:680 +#: ../../content/applications/productivity/spreadsheet/functions.rst:682 msgid "`Excel FORECAST article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:681 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1002 +#: ../../content/applications/productivity/spreadsheet/functions.rst:683 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1004 msgid "GROWTH(known_data_y, [known_data_x], [new_data_x], [b])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:682 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1003 +#: ../../content/applications/productivity/spreadsheet/functions.rst:684 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1005 msgid "Fits points to exponential growth trend (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:683 +#: ../../content/applications/productivity/spreadsheet/functions.rst:685 msgid "INTERCEPT(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:684 +#: ../../content/applications/productivity/spreadsheet/functions.rst:686 msgid "`Excel INTERCEPT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:685 +#: ../../content/applications/productivity/spreadsheet/functions.rst:687 msgid "LARGE(data, n)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:686 +#: ../../content/applications/productivity/spreadsheet/functions.rst:688 msgid "`Excel LARGE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:687 +#: ../../content/applications/productivity/spreadsheet/functions.rst:689 msgid "LINEST(data_y, [data_x], [calculate_b], [verbose])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:688 +#: ../../content/applications/productivity/spreadsheet/functions.rst:690 msgid "`Excel LINEST article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:689 +#: ../../content/applications/productivity/spreadsheet/functions.rst:691 msgid "LOGEST(data_y, [data_x], [calculate_b], [verbose])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:690 +#: ../../content/applications/productivity/spreadsheet/functions.rst:692 msgid "`Excel LOGEST article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:691 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1004 +#: ../../content/applications/productivity/spreadsheet/functions.rst:693 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1006 msgid "MATTHEWS(data_x, data_y)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:692 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1005 +#: ../../content/applications/productivity/spreadsheet/functions.rst:694 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1007 msgid "Compute the Matthews correlation coefficient of a dataset (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:693 +#: ../../content/applications/productivity/spreadsheet/functions.rst:695 msgid "MAX(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:694 +#: ../../content/applications/productivity/spreadsheet/functions.rst:696 msgid "`Excel MAX article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:695 +#: ../../content/applications/productivity/spreadsheet/functions.rst:697 msgid "MAXA(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:696 +#: ../../content/applications/productivity/spreadsheet/functions.rst:698 msgid "`Excel MAXA article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:697 +#: ../../content/applications/productivity/spreadsheet/functions.rst:699 msgid "MAXIFS(range, criteria_range1, criterion1, [criteria_range2, ...], [criterion2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:698 +#: ../../content/applications/productivity/spreadsheet/functions.rst:700 msgid "`Excel MAXIFS article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:699 +#: ../../content/applications/productivity/spreadsheet/functions.rst:701 msgid "MEDIAN(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:700 +#: ../../content/applications/productivity/spreadsheet/functions.rst:702 msgid "`Excel MEDIAN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:701 +#: ../../content/applications/productivity/spreadsheet/functions.rst:703 msgid "MIN(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:702 +#: ../../content/applications/productivity/spreadsheet/functions.rst:704 msgid "`Excel MIN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:703 +#: ../../content/applications/productivity/spreadsheet/functions.rst:705 msgid "MINA(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:704 +#: ../../content/applications/productivity/spreadsheet/functions.rst:706 msgid "`Excel MINA article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:705 +#: ../../content/applications/productivity/spreadsheet/functions.rst:707 msgid "MINIFS(range, criteria_range1, criterion1, [criteria_range2, ...], [criterion2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:706 +#: ../../content/applications/productivity/spreadsheet/functions.rst:708 msgid "`Excel MINIFS article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:707 +#: ../../content/applications/productivity/spreadsheet/functions.rst:709 msgid "PEARSON(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:708 +#: ../../content/applications/productivity/spreadsheet/functions.rst:710 msgid "`Excel PEARSON article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:709 +#: ../../content/applications/productivity/spreadsheet/functions.rst:711 msgid "PERCENTILE(data, percentile)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:710 +#: ../../content/applications/productivity/spreadsheet/functions.rst:712 msgid "`Excel PERCENTILE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:711 +#: ../../content/applications/productivity/spreadsheet/functions.rst:713 msgid "PERCENTILE.EXC(data, percentile)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:712 +#: ../../content/applications/productivity/spreadsheet/functions.rst:714 msgid "`Excel PERCENTILE.EXC article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:713 +#: ../../content/applications/productivity/spreadsheet/functions.rst:715 msgid "PERCENTILE.INC(data, percentile)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:714 +#: ../../content/applications/productivity/spreadsheet/functions.rst:716 msgid "`Excel PERCENTILE.INC article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:715 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1006 +#: ../../content/applications/productivity/spreadsheet/functions.rst:717 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1008 msgid "POLYFIT.COEFFS(data_y, data_x, order, [intercept])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:716 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1007 +#: ../../content/applications/productivity/spreadsheet/functions.rst:718 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1009 msgid "Compute the coefficients of polynomial regression of the dataset (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:717 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1008 +#: ../../content/applications/productivity/spreadsheet/functions.rst:719 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1010 msgid "POLYFIT.FORECAST(x, data_y, data_x, order, [intercept])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:718 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1009 +#: ../../content/applications/productivity/spreadsheet/functions.rst:720 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1011 msgid "Predict value by computing a polynomial regression of the dataset (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:719 +#: ../../content/applications/productivity/spreadsheet/functions.rst:721 msgid "QUARTILE(data, quartile_number)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:720 +#: ../../content/applications/productivity/spreadsheet/functions.rst:722 msgid "`Excel QUARTILE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:721 +#: ../../content/applications/productivity/spreadsheet/functions.rst:723 msgid "QUARTILE.EXC(data, quartile_number)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:722 +#: ../../content/applications/productivity/spreadsheet/functions.rst:724 msgid "`Excel QUARTILE.EXC article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:723 +#: ../../content/applications/productivity/spreadsheet/functions.rst:725 msgid "QUARTILE.INC(data, quartile_number)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:724 +#: ../../content/applications/productivity/spreadsheet/functions.rst:726 msgid "`Excel QUARTILE.INC article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:725 +#: ../../content/applications/productivity/spreadsheet/functions.rst:727 msgid "RANK(value, data, [is_ascending])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:726 +#: ../../content/applications/productivity/spreadsheet/functions.rst:728 msgid "`Excel RANK article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:727 +#: ../../content/applications/productivity/spreadsheet/functions.rst:729 msgid "RSQ(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:728 +#: ../../content/applications/productivity/spreadsheet/functions.rst:730 msgid "`Excel RSQ article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:729 +#: ../../content/applications/productivity/spreadsheet/functions.rst:731 msgid "SLOPE(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:730 +#: ../../content/applications/productivity/spreadsheet/functions.rst:732 msgid "`Excel SLOPE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:731 +#: ../../content/applications/productivity/spreadsheet/functions.rst:733 msgid "SMALL(data, n)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:732 +#: ../../content/applications/productivity/spreadsheet/functions.rst:734 msgid "`Excel SMALL article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:733 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1010 +#: ../../content/applications/productivity/spreadsheet/functions.rst:735 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1012 msgid "SPEARMAN(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:734 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1011 +#: ../../content/applications/productivity/spreadsheet/functions.rst:736 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1013 msgid "Compute the Spearman rank correlation coefficient of a dataset (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:735 +#: ../../content/applications/productivity/spreadsheet/functions.rst:737 msgid "STDEV(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:736 +#: ../../content/applications/productivity/spreadsheet/functions.rst:738 msgid "`Excel STDEV article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:737 +#: ../../content/applications/productivity/spreadsheet/functions.rst:739 msgid "STDEV.P(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:738 +#: ../../content/applications/productivity/spreadsheet/functions.rst:740 msgid "`Excel STDEV.P article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:739 +#: ../../content/applications/productivity/spreadsheet/functions.rst:741 msgid "STDEV.S(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:740 +#: ../../content/applications/productivity/spreadsheet/functions.rst:742 msgid "`Excel STDEV.S article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:741 +#: ../../content/applications/productivity/spreadsheet/functions.rst:743 msgid "STDEVA(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:742 +#: ../../content/applications/productivity/spreadsheet/functions.rst:744 msgid "`Excel STDEVA article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:743 +#: ../../content/applications/productivity/spreadsheet/functions.rst:745 msgid "STDEVP(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:744 +#: ../../content/applications/productivity/spreadsheet/functions.rst:746 msgid "`Excel STDEVP article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:745 +#: ../../content/applications/productivity/spreadsheet/functions.rst:747 msgid "STDEVPA(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:746 +#: ../../content/applications/productivity/spreadsheet/functions.rst:748 msgid "`Excel STDEVPA article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:747 +#: ../../content/applications/productivity/spreadsheet/functions.rst:749 msgid "STEYX(data_y, data_x)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:748 +#: ../../content/applications/productivity/spreadsheet/functions.rst:750 msgid "`Excel STEYX article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:749 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1012 +#: ../../content/applications/productivity/spreadsheet/functions.rst:751 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1014 msgid "TREND(known_data_y, [known_data_x], [new_data_x], [b])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:750 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1013 +#: ../../content/applications/productivity/spreadsheet/functions.rst:752 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1015 msgid "Fits points to linear trend derived via least-squares (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:751 +#: ../../content/applications/productivity/spreadsheet/functions.rst:753 msgid "VAR(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:752 +#: ../../content/applications/productivity/spreadsheet/functions.rst:754 msgid "`Excel VAR article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:753 +#: ../../content/applications/productivity/spreadsheet/functions.rst:755 msgid "VAR.P(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:754 +#: ../../content/applications/productivity/spreadsheet/functions.rst:756 msgid "`Excel VAR.P article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:755 +#: ../../content/applications/productivity/spreadsheet/functions.rst:757 msgid "VAR.S(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:756 +#: ../../content/applications/productivity/spreadsheet/functions.rst:758 msgid "`Excel VAR.S article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:757 +#: ../../content/applications/productivity/spreadsheet/functions.rst:759 msgid "VARA(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:758 +#: ../../content/applications/productivity/spreadsheet/functions.rst:760 msgid "`Excel VARA article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:759 +#: ../../content/applications/productivity/spreadsheet/functions.rst:761 msgid "VARP(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:760 +#: ../../content/applications/productivity/spreadsheet/functions.rst:762 msgid "`Excel VARP article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:761 +#: ../../content/applications/productivity/spreadsheet/functions.rst:763 msgid "VARPA(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:762 +#: ../../content/applications/productivity/spreadsheet/functions.rst:764 msgid "`Excel VARPA article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:767 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1016 -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:213 -#: ../../content/applications/productivity/whatsapp.rst:587 +#: ../../content/applications/productivity/spreadsheet/functions.rst:769 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1018 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:203 +#: ../../content/applications/productivity/whatsapp.rst:588 msgid "Text" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:775 +#: ../../content/applications/productivity/spreadsheet/functions.rst:777 msgid "CHAR(table_number)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:776 +#: ../../content/applications/productivity/spreadsheet/functions.rst:778 msgid "`Excel CHAR article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:777 +#: ../../content/applications/productivity/spreadsheet/functions.rst:779 msgid "CLEAN(text)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:778 +#: ../../content/applications/productivity/spreadsheet/functions.rst:780 msgid "`Excel CLEAN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:779 +#: ../../content/applications/productivity/spreadsheet/functions.rst:781 msgid "CONCATENATE(string1, [string2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:780 +#: ../../content/applications/productivity/spreadsheet/functions.rst:782 msgid "`Excel CONCATENATE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:781 +#: ../../content/applications/productivity/spreadsheet/functions.rst:783 msgid "EXACT(string1, string2)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:782 +#: ../../content/applications/productivity/spreadsheet/functions.rst:784 msgid "`Excel EXACT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:783 +#: ../../content/applications/productivity/spreadsheet/functions.rst:785 msgid "FIND(search_for, text_to_search, [starting_at])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:784 +#: ../../content/applications/productivity/spreadsheet/functions.rst:786 msgid "`Excel FIND article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:785 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1024 +#: ../../content/applications/productivity/spreadsheet/functions.rst:787 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1026 msgid "JOIN(delimiter, value_or_array1, [value_or_array2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:786 -#: ../../content/applications/productivity/spreadsheet/functions.rst:1025 +#: ../../content/applications/productivity/spreadsheet/functions.rst:788 +#: ../../content/applications/productivity/spreadsheet/functions.rst:1027 msgid "Concatenates elements of arrays with delimiter (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:787 +#: ../../content/applications/productivity/spreadsheet/functions.rst:789 msgid "LEFT(text, [number_of_characters])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:788 +#: ../../content/applications/productivity/spreadsheet/functions.rst:790 msgid "`Excel LEFT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:789 +#: ../../content/applications/productivity/spreadsheet/functions.rst:791 msgid "LEN(text)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:790 +#: ../../content/applications/productivity/spreadsheet/functions.rst:792 msgid "`Excel LEN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:791 +#: ../../content/applications/productivity/spreadsheet/functions.rst:793 msgid "LOWER(text)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:792 +#: ../../content/applications/productivity/spreadsheet/functions.rst:794 msgid "`Excel LOWER article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:793 +#: ../../content/applications/productivity/spreadsheet/functions.rst:795 msgid "MID(text, starting_at, extract_length)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:794 +#: ../../content/applications/productivity/spreadsheet/functions.rst:796 msgid "`Excel MID article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:795 +#: ../../content/applications/productivity/spreadsheet/functions.rst:797 msgid "PROPER(text_to_capitalize)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:796 +#: ../../content/applications/productivity/spreadsheet/functions.rst:798 msgid "`Excel PROPER article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:797 +#: ../../content/applications/productivity/spreadsheet/functions.rst:799 msgid "REPLACE(text, position, length, new_text)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:798 +#: ../../content/applications/productivity/spreadsheet/functions.rst:800 msgid "`Excel REPLACE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:799 +#: ../../content/applications/productivity/spreadsheet/functions.rst:801 msgid "RIGHT(text, [number_of_characters])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:800 +#: ../../content/applications/productivity/spreadsheet/functions.rst:802 msgid "`Excel RIGHT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:801 +#: ../../content/applications/productivity/spreadsheet/functions.rst:803 msgid "SEARCH(search_for, text_to_search, [starting_at])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:802 +#: ../../content/applications/productivity/spreadsheet/functions.rst:804 msgid "`Excel SEARCH article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:803 +#: ../../content/applications/productivity/spreadsheet/functions.rst:805 msgid "SPLIT(text, delimiter, [split_by_each], [remove_empty_text])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:804 +#: ../../content/applications/productivity/spreadsheet/functions.rst:806 msgid "`Excel TEXTSPLIT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:805 +#: ../../content/applications/productivity/spreadsheet/functions.rst:807 msgid "SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:806 +#: ../../content/applications/productivity/spreadsheet/functions.rst:808 msgid "`Excel SUBSTITUTE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:807 +#: ../../content/applications/productivity/spreadsheet/functions.rst:809 msgid "TEXT(number, format)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:808 +#: ../../content/applications/productivity/spreadsheet/functions.rst:810 msgid "`Excel TEXT article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:809 +#: ../../content/applications/productivity/spreadsheet/functions.rst:811 msgid "TEXTJOIN(delimiter, ignore_empty, text1, [text2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:810 +#: ../../content/applications/productivity/spreadsheet/functions.rst:812 msgid "`Excel TEXTJOIN article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:811 +#: ../../content/applications/productivity/spreadsheet/functions.rst:813 msgid "TRIM(text)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:812 +#: ../../content/applications/productivity/spreadsheet/functions.rst:814 msgid "`Excel TRIM article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:813 +#: ../../content/applications/productivity/spreadsheet/functions.rst:815 msgid "UPPER(text)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:814 +#: ../../content/applications/productivity/spreadsheet/functions.rst:816 msgid "`Excel UPPER article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:815 +#: ../../content/applications/productivity/spreadsheet/functions.rst:817 msgid "VALUE(text)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:816 -msgid "`Excel VALUE article `_" +#: ../../content/applications/productivity/spreadsheet/functions.rst:818 +msgid "`Excel VALUE article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:821 +#: ../../content/applications/productivity/spreadsheet/functions.rst:823 msgid "Web" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:829 +#: ../../content/applications/productivity/spreadsheet/functions.rst:831 msgid "HYPERLINK(url, [link_label])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:830 +#: ../../content/applications/productivity/spreadsheet/functions.rst:832 msgid "`Excel HYPERLINK article `_" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:835 +#: ../../content/applications/productivity/spreadsheet/functions.rst:837 msgid "Odoo-specific functions" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:837 +#: ../../content/applications/productivity/spreadsheet/functions.rst:839 msgid "This section contains functions that interact directly with your Odoo database." msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:893 +#: ../../content/applications/productivity/spreadsheet/functions.rst:895 msgid "This function takes in two currency codes as arguments, and returns the exchange rate from -the first currency to the second as float (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:902 +#: ../../content/applications/productivity/spreadsheet/functions.rst:904 msgid "ODOO.PARTNER.BALANCE(partner_ids, [account_codes], [date_range], [offset], [company_id], [include_unposted])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:903 +#: ../../content/applications/productivity/spreadsheet/functions.rst:905 msgid "Get the partner balance for the specified account(s) and period (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:904 +#: ../../content/applications/productivity/spreadsheet/functions.rst:906 msgid "ODOO.RESIDUAL([account_codes], [date_range], [offset], [company_id], [include_unposted])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:905 +#: ../../content/applications/productivity/spreadsheet/functions.rst:907 msgid "Get the residual amount for the specified account(s) and period (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:932 +#: ../../content/applications/productivity/spreadsheet/functions.rst:934 msgid "COUNTUNIQUE(value1, [value2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:933 +#: ../../content/applications/productivity/spreadsheet/functions.rst:935 msgid "Counts number of unique values in a range (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:934 +#: ../../content/applications/productivity/spreadsheet/functions.rst:936 msgid "COUNTUNIQUEIFS(range, criteria_range1, criterion1, [criteria_range2, ...], [criterion2, ...])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:935 +#: ../../content/applications/productivity/spreadsheet/functions.rst:937 msgid "Counts number of unique values in a range, filtered by a set of criteria (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:938 +#: ../../content/applications/productivity/spreadsheet/functions.rst:940 msgid "Misc" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:946 +#: ../../content/applications/productivity/spreadsheet/functions.rst:948 msgid "FORMAT.LARGE.NUMBER(value, [unit])" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:947 +#: ../../content/applications/productivity/spreadsheet/functions.rst:949 msgid "Apply a large number format (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:948 +#: ../../content/applications/productivity/spreadsheet/functions.rst:950 msgid "ODOO.LIST(list_id, index, field_name)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:949 +#: ../../content/applications/productivity/spreadsheet/functions.rst:951 msgid "Get the value from a list (not compatible with Excel)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:950 +#: ../../content/applications/productivity/spreadsheet/functions.rst:952 msgid "ODOO.LIST.HEADER(list_id, field_name)" msgstr "" -#: ../../content/applications/productivity/spreadsheet/functions.rst:951 +#: ../../content/applications/productivity/spreadsheet/functions.rst:953 msgid "Get the header of a list (not compatible with Excel)" msgstr "" @@ -10775,282 +11072,308 @@ msgid "These filters are particularly useful for reports and dashboards as users msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:13 -msgid "When a spreadsheet with global filters is added to a dashboard, the filters appear as dropdown menus at the top of the dashboard. In a spreadsheet, they appear in a pane to the right of the spreadsheet." +msgid "On a dashboard, global filters that have been :ref:`created in the underlying spreadsheet ` are applied via the search bar at the top of the dashboard." msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 msgid "Global filters at the top of a dashboard" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:20 -msgid "Three types of global filters are available:" +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:19 +msgid "Four types of global filters are available:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:22 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:21 msgid ":ref:`Date `: filters data based on a specific time range, with the options :guilabel:`Month / Quarter`, :guilabel:`Relative Period`, or :guilabel:`From / To`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:25 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:24 msgid ":ref:`Relation `: filters data based on a relational field in a related model, e.g., by :guilabel:`Salesperson` with the *User* model set as the related model." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:28 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:27 msgid ":ref:`Text `: filters data based on a string of text or a range of predefined values, e.g., a product reference or barcode." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:31 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:29 +msgid ":ref:`Yes/No `: filters data based on whether or not a checkbox, or boolean, field is set, e.g., lead is active." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:32 msgid "Unlike the standard :icon:`fa-filter` :guilabel:`(Add filters)` spreadsheet function, which lets you sort and temporarily hide data, global filters act on the underlying :ref:`data sources `, filtering data *before* it is loaded into the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:35 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:36 msgid "When a global filter is created, :ref:`field matching ` for each data source ensures the filter acts on the correct database :doc:`fields `." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:40 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:41 msgid "Global filters work by adding extra conditions to the domains of all the data sources in the spreadsheet. Therefore, if you intend to use global filters, do not use the same conditions when configuring the initial list, pivot table, or chart in your database." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:43 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:44 msgid "Setting default values, where relevant, ensures that the spreadsheet or dashboard loads quickly and provides a useful initial view that can be further customized if needed. For example, a :guilabel:`Date` filter could be set to show data from the last 30 days by default." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:50 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:51 msgid "Field matching" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:53 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:54 msgid "This process is crucial, as matching the wrong fields, or not setting matching fields at all, results in global filters that do not show the desired results." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:56 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:57 msgid "To function as intended, a global filter needs to act on the correct database fields. Consider a :guilabel:`Date` filter applied to sales data. As the *Sales Order* model contains several date fields, it is crucial to determine which field is relevant for the filter, e.g., the order date, the delivery date, the expected date, or the expiration date." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:61 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:62 msgid "When :ref:`creating a global filter `, the :guilabel:`Field matching` section of the :guilabel:`Filter properties` allows you to determine, for each :ref:`data source ` in the spreadsheet, which database field the filter should act on, or match with." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:66 -msgid "Field matching is further explained in the relevant sections on creating :ref:`Date `, :ref:`Relation `, and :ref:`Text ` global filters." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:67 +msgid "Field matching is further explained in the relevant sections on creating :ref:`Date `, :ref:`Relation `, :ref:`Text `, and :ref:`Yes/No ` global filters." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:74 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:76 msgid "Create global filters" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:76 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:78 msgid "Open the desired spreadsheet from the **Odoo Documents** app or via the **Odoo Dashboards** app if you are adding filters to a dashboard." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:80 -msgid "To access the underlying spreadsheet of a dashboard, with the **Dashboards** app open, :ref:`activate developer mode `, then click the :icon:`fa-pencil` :guilabel:`(Edit)` icon that appears when hovering over the dashboard name." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:81 +msgid "To add a new filter, click :icon:`os-global-filters` :guilabel:`Filters` to open the :guilabel:`Filters` panel. Under :guilabel:`Create filter`, click :icon:`fa-calendar` :guilabel:`Date`, :icon:`fa-link` :guilabel:`Relation`, :icon:`fa-font` :guilabel:`Text`, or :icon:`fa-toggle-off` :guilabel:`Yes/No` as appropriate." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:84 -msgid "To add a new filter, click :icon:`os-global-filters` :guilabel:`Filters`, then, under :guilabel:`Add a new filter...` click :guilabel:`Date`, :guilabel:`Relation`, or :guilabel:`Text` as appropriate. The :guilabel:`Filter properties` pane opens." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:87 +msgid "Depending on the data source(s) present in the spreadsheet, suggested :ref:`relation filters ` may be shown. Clicking on a suggested filter opens the :guilabel:`Filter properties` panel with certain values preconfigured." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:88 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:91 msgid "When saving a global filter, if any required information is missing or if any information provided in the :ref:`Field matching ` section is not appropriate, an error is shown stating :guilabel:`Some required fields are not valid`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:98 -msgid "A :guilabel:`Date` filter can only match with a :ref:`Date ` or :ref:`Date & Time ` field." -msgstr "" - -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:101 -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:171 -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:220 -msgid "With the :guilabel:`Filter properties` pane open:" +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:96 +msgid "To access the underlying spreadsheet of a dashboard, :ref:`activate developer mode `, then click the :icon:`fa-pencil` :guilabel:`(Edit)` icon that appears when hovering over the dashboard name in the left panel." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:103 -msgid "Enter a name for the new date filter in the :guilabel:`Label` field." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:99 +msgid "Click :icon:`fa-thumb-tack` :guilabel:`(pin)` at the top of the :guilabel:`Filters` panel to allow another panel, such as the :guilabel:`Filter properties` panel, to open beside it." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:104 -msgid "From the :guilabel:`Time range` dropdown menu, select one of the following:" +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:108 +msgid "A :guilabel:`Date` filter can only match with a :ref:`Date ` or :ref:`Date & Time ` field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:106 -msgid ":guilabel:`Month / Quarter`: enables a dropdown menu of specific months and/or quarters and a year selector for the year. The values :guilabel:`Months` and :guilabel:`Quarters` are enabled by default. Disabling both of these values allows filtering by year only." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:111 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:163 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:210 +msgid "With the :guilabel:`Filter properties` panel open:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:110 -msgid "To set a :guilabel:`Default value`, enable :guilabel:`Automatically filter on the current period` and choose whether to filter on the current :guilabel:`Month`, :guilabel:`Quarter` or :guilabel:`Year`." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:113 +msgid "Enter a name for the new date filter in the :guilabel:`Label` field." msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:114 -msgid ":guilabel:`Relative Period`: enables a dropdown menu of specific time ranges relative to the current date (e.g., :guilabel:`Year to Date`, :guilabel:`Last 7 Days`, :guilabel:`Last 30 Days`, etc.)." -msgstr "" - -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:118 -msgid "To set a :guilabel:`Default value`, select one of the available values." +msgid "To set a :guilabel:`Default value`, select one of the available values, e.g, `Last 30 Days` or `Month to Date`. When applying the global filter, any of the available values can be selected." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:120 -msgid ":guilabel:`From / To`: enables :guilabel:`Date from...` and :guilabel:`Date to...` date selection fields to define a specific time range (e.g., `06/05/2024` to `06/27/2024`)." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:116 +msgid "In the :guilabel:`Field matching` section, for each data source, click beside :guilabel:`Date field` and select the field the filter should match with." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:123 -msgid "In the :guilabel:`Field matching` section, for each data source, click below :guilabel:`Date field` and select the field the filter should match with." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:119 +msgid "The :guilabel:`Period offset` option, which appears when a date field is chosen, enables comparisons to be made by shifting the time range by one or more periods in the past or future. By default, no period offset is defined. To define a period offset, select :guilabel:`Previous` or :guilabel:`Next`, then select the desired number of periods in the past or future." msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:126 -msgid "The :guilabel:`Period offset` feature enables comparisons to be made by shifting the time range by one or two periods in the past or future. By default, no period offset is set. The offsets available are: :guilabel:`Previous`, :guilabel:`Before previous`, :guilabel:`Next`, and :guilabel:`After next`." -msgstr "" - -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:133 msgid "To compare data effectively using the :guilabel:`Period offset` feature, :ref:`duplicate the relevant inserted list ` or :ref:`pivot table `, then, when setting up field matching, set a period offset for the second data source but not the first." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:138 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:131 msgid "When applying the filter, the original list or pivot table shows data for the time range selected, while the second shows data for a period before or after that time range, as defined." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:142 -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:191 -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:229 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:135 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:183 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:220 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:256 msgid "Click :guilabel:`Save`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:145 -msgid "In the example below, a :guilabel:`Date` global filter has been created to allow the pivot table and chart to show sales data per quarter. If only a year is selected, data is shown for the entire year." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:138 +msgid "In the example below, a :guilabel:`Date` global filter allows the pivot table and chart to show sales data for any defined time period, in this case, `July 2025`. The :guilabel:`Custom Range` always shows the actual dates corresponding to the chosen period; it can also be updated directly." msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 -msgid "A date filter to filter on quarter and year" +msgid "A date filter filters data for July 2025" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:152 -msgid "In the :guilabel:`Field matching` section of the :guilabel:`Filter properties`, the field :guilabel:`Order Date` has been selected as the matching date field. A matching date field is not needed for *List #1* as we will not use this filter on the data source in question." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:146 +msgid "In the :guilabel:`Field matching` section of the :guilabel:`Filter properties`, the field :guilabel:`Order Date` has been selected as the matching date field." msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 msgid "A date filter with the Order Date selected as the matching field" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:163 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:155 msgid "Relation" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:166 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:158 msgid "A :guilabel:`Relation` filter can only match with a :ref:`Many2One `, :ref:`One2Many `, or :ref:`Many2Many ` field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:173 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:165 msgid "Enter a name for the new relation filter in the :guilabel:`Label` field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:175 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:167 msgid "In the :guilabel:`Related model` field, start typing the model name to reveal a list of all models, then select the appropriate one. Once a model is selected, the :guilabel:`Default value` and :guilabel:`Possible values` fields appear, as well as the :guilabel:`Field matching` section." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:180 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:172 msgid "To set a :guilabel:`Default value`, select one of the available values; these are records from the model. If the related model is the *User* model, the option :guilabel:`Automatically filter on the current user` can be enabled." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:184 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:176 msgid "To limit the values that can be shown, enable :guilabel:`Restrict values with a domain`, then click :ref:`Edit domain ` to add or edit rules." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:187 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:179 msgid "In the :guilabel:`Field matching` section, check if the correct matching field has been assigned for each data source. If this is not the case, click below the data source name to select the correct field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:194 -msgid "In the example below, a :guilabel:`Relation` filter has been created to allow the pivot table and chart to show sales data related to selected salespeople only. The *User* model was set as the :guilabel:`Related model`." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:186 +msgid "In the example below, a :guilabel:`Relation` filter allows the pivot table and chart to show sales data related to selected salespeople only. The *User* model is set as the :guilabel:`Related model`." msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 msgid "Relation filter set on a pivot table" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:201 -msgid "In the :guilabel:`Field matching` section of the :guilabel:`Filter properties`, the field :guilabel:`Salesperson` was automatically assigned as the matching field for both the pivot table and the chart. A matching field is not needed for *List #1* as we will not use this filter on the data source in question." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:193 +msgid "In the :guilabel:`Field matching` section of the :guilabel:`Filter properties`, the field :guilabel:`Salesperson` was automatically assigned as the matching field for both the pivot table and the chart." msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 msgid "A relation filter with the User model configured" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:216 -msgid "A :guilabel:`Text` filter can only match with a :ref:`Text (char) `, :ref:`Integer ` or :ref:`Decimal (float) ` field." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:206 +msgid "A :guilabel:`Text` filter can only match with a :ref:`Text ` (char), :ref:`Integer `, or :ref:`Decimal ` (float) field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:222 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:212 msgid "Enter a name for the new text filter in the :guilabel:`Label` field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:223 -msgid "Optionally, enable :guilabel:`Restrict values to a range`. Doing so allows you to input a spreadsheet range either by typing the range or selecting it from within the spreadsheet." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:213 +msgid "Optionally, enable :guilabel:`Restrict values to a range`. Doing so allows you to input a spreadsheet range either by typing the range or selecting it from the relevant sheet. The referenced range must be in the same spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:225 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:216 msgid "Optionally, enter a :guilabel:`Default value`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:226 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:217 msgid "In the :guilabel:`Field matching` section, for each data source click below the data source name and select the field the :guilabel:`Text` filter should match with." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:232 -msgid "In the example below, a :guilabel:`Text` global filter was created to allow the user to select a product from the :guilabel:`Product` filter and have both the pivot table and chart only show sales data related to that specific product." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:223 +msgid "In the example below, a :guilabel:`Text` global filter allows the pivot table and chart to show sales data only for products whose internal reference matches or contains the entered value, in this case, `FURN`. Multiple values can be entered if desired." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:-1 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 msgid "Global filters set on a pivot table" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:239 -msgid "In the :guilabel:`Filter properties`, the :guilabel:`Possible values` of the filter were restricted to the range :guilabel:`'Products (List #1)'!A2:A34`. This corresponds to the range containing the :guilabel:`Display name` of the product on a list inserted in the spreadsheet." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:230 +msgid "In the :guilabel:`Field matching` section of the :guilabel:`Filter properties`, the :guilabel:`Internal Reference` of the :guilabel:`Product Variant` was selected as the matching field for both the pivot table and the chart." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 +msgid "A text filter matched to the product's internal reference" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:238 +msgid "If you selected :guilabel:`Restrict values to range` when configuring the text filter and defined a range, you select the value of the text field from a dropdown." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:-1 -msgid "A text filter with a restricted range" +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:244 +msgid "Yes/No" msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:247 -msgid "With this configuration, the pivot table and chart can be filtered by product name by selecting one of the predefined values available in the text filter. In this case, :guilabel:`Furniture` has already been selected as the :guilabel:`Product category`, meaning that only products of this category can be selected as possible values." +msgid "A :guilabel:`Yes/No` filter can only match with a :ref:`Checkbox ` (boolean) field." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:250 +msgid "With the :guilabel:`Filter properties` pane open:" msgstr "" #: ../../content/applications/productivity/spreadsheet/global_filters.rst:252 -msgid "Furthermore, if the values in the range have been retrieved dynamically from the database, as in this case, the text filter is also dynamic, i.e., will reflect changes made to those values." +msgid "Enter a name for the new :guilabel:`Yes/No` filter in the :guilabel:`Label` field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:256 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:253 +msgid "Optionally, select :guilabel:`Is set` or :guilabel:`Is not set` as the :guilabel:`Default value`." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:254 +msgid "In the :guilabel:`Field matching` section, for each data source, click below the data source name and select the field the :guilabel:`Yes/No` filter should match with." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:259 +msgid "In the example below, a :guilabel:`Yes/No` global filter was created to allow the user to see all active opportunities, i.e., for which the :guilabel:`Active` checkbox is enabled on the record, or all inactive opportunities, i.e., for which the :guilabel:`Active` checkbox is disabled. Leaving the filter empty shows both active and inactive opportunities." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:267 +msgid "In the :guilabel:`Field matching` section of the :guilabel:`Filter properties`, the field :guilabel:`Active` was assigned as the matching field for the pivot table." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:0 +msgid "A yes/no filter with the Active field set as matching field" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:274 msgid "Manage and use global filters" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:258 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:276 msgid "Click the :icon:`os-global-filters` :guilabel:`Filters` icon at the top right of an Odoo spreadsheet to access the global filters that have been created for that spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:261 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:279 msgid "It is possible to:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:263 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:281 msgid "**Apply one or more global filters** by selecting appropriate values per filter, as relevant." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:266 -msgid "Reloading the browser will cause any global filters to reset to their initial state or default value, as relevant. To refresh data in an inserted list, pivot table, or chart without losing global filters that have been applied, click :menuselection:`Data --> Refresh all data` from the menu bar." +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:284 +msgid "Reloading the browser will cause any global filters to reset to their initial state or default value, as relevant. To refresh data in an inserted list, pivot table, or chart without losing global filters that have been applied, click :menuselection:`Data -->` :icon:`os-refresh-data` :menuselection:`Refresh all data` from the menu bar." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:271 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:289 msgid "**Change the order** of existing filters by hovering over a filter and using the :icon:`os-thin-drag-handle` :guilabel:`(drag handle)` icon to change the position." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:273 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:291 msgid "**Clear filter values** (whether default or selected values) by clicking the :icon:`fa-times` :guilabel:`(Clear)` icon next to the value in the filter." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:275 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:293 msgid "**Edit an existing filter** by selecting the :icon:`fa-cog` :guilabel:`(Edit)` icon to open the filter's :guilabel:`Filter properties` then editing as needed." msgstr "" -#: ../../content/applications/productivity/spreadsheet/global_filters.rst:277 +#: ../../content/applications/productivity/spreadsheet/global_filters.rst:295 msgid "**Delete an existing filter** by selecting the :icon:`fa-cog` :guilabel:`(Edit)` icon to open the filter's :guilabel:`Filter properties` then clicking :guilabel:`Remove`." msgstr "" @@ -11074,16 +11397,16 @@ msgstr "" msgid "charts, i.e., data from a :ref:`graph view `" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:11 -msgid "Each time a list, pivot table, or chart is inserted, a :ref:`data source ` is created. This data source connects the spreadsheet to your Odoo database, retrieving up-to-date information every time the spreadsheet is opened, the browser page is reloaded, or data is manually refreshed by clicking :menuselection:`Data --> Refresh all data` from the menu bar." +#: ../../content/applications/productivity/spreadsheet/insert.rst:12 +msgid "Lists, pivot tables, and charts from different apps and models can be inserted into the same spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:17 -msgid ":ref:`Inserted lists ` and :ref:`inserted pivot tables ` use formulas with Odoo-specific :ref:`list functions ` and :ref:`pivot table functions ` to retrieve data from your database and can be further manipulated in the spreadsheet. Certain elements of :ref:`inserted charts ` can be modified, but no data manipulation or computation is possible." +#: ../../content/applications/productivity/spreadsheet/insert.rst:15 +msgid "Each time a list, pivot table, or chart is inserted, a :ref:`data source ` is created. This data source connects the spreadsheet to your Odoo database, retrieving up-to-date information every time the spreadsheet is opened, the browser page is reloaded, or data is manually refreshed by clicking :menuselection:`Data -->` :icon:`os-refresh-data` :menuselection:`Refresh all data` from the menu bar." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:25 -msgid "Lists, pivot tables, and charts from different apps and models can be inserted into the same spreadsheet." +#: ../../content/applications/productivity/spreadsheet/insert.rst:21 +msgid ":ref:`Inserted lists ` and :ref:`inserted pivot tables ` use formulas with Odoo-specific :ref:`list functions ` and :ref:`pivot table functions ` to retrieve data from your database and can be further manipulated in the spreadsheet. Certain elements of :ref:`inserted charts ` can be modified, but no data manipulation or computation is possible." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:29 @@ -11111,7 +11434,7 @@ msgid "Data sources" msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:47 -msgid "Data sources, which are created each time a :ref:`list `, :ref:`pivot table ` or :ref:`graph ` is inserted into an Odoo spreadsheet, connect the spreadsheet and the relevant :doc:`model <../../studio/models_modules_apps>` in your database, keeping the data in the spreadsheet up-to-date." +msgid "Data sources, which are created each time a :ref:`list `, :ref:`pivot table `, or :ref:`chart ` is inserted into an Odoo spreadsheet, connect the spreadsheet and the relevant :doc:`model <../../studio/models_modules_apps>` in your database, ensuring the data stays up-to-date and allowing you to :ref:`access the underlying data `." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:53 @@ -11123,22 +11446,26 @@ msgid "Data sources listed in Data menu" msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:61 -msgid "Clicking on a data source opens the related properties in a pane on the right of the spreadsheet." +msgid "Clicking on a data source opens the related properties in a panel on the right of the spreadsheet." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:64 -msgid "The properties pane can also be opened by right-clicking any cell of an inserted list or pivot table, then clicking :icon:`oi-view-list` :guilabel:`See list properties` or :icon:`oi-view-pivot` :guilabel:`See pivot properties`, or by clicking the :icon:`fa-bars` :guilabel:`(menu)` icon at the top right of an inserted chart, then clicking :icon:`fa-pencil-square-o` :guilabel:`Edit`." +msgid "The properties panel can also be opened by right-clicking any cell of an inserted list or pivot table, then clicking :icon:`oi-view-list` :guilabel:`See list properties` or :icon:`oi-view-pivot` :guilabel:`See pivot properties`, or by clicking the :icon:`fa-bars` :guilabel:`(menu)` icon at the top right of an inserted chart, then clicking :icon:`fa-pencil-square-o` :guilabel:`Edit`." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:69 -msgid "Once the properties of a specific data source are open, they remain open even when navigating between spreadsheet tabs. To close the properties pane, click the :icon:`fa-times` :guilabel:`(close)` icon at the top right of the pane." +msgid "Once the properties of a specific data source are open, they remain open even when navigating between spreadsheet tabs. To close the properties panel, click the :icon:`fa-times` :guilabel:`(close)` icon at the top right of the panel." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:72 +msgid "Click :icon:`fa-thumb-tack` :guilabel:`(pin)` at the top of the properties panel to allow another panel, such as the :doc:`global filters ` panel, to open beside it." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:74 +#: ../../content/applications/productivity/spreadsheet/insert.rst:76 msgid "Deleting an inserted list or pivot table, or deleting the sheet into which it was inserted, does not delete the underlying data source. The data source of an inserted list or pivot table can only be deleted via the data source's properties." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:78 +#: ../../content/applications/productivity/spreadsheet/insert.rst:80 msgid "A warning in the :guilabel:`Data` menu identifies any data sources for which the corresponding list or pivot table no longer appears in the spreadsheet." msgstr "" @@ -11146,35 +11473,63 @@ msgstr "" msgid "Warning message about unused list" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:84 +#: ../../content/applications/productivity/spreadsheet/insert.rst:86 msgid "Deleting an inserted chart, on the other hand, also deletes the underlying data source." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:89 +#: ../../content/applications/productivity/spreadsheet/insert.rst:91 +msgid "Accessing underlying data" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:93 +msgid "The underlying data of an inserted list, pivot table, or chart can be accessed at any time. To view:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:95 +msgid "an individual record of an **inserted list**, right-click any cell of the relevant row, then select :icon:`fa-eye` :guilabel:`See record`" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:97 +msgid "a list of records referenced by an individual cell of an **inserted pivot table**, right-click the cell, then select :icon:`fa-eye` :guilabel:`See records`" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:99 +msgid "a list of records represented by a data point of an **inserted chart**, click the data point." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:102 +msgid "Use the middle mouse button or `Ctrl` + left-click (Microsoft/Linux), or `Command` + left-click (Mac OS) to open the results in a new browser tab." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:105 +msgid "To return to the spreadsheet after viewing the underlying data, click the name of the spreadsheet in the breadcrumbs at the top of the page." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:111 msgid "Insert a list" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:92 +#: ../../content/applications/productivity/spreadsheet/insert.rst:114 msgid "Before inserting a list in a spreadsheet, ensure the list is tailored to your needs. Consider which fields should be visible as well as how the records are filtered and/or sorted. This can impact both the loading time and the user-friendliness of your spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:96 +#: ../../content/applications/productivity/spreadsheet/insert.rst:118 msgid "To insert a list:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:98 +#: ../../content/applications/productivity/spreadsheet/insert.rst:120 msgid "With the relevant list view open in your database, click the :icon:`fa-cog` :guilabel:`(Actions)` icon beside the name of the view, then :menuselection:`Spreadsheet -->` :icon:`oi-view-list` :menuselection:`Insert list in spreadsheet`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:103 +#: ../../content/applications/productivity/spreadsheet/insert.rst:125 msgid "To insert only specific records, select the relevant records, click the :icon:`fa-cog` :guilabel:`Actions` button that appears at the top center of the screen, then :icon:`oi-view-list` :guilabel:`Insert in spreadsheet`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:107 +#: ../../content/applications/productivity/spreadsheet/insert.rst:129 msgid "In the window that opens, edit the :guilabel:`Name of the list` if needed." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:109 +#: ../../content/applications/productivity/spreadsheet/insert.rst:131 msgid "The list name is used in the sheet name and in the :ref:`list properties `." msgstr "" @@ -11182,84 +11537,78 @@ msgstr "" msgid "Inserting a list in a spreadsheet" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:115 +#: ../../content/applications/productivity/spreadsheet/insert.rst:137 msgid "Edit the number of records, i.e., rows, to be inserted if needed." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:117 +#: ../../content/applications/productivity/spreadsheet/insert.rst:139 msgid "By default, the number shown is the number of records visible on the first page of the list. For example, if the list contains 150 records but only 80 are visible, this field will show 80." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:121 +#: ../../content/applications/productivity/spreadsheet/insert.rst:143 msgid "While the data in your list is kept up to date thanks to the connection to your database, an inserted list will not automatically expand to accommodate new records, e.g., a new product category or a new salesperson." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:125 +#: ../../content/applications/productivity/spreadsheet/insert.rst:147 msgid "If you anticipate new records being added, consider adding extra rows when inserting the list. Records/rows can also be :ref:`added manually ` after the spreadsheet has been inserted." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:130 +#: ../../content/applications/productivity/spreadsheet/insert.rst:152 msgid "Your company currently has ten product categories and you insert this list in a spreadsheet. If an 11th product category is created and your inserted list only had ten rows, the new category will be inserted in the appropriate position in the spreadsheet, thereby removing an existing category." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:135 +#: ../../content/applications/productivity/spreadsheet/insert.rst:157 msgid "One way to avoid this is to :ref:`add extra rows ` when inserting the list." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:138 -msgid "Click :guilabel:`Blank spreadsheet` or select in which existing spreadsheet the list should be inserted." +#: ../../content/applications/productivity/spreadsheet/insert.rst:160 +msgid "Click :guilabel:`Blank spreadsheet` to create a new spreadsheet, or select in which existing spreadsheet the list should be inserted." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:142 -#: ../../content/applications/productivity/spreadsheet/insert.rst:371 -#: ../../content/applications/productivity/spreadsheet/insert.rst:548 -msgid "New spreadsheets are saved in the **Odoo Documents** app in either the :icon:`fa-hdd-o` :guilabel:`My Drive` personal workspace or, if :ref:`file centralization ` has been enabled for spreadsheets, in the :guilabel:`Spreadsheet` workspace." +#: ../../content/applications/productivity/spreadsheet/insert.rst:164 +msgid "When inserting a list into a new spreadsheet, the spreadsheet is saved in the **Odoo Documents** app in the :icon:`fa-hdd-o` :guilabel:`My Drive` personal folder." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:147 -#: ../../content/applications/productivity/spreadsheet/insert.rst:376 -#: ../../content/applications/productivity/spreadsheet/insert.rst:553 -#: ../../content/applications/productivity/spreadsheet/insert.rst:776 +#: ../../content/applications/productivity/spreadsheet/insert.rst:167 +#: ../../content/applications/productivity/spreadsheet/insert.rst:391 +#: ../../content/applications/productivity/spreadsheet/insert.rst:563 +#: ../../content/applications/productivity/spreadsheet/insert.rst:889 msgid "Click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:149 -msgid "The list is inserted into a new sheet in the spreadsheet. The sheet tab in the bottom bar shows the name of the list followed by the list ID, e.g., *Quotations by Total (List #1)*. A pane on the right side of the screen shows the :ref:`list properties `." -msgstr "" - -#: ../../content/applications/productivity/spreadsheet/insert.rst:154 -msgid "To view an individual record of an inserted list, right-click on any cell of the relevant row, then click :icon:`fa-eye` :guilabel:`See record`. To return to the spreadsheet, click the name of the spreadsheet in the breadcrumbs at the top of the page." +#: ../../content/applications/productivity/spreadsheet/insert.rst:169 +msgid "The list is inserted into a new sheet in the spreadsheet. The sheet tab in the bottom bar shows the name of the list followed by the list ID, e.g., *Quotations by Total (List #1)*. A panel on the right side of the screen shows the :ref:`list properties `." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:157 -msgid "To sever the link between an inserted list and your database, select the entire list, right-click and select :icon:`fa-clone` :guilabel:`Copy` then right-click again and select :menuselection:`Paste special --> Paste as value`." +#: ../../content/applications/productivity/spreadsheet/insert.rst:174 +msgid "To sever the link between an inserted list and your database, select the entire list, right-click and select :icon:`fa-clipboard` :guilabel:`Copy` then right-click again and select :menuselection:`Paste special --> Paste as value`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:160 +#: ../../content/applications/productivity/spreadsheet/insert.rst:177 msgid "Do not modify the list ID in the sheet name, as the inserted list retains this ID for the lifetime of the spreadsheet. This list ID is used in the :ref:`spreadsheet functions ` that retrieve data from your database." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:167 +#: ../../content/applications/productivity/spreadsheet/insert.rst:184 msgid "List functions" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:169 +#: ../../content/applications/productivity/spreadsheet/insert.rst:186 msgid "When a list is inserted into a spreadsheet, the following :doc:`functions ` are used to retrieve the header and field values, respectively:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:179 +#: ../../content/applications/productivity/spreadsheet/insert.rst:196 msgid "`list_id`: the ID assigned when the list is inserted. The first list inserted into a spreadsheet is assigned list ID `1`, the second, list ID `2`, etc." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:181 +#: ../../content/applications/productivity/spreadsheet/insert.rst:198 msgid "`index`: identifies the line on which the record appeared in the list before insertion. The first line has an index of `1`, the second an index of `2`, etc." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:183 +#: ../../content/applications/productivity/spreadsheet/insert.rst:200 msgid "`field_name`: the technical name of the field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:186 +#: ../../content/applications/productivity/spreadsheet/insert.rst:203 msgid "Clicking on an individual cell displays the related formula, if relevant, in the formula bar. To display all the formulas of a spreadsheet at the same time, click :menuselection:`View -->` :icon:`fa-eye` :menuselection:`Show --> Formulas` on the menu bar. The example below shows the functions used to retrieve list headers and values." msgstr "" @@ -11267,87 +11616,87 @@ msgstr "" msgid "Viewing formulas of spreadsheet cells" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:197 +#: ../../content/applications/productivity/spreadsheet/insert.rst:214 msgid "List properties" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:199 +#: ../../content/applications/productivity/spreadsheet/insert.rst:216 msgid "The list properties appear on the right side of the screen when a list is inserted. They can be accessed at any time via the :guilabel:`Data` menu by clicking the relevant list, as prefaced by the :icon:`oi-view-list` :guilabel:`(list)` icon, or by right-clicking anywhere on the list and clicking :icon:`oi-view-list` :guilabel:`See list properties`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:204 +#: ../../content/applications/productivity/spreadsheet/insert.rst:221 msgid "The following list properties are shown, some of which can be edited:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:206 +#: ../../content/applications/productivity/spreadsheet/insert.rst:223 msgid ":guilabel:`List #`: the list ID. List IDs are assigned sequentially as additional lists are inserted into the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:208 +#: ../../content/applications/productivity/spreadsheet/insert.rst:225 msgid ":guilabel:`List Name`: the name of the list. Edit this if needed. Note that editing the list name in the list properties does not modify the list name shown in the sheet name, and vice versa." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:210 -#: ../../content/applications/productivity/spreadsheet/insert.rst:446 +#: ../../content/applications/productivity/spreadsheet/insert.rst:227 +#: ../../content/applications/productivity/spreadsheet/insert.rst:458 msgid ":guilabel:`Model`: the model from which the data has been extracted." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:211 +#: ../../content/applications/productivity/spreadsheet/insert.rst:228 msgid ":guilabel:`Columns`: the fields of the model that were visible when the list was inserted." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:212 -#: ../../content/applications/productivity/spreadsheet/insert.rst:462 -#: ../../content/applications/productivity/spreadsheet/insert.rst:702 +#: ../../content/applications/productivity/spreadsheet/insert.rst:229 +#: ../../content/applications/productivity/spreadsheet/insert.rst:474 +#: ../../content/applications/productivity/spreadsheet/insert.rst:760 msgid ":guilabel:`Domain`: the rules used to determine which records are shown. Click :ref:`Edit domain ` to add or edit rules." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:216 -#: ../../content/applications/productivity/spreadsheet/insert.rst:466 +#: ../../content/applications/productivity/spreadsheet/insert.rst:233 +#: ../../content/applications/productivity/spreadsheet/insert.rst:478 msgid "When :doc:`global filters ` are used, this domain is combined with the selected values of the global filter before the data is loaded into the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:219 +#: ../../content/applications/productivity/spreadsheet/insert.rst:236 msgid ":guilabel:`Sorting`: how the data is sorted, if applicable. To add a sorting rule, click :guilabel:`Add`, select the field, then choose whether sorting should be :guilabel:`Ascending` or :guilabel:`Descending`. Delete a sorting rule by clicking the :icon:`fa-times` :guilabel:`(delete)` icon." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:224 +#: ../../content/applications/productivity/spreadsheet/insert.rst:241 msgid "To :ref:`duplicate ` or :ref:`delete ` a list's data source, click the :icon:`fa-cog` :guilabel:`(gear)` icon, then click :icon:`fa-clone` :guilabel:`Duplicate` or :icon:`fa-trash` :guilabel:`Delete` as relevant." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:232 +#: ../../content/applications/productivity/spreadsheet/insert.rst:249 msgid "Manage an inserted list" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:234 -msgid "Once a list from an Odoo database has been inserted into an Odoo spreadsheet, you can:" +#: ../../content/applications/productivity/spreadsheet/insert.rst:251 +msgid "After a list from an Odoo database has been inserted into an Odoo spreadsheet, you can:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:236 +#: ../../content/applications/productivity/spreadsheet/insert.rst:253 msgid ":ref:`add records `, i.e., rows" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:237 +#: ../../content/applications/productivity/spreadsheet/insert.rst:254 msgid ":ref:`add fields `, i.e., columns" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:238 +#: ../../content/applications/productivity/spreadsheet/insert.rst:255 msgid ":ref:`duplicate the list ` to create a new, identical data source" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:240 +#: ../../content/applications/productivity/spreadsheet/insert.rst:257 msgid ":ref:`delete the list and its underlying data source `" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:245 +#: ../../content/applications/productivity/spreadsheet/insert.rst:262 msgid "Add records/rows to a list" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:247 +#: ../../content/applications/productivity/spreadsheet/insert.rst:264 msgid "To add records to a list, use one of the following methods:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:249 +#: ../../content/applications/productivity/spreadsheet/insert.rst:266 msgid "Select the last row of the table, then hover over the blue square until the plus icon appears. Click and drag down to add the desired number of rows. The cells of the new rows are populated with the :ref:`appropriate formula ` to retrieve the list values. If there is corresponding data in your database, the cells are populated." msgstr "" @@ -11355,35 +11704,35 @@ msgstr "" msgid "Add records by dragging the cell down" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:257 +#: ../../content/applications/productivity/spreadsheet/insert.rst:274 msgid "Position your cursor in the top left cell of the sheet, click :menuselection:`Data --> Re-insert list` from the menu bar, then select the appropriate list. In the pop-up window, indicate the number of records to insert and click :guilabel:`Confirm`. An updated list is inserted, overwriting the previous list." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:263 +#: ../../content/applications/productivity/spreadsheet/insert.rst:280 msgid "The above methods can also be used to add additional blank rows to your spreadsheet table. This may be useful for lists where you expect additional records to be generated in your database, e.g., new product categories or new salespersons." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:270 +#: ../../content/applications/productivity/spreadsheet/insert.rst:287 msgid "Add fields/columns to a list" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:272 +#: ../../content/applications/productivity/spreadsheet/insert.rst:289 msgid "To add fields/columns to a list:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:274 +#: ../../content/applications/productivity/spreadsheet/insert.rst:291 msgid "Select the column to the right or left of where the new column should be inserted." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:275 +#: ../../content/applications/productivity/spreadsheet/insert.rst:292 msgid "Click :menuselection:`Insert -->` :icon:`os-insert-col` :menuselection:`Insert column` then :icon:`os-insert-col-before` :menuselection:`Column left` or :icon:`os-insert-col-after` :menuselection:`Column right` from the menu bar, or right-click then :icon:`os-insert-col-before` :guilabel:`Insert column left` or :icon:`os-insert-col-after` :guilabel:`Insert column right` as appropriate." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:280 +#: ../../content/applications/productivity/spreadsheet/insert.rst:297 msgid "Copy the header cell of any column, paste it into the header cell of the new column, and press `Enter`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:282 +#: ../../content/applications/productivity/spreadsheet/insert.rst:299 msgid "Double-click the new header cell then click on the field name that appears in quotation marks at the end of the formula; a list of all the technical names of the fields of the related model appears." msgstr "" @@ -11391,100 +11740,100 @@ msgstr "" msgid "Add fields/columns by editing the formula" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:289 +#: ../../content/applications/productivity/spreadsheet/insert.rst:306 msgid "Select the appropriate field name and press `Enter`. The field's label appears in the header." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:292 +#: ../../content/applications/productivity/spreadsheet/insert.rst:309 msgid "To know a field's technical name, navigate to the relevant view, :ref:`activate developer mode `, then check the field name by hovering over the question mark beside a field's label." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:296 +#: ../../content/applications/productivity/spreadsheet/insert.rst:313 msgid "With the header cell selected, double-click on the blue square in the bottom-right corner. The cells of the column are populated with the appropriate formula to retrieve the list values. If there is corresponding data in your database, the cells are populated." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:303 +#: ../../content/applications/productivity/spreadsheet/insert.rst:320 msgid "Duplicate a list" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:305 +#: ../../content/applications/productivity/spreadsheet/insert.rst:322 msgid "Duplicating a list via the list's properties creates an additional data source. This allows for different manipulations to be performed on the same data within one spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:308 +#: ../../content/applications/productivity/spreadsheet/insert.rst:325 msgid "With the :ref:`list properties ` open, click the :icon:`fa-cog` :guilabel:`(gear)` icon then :icon:`fa-clone` :guilabel:`Duplicate`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:311 +#: ../../content/applications/productivity/spreadsheet/insert.rst:328 msgid "The new data source is assigned the next available list ID. For example, if no other lists have been inserted in the meantime, duplicating *List #1* results in the creation of *List #2*." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:314 +#: ../../content/applications/productivity/spreadsheet/insert.rst:331 msgid "Unlike when you insert a list, a duplicated list is not automatically inserted into the spreadsheet. To insert it, perform the following steps:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:317 +#: ../../content/applications/productivity/spreadsheet/insert.rst:334 msgid "Add a new sheet by clicking the :icon:`os-plus` :guilabel:`(add sheet)` icon at the bottom left of the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:319 +#: ../../content/applications/productivity/spreadsheet/insert.rst:336 msgid "Click :menuselection:`Data --> Re-insert list` from the menu bar, then select the appropriate list." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:321 +#: ../../content/applications/productivity/spreadsheet/insert.rst:338 msgid "Define the number of records to insert and click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:322 -msgid "Edit the :guilabel:`List Name` in the properties pane if needed." +#: ../../content/applications/productivity/spreadsheet/insert.rst:339 +msgid "Edit the :guilabel:`List Name` in the properties panel if needed." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:323 +#: ../../content/applications/productivity/spreadsheet/insert.rst:340 msgid "Rename the sheet by right-clicking on the sheet tab, selecting :guilabel:`Rename`, and entering the new sheet name." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:327 +#: ../../content/applications/productivity/spreadsheet/insert.rst:344 msgid "Duplicating an inserted list by copying and pasting it or by duplicating the sheet into which it has been inserted does not create a new data source. Any changes made to the list's properties would therefore impact any copies of the list." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:334 +#: ../../content/applications/productivity/spreadsheet/insert.rst:351 msgid "Delete a list" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:336 +#: ../../content/applications/productivity/spreadsheet/insert.rst:353 msgid "To fully delete a list and the underlying data source from a spreadsheet, perform the following steps in any order:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:339 -#: ../../content/applications/productivity/spreadsheet/insert.rst:528 +#: ../../content/applications/productivity/spreadsheet/insert.rst:356 +#: ../../content/applications/productivity/spreadsheet/insert.rst:540 msgid "Delete the spreadsheet table using your preferred means, e.g., via keyboard commands, spreadsheet menus, or by deleting the sheet. This deletes the visual representation of the data." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:341 -msgid "From the :ref:`properties pane ` of the relevant list, click the :icon:`fa-cog` :guilabel:`(gear)` icon then :icon:`fa-trash` :guilabel:`Delete`. This deletes the data source of the list from the spreadsheet." +#: ../../content/applications/productivity/spreadsheet/insert.rst:358 +msgid "From the :ref:`properties panel ` of the relevant list, click the :icon:`fa-cog` :guilabel:`(gear)` icon then :icon:`fa-trash` :guilabel:`Delete`. This deletes the data source of the list from the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:348 +#: ../../content/applications/productivity/spreadsheet/insert.rst:365 msgid "Insert a pivot table" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:351 +#: ../../content/applications/productivity/spreadsheet/insert.rst:368 msgid "Converting an inserted pivot table to a :doc:`dynamic pivot table ` allows you to add, remove, and manipulate dimensions (i.e., columns and rows) and measures. It is therefore possible to insert a basic pivot table with minimal configuration, convert it to a dynamic pivot table, then refine it directly in the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:356 +#: ../../content/applications/productivity/spreadsheet/insert.rst:373 msgid "To insert a pivot table:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:358 +#: ../../content/applications/productivity/spreadsheet/insert.rst:375 msgid "With the relevant pivot view open in your database, click :guilabel:`Insert in Spreadsheet`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:359 +#: ../../content/applications/productivity/spreadsheet/insert.rst:376 msgid "In the window that opens, edit the :guilabel:`Name of the pivot` if needed." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:361 +#: ../../content/applications/productivity/spreadsheet/insert.rst:378 msgid "This name is used in the sheet name and in the :ref:`pivot table properties `." msgstr "" @@ -11492,51 +11841,51 @@ msgstr "" msgid "Inserting a pivot table in a spreadsheet" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:367 -msgid "Click :guilabel:`Blank spreadsheet` or select in which existing spreadsheet the pivot table should be inserted." +#: ../../content/applications/productivity/spreadsheet/insert.rst:384 +msgid "Click :guilabel:`Blank spreadsheet` to create a new spreadsheet, or select in which existing spreadsheet the pivot table should be inserted." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:378 -msgid "The pivot table is inserted into a new sheet in the spreadsheet. The sheet tab in the bottom bar shows the name of the pivot table followed by the pivot table ID, e.g., *Sales Analysis by Sales Team (Pivot #1)*. A pane on the right side of the screen shows the :ref:`pivot table properties `." +#: ../../content/applications/productivity/spreadsheet/insert.rst:388 +msgid "When inserting a pivot table into a new spreadsheet, the spreadsheet is saved in the **Odoo Documents** app in the :icon:`fa-hdd-o` :guilabel:`My Drive` personal folder." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:384 -msgid "To view the records referenced by an individual cell of a pivot table, right-click on the cell, then click :icon:`fa-eye` :guilabel:`See record`. To return to the spreadsheet, click the name of the spreadsheet in the breadcrumbs at the top of the page." +#: ../../content/applications/productivity/spreadsheet/insert.rst:393 +msgid "The pivot table is inserted into a new sheet in the spreadsheet. The sheet tab in the bottom bar shows the name of the pivot table followed by the pivot table ID, e.g., *Sales Analysis by Sales Team (Pivot #1)*. A panel on the right side of the screen shows the :ref:`pivot table properties `." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:387 +#: ../../content/applications/productivity/spreadsheet/insert.rst:399 msgid "To sever the link between an inserted pivot table and your database, select the entire pivot table, right-click and select :icon:`fa-clone` :guilabel:`Copy`, then right-click again and select :menuselection:`Paste special --> Paste as value`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:390 +#: ../../content/applications/productivity/spreadsheet/insert.rst:402 msgid "Do not modify the pivot table ID in the sheet name, as the inserted pivot table retains this ID for the lifetime of the spreadsheet. This pivot table ID is used in the :ref:`spreadsheet functions ` that retrieve data from your database." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:398 +#: ../../content/applications/productivity/spreadsheet/insert.rst:410 msgid "Pivot table functions" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:400 +#: ../../content/applications/productivity/spreadsheet/insert.rst:412 msgid "An inserted pivot table that has not been converted to a :doc:`dynamic pivot table ` uses the following :doc:`functions ` to retrieve the header and field values, respectively:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:409 +#: ../../content/applications/productivity/spreadsheet/insert.rst:421 msgid "The arguments of the functions are as follows:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:413 +#: ../../content/applications/productivity/spreadsheet/insert.rst:425 msgid "`measure_name`: the technical name of what is being measured, followed by the type of aggregation, e.g., `product_uom_qty:sum`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:415 +#: ../../content/applications/productivity/spreadsheet/insert.rst:427 msgid "`domain_field_name`: the technical name of the field used as a dimension, e.g., `user_id`, or, if the dimension is a time period, the technical name of the date field, followed by the time period, e.g., `date_order:month`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:418 +#: ../../content/applications/productivity/spreadsheet/insert.rst:430 msgid "`domain_value`: the ID of the record, or, if the dimension is a time period, the date or time period targeted." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:422 +#: ../../content/applications/productivity/spreadsheet/insert.rst:434 msgid "Clicking on an individual cell displays the related formula, if relevant, in the formula bar. To display all the formulas of a spreadsheet at the same time, click :menuselection:`View -->` :icon:`fa-eye` :menuselection:`Show --> Formulas` on the menu bar. The example below shows the functions used to retrieve headers and values of a static pivot table." msgstr "" @@ -11544,143 +11893,147 @@ msgstr "" msgid "Functions of a static pivot table" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:433 +#: ../../content/applications/productivity/spreadsheet/insert.rst:445 msgid "Pivot table properties" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:435 +#: ../../content/applications/productivity/spreadsheet/insert.rst:447 msgid "The pivot table properties appear on the right side of the screen when a pivot table is inserted. They can be accessed at any time via the :guilabel:`Data` menu by clicking the relevant pivot table, as prefaced by the :icon:`oi-view-pivot` :guilabel:`(pivot)` icon, or by right-clicking anywhere on the pivot table and clicking :icon:`oi-view-pivot` :guilabel:`See pivot properties`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:440 +#: ../../content/applications/productivity/spreadsheet/insert.rst:452 msgid "The following pivot table properties are shown, some of which can be edited:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:442 +#: ../../content/applications/productivity/spreadsheet/insert.rst:454 msgid ":guilabel:`Pivot #`: the pivot table ID. Pivot table IDs are assigned sequentially as additional pivot tables are inserted in the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:444 +#: ../../content/applications/productivity/spreadsheet/insert.rst:456 msgid ":guilabel:`Name`: the name of the pivot table. Edit this if needed. Note that editing the name in the pivot table properties does not modify the name shown in the sheet name, and vice versa." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:447 +#: ../../content/applications/productivity/spreadsheet/insert.rst:459 msgid ":guilabel:`Columns` and :guilabel:`Rows`: dimensions you are using to categorize or group data from the model." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:449 +#: ../../content/applications/productivity/spreadsheet/insert.rst:461 msgid ":guilabel:`Measures`: what you are measuring, or analyzing, based on the dimensions you have chosen." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:453 +#: ../../content/applications/productivity/spreadsheet/insert.rst:465 msgid "If you attempt to make changes to the columns, rows, or measures of a pivot table that has just been inserted into a spreadsheet, an error appears at the top right of the screen." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:459 +#: ../../content/applications/productivity/spreadsheet/insert.rst:471 msgid "To be able to manipulate a pivot table's properties, convert a static pivot table to a :ref:`dynamic pivot table `." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:469 -msgid "To :ref:`duplicate ` or :ref:`delete ` a pivot table's data source, click the :icon:`fa-cog` :guilabel:`(gear)` icon then :icon:`fa-copy` :guilabel:`Duplicate` or :icon:`fa-trash` :guilabel:`Delete`." +#: ../../content/applications/productivity/spreadsheet/insert.rst:481 +msgid "To :ref:`duplicate ` or :ref:`delete ` a pivot table's data source, click the :icon:`fa-cog` :guilabel:`(gear)` icon then :icon:`fa-clone` :guilabel:`Duplicate` or :icon:`fa-trash` :guilabel:`Delete`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:477 +#: ../../content/applications/productivity/spreadsheet/insert.rst:489 msgid "Manage an inserted pivot table" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:479 -msgid "Once a pivot table from an Odoo database has been inserted into an Odoo spreadsheet, you can:" +#: ../../content/applications/productivity/spreadsheet/insert.rst:491 +msgid "After a pivot table from an Odoo database has been inserted into an Odoo spreadsheet, you can:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:481 +#: ../../content/applications/productivity/spreadsheet/insert.rst:493 msgid ":ref:`convert it to a dynamic pivot table ` to be able to manipulate the dimensions and measures" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:483 +#: ../../content/applications/productivity/spreadsheet/insert.rst:495 msgid ":ref:`duplicate the pivot table ` to create a new, identical data source" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:485 +#: ../../content/applications/productivity/spreadsheet/insert.rst:497 msgid ":ref:`delete the pivot table and its underlying data source `" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:491 +#: ../../content/applications/productivity/spreadsheet/insert.rst:503 msgid "Duplicate a pivot table" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:493 +#: ../../content/applications/productivity/spreadsheet/insert.rst:505 msgid "Duplicating a pivot table via the pivot table's properties creates an additional data source. This allows for different manipulations to be performed on the same data within one spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:496 +#: ../../content/applications/productivity/spreadsheet/insert.rst:508 msgid "For example, you can see the same data aggregated by different dimensions or use :doc:`global filters ` to offset the date and create pivot tables that compare the current period's data with a previous period." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:500 +#: ../../content/applications/productivity/spreadsheet/insert.rst:512 msgid "To duplicate a pivot table, perform the following steps:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:502 +#: ../../content/applications/productivity/spreadsheet/insert.rst:514 msgid "With the :ref:`pivot table properties ` open, click the :icon:`fa-cog` :guilabel:`(gear)` icon then :icon:`fa-clone` :guilabel:`Duplicate`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:505 -msgid "The duplicated pivot table is automatically inserted into a new sheet in the spreadsheet, with the pivot table properties open in the right pane." +#: ../../content/applications/productivity/spreadsheet/insert.rst:517 +msgid "The duplicated pivot table is automatically inserted into a new sheet in the spreadsheet, with the pivot table properties open in the right panel." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:507 -msgid "Edit the :guilabel:`Name` in the properties pane and the sheet tab if needed." +#: ../../content/applications/productivity/spreadsheet/insert.rst:519 +msgid "Edit the :guilabel:`Name` in the properties panel and the sheet tab if needed." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:509 +#: ../../content/applications/productivity/spreadsheet/insert.rst:521 msgid "The new data source is assigned the next available pivot table ID. For example, if no other pivot tables have been inserted in the meantime, duplicating *Pivot #1* results in the creation of *Pivot #2*." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:514 +#: ../../content/applications/productivity/spreadsheet/insert.rst:526 msgid "Duplicating an inserted pivot table by copying and pasting it or by duplicating the sheet does not create a new data source. Any changes made to the pivot table's properties would therefore impact any copies of the pivot table." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:517 +#: ../../content/applications/productivity/spreadsheet/insert.rst:529 msgid "When a pivot table is duplicated, the new pivot table is by default a :doc:`dynamic pivot table `." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:523 +#: ../../content/applications/productivity/spreadsheet/insert.rst:535 msgid "Delete a pivot table" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:525 +#: ../../content/applications/productivity/spreadsheet/insert.rst:537 msgid "To fully delete a pivot table and the underlying data source from a spreadsheet, perform the following steps in any order:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:530 -msgid "From the :ref:`properties pane ` of the relevant pivot table, click the :icon:`fa-cog` :guilabel:`(gear)` icon then :icon:`fa-trash` :guilabel:`Delete`. This deletes the data source of the pivot table." +#: ../../content/applications/productivity/spreadsheet/insert.rst:542 +msgid "From the :ref:`properties panel ` of the relevant pivot table, click the :icon:`fa-cog` :guilabel:`(gear)` icon then :icon:`fa-trash` :guilabel:`Delete`. This deletes the data source of the pivot table." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:537 +#: ../../content/applications/productivity/spreadsheet/insert.rst:549 msgid "Insert a chart" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:539 +#: ../../content/applications/productivity/spreadsheet/insert.rst:551 msgid "To insert a chart from an Odoo database into an Odoo spreadsheet:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:541 +#: ../../content/applications/productivity/spreadsheet/insert.rst:553 msgid "With the relevant graph view open in your database, click :guilabel:`Insert in Spreadsheet`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:542 +#: ../../content/applications/productivity/spreadsheet/insert.rst:554 msgid "In the window that opens, edit the :guilabel:`Name of the graph` if needed." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:544 -msgid "Click :guilabel:`Blank spreadsheet` or select in which existing spreadsheet the chart should be inserted." +#: ../../content/applications/productivity/spreadsheet/insert.rst:556 +msgid "Click :guilabel:`Blank spreadsheet` to create a new spreadsheet, or select in which existing spreadsheet the chart should be inserted." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:560 +msgid "When inserting a chart into a new spreadsheet, the spreadsheet is saved in the **Odoo Documents** app in the :icon:`fa-hdd-o` :guilabel:`My Drive` personal folder." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:555 +#: ../../content/applications/productivity/spreadsheet/insert.rst:565 msgid "Charts are inserted on the first sheet of the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:558 +#: ../../content/applications/productivity/spreadsheet/insert.rst:568 msgid "Clicking on a data point in a chart opens the relevant list view in the database. In the example, clicking on :guilabel:`Jessica Childs` opens the list view of all sales by this salesperson that match the domain of the chart." msgstr "" @@ -11688,319 +12041,447 @@ msgstr "" msgid "A clickable link to an Odoo menu plus clickable data point" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:568 +#: ../../content/applications/productivity/spreadsheet/insert.rst:578 msgid "Chart properties" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:570 -msgid "When you insert a chart into a spreadsheet, the chart properties appear on the right side of the screen. Access these at any time via the :guilabel:`Data` menu by clicking the relevant chart, as prefaced by the :icon:`fa-bar-chart` :guilabel:`(chart)` icon. Alternatively, hover over the chart then click the :icon:`fa-bars` :guilabel:`(menu)` icon and click :icon:`fa-pencil-square-o` :guilabel:`Edit`." +#: ../../content/applications/productivity/spreadsheet/insert.rst:580 +msgid "When you insert a chart into a spreadsheet, the chart properties appear on the right side of the screen. Access these at any time via the :guilabel:`Data` menu by clicking the relevant chart, as prefaced by the :icon:`fa-bar-chart` :guilabel:`(chart)` icon. Alternatively, hover over the chart then click the :icon:`fa-bars` :guilabel:`(menu)` icon and click :icon:`fa-pencil-square-o` :guilabel:`Edit`." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:586 +msgid "In the chart properties, the :icon:`fa-sliders` :guilabel:`Configuration` and :icon:`fa-paint-brush` :guilabel:`Design` tabs let you modify various elements of the chart." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:592 +msgid "The :icon:`fa-sliders` :guilabel:`Configuration` tab includes the following sections:" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:594 +msgid ":guilabel:`Chart type`: the type of chart. By default, this indicates the type of chart you selected in the graph view in the database before inserting the chart in the spreadsheet." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:597 +msgid "After a chart has been inserted, more chart types are available. Click the dropdown menu to select the most appropriate chart type for the data." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:601 +msgid "The chart types in the :guilabel:`Other` tab below are only available when creating a chart from spreadsheet data; an inserted chart cannot be converted to a chart type shown in that tab. All other chart types are available for both inserted charts and when creating a chart directly from spreadsheet data." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:608 +msgid "Line" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Line chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:613 +msgid ":guilabel:`Line`: best for showing trends or changes over time, such as sales growth across months or temperature variations." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Stacked line chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:619 +msgid ":guilabel:`Stacked Line`: useful for visualizing cumulative trends where multiple series contribute to a total, like revenue by department over time." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Combo chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:625 +msgid ":guilabel:`Combo`: combines multiple chart types (e.g., bars and lines) to compare different data types or highlight key metrics alongside trends." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:628 +msgid "Column" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Column chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:633 +msgid ":guilabel:`Column`: ideal for comparing values across discrete categories, such as sales per product or revenue by region." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Stacked column chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:639 +msgid ":guilabel:`Stacked Column`: displays part-to-whole relationships within categories, such as regional contributions to total sales." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:642 +msgid "Bar" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Bar chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:647 +msgid ":guilabel:`Bar`: similar to a column chart but horizontal, making it better for comparing long category names or datasets." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Stacked bar chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:653 +msgid ":guilabel:`Stacked Bar`: highlights cumulative contributions across categories, often used in demographic or resource allocation analysis." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:656 +msgid "Area" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Area chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:661 +msgid ":guilabel:`Area`: similar to a line chart but fills the area beneath the lines to emphasize magnitude, perfect for cumulative metrics over time." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Stacked area chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:667 +msgid ":guilabel:`Stacked Area`: visualizes the composition of changes over time, such as market share by product category." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:670 +msgid "Pie" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:576 -msgid "In the chart properties, the :icon:`fa-sliders` :guilabel:`Configuration` and :icon:`fa-paint-brush` :guilabel:`Design` tabs let you modify various elements of the chart." +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Pie chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:582 -msgid "The :icon:`fa-sliders` :guilabel:`Configuration` tab includes the following sections:" +#: ../../content/applications/productivity/spreadsheet/insert.rst:675 +msgid ":guilabel:`Pie`: best for showing proportions or percentages of a whole, such as market share or budget allocation." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:584 -msgid ":guilabel:`Chart type`: the type of chart. By default, this indicates the type of chart you selected in the graph view in the database before inserting the chart in the spreadsheet." +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Doughnut chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:587 -msgid "After a chart has been inserted, more chart types are available. Click the dropdown menu to select the most appropriate chart type for the data." +#: ../../content/applications/productivity/spreadsheet/insert.rst:681 +msgid ":guilabel:`Doughnut`: a variation of the pie chart with a hollow center, offering similar use cases but with a modern aesthetic." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:592 -msgid "Line" +#: ../../content/applications/productivity/spreadsheet/insert.rst:684 +msgid "Hierarchical" msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Line chart icon" +msgid "Sunburst chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:597 -msgid ":guilabel:`Line`: best for showing trends or changes over time, such as sales growth across months or temperature variations." +#: ../../content/applications/productivity/spreadsheet/insert.rst:689 +msgid ":guilabel:`Sunburst`: a variation of the doughnut chart with hierarchical rings, showcasing part-to-whole relationships across multiple levels." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Stacked line chart icon" +msgid "Treemap chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:603 -msgid ":guilabel:`Stacked Line`: useful for visualizing cumulative trends where multiple series contribute to a total, like revenue by department over time." +#: ../../content/applications/productivity/spreadsheet/insert.rst:695 +msgid ":guilabel:`Treemap`: a multi-level rectangular chart that displays hierarchical data through nested rectangles, ideal for illustrating proportions and categories." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:606 -msgid "Column" +#: ../../content/applications/productivity/spreadsheet/insert.rst:698 +msgid "Miscellaneous" msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Column chart icon" +msgid "Scatter chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:611 -msgid ":guilabel:`Column`: ideal for comparing values across discrete categories, such as sales per product or revenue by region." +#: ../../content/applications/productivity/spreadsheet/insert.rst:703 +msgid ":guilabel:`Scatter`: ideal for analyzing relationships or correlations between two numerical variables, such as price vs. quantity sold." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Stacked column chart icon" +msgid "Waterfall chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:617 -msgid ":guilabel:`Stacked Column`: displays part-to-whole relationships within categories, such as regional contributions to total sales." +#: ../../content/applications/productivity/spreadsheet/insert.rst:709 +msgid ":guilabel:`Waterfall`: ideal for visualizing cumulative effects of sequential positive and negative values, such as profit/loss analysis." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:620 -msgid "Area" +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Population pyramid chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:715 +msgid ":guilabel:`Population Pyramid`: a specialized chart for comparing distributions, often used in demographics, such as age and gender group analysis." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Area chart icon" +msgid "Radar chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:625 -msgid ":guilabel:`Area`: similar to a line chart but fills the area beneath the lines to emphasize magnitude, perfect for cumulative metrics over time." +#: ../../content/applications/productivity/spreadsheet/insert.rst:721 +msgid ":guilabel:`Radar`: displays multivariate data as a polygon on axes radiating from a center, allowing for profile comparisons across multiple variables." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Stacked area chart icon" +msgid "Filled radar chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:631 -msgid ":guilabel:`Stacked Area`: visualizes the composition of changes over time, such as market share by product category." +#: ../../content/applications/productivity/spreadsheet/insert.rst:727 +msgid ":guilabel:`Filled radar`: fills the area within the radar chart's polygon, emphasizing the overall magnitude of values across different attributes for comparison." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:634 -msgid "Pie" +#: ../../content/applications/productivity/spreadsheet/insert.rst:0 +msgid "Geo chart icon" +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:733 +msgid ":guilabel:`Geo`: visualizes data on a map using color variations to represent values or categories across different geographical regions." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Pie chart icon" +msgid "Funnel chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:639 -msgid ":guilabel:`Pie`: best for showing proportions or percentages of a whole, such as market share or budget allocation." +#: ../../content/applications/productivity/spreadsheet/insert.rst:739 +msgid ":guilabel:`Funnel`: visualizes data that progressively decreases over stages of a process, with the option to display cumulative data for each stage." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:642 +#: ../../content/applications/productivity/spreadsheet/insert.rst:742 msgid "Other" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:644 +#: ../../content/applications/productivity/spreadsheet/insert.rst:744 msgid "When creating a chart from spreadsheet data, rather than inserting one from a graph view, the following chart types are also available:" msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Combo chart icon" +msgid "Gauge chart icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:650 -msgid ":guilabel:`Combo`: combines multiple chart types (e.g., bars and lines) to compare different data types or highlight key metrics alongside trends." +#: ../../content/applications/productivity/spreadsheet/insert.rst:750 +msgid ":guilabel:`Gauge`: displays progress toward a goal or a single key metric, such as performance against a target." msgstr "" #: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Bar chart icon" +msgid "Scorecard icon" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:656 -msgid ":guilabel:`Bar`: similar to a column chart but horizontal, making it better for comparing long category names or datasets." +#: ../../content/applications/productivity/spreadsheet/insert.rst:756 +msgid ":guilabel:`Scorecard`: used to summarize key performance indicators (KPIs) in a compact format, such as total sales or conversion rates, and compare to a baseline or a previous value." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Stacked bar chart icon" +#: ../../content/applications/productivity/spreadsheet/insert.rst:762 +msgid ":guilabel:`Link to Odoo menu`: to add a :ref:`clickable link ` from a chart to an Odoo menu item, i.e., a specific view of a model." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:662 -msgid ":guilabel:`Stacked Bar`: highlights cumulative contributions across categories, often used in demographic or resource allocation analysis." +#: ../../content/applications/productivity/spreadsheet/insert.rst:766 +msgid "Design" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Doughnut chart icon" +#: ../../content/applications/productivity/spreadsheet/insert.rst:768 +msgid "Depending on the chart type, the :icon:`fa-paint-brush` :guilabel:`Design` tab has one or more sections." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:668 -msgid ":guilabel:`Doughnut`: A variation of the pie chart with a hollow center, offering similar use cases but with a modern aesthetic." +#: ../../content/applications/productivity/spreadsheet/insert.rst:771 +msgid "The :guilabel:`General` section allows you to modify the following elements:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Scatter chart icon" +#: ../../content/applications/productivity/spreadsheet/insert.rst:773 +msgid ":guilabel:`Background color`: Add or change the background color by clicking on the color dot. Choose one of the standard colors or click the :icon:`fa-plus` icon to manually select a custom color." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:674 -msgid ":guilabel:`Scatter`: ideal for analyzing relationships or correlations between two numerical variables, such as price vs. quantity sold." +#: ../../content/applications/productivity/spreadsheet/insert.rst:776 +msgid ":guilabel:`Chart title`: Edit the chart title, if needed. The font formatting, horizontal alignment, font size, and color of the title can be modified using the editor." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Gauge chart icon" +#: ../../content/applications/productivity/spreadsheet/insert.rst:778 +msgid ":guilabel:`Legend position`: Change the position of the legend or opt to have no legend." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:680 -msgid ":guilabel:`Gauge`: displays progress toward a goal or a single key metric, such as performance against a target." +#: ../../content/applications/productivity/spreadsheet/insert.rst:779 +msgid "Enable :guilabel:`Show values` to add numeric values to the data points on the chart." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Scorecard icon" +#: ../../content/applications/productivity/spreadsheet/insert.rst:782 +msgid "The :guilabel:`Data Series` section allows you to modify the following elements:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:686 -msgid ":guilabel:`Scorecard`: used to summarize key performance indicators (KPIs) in a compact format, such as total sales or conversion rates, and compare to a baseline or a previous value." +#: ../../content/applications/productivity/spreadsheet/insert.rst:784 +msgid ":guilabel:`Series color`: With the relevant data series selected, change the color of the related data points on the chart by clicking on the color dot circle. Choose one of the standard colors or click the :icon:`fa-plus` icon to manually select a custom color." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Waterfall chart icon" +#: ../../content/applications/productivity/spreadsheet/insert.rst:787 +msgid ":guilabel:`Series name`: Edit the name of a data series, if needed." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:693 -msgid ":guilabel:`Waterfall`: ideal for visualizing cumulative effects of sequential positive and negative values, such as profit/loss analysis." +#: ../../content/applications/productivity/spreadsheet/insert.rst:788 +msgid ":guilabel:`Serie type`: For each data series of a :guilabel:`Combo` chart, determine whether the series is shown as a :guilabel:`Bar` or :guilabel:`Line`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:0 -msgid "Population pyramid chart icon" +#: ../../content/applications/productivity/spreadsheet/insert.rst:790 +msgid ":guilabel:`Vertical axis`: For the selected data series of a :guilabel:`Line`, :guilabel:`Area`, or :guilabel:`Column` chart, select whether it should be displayed on the :guilabel:`Left` (primary) or :guilabel:`Right` (secondary) vertical axis." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:699 -msgid ":guilabel:`Population Pyramid`: a specialized chart for comparing distributions, often used in demographics, such as age and gender group analysis." +#: ../../content/applications/productivity/spreadsheet/insert.rst:793 +msgid ":guilabel:`Trend line`: With the relevant data series selected, enable :guilabel:`Show trend line` then select the type of trend line from the dropdown; the options are :guilabel:`Linear`, :guilabel:`Exponential`, :guilabel:`Polynomial`, :guilabel:`Logarithmic`, and :guilabel:`Trailing moving average`. The color of the trend line can be changed by clicking on the color circle." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:704 -msgid ":guilabel:`Link to Odoo menu`: to add a :ref:`clickable link ` from a chart to an Odoo menu item, i.e., a specific view of a model." +#: ../../content/applications/productivity/spreadsheet/insert.rst:798 +msgid "The :guilabel:`Axes` section allows you add a title to one or both axes of a chart. The font formatting, horizontal alignment, font size, and color of the title can be modified using the editor." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:708 -msgid "Design" +#: ../../content/applications/productivity/spreadsheet/insert.rst:802 +msgid "Waterfall charts have a dedicated :guilabel:`Waterfall design` section." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:710 -msgid "Depending on the chart type, the :icon:`fa-paint-brush` :guilabel:`Design` tab has one or more sections." +#: ../../content/applications/productivity/spreadsheet/insert.rst:805 +msgid "Manage an inserted chart" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:713 -msgid "The :guilabel:`General` section lets you modify the following elements:" +#: ../../content/applications/productivity/spreadsheet/insert.rst:807 +msgid "After a chart from an Odoo database has been inserted into an Odoo spreadsheet, you can:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:715 -msgid ":guilabel:`Background color`: Add or change the background color by clicking on the color dot. Choose one of the standard colors or click the :icon:`fa-plus` icon to manually select a custom color." +#: ../../content/applications/productivity/spreadsheet/insert.rst:809 +msgid "move the chart within the same sheet by selecting it, then dragging the chart to the desired position" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:718 -msgid ":guilabel:`Chart title`: Edit the chart title, if needed. The font formatting, horizontal alignment and color of the title can be modified using the editor." +#: ../../content/applications/productivity/spreadsheet/insert.rst:811 +msgid "resize the chart by selecting it, then clicking and dragging the blue markers until the chart is the desired size" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:720 -msgid ":guilabel:`Vertical axis position`: Choose whether the vertical axis is placed on the left or right in line, column, and area charts." +#: ../../content/applications/productivity/spreadsheet/insert.rst:813 +msgid "hover over the chart, then click the :icon:`fa-bars` :guilabel:`(menu)` icon to reveal the following options:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:722 -msgid ":guilabel:`Legend position`: Change the position of the legend or opt to have no legend." +#: ../../content/applications/productivity/spreadsheet/insert.rst:816 +msgid ":icon:`fa-clipboard` :guilabel:`Copy` or :icon:`os-cut` :guilabel:`Cut`: to copy or cut a chart with the intention of pasting it *within the same spreadsheet*, click the relevant icon or use the relevant keyboard shortcut. Paste the chart in the desired location by clicking :menuselection:`Edit -->` :icon:`os-paste` :menuselection:`Paste` from the menu bar or use the relevant keyboard shortcut." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:723 -msgid "Enable :guilabel:`Show values` to add numeric values to the data points on the chart." +#: ../../content/applications/productivity/spreadsheet/insert.rst:823 +msgid "Copying/cutting and pasting a chart in this way maintains the link between the chart and your database. The data in the pasted chart remains up-to-date, and clicking on a data point opens the related list view in the database." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:725 -msgid "Enable :guilabel:`Show trend line` to add a trend line to line, column, and area charts." +#: ../../content/applications/productivity/spreadsheet/insert.rst:827 +msgid ":guilabel:`Copy as image`: to copy an image of a chart to your clipboard with the intention of pasting it *in any location within or outside your spreadsheet*, click :guilabel:`Copy as image`. Paste the image in the desired location using the paste function of the destination program or the relevant keyboard shortcut." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:727 -msgid "For line, column, and area charts, the :guilabel:`Axis` section lets you add a title to one or both axes. The font formatting, horizontal alignment, and color of the title can be modified using the editor." +#: ../../content/applications/productivity/spreadsheet/insert.rst:833 +msgid "Copying and pasting a static image of a chart implies there is no longer any link between the chart and your database." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:836 +msgid ":icon:`fa-trash-o` :guilabel:`Delete`: delete a chart and its underlying :ref:`data source ` by clicking :icon:`fa-trash-o` :guilabel:`Delete`. Alternatively, use your preferred keyboard command to delete a chart and its data source." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:734 +#: ../../content/applications/productivity/spreadsheet/insert.rst:843 msgid "Insert clickable links" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:736 +#: ../../content/applications/productivity/spreadsheet/insert.rst:845 msgid "Adding links to related or supporting information can make your report or dashboard more user-friendly and effective." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:739 +#: ../../content/applications/productivity/spreadsheet/insert.rst:848 msgid "You can :ref:`insert a clickable link from any spreadsheet cell ` to:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:742 +#: ../../content/applications/productivity/spreadsheet/insert.rst:851 msgid "an Odoo menu item" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:743 +#: ../../content/applications/productivity/spreadsheet/insert.rst:852 msgid "another sheet inside the same spreadsheet" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:744 +#: ../../content/applications/productivity/spreadsheet/insert.rst:853 msgid "an external URL" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:747 +#: ../../content/applications/productivity/spreadsheet/insert.rst:855 +msgid "You can :ref:`insert a clickable link from any chart ` to an Odoo menu item." +msgstr "" + +#: ../../content/applications/productivity/spreadsheet/insert.rst:859 msgid "Clicking a link to a menu item provides the same result as navigating via the Odoo menu within an app, e.g., the menu item :guilabel:`Sales/Orders/Quotations` corresponds to the default view when navigating to :menuselection:`Sales --> Orders --> Quotations`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:750 +#: ../../content/applications/productivity/spreadsheet/insert.rst:862 msgid "It is also possible to insert a clickable link to a specific view of a model in a spreadsheet starting from the view itself. However, as this method inserts each new link in a new sheet, it is more efficient to create links to specific views starting from the spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:754 -msgid "You can :ref:`insert a clickable link from any chart ` to an Odoo menu item." +#: ../../content/applications/productivity/spreadsheet/insert.rst:867 +msgid "Use the middle mouse button or `Ctrl` + left-click (Microsoft/Linux), or `Command` + left-click (Mac OS) to open clickable links in a new browser tab." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:760 +#: ../../content/applications/productivity/spreadsheet/insert.rst:873 msgid "Insert a clickable link from a cell" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:762 +#: ../../content/applications/productivity/spreadsheet/insert.rst:875 msgid "To insert a clickable link from a cell:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:764 +#: ../../content/applications/productivity/spreadsheet/insert.rst:877 msgid "Click :menuselection:`Insert -->` :icon:`fa-link` :menuselection:`Link` from the menu bar or right-click on the cell, then click :icon:`fa-link` :guilabel:`Insert link`. Next, depending on the desired outcome, perform one of the following actions:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:768 +#: ../../content/applications/productivity/spreadsheet/insert.rst:881 msgid "Click the :icon:`fa-bars` :guilabel:`(menu)` icon, then :guilabel:`Link an Odoo menu`. Select the relevant menu item from the list or click :guilabel:`Search more` to choose from a list of all menu items. Click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:771 +#: ../../content/applications/productivity/spreadsheet/insert.rst:884 msgid "Click the :icon:`fa-bars` :guilabel:`(menu)` icon, then :guilabel:`Link sheet`, then choose the relevant sheet from the current spreadsheet." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:773 +#: ../../content/applications/productivity/spreadsheet/insert.rst:886 msgid "Under :guilabel:`Link`, type a URL." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:775 +#: ../../content/applications/productivity/spreadsheet/insert.rst:888 msgid "Enter or edit the label for the link in the :guilabel:`Text` field." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:781 +#: ../../content/applications/productivity/spreadsheet/insert.rst:894 msgid "Insert a clickable link from a chart" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:783 +#: ../../content/applications/productivity/spreadsheet/insert.rst:896 msgid "To insert a clickable link from a chart to an Odoo menu item:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:785 +#: ../../content/applications/productivity/spreadsheet/insert.rst:898 msgid "Hover over the top right of the chart's box, then click the :icon:`fa-bars` :guilabel:`(menu)` icon, then :icon:`fa-pencil-square-o` :guilabel:`Edit`. The chart properties appear at the right of the screen." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:788 -msgid "At the bottom of the :icon:`fa-sliders` :guilabel:`Configuration` tab of the chart properties pane, click under :guilabel:`Link to Odoo menu`, then select a menu." +#: ../../content/applications/productivity/spreadsheet/insert.rst:901 +msgid "At the bottom of the :icon:`fa-sliders` :guilabel:`Configuration` tab of the chart properties panel, click under :guilabel:`Link to Odoo menu`, then select a menu." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:791 +#: ../../content/applications/productivity/spreadsheet/insert.rst:904 msgid "Hover over the top right of the chart's box to see that a new :icon:`fa-external-link` :guilabel:`(external link)` icon has been added." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:797 +#: ../../content/applications/productivity/spreadsheet/insert.rst:910 msgid "Insert financial data" msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:799 +#: ../../content/applications/productivity/spreadsheet/insert.rst:912 msgid "When building reports and dashboards, it may be useful to include certain accounting-related data, such as account IDs, credits and debits for specific accounts, and dates of the start and end of the tax year." msgstr "" -#: ../../content/applications/productivity/spreadsheet/insert.rst:803 +#: ../../content/applications/productivity/spreadsheet/insert.rst:916 msgid ":ref:`Odoo-specific spreadsheet functions ` allow you to retrieve such accounting data from your database and insert it into a spreadsheet." msgstr "" @@ -12017,61 +12498,57 @@ msgid "Create a template" msgstr "" #: ../../content/applications/productivity/spreadsheet/templates.rst:17 -msgid "Any spreadsheet can be saved as a template. Open the relevant spreadsheet or :ref:`create a new one `. From the menu bar, click :menuselection:`File --> Save as template`. Modify the default :guilabel:`Template Name` if needed and click :guilabel:`Confirm`." +msgid "Any spreadsheet can be saved as a template. Open the relevant spreadsheet or :ref:`create a new one `. From the menu bar, click :menuselection:`File -->` :icon:`os-save` :menuselection:`Save as template`. Modify the default :guilabel:`Template Name` if needed and click :guilabel:`Confirm`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:22 +#: ../../content/applications/productivity/spreadsheet/templates.rst:23 msgid "Once a spreadsheet is saved as a template, any further changes to the open spreadsheet are saved only in that spreadsheet. To make changes to the template, you need to :ref:`edit the template `." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:26 +#: ../../content/applications/productivity/spreadsheet/templates.rst:27 msgid "You can also create a template by :ref:`making a copy of an existing template and editing it `." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:32 +#: ../../content/applications/productivity/spreadsheet/templates.rst:33 msgid "Use templates" msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:34 +#: ../../content/applications/productivity/spreadsheet/templates.rst:35 msgid "To create a new spreadsheet using a template, open the Documents app and click :menuselection:`New --> Spreadsheet`. Select the relevant template and click :guilabel:`Create`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:37 +#: ../../content/applications/productivity/spreadsheet/templates.rst:38 msgid "Alternatively, go to :menuselection:`Documents --> Configuration --> Spreadsheet Templates` then, on the line of the relevant template, click :icon:`fa-plus` :guilabel:`New spreadsheet`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:41 +#: ../../content/applications/productivity/spreadsheet/templates.rst:42 msgid "By default, the new spreadsheet inherits the name of the template, which is shown at the top of the screen. To rename the spreadsheet, click the name and edit it." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:47 +#: ../../content/applications/productivity/spreadsheet/templates.rst:48 msgid "Manage and edit templates" msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:49 +#: ../../content/applications/productivity/spreadsheet/templates.rst:50 msgid "Manage templates by going to :menuselection:`Documents --> Configuration --> Spreadsheet Templates`. Remove the :guilabel:`My Templates` :ref:`filter ` to view all templates in the database." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:53 +#: ../../content/applications/productivity/spreadsheet/templates.rst:54 msgid "Various actions are possible:" msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:55 +#: ../../content/applications/productivity/spreadsheet/templates.rst:56 msgid "Copy an existing template by clicking :icon:`fa-clone` :guilabel:`Make a copy` at the right of the screen. The new template appears at the bottom of the list. Click the :guilabel:`Name` to edit it." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:59 +#: ../../content/applications/productivity/spreadsheet/templates.rst:60 msgid "Edit an existing template (including one you just copied) by clicking :icon:`fa-pencil` :guilabel:`Edit`, then making the required changes. Modifications are automatically saved." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:63 +#: ../../content/applications/productivity/spreadsheet/templates.rst:64 msgid "Delete a template by ticking the checkbox next to it, clicking :icon:`fa-cog` :guilabel:`Actions`, then :guilabel:`Delete`." msgstr "" -#: ../../content/applications/productivity/spreadsheet/templates.rst:67 -msgid "Use the download button under the :guilabel:`Spreadsheet file` column to export a template in JSON format. The file can be imported into another database." -msgstr "" - #: ../../content/applications/productivity/to_do.rst:3 msgid "To-do" msgstr "" @@ -12318,18 +12795,22 @@ msgid "To configure Axivox in Odoo, go to the :menuselection:`Apps` application, msgstr "" #: ../../content/applications/productivity/voip/axivox/axivox_config.rst:22 -msgid "Next, go to :menuselection:`Settings app --> General Settings --> Integrations section`, and fill out the :guilabel:`VoIP` field:" +msgid "Next, go to :menuselection:`Settings app --> General Settings --> Integrations section --> VoIP`. Click :guilabel:`Manage Providers`, then :guilabel:`New`. Fill in the following information:" msgstr "" #: ../../content/applications/productivity/voip/axivox/axivox_config.rst:25 -msgid ":guilabel:`OnSIP Domain`: set the domain created by Axivox for the account (e.g., `yourcompany.axivox.com`)" +msgid ":guilabel:`Name`: type `Axivox`" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:27 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:26 msgid ":guilabel:`WebSocket`: type in `wss://pabx.axivox.com:3443`" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:28 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:27 +msgid ":guilabel:`OnSIP Domain`: set the domain created by Axivox for the account (e.g., `yourcompany.axivox.com`)" +msgstr "" + +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:29 msgid ":guilabel:`VoIP Environment`: set as :guilabel:`Production`" msgstr "" @@ -12337,47 +12818,47 @@ msgstr "" msgid "Integration of Axivox as VoIP provider in an Odoo database." msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:35 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:36 msgid "Access the domain on the Axivox administrative panel by navigating to `https://manage.axivox.com/ `_. After logging into the portal, go to :menuselection:`Users --> Edit (next to any user) --> SIP Identifiers tab --> Domain`." msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:40 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:41 msgid "Configure VoIP user in Odoo" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:42 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:43 msgid "Next, the user is configured in Odoo, which **must** take place for every Axivox/Odoo user using VoIP." msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:45 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:46 msgid "In Odoo, go to :menuselection:`Settings app --> Users & Companies --> Users`, then open the desired user's form to configure :abbr:`VoIP (Voice over Internet Protocol)`. Under the :guilabel:`Preferences` tab, fill out the :guilabel:`VOIP Configuration` section:" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:49 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:50 msgid ":guilabel:`VoIP username` / :guilabel:`Extension number`: (Axivox) :guilabel:`SIP username`" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:50 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:51 msgid ":guilabel:`OnSip Auth Username`: (Axivox) :guilabel:`SIP username`" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:51 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:52 msgid ":guilabel:`VoIP Secret`: (Axivox) :guilabel:`SIP Password`" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:52 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:53 msgid ":guilabel:`Call from another device`: option to always transfer phone calls to handset" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:53 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:54 msgid ":guilabel:`External device number`: SIP external phone extension" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:54 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:55 msgid ":guilabel:`Reject incoming calls`: option to reject all incoming calls" msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:55 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:56 msgid ":guilabel:`How to place calls on mobile`: method to make calls on a mobile device" msgstr "" @@ -12385,7 +12866,7 @@ msgstr "" msgid "Integration of Axivox user in the Odoo user preference." msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:62 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:63 msgid "Access the domain on the Axivox administrative panel by navigating to `https://manage.axivox.com/ `_. After logging into the portal, go to :menuselection:`Users --> Edit (next to the user) --> SIP Identifiers tab --> SIP username / SIP password`." msgstr "" @@ -12393,7 +12874,7 @@ msgstr "" msgid "SIP credentials in the Axivox manager." msgstr "" -#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:71 +#: ../../content/applications/productivity/voip/axivox/axivox_config.rst:72 msgid "When entering the :guilabel:`SIP Password` into the user's :guilabel:`Preferences` tab, this value **must** be typed out manually and **not** pasted in. Pasting in causes a `401 server rejection error`." msgstr "" @@ -14754,6 +15235,122 @@ msgstr "" msgid "See `Linphone's wiki-documentation page `_." msgstr "" +#: ../../content/applications/productivity/voip/didww.rst:3 +msgid "VoIP services in Odoo with DIDWW" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:5 +msgid "*DIDWW* is a global *VoIP* and SIP trunking provider. An active account with DIDWW is required to use this service." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:8 +msgid "Before creating an account with DIDWW, make sure that the company's location and the applicable regions are supported by DIDWW's services." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:12 +msgid "DIDWW setup" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:14 +msgid "After verifying country coverage and availability, create an account with `DIDWW `_. Then navigate to the `DIDWW Dashboard `_." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:18 +msgid "To transfer existing numbers from an existing telephone network service provider, follow the steps outlined on the `DIDWW website `_." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:22 +msgid "Purchase new numbers" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:24 +msgid "To puchase new phone numbers, click :guilabel:`Buy Numbers` in the dashboard, then follow the instructions to complete the purchase." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:27 +msgid "When buying a new number, it **must** support both inbound calls and Local CLI." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:-1 +msgid "The purchase dashboard in DIDWW." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:33 +msgid "Enable phone.systems" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:35 +msgid "Next, click :guilabel:`Cloud Phone System` in the dashboard sidebar. Then, click :guilabel:`Launch admin UI`." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:39 +msgid "The *phone.systems PBX* feature is an extra paid service in DIDWW, and may require additional fees." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:42 +msgid "To create a new user, click :guilabel:`Users`, click the plus sign, then enter the necessary information." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:-1 +msgid "The add a new user screen in DIDWW." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:48 +msgid "Click :guilabel:`Contact Methods`, then click the plus sign to add a new *SIP Device Route*." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:50 +msgid "Configure or add the following parameters:" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:52 +msgid ":guilabel:`Allowed Codecs`: `OPUS`, `PCMU`, `PCMA`, `telephone-event`, `g722`, `g729`." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:53 +msgid ":guilabel:`Allowed media types`: `SRTP-DTLS`" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:54 +msgid ":guilabel:`Default media type`: `SRTP-DTLS`" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:55 +msgid ":guilabel:`Transport protocol`: `UDP`, `TCP`, `WSS`, `TLS`" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:-1 +msgid "The settings for a new contact method in DIDWW." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:61 +msgid "If no phone number available from drop-down selection in *Inbound and Outbound DID/Caller ID* selection, the :guilabel:`Inbound voice trunk` needs to be modified. Navigate to the dashboard, then click :guilabel:`My Numbers`. Scroll to :guilabel:`Configuration`. In the :guilabel:`Inbound voice trunk` field, select :guilabel:`phone.systems`." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:67 +msgid "Odoo setup" +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:69 +msgid "In *Odoo*, navigate to :menuselection:`Settings app --> Integrations --> VoIP --> Manage Providers`. Click :guilabel:`New`." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:72 +msgid "Enter the name, `DIDWW`, then update the :guilabel:`WebSocket` field with `wss://sip.phone.systems`. Under :guilabel:`PBX Server IP`, enter `sip.phone.systems`." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:-1 +msgid "The VoIP providers page in Odoo." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:78 +msgid "To configure a user's VoIP provider, click the user avatar icon in the top-right corner of the database, and then choose :guilabel:`My Preferences` from the sub-menu. Then click into the :guilabel:`VoIP` tab, and under the :guilabel:`Voip Provider` field, select :guilabel:`DIDWW`. Finally, enter the :guilabel:`Voip Username` and :guilabel:`Voip Secret`, then save." +msgstr "" + +#: ../../content/applications/productivity/voip/didww.rst:-1 +msgid "DIDWW provider, username, and secret credentials entered." +msgstr "" + #: ../../content/applications/productivity/voip/onsip.rst:3 msgid "Use VoIP services in Odoo with OnSIP" msgstr "" @@ -15529,7 +16126,7 @@ msgid "`Magic Sheet - WhatsApp configuration [PDF] Configuration --> WhatsApp Business Accounts`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:472 +#: ../../content/applications/productivity/whatsapp.rst:473 msgid "Go live with the Meta app" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:474 +#: ../../content/applications/productivity/whatsapp.rst:475 msgid "Finally, to launch the app, the Meta app must be set to :guilabel:`Live` in the Meta developer console. Navigate to ``_ and click on the app that is being configured. In the top menu, toggle the :guilabel:`App Mode` field from :guilabel:`Development` to :guilabel:`Live`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:480 +#: ../../content/applications/productivity/whatsapp.rst:481 msgid "If the app status is not set to *live*, then the database will only be able to contact the test numbers specified in the developer console." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:484 +#: ../../content/applications/productivity/whatsapp.rst:485 msgid "A privacy policy URL must be set in order for the app to be set to live. Go to the Meta developer console, ``_ and select the app that Odoo is being configured in. Then, using the menu on the left side of the screen, go to :menuselection:`App Settings --> Basic`. Then, enter the privacy policy hyperlink address under the :guilabel:`Privacy Policy URL` field of the form. Click :guilabel:`Save changes` to apply the privacy policy to the app." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:491 +#: ../../content/applications/productivity/whatsapp.rst:492 msgid "Once the app has gone live in the Meta developer console, a confirmation email is sent to the administrator." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:497 +#: ../../content/applications/productivity/whatsapp.rst:498 msgid "WhatsApp templates" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:499 +#: ../../content/applications/productivity/whatsapp.rst:500 msgid "WhatsApp templates are saved messages that are used repeatedly to send messages from the database. They allow users to send quality communications, without having to compose the same text repeatedly." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:502 +#: ../../content/applications/productivity/whatsapp.rst:503 msgid "Creating different templates that are tailored to specific situations lets users choose the right message for the right audience. This increases the quality of the message and the overall engagement rate with the customer." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:506 +#: ../../content/applications/productivity/whatsapp.rst:507 msgid "WhatsApp templates can be created on both the Odoo and Meta consoles. The following process will overview the process for creating templates in Odoo and then afterward in Meta." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:510 +#: ../../content/applications/productivity/whatsapp.rst:511 msgid "WhatsApp has an approval process that must be completed before the template can be used. :ref:`productivity/whatsapp/approval`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:516 +#: ../../content/applications/productivity/whatsapp.rst:517 msgid "Creating templates in Odoo" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:518 +#: ../../content/applications/productivity/whatsapp.rst:519 msgid "To access and create WhatsApp templates, begin by navigating to the :menuselection:`WhatsApp app --> Templates` dashboard." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:521 +#: ../../content/applications/productivity/whatsapp.rst:522 msgid "At the bottom of an individual template's form, there are three tabs: :guilabel:`Body`, :guilabel:`Buttons`, and :guilabel:`Variables`; these three tabs combined create the WhatsApp template." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:525 +#: ../../content/applications/productivity/whatsapp.rst:526 msgid "The text is entered into the :guilabel:`Body` tab, and dynamic content that is called out in the :guilabel:`Body` tab is specified in the :guilabel:`Variables` tab. Every piece of dynamic content (e.g., placeholders) in the message (body) is specifically called out and specified in the :guilabel:`Variables` tab." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:530 +#: ../../content/applications/productivity/whatsapp.rst:531 msgid "Templates are prefabricated layouts that allow users to send professional looking messages to customers. These templates are capable of containing dynamic data that will populate in the end message using variables that are set in the template configuration. For example, messages can contain the end user's name, call out specific products, or reference a sales order, to name a few convenient and impactful variables." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:536 +#: ../../content/applications/productivity/whatsapp.rst:537 msgid "To create a WhatsApp template, go to the :menuselection:`WhatsApp app --> Templates` dashboard and click :guilabel:`New`. On the form, enter a :guilabel:`Name` for the template, and select a :guilabel:`Language`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:541 +#: ../../content/applications/productivity/whatsapp.rst:542 msgid "In order to complete this next task, administrator access rights are needed to edit the :guilabel:`Applies to` field. See this :doc:`access rights documentation <../general/users/access_rights>` for more information." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:545 +#: ../../content/applications/productivity/whatsapp.rst:546 msgid "In the :guilabel:`Account` drop-down menu, select the *WhatsApp business account* in Odoo that this template should link to. Next, under the :guilabel:`Applies to` field select the *model* the server action will apply to for this template." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:550 -msgid "These models can also be accessed in :ref:`developer mode `. On a contact form (or similar relevant form in Odoo), navigate to the model that is referenced, and hover over any field name. A box of backend information will reveal itself with the specific Odoo :guilabel:`Model` name in the backend. Search (using the front-end name) for this model in the :guilabel:`Applies to` drop-down menu in the WhatsApp template." +#: ../../content/applications/productivity/whatsapp.rst:551 +msgid "These models can also be accessed in :ref:`developer mode `. On a contact form (or similar relevant form in Odoo), navigate to the model that is referenced, and hover over any field name. The backend information box displays the Odoo :guilabel:`Model` name. Search (using the front-end name) for this model in the :guilabel:`Applies to` drop-down menu in the WhatsApp template." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:557 +#: ../../content/applications/productivity/whatsapp.rst:558 msgid "Often when changing the model or :guilabel:`Applies to` field, the :guilabel:`Phone Field` may produce an error The :guilabel:`Phone Field` should always be set to the `Phone` or `Mobile` model." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:561 +#: ../../content/applications/productivity/whatsapp.rst:562 msgid "To search available fields, type in the front-end name in the search box. This finds a result from all of the available fields for the model (:guilabel:`Applies to`) that the template is created for." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:565 +#: ../../content/applications/productivity/whatsapp.rst:566 msgid "In order to find specific fields, multiple levels may need to be navigated in the search results box. Use the :guilabel:`> (right chevron)` and :guilabel:`⬅️ (left arrow)` icons to navigate between the menu levels." msgstr "" @@ -16129,83 +16730,83 @@ msgstr "" msgid "Searching for the phone field in the search bar." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:572 +#: ../../content/applications/productivity/whatsapp.rst:573 msgid "Change the :guilabel:`Category` to fit either a :guilabel:`Marketing`, :guilabel:`Utility`, or :guilabel:`Authentication` category. In most instances the first two options are used, unless the user would like to send a password reset or something security related. Set to :guilabel:`Marketing` should there be anything promotional being sent and set to :guilabel:`Utility` should there be general transactional messages being sent (i.e., sales order, event ticket, etc)." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:579 +#: ../../content/applications/productivity/whatsapp.rst:580 msgid "Specifying an incorrect category can cause a flag/rejected status from Meta during the approval process." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:582 +#: ../../content/applications/productivity/whatsapp.rst:583 msgid "Add any :guilabel:`Users` that are allowed to use this template. In the right-side column, a :guilabel:`Header type` can be configured along with a :guilabel:`Header message`, as well." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:585 +#: ../../content/applications/productivity/whatsapp.rst:586 msgid "The available :guilabel:`Header types` are as follows:" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:588 +#: ../../content/applications/productivity/whatsapp.rst:589 msgid "Image" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:589 +#: ../../content/applications/productivity/whatsapp.rst:590 msgid "Video" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:590 +#: ../../content/applications/productivity/whatsapp.rst:591 msgid "Document" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:591 +#: ../../content/applications/productivity/whatsapp.rst:592 msgid "Location (variables need to be set)" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:593 +#: ../../content/applications/productivity/whatsapp.rst:594 msgid "Navigate to the :guilabel:`Body` tab to configure the main message of the template." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:595 +#: ../../content/applications/productivity/whatsapp.rst:596 msgid "When all the necessary changes are made to the template, click on the :guilabel:`Submit for approval` button in the upper-left corner. This will cause the status of the template to change to :guilabel:`Pending`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:599 +#: ../../content/applications/productivity/whatsapp.rst:600 msgid "The status will remain in :guilabel:`Pending` until a decision has been made by Meta, whereby a confirmation email will then be sent indicating that the template has been approved (or rejected). The templates will then need to be synced from the Odoo database." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:603 +#: ../../content/applications/productivity/whatsapp.rst:604 msgid "See this section for more information on :ref:`syncing templates `." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:606 +#: ../../content/applications/productivity/whatsapp.rst:607 msgid "Consider the preconfigured demo data templates available in Odoo to use or modify. These templates can be used as-is or modified to suit a specific business need." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:609 +#: ../../content/applications/productivity/whatsapp.rst:610 msgid "To use these templates, navigate to :menuselection:`WhatsApp app --> Templates` and select a preconfigured template. Click :guilabel:`Submit for Approval` to start the approval process. An email gets sent to the administrator of the Meta account when the template has been approved." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:614 +#: ../../content/applications/productivity/whatsapp.rst:615 msgid "Buttons" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:616 +#: ../../content/applications/productivity/whatsapp.rst:617 msgid "Buttons can be added into the message from the :guilabel:`Buttons` tab. Enter the :guilabel:`Type` (either :guilabel:`Visit Website`, :guilabel:`Call Number`, or :guilabel:`Quick Reply`), and then specify the :guilabel:`Button Text`, :guilabel:`Call Number` or :guilabel:`Website URL` (including :guilabel:`Url Type`), depending on the :guilabel:`Type` of button." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:622 +#: ../../content/applications/productivity/whatsapp.rst:623 msgid "Buttons can also be added on the Meta business console. See Meta's WhatsApp template dashboard by navigating to ``_. Then go to :menuselection:`Account tools --> Message templates`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:627 +#: ../../content/applications/productivity/whatsapp.rst:628 msgid "Using placeholders and variables" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:629 +#: ../../content/applications/productivity/whatsapp.rst:630 msgid "Dynamic variables reference certain fields within the Odoo database to produce unique data in the WhatsApp message when using a template. Dynamic variables are encoded to display fields from within the database, referencing fields from within a model." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:634 +#: ../../content/applications/productivity/whatsapp.rst:635 msgid "Many companies like to customize their WhatsApp messages with a personalized piece of customer information to grab attention. This can be accomplished in Odoo by referencing a field within a model by setting a dynamic variable. For example, a customer's name can be referenced in the email from the :guilabel:`Customer` field on the :guilabel:`Sales Order` model." msgstr "" @@ -16213,15 +16814,15 @@ msgstr "" msgid "WhatsApp message with dynamic variables highlighted." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:642 +#: ../../content/applications/productivity/whatsapp.rst:643 msgid "Dynamic variables can be added in to the :guilabel:`Body` by adding :guilabel:`placeholders` in the *text*. To add a placeholder in the *message body* enter the following text `{{1}}`. For the second placeholder enter `{{2}}` and increase incrementally as more placeholders are added to the text." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:647 +#: ../../content/applications/productivity/whatsapp.rst:648 msgid "*The following is the text from payment receipt template body:*" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:649 +#: ../../content/applications/productivity/whatsapp.rst:650 msgid "Dear {{1}}," msgstr "" @@ -16233,151 +16834,151 @@ msgstr "" msgid "To review your invoice or pay online: {{6}}" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:654 +#: ../../content/applications/productivity/whatsapp.rst:655 msgid "Thank you" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:657 +#: ../../content/applications/productivity/whatsapp.rst:658 msgid ":ref:`productivity/whatsapp/templates`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:659 +#: ../../content/applications/productivity/whatsapp.rst:660 msgid "These placeholders must be configured on the :guilabel:`Variables` tab of the template before submitting for approval from Meta. To edit the dynamic variables on a template, first change the :guilabel:`Type` to :guilabel:`Field of Model`. This allows Odoo to reference a field within a model to produce unique data in the message being sent." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:664 +#: ../../content/applications/productivity/whatsapp.rst:665 msgid "Next, edit the :guilabel:`Field` of the dynamic variables. The :guilabel:`Applies to` field in the template should be edited prior to ensure the correct model and field are referenced." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:667 +#: ../../content/applications/productivity/whatsapp.rst:668 msgid "To search the available fields, type in the front-end name of the field in the search box. This will find a result from all of the available fields for the model (:guilabel:`Applies to`) that the template is created for. There may be multiple levels that need to be configured." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:672 +#: ../../content/applications/productivity/whatsapp.rst:673 msgid "The following is an example of the variables set for the above placeholders in the payment receipt noted above:" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:680 +#: ../../content/applications/productivity/whatsapp.rst:681 msgid "Sample Value" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:681 +#: ../../content/applications/productivity/whatsapp.rst:682 msgid "Type" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:682 +#: ../../content/applications/productivity/whatsapp.rst:683 msgid "Field" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:683 +#: ../../content/applications/productivity/whatsapp.rst:684 msgid "body - {{1}}" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:684 +#: ../../content/applications/productivity/whatsapp.rst:685 msgid "Azure Interior" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:685 -#: ../../content/applications/productivity/whatsapp.rst:689 -#: ../../content/applications/productivity/whatsapp.rst:693 -#: ../../content/applications/productivity/whatsapp.rst:697 -#: ../../content/applications/productivity/whatsapp.rst:701 +#: ../../content/applications/productivity/whatsapp.rst:686 +#: ../../content/applications/productivity/whatsapp.rst:690 +#: ../../content/applications/productivity/whatsapp.rst:694 +#: ../../content/applications/productivity/whatsapp.rst:698 +#: ../../content/applications/productivity/whatsapp.rst:702 msgid "Field of Model" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:686 +#: ../../content/applications/productivity/whatsapp.rst:687 msgid "`Partner`" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:687 +#: ../../content/applications/productivity/whatsapp.rst:688 msgid "body - {{2}}" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:688 +#: ../../content/applications/productivity/whatsapp.rst:689 msgid "INV/2022/00001" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:690 +#: ../../content/applications/productivity/whatsapp.rst:691 msgid "`Number`" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:691 +#: ../../content/applications/productivity/whatsapp.rst:692 msgid "body - {{3}}" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:692 +#: ../../content/applications/productivity/whatsapp.rst:693 msgid "My Company" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:694 +#: ../../content/applications/productivity/whatsapp.rst:695 msgid "`Company`" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:695 +#: ../../content/applications/productivity/whatsapp.rst:696 msgid "body - {{4}}" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:696 +#: ../../content/applications/productivity/whatsapp.rst:697 msgid "$" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:698 +#: ../../content/applications/productivity/whatsapp.rst:699 msgid "`Currency > Symbol`" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:699 +#: ../../content/applications/productivity/whatsapp.rst:700 msgid "body - {{5}}" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:700 +#: ../../content/applications/productivity/whatsapp.rst:701 msgid "4000" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:702 +#: ../../content/applications/productivity/whatsapp.rst:703 msgid "`Amount`" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:703 +#: ../../content/applications/productivity/whatsapp.rst:704 msgid "body - {{6}}" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:704 +#: ../../content/applications/productivity/whatsapp.rst:705 msgid "\\https://.." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:705 +#: ../../content/applications/productivity/whatsapp.rst:706 msgid "Portal link" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:709 +#: ../../content/applications/productivity/whatsapp.rst:710 msgid "For example, in the :guilabel:`Body` tab, if the following is typed, \"Hello {{1}},\", then `{{1}}` must be set in the :guilabel:`Variables` tab. For this specific case, the message should greet the customer by name, so the `{{1}}` should be configured to populate the `{{1}}` :guilabel:`Field` with the :guilabel:`Customer` name." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:715 +#: ../../content/applications/productivity/whatsapp.rst:716 msgid "Customizing WhatsApp templates is out of the scope of Odoo Support." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:720 +#: ../../content/applications/productivity/whatsapp.rst:721 msgid "Meta template approval" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:722 +#: ../../content/applications/productivity/whatsapp.rst:723 msgid "After updating the dynamic variables on the template, the template needs to be submitted to Meta for approval again. Click :guilabel:`Submit for Approval` to start the approval process. An email will be sent to the administrator of the Meta account when the template has been approved." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:726 +#: ../../content/applications/productivity/whatsapp.rst:727 msgid "Following the approval from Meta, sync the templates again in the Odoo database. See this documentation: :ref:`productivity/whatsapp/sync`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:730 +#: ../../content/applications/productivity/whatsapp.rst:731 msgid "To see the status to Meta's WhatsApp template dashboard by navigating to ``_. Then go to :menuselection:`Account tools --> Message templates`." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:737 +#: ../../content/applications/productivity/whatsapp.rst:738 msgid "Syncing templates" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:739 +#: ../../content/applications/productivity/whatsapp.rst:740 msgid "Templates must be synced on the Odoo database once they are approved by the Meta team. To do so, begin by navigating to :menuselection:`WhatsApp app --> Configuration --> WhatsApp Business Accounts` and select the configuration that should be synced. Under the section marked :menuselection:`Sending messages`, towards the bottom, click on :guilabel:`Sync Templates`. Meta will update the templates that are approved so that they can be utilized with various apps in the database." msgstr "" @@ -16386,19 +16987,19 @@ msgid "Syncing Meta WhatsApp templates to the Odoo database, with the 'Sync Temp "highlighted." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:750 +#: ../../content/applications/productivity/whatsapp.rst:751 msgid "A successful message in green appears in the upper-right corner with the number of templates updated." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:754 +#: ../../content/applications/productivity/whatsapp.rst:755 msgid "Templates can also be synced individually from the template itself. Navigate to the :menuselection:`WhatsApp app --> Templates` dashboard and select the template to sync. Then, click on the :guilabel:`Sync Template` button located in the top menu of the template's form." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:759 +#: ../../content/applications/productivity/whatsapp.rst:760 msgid "Creating templates in Meta" msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:761 +#: ../../content/applications/productivity/whatsapp.rst:762 msgid "First, navigate to `Meta's WhatsApp template dashboard `_, and then go to :menuselection:`Account tools --> Message templates`." msgstr "" @@ -16406,16 +17007,16 @@ msgstr "" msgid "Account tools highlighted in business manager with the manage templates link highlighted." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:768 +#: ../../content/applications/productivity/whatsapp.rst:769 msgid "To create a WhatsApp template, click on the blue :guilabel:`Create template` button, and then select the :guilabel:`Category`. The options listed include: :guilabel:`Marketing`, :guilabel:`Utility`, and :guilabel:`Authentication`. In most instances the first two options are used, unless the user would like to send a password reset or something security related." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:773 +#: ../../content/applications/productivity/whatsapp.rst:774 msgid "Enter the :guilabel:`Name` of the template and then select the :guilabel:`Language` for the template." msgstr "" -#: ../../content/applications/productivity/whatsapp.rst:777 -msgid "Multiple languages can be selected by typing the language names and selecting the other languages as needed." +#: ../../content/applications/productivity/whatsapp.rst:778 +msgid "Multiple languages can be selected." msgstr "" #: ../../content/applications/productivity/whatsapp.rst:-1 diff --git a/locale/sources/sales.pot b/locale/sources/sales.pot index 5ad18e8f30..58d31c8e87 100644 --- a/locale/sources/sales.pot +++ b/locale/sources/sales.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -55,7 +55,7 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/configuration.rst:6 #: ../../content/applications/sales/point_of_sale/configuration.rst:54 #: ../../content/applications/sales/point_of_sale/configuration/epos_printers.rst:10 -#: ../../content/applications/sales/point_of_sale/employee_login.rst:16 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:17 #: ../../content/applications/sales/point_of_sale/online_food_delivery.rst:35 #: ../../content/applications/sales/point_of_sale/payment_methods/qr_code_payment.rst:9 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:13 @@ -66,9 +66,9 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:14 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/stripe.rst:19 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/tyro.rst:14 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:16 #: ../../content/applications/sales/point_of_sale/pos_based_marketing.rst:72 -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:31 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:30 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:97 #: ../../content/applications/sales/point_of_sale/preparation.rst:12 #: ../../content/applications/sales/point_of_sale/pricing/cash_rounding.rst:17 #: ../../content/applications/sales/point_of_sale/pricing/electronic_labels.rst:16 @@ -76,14 +76,11 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/pricing/loyalty.rst:9 #: ../../content/applications/sales/point_of_sale/pricing/pricelists.rst:12 #: ../../content/applications/sales/point_of_sale/receipts_invoices.rst:54 -#: ../../content/applications/sales/point_of_sale/restaurant.rst:22 -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:10 -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:19 -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:10 -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:11 +#: ../../content/applications/sales/point_of_sale/restaurant.rst:58 +#: ../../content/applications/sales/point_of_sale/restaurant.rst:173 +#: ../../content/applications/sales/point_of_sale/restaurant.rst:284 #: ../../content/applications/sales/point_of_sale/self_order.rst:9 #: ../../content/applications/sales/point_of_sale/shop/barcode.rst:10 -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:12 #: ../../content/applications/sales/point_of_sale/shop/ship_later.rst:10 #: ../../content/applications/sales/rental/manage_deposits.rst:14 #: ../../content/applications/sales/sales/commissions.rst:14 @@ -1780,7 +1777,6 @@ msgstr "" #: ../../content/applications/sales/crm/performance/expected_revenue_report.rst:118 #: ../../content/applications/sales/crm/performance/forecast_report.rst:85 #: ../../content/applications/sales/crm/track_leads/unattended_leads_report.rst:145 -#: ../../content/applications/sales/members/members_analysis.rst:39 msgid "View results" msgstr "" @@ -2007,7 +2003,6 @@ msgid "Click the |pivot| to change to the pivot view, or the |list| to change to msgstr "" #: ../../content/applications/sales/crm/performance/forecast_report.rst:99 -#: ../../content/applications/sales/members/members_analysis.rst:49 msgid "The :ref:`pivot view ` can be used to view and analyze data in a more in-depth manner. Multiple measures can be selected, and data can be viewed by month, and by opportunity stage." msgstr "" @@ -4710,190 +4705,6 @@ msgstr "" msgid ":doc:`Activities <../../../essentials/activities>`" msgstr "" -#: ../../content/applications/sales/members.rst:5 -msgid "Members" -msgstr "" - -#: ../../content/applications/sales/members.rst:7 -msgid "The *Members* application is where all operations related to memberships can be configured and managed. The *Members* app integrates with the *Sales* and *Accounting* applications to sell and invoice memberships directly to customers." -msgstr "" - -#: ../../content/applications/sales/members.rst:12 -msgid "Membership products" -msgstr "" - -#: ../../content/applications/sales/members.rst:14 -msgid "To create a new membership product, navigate to :menuselection:`Members app --> Configuration --> Membership Products`, and click :guilabel:`New` to open a blank product record." -msgstr "" - -#: ../../content/applications/sales/members.rst:17 -msgid "Complete the blank form with the necessary information, including the :guilabel:`Membership Duration`." -msgstr "" - -#: ../../content/applications/sales/members.rst:21 -msgid "Membership products require a start and end date, as they are used to determine :ref:`membership status `. Membership products can be sold *before* their active start date." -msgstr "" - -#: ../../content/applications/sales/members.rst:-1 -msgid "A new membership product in the members app." -msgstr "" - -#: ../../content/applications/sales/members.rst:29 -msgid "Membership products can be added to a sales order, and invoiced as regular products or subscriptions." -msgstr "" - -#: ../../content/applications/sales/members.rst:33 -msgid "Activate a membership" -msgstr "" - -#: ../../content/applications/sales/members.rst:35 -msgid "To activate a membership from the *Contacts* application, navigate to :menuselection:`Contacts app`, and click on a contact to open that specific contact's detail form." -msgstr "" - -#: ../../content/applications/sales/members.rst:38 -msgid "From the resulting contact form, open the :guilabel:`Membership` tab, and click :guilabel:`Buy Membership`." -msgstr "" - -#: ../../content/applications/sales/members.rst:41 -msgid "On the :guilabel:`Join Membership` pop-up window that appears, select a :guilabel:`Membership` from the drop-down menu. Then, configure a :guilabel:`Member Price`." -msgstr "" - -#: ../../content/applications/sales/members.rst:44 -msgid "Click :guilabel:`Invoice Membership` when both fields are filled in. Doing so reveals a :guilabel:`Membership Invoices` page, wherein invoices can be confirmed and completed." -msgstr "" - -#: ../../content/applications/sales/members.rst:47 -msgid "Alternatively, to offer a free membership, tick the :guilabel:`Free Member` checkbox, in the :guilabel:`Membership` tab of a contact form." -msgstr "" - -#: ../../content/applications/sales/members.rst:53 -msgid "Membership status" -msgstr "" - -#: ../../content/applications/sales/members.rst:55 -msgid "The :guilabel:`Current Membership Status` is listed on the :guilabel:`Membership` tab of each contact record:" -msgstr "" - -#: ../../content/applications/sales/members.rst:58 -msgid ":guilabel:`Non Member`: a partner who has **not** applied for membership." -msgstr "" - -#: ../../content/applications/sales/members.rst:59 -msgid ":guilabel:`Cancelled Member`: a member who has cancelled their membership." -msgstr "" - -#: ../../content/applications/sales/members.rst:60 -msgid ":guilabel:`Old Member`: a member whose membership end date has passed." -msgstr "" - -#: ../../content/applications/sales/members.rst:61 -msgid ":guilabel:`Waiting Member`: a member who has applied for membership, but whose invoice has not yet been created." -msgstr "" - -#: ../../content/applications/sales/members.rst:63 -msgid ":guilabel:`Invoiced Member`: a member whose invoice has been created, but has not been paid." -msgstr "" - -#: ../../content/applications/sales/members.rst:64 -msgid ":guilabel:`Paid Member`: a member who has paid the membership fee." -msgstr "" - -#: ../../content/applications/sales/members.rst:67 -msgid "Publish members directory" -msgstr "" - -#: ../../content/applications/sales/members.rst:69 -msgid "To publish a list of active members on the website, the *Online Members Directory* application must first be :ref:`installed `. After installing the module, add the `/members` page to the website's menu by :doc:`editing the website menu <../websites/website/pages/header_footer>`." -msgstr "" - -#: ../../content/applications/sales/members.rst:-1 -msgid "The Online Members directory module in Odoo." -msgstr "" - -#: ../../content/applications/sales/members.rst:78 -msgid "Publish individual members" -msgstr "" - -#: ../../content/applications/sales/members.rst:80 -msgid "Return to :menuselection:`CRM app --> Sales --> Customers`, and click the Kanban card for a member. From the resulting customer form that appears, click the :guilabel:`Go to Website` smart button at the top of the page to open the member's webpage." -msgstr "" - -#: ../../content/applications/sales/members.rst:84 -msgid "Click the :icon:`fa-pencil` :guilabel:`Edit` button to reveal a sidebar of editing tools. After making any necessary changes to the page, click :guilabel:`Save`. At the top of the page, slide the :guilabel:`Unpublished` toggle to the active, :guilabel:`Published` position." -msgstr "" - -#: ../../content/applications/sales/members.rst:88 -msgid "Repeat these steps for all desired members." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:3 -msgid "Members analysis" -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:9 -msgid "The *Members Analysis* report provides a detailed overview of all memberships sold and managed within the *Members* application." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:12 -msgid "To access the *Memberships Analysis* report, navigate to :menuselection:`Members app --> Reporting`." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:15 -msgid "Navigate the report" -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:17 -msgid "The default *Members Analysis* report displays a bar chart, measuring the :guilabel:`Quantity` of memberships against the amount of :guilabel:`Revenue Done`. The data is grouped by the assigned salesperson, then by the month the membership begins." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:-1 -msgid "A sample of the members analysis report." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:25 -msgid "Additional :ref:`Group By ` options include the following:" -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:27 -msgid ":guilabel:`Salesperson`: the internal user in charge of the contact. This information is managed in the *Salesperson* field on the *Sales & Purchase* tab on the contact's record." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:29 -msgid ":guilabel:`Associated Partner`: the contact listed as the *Associated Member* on the *Membership* tab on the contact's record." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:31 -msgid ":guilabel:`Membership Product`: the type of membership assigned to a contact. This includes both purchased memberships and free memberships." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:33 -msgid ":guilabel:`Current Membership State`: the status of the membership." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:34 -msgid ":guilabel:`Company`: the company the membership is purchased through. This option only appears in multi-company databases." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:36 -msgid ":guilabel:`Month`: the month the membership began." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:41 -msgid "Click the :icon:`fa-area-chart` :guilabel:`(graph)` icon to change to graph view. Then, click the corresponding icon at the top of the report to switch to a :icon:`fa-bar-chart` :guilabel:`(bar chart)`, :icon:`fa-line-chart` :guilabel:`(line chart)`, or :icon:`fa-pie-chart` :guilabel:`(pie chart)`." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:46 -msgid "Click the |pivot| to change to the pivot view." -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:54 -msgid ":ref:`search/custom-filters`" -msgstr "" - -#: ../../content/applications/sales/members/members_analysis.rst:55 -msgid ":ref:`search/favorites`" -msgstr "" - #: ../../content/applications/sales/point_of_sale.rst:6 #: ../../content/applications/sales/point_of_sale/online_food_delivery.rst:77 msgid "Point of Sale" @@ -5008,7 +4819,7 @@ msgid ":ref:`Start a session ` from the **POS dashboard**." msgstr "" #: ../../content/applications/sales/point_of_sale.rst:105 -msgid "Click :guilabel:`Actions`, then :icon:`fa-undo` :guilabel:`Refund`, and select the corresponding order." +msgid "Click the :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` icon, then :icon:`fa-undo` :guilabel:`Refund`, and select the corresponding order." msgstr "" #: ../../content/applications/sales/point_of_sale.rst:107 @@ -5028,7 +4839,7 @@ msgid "Click :guilabel:`New Order` to proceed to the next customer." msgstr "" #: ../../content/applications/sales/point_of_sale.rst:113 -msgid "To filter the **orders list** by :guilabel:`Order number`, :guilabel:`Receipt Number`, :guilabel:`Date`, or :guilabel:`Customer`, enter a value in the search bar and choose the relevant filter from the dropdown menu." +msgid "To filter the **orders list** by :guilabel:`Reference`, :guilabel:`Receipt Number`, :guilabel:`Date`, or :guilabel:`Customer`, enter a value in the search bar and choose the relevant filter from the dropdown menu." msgstr "" #: ../../content/applications/sales/point_of_sale.rst:116 @@ -5370,7 +5181,7 @@ msgid "To use an ePos printer in Point of Sale:" msgstr "" #: ../../content/applications/sales/point_of_sale/configuration/epos_printers.rst:14 -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:36 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:102 msgid ":ref:`Access the POS settings `." msgstr "" @@ -5924,73 +5735,73 @@ msgid "Printer" msgstr "" #: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:20 -msgid "Connect a supported receipt printer to a :abbr:`USB (Universal Serial Bus)` port or to the network, and power it on. Refer to :doc:`../restaurant/kitchen_printing`." +msgid "Connect a supported receipt printer to a :abbr:`USB (Universal Serial Bus)` port or to the network, and power it on. Refer to :ref:`Order printing `." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:22 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:23 msgid "Cash drawer" msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:23 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:24 msgid "The cash drawer should be connected to the printer with an RJ25 cable." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:24 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:25 msgid "Barcode scanner" msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:25 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:26 msgid "The barcode scanner must end barcodes with an `ENTER` character (keycode 28) in order for the barcode scanner to be compatible. This is most likely the barcode scanner's default configuration." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:28 -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:14 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:29 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:80 msgid "Scale" msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:29 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:30 msgid "Connect the scale and power it on. Refer to :doc:`/applications/general/iot/devices/scale`." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:30 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:31 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:14 #: ../../content/applications/sales/point_of_sale/preparation.rst:100 -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:3 msgid "Customer display" msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:31 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:32 msgid "Connect a screen to the :abbr:`IoT (Internet of Things)` box to display the :abbr:`PoS (Point of Sale)` order. Refer to :doc:`/applications/general/iot/devices/screen`." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:33 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:34 msgid "Payment terminal" msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:34 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:35 msgid "The connection process depends on the terminal. Refer to the :doc:`payment terminals documentation `." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:37 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:38 msgid ":doc:`Connect the IoT system to your Odoo database `." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:38 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:39 msgid ":ref:`Access the POS settings ` and select your POS, or click the vertical ellipsis button (:guilabel:`⋮`) on a POS card and click :guilabel:`Edit`. Scroll down to the :guilabel:`Connected Devices` section, enable :guilabel:`IoT Box`, then select the devices to be used for the POS. Click :guilabel:`Save`." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:44 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:45 msgid "Click :guilabel:`IoT Devices` to access the list of :doc:`/applications/general/iot/devices` for your POS and view their connection status. Click a card to access the device's form." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:48 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:49 msgid "`List of supported hardware `_." msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:49 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:50 msgid ":doc:`IoT documentation `" msgstr "" -#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:54 +#: ../../content/applications/sales/point_of_sale/configuration/pos_iot.rst:55 msgid "Setup example" msgstr "" @@ -6011,153 +5822,186 @@ msgid "Select specific users who can :ref:`log into the POS ` to these users." +msgid ":ref:`Assign minimal, basic or advanced permissions ` to these users." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:11 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:12 msgid ":ref:`Track the employees involved in each order for enhanced analytics `." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:18 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:19 msgid "Access the multi-employee setting from the :guilabel:`PoS Interface` section of the :ref:`POS settings `. Then," msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:21 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:22 msgid "Activate the :guilabel:`Log in with Employees` feature." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:22 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:23 msgid "Add the employees with **basic POS functionality** access in the :guilabel:`Basic rights` field." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:23 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:24 msgid "Add the employees with **extended POS functionalities** in the :guilabel:`Advanced rights` field." msgstr "" +#: ../../content/applications/sales/point_of_sale/employee_login.rst:25 +msgid "Add the employees with **minimal POS functionality** access in the :guilabel:`Minimal rights` field." +msgstr "" + #: ../../content/applications/sales/point_of_sale/employee_login.rst:-1 msgid "setting to enable multiple cashiers in POS" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:29 -msgid "Leaving the :guilabel:`Basic rights` field empty allows all employees to log in." +#: ../../content/applications/sales/point_of_sale/employee_login.rst:32 +msgid "Leaving the :guilabel:`Minimal rights` and :guilabel:`Basic rights` field empty allows all employees to log in." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:30 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:34 msgid "Leaving the :guilabel:`Advanced rights` field empty grants extended rights to Odoo users only." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:33 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:37 msgid "Click the :icon:`fa-ellipsis-v` (:guilabel:`vertical ellipsis`) button on the top right corner of a POS card and :guilabel:`Edit` to access the setting from the main POS dashboard." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:37 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:41 msgid ":doc:`../../general/users/access_rights`" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:40 -msgid "Basic rights" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/employee_login.rst:42 -msgid "Employees with basic rights can perform the following actions within the POS:" -msgstr "" - #: ../../content/applications/sales/point_of_sale/employee_login.rst:44 -msgid "**Session management:**" +msgid "Minimal rights" msgstr "" #: ../../content/applications/sales/point_of_sale/employee_login.rst:46 -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:97 -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:31 -msgid ":ref:`Open a POS session `." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/employee_login.rst:47 -msgid ":ref:`Perform cash-in and cash-out operations `." +msgid "Employees with minimal rights can perform the following actions within the POS:" msgstr "" #: ../../content/applications/sales/point_of_sale/employee_login.rst:48 -msgid "Lock the current POS session." +#: ../../content/applications/sales/point_of_sale/employee_login.rst:67 +msgid "**Session management:**" msgstr "" #: ../../content/applications/sales/point_of_sale/employee_login.rst:50 -msgid "**Sales transactions:**" +msgid "Lock and unlock an open POS session." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:52 -msgid ":ref:`Process standard sales transactions `." +#: ../../content/applications/sales/point_of_sale/employee_login.rst:51 +msgid "Reload data." msgstr "" #: ../../content/applications/sales/point_of_sale/employee_login.rst:53 -msgid ":ref:`Process refunds `." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/employee_login.rst:54 -msgid ":doc:`Access and handle sales orders `." +#: ../../content/applications/sales/point_of_sale/employee_login.rst:72 +msgid "**Sales transactions:**" msgstr "" #: ../../content/applications/sales/point_of_sale/employee_login.rst:55 -msgid ":ref:`Set customers `." +msgid ":ref:`Process standard sales transactions `." msgstr "" #: ../../content/applications/sales/point_of_sale/employee_login.rst:56 -msgid "Access past and current order history." +msgid ":ref:`Set customers `." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:58 -msgid "**Pricing and discounts:**" +#: ../../content/applications/sales/point_of_sale/employee_login.rst:57 +msgid ":ref:`Add notes to orders `." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:60 -msgid "Manually select another :doc:`pricelist `." +#: ../../content/applications/sales/point_of_sale/employee_login.rst:59 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:80 +msgid "**Pricing and discounts:**" msgstr "" #: ../../content/applications/sales/point_of_sale/employee_login.rst:61 msgid "Enter promotional codes." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:62 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:63 +msgid "Basic rights" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:65 +msgid "In addition to the minimal rights, employees with basic rights can also:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:69 +msgid ":ref:`Open a POS session `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:70 +msgid ":ref:`Perform cash-in and cash-out operations `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:74 +msgid ":ref:`Create customers `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:75 +msgid ":ref:`Process refunds `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:76 +msgid ":doc:`Access and handle sales orders `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:77 +msgid "Access past and current order history." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:78 +msgid "Cancel orders." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:82 +msgid "Manually select another :doc:`pricelist `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:83 msgid ":doc:`Manually apply discounts `." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:63 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:84 msgid "Manually :ref:`change a product's price `." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:64 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:85 +msgid "Give loyalty program's rewards." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/employee_login.rst:86 msgid "Switch between :doc:`fiscal positions `." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:66 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:88 msgid "Advanced rights" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:68 -msgid "In addition to the basic rights, employees with advanced rights can also:" +#: ../../content/applications/sales/point_of_sale/employee_login.rst:90 +msgid "In addition to the minimal and basic rights, employees with advanced rights can also:" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:70 -msgid "Access the Odoo backend interface." +#: ../../content/applications/sales/point_of_sale/employee_login.rst:92 +msgid "Create products." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:71 -msgid "Create products." +#: ../../content/applications/sales/point_of_sale/employee_login.rst:93 +msgid "Access the Odoo backend interface." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:72 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:94 msgid ":ref:`Close the current POS session `." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:77 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:99 #: ../../content/applications/sales/point_of_sale/self_order.rst:169 msgid "Usage guidelines" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:80 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:102 msgid "Logging in" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:82 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:104 msgid "Once the **Log in with Employees** feature is enabled, employees must log in to :ref:`open a POS session ` and access the POS interface. They can :ref:`scan their employee badge `, click the :icon:`fa-users` icon (:guilabel:`users`) to select their name from the list of authorized users, or by entering :ref:`their PIN code ` in the :guilabel:`Enter your PIN` field." msgstr "" @@ -6165,73 +6009,73 @@ msgstr "" msgid "Login window to open a session when the multiple cashiers feature is active" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:91 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:113 msgid "To switch between users during an :ref:`active session `, click on the currently logged-in employee's name at the top right of the POS screen and select the user to switch to." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:95 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:117 msgid "In the absence of a scanner, click the :icon:`fa-barcode` icon (:guilabel:`barcode`) to scan barcodes using the webcam." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:101 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:123 msgid "Logging in with badges" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:103 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:125 msgid "Employees can log in using their badge. To configure badge-based login, assign a unique badge ID to the employee's profile in the **Employees** module:" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:106 -#: ../../content/applications/sales/point_of_sale/employee_login.rst:127 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:128 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:149 msgid "Navigate to the **Employees** module." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:107 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:129 msgid "Open the form view of the specific employee." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:108 -#: ../../content/applications/sales/point_of_sale/employee_login.rst:129 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:130 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:151 msgid "Go to the :guilabel:`Settings` tab." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:109 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:131 msgid "The :guilabel:`Attendance/Point of Sale/Manufacturing` category offers two options:" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:111 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:133 msgid "Manually enter any badge ID in the :guilabel:`Badge ID` field." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:112 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:134 msgid "Click :guilabel:`Generate` to create a unique badge ID automatically." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:113 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:135 msgid "Click :guilabel:`Print Badge` to generate a barcode representation of the assigned badge ID." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:115 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:137 msgid "To switch users within an open POS session using a badge, you must first lock the session. To do so, click the :icon:`fa-lg fa-lock` icon (:guilabel:`lock`) to return to the login screen. Then, the new employee can scan their badge to log in." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:122 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:144 msgid "Adding a PIN Code" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:124 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:146 msgid "For enhanced security, employees may be forced to enter a PIN code each time they log into a POS session. To set up a PIN code for an employee:" msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:128 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:150 msgid "Open the form view of the relevant employee." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:130 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:152 msgid "Enter a desired numerical code in the :guilabel:`PIN Code` field of the :guilabel:`Attendance/Point of Sale/Manufacturing` category." msgstr "" -#: ../../content/applications/sales/point_of_sale/employee_login.rst:134 +#: ../../content/applications/sales/point_of_sale/employee_login.rst:156 msgid "The PIN code must consist of a sequence of digits only." msgstr "" @@ -6710,7 +6554,6 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods.rst:25 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:84 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst:51 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:81 msgid "Once the payment method is created, you can select it in your POS settings. To do so, go to the :ref:`POS' settings `, click :guilabel:`Edit`, and add the payment method under the :guilabel:`Payments` section." msgstr "" @@ -6959,79 +6802,100 @@ msgid "Payment terminals" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:7 -msgid "Connecting and integrating a payment terminal with your POS system allows you to accept multiple payment options, including credit and debit cards, making the payment process more efficient." +msgid "Connect and integrate a payment terminal to a :ref:`POS system ` to accept multiple payment options, including credit and debit cards." msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:15 -msgid "Go to the :ref:`application settings `, scroll down to the :guilabel:`Payment Terminals` section, and tick your terminal's checkbox." +msgid "To activate a payment terminal and allow processing payments with it, follow these steps:" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:-1 -msgid "checkbox in the settings to enable a payment terminal" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:17 +msgid "Go to :menuselection:`Point of Sale --> Configuration --> Settings` and scroll down to the :guilabel:`Payment Terminals` section." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:21 -msgid "Then, follow the corresponding documentation to configure your device:" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:19 +msgid "Enable the relevant terminal." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:23 -msgid ":doc:`Adyen configuration `" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:20 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:80 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:73 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:105 +#: ../../content/applications/sales/point_of_sale/restaurant.rst:126 +#: ../../content/applications/sales/sales/products_prices/products/product_images.rst:115 +msgid "Click :guilabel:`Save`." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:24 -msgid ":doc:`Ingenico configuration `" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:21 +msgid "Go to :menuselection:`Point of Sale --> Configuration --> Payment Methods` and :doc:`create the corresponding payment method <../payment_methods>`." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:25 -msgid ":doc:`Mercado Pago configuration `" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:23 +msgid "Set the :guilabel:`Integration` field to :guilabel:`Terminal`, select the relevant terminal, and complete the terminal-specific configuration:" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:26 -msgid ":doc:`Razorpay configuration `" +msgid ":doc:`Adyen `" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:27 -msgid ":doc:`SIX configuration `" +msgid ":doc:`Ingenico `" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:28 -msgid ":doc:`Stripe configuration `" +msgid ":doc:`Mercado Pago `" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:29 -msgid ":doc:`Tyro configuration `" +msgid ":doc:`QFPay configuration `" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:30 -msgid ":doc:`Viva.com configuration `" +msgid ":doc:`Razorpay `" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:31 -msgid ":doc:`Worldline configuration `" +msgid ":doc:`SIX `" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:32 +msgid ":doc:`Stripe `" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:33 -msgid "Once the terminal is configured, you can :doc:`create the corresponding payment method and add it to the POS <../payment_methods>`." +msgid ":doc:`Tyro `" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:34 +msgid ":doc:`Viva.com `" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:35 +msgid ":doc:`Worldline `" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:36 +msgid "Go to :menuselection:`Point of Sale --> Configuration --> Settings` and add the payment method to the :guilabel:`Payment Methods` list to make it available in the POS interface." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:37 -msgid "Pay with a payment terminal" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:42 +msgid "Terminal use" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:39 -msgid "When processing a payment, select the terminal's payment method. Check the amount and click on :guilabel:`Send`. Once the payment is successful, the status changes to :guilabel:`Payment Successful`." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:44 +msgid "To process a :ref:`payment ` with a :ref:`configured terminal ` for an order, select the terminal's :doc:`payment method <../payment_methods>` on the :guilabel:`Payment` screen, then follow the instructions on the terminal device." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:0 -msgid "In case of connection issues between Odoo and the payment terminal, force the payment by clicking on :guilabel:`Force Done`, which allows you to validate the order." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:49 +msgid "Once the transaction is successful, the payment is automatically validated in Point of Sale." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:0 -msgid "This option is only available after receiving an error message informing you that the connection failed." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:52 +msgid "Connection issues between Odoo and the payment terminal result in transaction cancellation." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:48 -msgid "To cancel the payment request, click on :guilabel:`Cancel`." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals.rst:53 +msgid "To cancel the payment request, click :guilabel:`Cancel`." msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:3 @@ -7132,7 +6996,6 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/six.rst:30 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/stripe.rst:22 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/tyro.rst:34 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:72 msgid "Configure the payment method" msgstr "" @@ -7144,6 +7007,39 @@ msgstr "" msgid "Finally, fill in the mandatory fields with your :ref:`Adyen API key `, :ref:`Adyen Terminal Identifier `, and :guilabel:`Adyen Merchant Account`." msgstr "" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:91 +#: ../../content/applications/sales/point_of_sale/restaurant.rst:281 +msgid "Tips" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:93 +msgid "Odoo Point of Sale allows tipping with an Adyen terminal. To configure this option, go to the :ref:`POS settings `, enable the :ref:`Tips ` and the :guilabel:`Add tip through payment terminal (Adyen)` settings, then click :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:97 +msgid "To process tips with an Adyen terminal, follow these steps:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:99 +msgid "Go to the relevant POS and :ref:`process an order `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:100 +msgid "Click :ref:`Payment ` and select the :ref:`relevant payment method `. The :guilabel:`Adyen` terminal displays the transaction and suggests adding tips." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:103 +msgid "Add a tip amount on the terminal and validate." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:104 +msgid "In Odoo POS, click :icon:`fa-heart` :guilabel:`Tip`, enter the tip amount, and click :guilabel:`Ok`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/adyen.rst:106 +msgid "Click :guilabel:`Close Tab` to validate the payment and the tip." +msgstr "" + #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst:3 msgid "Ingenico" msgstr "" @@ -7151,7 +7047,6 @@ msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst:5 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/mercado_pago.rst:5 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/stripe.rst:5 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:5 msgid "Connecting a payment terminal allows you to offer a fluid payment flow to your customers and ease the work of your cashiers." msgstr "" @@ -7168,7 +7063,6 @@ msgid "Odoo works with the Ingenico Lane/, Desk/, and Move/ payment terminals as msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/ingenico.rst:18 -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:19 msgid "Connect an IoT system" msgstr "" @@ -7350,6 +7244,130 @@ msgstr "" msgid "Any action made on the terminal should trigger a notification on the POS interface. Ensure the :ref:`webhook secret key ` is correctly configured if you are not notified." msgstr "" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:3 +msgid "QFPay" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:5 +msgid "QFPay is a payment service that offers payment solutions through the `HaoJin App `_ for customer transactions with a physical terminal." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:9 +msgid "QFPay payment terminals do not require an :doc:`IoT Box ` to operate." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:11 +msgid "QFPay terminals are exclusively for Hong Kong." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:16 +msgid "QFPay configuration" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:18 +msgid "To configure a QFPay payment terminal, follow these steps:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:20 +msgid "Create a QFPay account on the `QFPay website `_." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:21 +msgid "Request activation of `Asynchronous Notifications `_ from the application email." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:23 +msgid "Provide the Odoo server address on the QFPay portal, followed by `/qfpay/notify`, and copy the notification key provided by QFPay." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:25 +msgid "Set up the QFPay terminal by connecting the HaoJin App to the QFPay account as instructed by QFPay, then copy the terminal's IP address." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:27 +msgid "Request a self-signed certificate from QFPay linked to the terminal's IP address, and import it into the relevant POS in Odoo." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:29 +msgid "Generate a :guilabel:`POS-KEY` from the HaoJin App: go to :menuselection:`Haojin App --> My --> Settings --> Pos Call Up Key --> Reset Key`. Then, copy the generated :guilabel:`POS-KEY`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:33 +msgid "The **Asynchronous Notifications** are automated messages confirming successful payments or refunds by QFPay." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:35 +msgid "Write the server address as follows: `https://yourdomain.odoo.com/qfpay/notify`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:36 +msgid "If the terminal's IP address changes, update it in the :ref:`Odoo POS settings ` and request a new self-signed certificate from QFPay." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:38 +msgid "If a QFPay account already exists, contact `technical.support@qfpay.com` with the merchant information and server address." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:42 +msgid "Alternatively, retrieve the POS-KEY from the `MMS (Merchant Management System) portal `_: go to :menuselection:`MMS portal --> Settings --> Device Settings`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:49 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:53 +msgid "Odoo POS configuration" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:51 +msgid "To connect the QFPay terminal with Odoo Point of Sale, follow these steps:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:53 +msgid "Go to :menuselection:`Point of Sale --> Configuration --> Settings`, scroll down to the :guilabel:`Payment Terminals` section, enable the :guilabel:`QFPay` terminal, and click :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:56 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:60 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:65 +msgid "Go to :menuselection:`Point of Sale --> Configuration --> Payment Methods` and :doc:`create a payment method <../../payment_methods>`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:58 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:62 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:67 +msgid "Set the :guilabel:`Journal` field to :guilabel:`Bank`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:59 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:63 +msgid "Select the desired point of sale in the :guilabel:`Point of Sale` field." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:60 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:64 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:68 +msgid "Set the :guilabel:`Integration` field to :guilabel:`Terminal`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:61 +msgid "Set the :guilabel:`Integrate with` field to :guilabel:`QFPay`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:62 +msgid "Paste the copied information from :ref:`QFPay ` into the corresponding fields:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:65 +msgid ":guilabel:`Terminal IP`" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:66 +msgid ":guilabel:`POS Key`" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/qfpay.rst:67 +msgid ":guilabel:`Notification Key`" +msgstr "" + #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/razorpay.rst:3 msgid "Razorpay" msgstr "" @@ -7832,174 +7850,159 @@ msgstr "" msgid "The POS API credentials are for APIs that use Basic Authentication, including those for Android and iOS POS activation and the `Cloud Terminal API `_." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:53 -msgid "Odoo POS configuration" -msgstr "" - #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:55 msgid "To connect the viva.com terminal with Odoo Point of Sale, follow these steps:" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:57 -msgid "Go to :menuselection:`Point of Sale --> Configuration --> Settings`, scroll down to the :guilabel:`Payment Terminals` section, enable the :guilabel:`Viva Wallet` terminal, and click :guilabel:`Save`." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:60 -msgid "Go to :menuselection:`Point of Sale --> Configuration --> Payment Methods` and :doc:`create a payment method <../../payment_methods>`." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:62 -msgid "Set the :guilabel:`Journal` field to :guilabel:`Bank`." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:63 -msgid "Set the :guilabel:`Integration` field to :guilabel:`Terminal`." +msgid "Go to :menuselection:`Point of Sale --> Configuration --> Settings`, scroll down to the :guilabel:`Payment Terminals` section, enable the :guilabel:`Viva.com` terminal, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:64 -msgid "Set the :guilabel:`Integrate with` field to :guilabel:`Viva Wallet`." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:65 +msgid "Set the :guilabel:`Integrate with` field to :guilabel:`Viva.com`." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:65 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:66 msgid "Paste the copied information from :ref:`viva.com ` into the corresponding fields:" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:68 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:69 msgid ":guilabel:`Merchant ID`" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:69 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:70 msgid ":guilabel:`API Key`" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:70 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:71 msgid ":guilabel:`Client ID`" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:71 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:72 msgid ":guilabel:`Client secret`" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:72 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:73 msgid ":guilabel:`Terminal ID`" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:74 -msgid "Save the form and copy the generated webhook URL from the :guilabel:`Viva Wallet Webhook Endpoint` field." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:75 +msgid "Save the form and copy the generated webhook URL from the :guilabel:`Viva Com Webhook Endpoint` field." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:76 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:77 msgid "Go to the :ref:`viva.com ` account and paste the webhook URL into the `corresponding field `_." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:79 -msgid "In Odoo, access the :ref:`relevant point of sale settings `, scroll down to the :guilabel:`Payment` section, and add the created payment method in the :guilabel:`Payment Methods` field." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:3 +msgid "Worldline" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/viva_com.rst:82 -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:39 -#: ../../content/applications/sales/sales/products_prices/products/product_images.rst:115 -msgid "Click :guilabel:`Save`." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:5 +msgid "`Worldline `_ offers payment solutions through :doc:`payment terminals <../terminals>` to handle customer transactions." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:3 -msgid "Worldline" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:9 +msgid "Connecting a Worldline payment terminal to Odoo requires an :doc:`IoT system `." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:9 -msgid "Worldline payment terminals require an :doc:`IoT Box `." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:11 +msgid "Worldline is only available in **Belgium**, **the Netherlands**, and **Luxembourg** with Odoo." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:10 -msgid "Worldline is currently only available in Belgium, the Netherlands and Luxembourg." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:12 +msgid "Odoo is compatible with Worldline terminals that use the CTEP protocol (e.g., the **Yomani XR** and **Yoximo** terminals). Contact the payment provider to confirm the terminal's compatibility if necessary." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:11 -msgid "Odoo is compatible with Worldline terminals that use the CTEP protocol (e.g., the Yomani XR and Yoximo terminals). If you have any doubts, contact your payment provider to ensure your terminal's compatibility." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:19 +msgid "Worldline configuration" msgstr "" #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:21 -msgid "Connecting a Worldline Payment Terminal to Odoo is a feature that requires an IoT system. For more information on how to connect one to your database, please refer to the :doc:`IoT documentation `." +msgid "First, enable the Worldline payment terminal in the :ref:`POS settings ` under :guilabel:`Payment Terminals`. Then :doc:`connect the IoT system to Odoo ` and follow these steps on the terminal:" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:26 -msgid "Configure the protocol" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:25 +msgid "**Configure the ECR protocol**:" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:28 -msgid "From your terminal, click on :menuselection:`\".\" --> 3 --> stop --> 3 --> 0 --> 9`. Enter the technician password **\"1235789\"** and click on :menuselection:`OK --> 4 --> 2`. Then, click on :menuselection:`Change --> CTEP (as Protocole ECR) --> OK`. Click on **OK** thrice on the subsequent screens (*CTEP ticket ECR*, *ECR ticket width*, and *Character set*). Finally, press **Stop** three times; the terminal automatically restarts." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:27 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:34 +msgid "Press :menuselection:`\".\" --> 3 --> Stop --> 3 --> 0 --> 9`." msgstr "" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:28 #: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:35 -msgid "Set the IP address" +msgid "Enter the technician password **1235789** and press **OK**." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:37 -msgid "From your terminal, click on :menuselection:`\".\" --> 3 --> stop --> 3 --> 0 --> 9`. Enter the technician password **\"1235789\"** and click on :menuselection:`OK --> 4 --> 9`. Then, click on :menuselection:`Change --> TCP/IP` (*TCP physical configuration* screen) :menuselection:`--> OK --> OK` (*TCP Configuration client* screen)." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:29 +msgid "Press :menuselection:`4 --> 2 --> CTEP (ECR protocol)`. Press **OK** to confirm each of the following checks: **CTEP ticket ECR**, **ECR ticket width**, and **Character set**." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:42 -msgid "Finally, set up the hostname and port number." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:31 +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:46 +msgid "Press **Stop** three times; the terminal restarts automatically." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:45 -msgid "Hostname" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:32 +msgid "**Set the hostname**:" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:48 -msgid "To set up the hostname, enter your IoT system's IP address' sequence numbers and press **OK** at each \".\" until you reach the colon symbol." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:36 +msgid "Press :menuselection:`4 --> 9 --> TCP/IP (ECR physical conf.)` and **OK** twice." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:49 -msgid "Then, press **OK** twice." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:37 +msgid "Enter the :ref:`IoT's IP address ` on the **Hostname** screen by confirming each number with **OK** until the colon symbol, then confirm the step with **OK**. For example, if the IP address is `10.30.19.4:8069`, press :menuselection:`10 --> OK --> 30 --> OK --> 19 --> OK --> 4 --> OK --> OK`." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:0 -msgid "Here's an IP address sequence: `10.30.19.4:8069`." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:41 +msgid "**Set the port number**:" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:0 -msgid "On the *Hostname screen*, type :menuselection:`10 --> OK --> 30 --> OK --> 19 --> OK --> 4 --> OK --> OK`." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:43 +msgid "Enter **9001** (if using an :doc:`IoT box `) or **9050** (if using a :doc:`Windows virtual IoT `) on the **Network domain name** screen and press **OK** twice." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:57 -msgid "Your IoT system's IP address is available on the :ref:`IoT system's card in the IoT app `." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:48 +msgid "The terminal is now active and displays the **Read card** screen." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:61 -msgid "Port number" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:51 +msgid "The `9050` port must be added as a :ref:`Windows Firewall exception ` for the :doc:`Windows virtual IoT `." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:63 -msgid "On the *Port number* screen, enter **9001** (or **9050** for Windows) and click on :menuselection:`OK` (*ECR protocol SSL no*) :menuselection:`--> OK`. Click on **Stop** three times; the terminal automatically restarts." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:55 +msgid "To check the terminal's connection status, open the IoT app and click the :ref:`IoT system's card `." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:68 -msgid "For the :doc:`Windows virtual IoT `, the `9050` port must be added as a :ref:`Windows Firewall exception `." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:61 +msgid "Odoo configuration" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:74 -msgid "Enable the payment terminal :ref:`in the application settings ` and :doc:`create the related payment method <../../payment_methods>`. Set the journal type as :guilabel:`Bank` and select :guilabel:`Worldline` in the :guilabel:`Use a Payment Terminal` field. Then, select your terminal device in the :guilabel:`Payment Terminal Device` field." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:63 +msgid "To connect the Worldline terminal with Odoo Point of Sale, follow these steps:" msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:88 -msgid "Technician password: `1235789`" +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:69 +msgid "Set the :guilabel:`Integrate with` field to :guilabel:`Worldline`." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:89 -msgid "To reach Wordline's technical assistance, call `02 727 61 11` and choose \"merchant\". Your call is automatically transferred to the desired service." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:70 +msgid "Select the configured device in the :guilabel:`Payment Terminal Device` field and save." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:91 -msgid "Configure the cashier terminal if you have both a customer and a cashier terminal." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:71 +msgid "Go to :menuselection:`Point of Sale --> Configuration --> Settings` and add the created payment method to the :guilabel:`Payment Methods` list to make it available in the POS interface." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:92 -msgid "To avoid blocking the terminal, check the initial configuration beforehand." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:78 +msgid "If a setup uses separate cashier and customer payment terminals, :ref:`configure ` the cashier terminal first." msgstr "" -#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:93 -msgid "Set a fixed IP to your IoT Box’s router to prevent losing the connexion." +#: ../../content/applications/sales/point_of_sale/payment_methods/terminals/worldline.rst:80 +msgid "To prevent connection loss, set a fixed IP address on the IoT Box’s router or :ref:`restart the virtual IoT server `." msgstr "" #: ../../content/applications/sales/point_of_sale/pos_based_marketing.rst:3 @@ -8180,132 +8183,223 @@ msgstr "" msgid ":doc:`../../productivity/whatsapp`" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:3 -msgid "Hardware" +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:3 +msgid "Hardware" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:5 +msgid "Odoo Point of Sale supports integration with a variety of hardware, including :doc:`payment terminals ` and cash drawers, as well as :ref:`customer displays `, :ref:`scales `, :doc:`barcode scanners `, :doc:`ePOS printers `, and in-store :doc:`electronic shelf labels `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:16 +msgid "The **customer display** feature provides real-time updates on a secondary screen for customers during the checkout process. This screen shows the :ref:`items in the cart `, the subtotal as items are added, and details throughout the payment process. It also displays the total amount, the selected :doc:`payment method `, and any change to be returned." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:-1 +msgid "customer screen" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:26 +msgid "Both the customer and POS displays must have a minimum diagonal size of 6 inches. For optimal readability, larger screens are recommended." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:32 +msgid "Depending on the POS setup, the feature can be displayed directly on a secondary screen connected via USB-C or HDMI or on a screen connected through an IoT system." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:35 +msgid "The feature is activated by default, but its background image can still be configured. To do so, navigate to the :ref:`POS settings ` and scroll down to the :guilabel:`Connected Devices` section. Then, click :guilabel:`Upload your file` to set a background image." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:40 +msgid "For displays connected using an :doc:`IoT system <../../general/iot>`:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:42 +msgid "Navigate to the :ref:`POS settings `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:43 +msgid "Enable the :guilabel:`IoT Box` option to activate the IoT system in POS." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:44 +msgid "Click :guilabel:`Save`, which activates the IoT app in Odoo." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:45 +msgid ":doc:`Connect and configure an IoT system <../../general/iot/connect>` for a :doc:`display <../../general/iot/devices/screen>`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:47 +msgid "Return to the :ref:`POS settings ` and select an IoT-connected screen using the :guilabel:`Customer Display` field." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:51 +msgid "Opening the customer display" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:53 +msgid "To open the customer display, follow these steps:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:55 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:72 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:163 +msgid ":ref:`Open the POS register `." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:56 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:73 +msgid "Click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:57 +msgid "Click the :icon:`fa-desktop` (:guilabel:`Customer Display`) icon, which opens the customer display either in a new window to drag onto the second screen or directly onto the IoT-connected screen." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:62 +msgid "For IoT-connected screens, both devices need to be connected to the same local network." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:65 +msgid ":doc:`configuration/pos_iot`" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:66 +msgid ":doc:`../../general/iot`" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:68 +msgid "For POS terminals running the Odoo Android app with dual-screen support," +msgstr "" + +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:70 +msgid ":doc:`Activate the Point of Sale Mobile module <../../general/apps_modules>` to enable the customer display." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:5 -msgid "Odoo Point of Sale supports integration with a variety of hardware, including :doc:`payment terminals ` and cash drawers, as well as :doc:`customer displays `, :ref:`scales `, :doc:`barcode scanners `, :doc:`ePOS printers `, and in-store :doc:`electronic shelf labels `." +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:74 +msgid "Click the :icon:`fa-desktop` (:guilabel:`Customer Display`) icon, which opens the customer display on the terminal's secondary screen." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:17 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:83 msgid "In EU member states, `certification is legally required `_ to use a scale as an integrated device." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:22 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:88 msgid "Prerequisite" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:24 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:90 msgid "Connecting a scale requires the use of an **IoT System**." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:27 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:93 msgid ":doc:`../../general/iot/connect`" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:28 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:94 msgid ":doc:`../../general/iot/devices/scale`" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:34 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:100 msgid "Scale connection" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:37 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:103 msgid "Scroll down to the :guilabel:`Connected Devices` section and enable :guilabel:`IoT Box`." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:38 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:104 msgid "Select the scale in the :guilabel:`Electronic Scale` field." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:42 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:108 msgid "Alternatively, click the :icon:`fa-ellipsis-v` (:guilabel:`Dropdown menu`) icon on a POS card and click :guilabel:`Edit` to access this setting." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:46 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:112 #: ../../content/applications/sales/sales/sales_quotations/orders_and_variants.rst:37 msgid "Product configuration" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:48 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:114 msgid "In order to weigh products using an integrated scale, go to :menuselection:`Point of Sale --> Products --> Products`, create a product or open an existing product form, and configure it as follows:" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:52 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:118 msgid "Ensure the :guilabel:`Point of Sale` checkbox is activated for the product to be available in POS." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:54 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:120 msgid "On the :guilabel:`General Information` tab, define a :guilabel:`Sales Price` per :guilabel:`kg`." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:57 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:123 msgid "This step requires to enable the :doc:`Units of Measure <../../inventory_and_mrp/inventory/product_management/configure/uom>` feature. To activate it:" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:60 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:126 msgid "Go to :menuselection:`Inventory --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:61 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:127 msgid "Scroll down to the :guilabel:`Products` section and activate :guilabel:`Units of Measure`." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:62 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:128 msgid "Go to the :guilabel:`Point of Sale` tab and activate :guilabel:`To Weigh With Scale`. This enables the product to be weighed directly on the connected scale at the POS." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:66 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:132 msgid "The selected unit of measure for weighable products must be :guilabel:`kg` to ensure compliance with **European regulations**." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:70 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:136 msgid ":doc:`../../inventory_and_mrp/inventory/product_management/configure/uom`" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:73 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:139 msgid "European regulations" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:75 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:141 msgid "When using scales in commercial transactions, the database integrated with a scale must be configured to meet specific European requirements. This includes supporting at least three decimal places for accuracy and using proper rounding for units of measure, such as `kg` instead of generic `units`." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:80 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:146 msgid "If the database is not compliant, a red :icon:`fa-balance-scale` (:guilabel:`scale`) icon displays as a warning. Click this icon to view the reasons for non-compliance and then select :guilabel:`Apply changes` to automatically apply the necessary changes to the settings. Once the database meets all regulatory requirements, the :icon:`fa-balance-scale` (:guilabel:`scale`) icon turns green." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:89 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:155 msgid "Additional guidelines" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:91 -msgid "Both the :doc:`customer ` and POS displays must have a minimum diagonal size of 6 inches. For optimal readability, larger screens are recommended." +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:157 +msgid "Both the :ref:`customer ` and POS displays must have a minimum diagonal size of 6 inches. For optimal readability, larger screens are recommended." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:95 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:161 msgid "Using a scale in PoS" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:98 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:164 msgid "Select the product to weigh on the order screen or scan its barcode." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:99 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:165 msgid "Place the product on the scale and wait for the weight to be displayed in the popup window." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:100 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:166 msgid "Once the weight is determined, the price is automatically computed." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:101 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:167 msgid "Click :guilabel:`Order` :icon:`fa-angle-double-right` to add the product to the cart." msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:102 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:168 msgid "Remove the previous product from the scale." msgstr "" @@ -8313,7 +8407,7 @@ msgstr "" msgid "weighing window" msgstr "" -#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:109 +#: ../../content/applications/sales/point_of_sale/pos_hardware.rst:175 msgid "Make sure the scale returns to `zero` before weighing a new product. If it does not, the :guilabel:`Order` :icon:`fa-angle-double-right` button remains unclickable until it is reset." msgstr "" @@ -9284,7 +9378,7 @@ msgid "POS receipt" msgstr "" #: ../../content/applications/sales/point_of_sale/receipts_invoices.rst:22 -msgid ":doc:`restaurant/bill_printing`" +msgid ":ref:`pos/restaurant/bills`" msgstr "" #: ../../content/applications/sales/point_of_sale/receipts_invoices.rst:23 @@ -9403,458 +9497,513 @@ msgstr "" msgid "These statistics are available in a graph or pivot view that you can filter or group depending on your needs." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:5 +#: ../../content/applications/sales/point_of_sale/restaurant.rst:3 msgid "Restaurant features" msgstr "" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:5 +msgid "Odoo Point of Sale provides various features to manage a restaurant or a bar:" +msgstr "" + #: ../../content/applications/sales/point_of_sale/restaurant.rst:7 -msgid "Managing a restaurant or a bar comes with specific needs. The Point of Sale application provides various features that allow performing all the required tasks in such businesses." +msgid ":ref:`Organizing the floors and tables `;" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:10 -msgid "Once the POS is set to be used in a restaurant or a bar, you can:" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:8 +msgid ":ref:`Taking orders `;" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:12 -msgid ":doc:`organize your floors and tables to reflect your interior `;" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:9 +msgid ":ref:`Communicating with the kitchen or bar through the POS `;" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:13 -msgid ":ref:`take orders `;" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:10 +msgid ":ref:`Printing and splitting bills `;" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:14 -msgid ":doc:`communicate with the kitchen or the bar through the POS `;" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:11 +msgid ":ref:`Collecting tips `;" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:15 -msgid ":doc:`print bills in advance and split them `;" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:12 +msgid ":doc:`Setting different taxes for takeaway food `." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:16 -msgid ":doc:`collect tips `; and" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:14 +msgid "Three main buttons in the POS register allow for navigating between the :ref:`Floor plan ` view, tables, and :ref:`orders `:" msgstr "" #: ../../content/applications/sales/point_of_sale/restaurant.rst:17 -msgid ":doc:`set different taxes for takeaway food `." +msgid ":guilabel:`Plan`: Access the :ref:`Floor plan ` view." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:18 +msgid ":guilabel:`Table`: Enter a table or order number, then click :guilabel:`Jump` to access them. The button's label updates to display the selected number. When applicable, click :guilabel:`Book table` to confirm the table's occupancy." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:24 -msgid "To enable the restaurant and bar-specific features, go to :menuselection:`Point of Sale --> Configuration --> Settings`, select the POS, and activate :guilabel:`Is a Bar/Restaurant`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:21 +msgid ":icon:`fa-plus-circle` (:guilabel:`order`): :ref:`Create a direct sales order ` that is not linked to any table. Each click generates the next order in the sequence. Click :guilabel:`Release Order` to cancel the order (if no products have been added) and return to the :ref:`Floor plan ` view." msgstr "" #: ../../content/applications/sales/point_of_sale/restaurant.rst:27 -msgid "These features are displayed in the :guilabel:`Restaurant & Bar` section." +msgid "When :guilabel:`Table Booking` is enabled in the :ref:`POS settings `, a :guilabel:`Booking` button appears on the main interface for viewing and managing bookings." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:-1 -msgid "restaurant and bar-specific features" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:29 +msgid "Entering a number through the :guilabel:`Table` button that does not match an existing table number creates a direct sales order." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:36 -msgid "Take orders" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:33 +msgid "To configure restaurant-specific settings, the :guilabel:`Is a Bar/Restaurant` setting under the :guilabel:`Restaurant Mode` section must be enabled in the :ref:`POS settings `." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:38 -msgid "Click a table to access the POS interface and start taking your customer's order. The system automatically associates the orders and the table, allowing you to add more items later and generate a bill specifically for that table's orders." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:40 +msgid "Floors and tables" msgstr "" #: ../../content/applications/sales/point_of_sale/restaurant.rst:42 -msgid "Once you have taken an order, click :guilabel:`Change table` to return to the floor plan view." +msgid "The :guilabel:`Floor plan` view is the first screen displayed when :ref:`accessing the POS register `. It enables managing restaurant floors and tables, and monitoring table status in real time (occupancy, reservations, and kitchen orders)." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant.rst:45 -msgid "As soon as you click a table, the number of guests is automatically set to one. If you mistakenly select a table, click :guilabel:`Release table` to free it or :ref:`transfer the customer ` to another table." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:0 +msgid "example of a floor plan view with visual keys to understand it." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:3 -msgid "Bills" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:51 +msgid "Table 101: The table is currently available but booked for 15:00." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:5 -msgid "Typical practices in restaurants or bars are to request the bill before proceeding to payment or splitting it based on the items ordered. Odoo POS provides two features to perform these tasks seamlessly: **Bill Printing** and **Bill Splitting**." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:52 +msgid "Table 102: The table is booked, and an order is sent to the kitchen." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:12 -msgid "To activate the features, go to :menuselection:`Point of Sale --> Configuration --> Settings`, select the POS, and activate :guilabel:`Early Receipt Printing` and :guilabel:`Allow Bill Splitting` in the :guilabel:`Restaurant & Bar` section." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:53 +msgid "Table 103: The 12:00 table is running late." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:-1 -msgid "activate the bill printing and bill splitting features in the POS settings" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:54 +msgid "Table 104: The table has a pending order." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:21 -msgid "Bill printing" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:55 +msgid "Table 105: The table is available." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:23 -msgid "From an open session, click :menuselection:`Bill --> Print` at any moment to generate and print a bill." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:60 +msgid "Creating floors and tables allows managing table selection and :ref:`orders `." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:27 -msgid "The printed bill is **not** final and will be updated to reflect any changes to the order." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:66 +msgid "From the POS backend" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:30 -msgid "Bill splitting" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:68 +msgid "To create floors and tables from the backend, go to :menuselection:`Point of Sale --> Configuration --> Floor Plans`, and click :guilabel:`New`. Follow the next steps to configure the :guilabel:`Floor plan`:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:32 -msgid "From an open session, click :guilabel:`Split` to select the items to regroup. Once everything is selected, click :guilabel:`Payment` and proceed to checkout for these items. Repeat for each guest." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:72 +msgid "Enter a :guilabel:`Floor Name`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:36 -msgid "Once you return to the table, the selected items are no longer on order, as they have been paid for." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:73 +msgid "Select the related :guilabel:`Point of Sales`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:38 -msgid "The feature is available as soon as at least two items are ordered." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:74 +msgid "Optionally, hover the mouse over the placeholder image and click the :icon:`fa-pencil` (:guilabel:`Edit`) icon to add a background image to the restaurant layout." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/bill_printing.rst:41 -msgid ":doc:`floors_tables`" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:76 +msgid "Click :guilabel:`Add a line` to create and configure a table:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:3 -msgid "Floors and tables" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:78 +msgid "Enter a :guilabel:`Table Number`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:5 -msgid "The **Floor plan view** enables you to manage restaurant floors and table arrangements and monitor table status in real time — including occupancy, reservations, and kitchen orders." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:79 +msgid "Fill in the number of :guilabel:`Seats`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:-1 -msgid "example of a floor plan view with visual keys to understand it." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:80 +msgid "Set the table's :guilabel:`Shape`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:12 -msgid "Table 101: The table is available now but booked at 15:00." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:81 +msgid "Optionally, activate additional settings by clicking the :icon:`oi-settings-adjust` (:guilabel:`settings`) icon:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:13 -msgid "Table 102: An order has been placed and sent to the kitchen." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:84 +msgid "Adjust the :guilabel:`Height`, :guilabel:`Width`, and :guilabel:`Color`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:14 -msgid "Table 103: The table was booked at 12:00, but customers are late." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:85 +msgid "Tick the :guilabel:`Active` checkbox to make a table available or not." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:15 -msgid "Table 104: Two items are waiting to be sent to the kitchen." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:86 +msgid "Save." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:16 -msgid "Table 105: The table is available." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:89 +msgid "Enable the :guilabel:`Table Booking` setting to assign an :guilabel:`Appointment resource` and make a table bookable." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:22 -msgid "From the POS backend" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:91 +msgid "Click the :icon:`fa-trash-o` (:guilabel:`trash`) icon to delete a table." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:24 -msgid "To create floors and tables from the backend, go to :menuselection:`Point of Sale --> Configuration --> Floor Plans`, and click :guilabel:`New` to create a floor. Optionally, activate additional settings by clicking the :icon:`oi-settings-adjust` (:guilabel:`adjust settings`) icon. Then," +#: ../../content/applications/sales/point_of_sale/restaurant.rst:94 +msgid "To create a :guilabel:`Floor plan` quickly, go to the :guilabel:`Restaurant Mode` section of the :ref:`POS settings `. Under :guilabel:`Floors & Tables Map`, type the floor name in the :guilabel:`Floors` field, and press `Enter`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:28 -msgid "Enter a :guilabel:`Floor Name`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:101 +msgid "From the POS frontend" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:29 -msgid "Select the related :guilabel:`Point of Sales`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:103 +msgid "To create floors and tables from the frontend, :ref:`open the POS register `, click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon in the top right corner of the :guilabel:`Floor plan` view, then :guilabel:`Edit Plan`. To configure the :guilabel:`Floor plan`, follow the next steps:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:30 -msgid "Hover over the placeholder image and click the :icon:`fa-pencil` (:guilabel:`pencil`) icon to add a background image (e.g., your restaurant layout)." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:108 +msgid "Click the :icon:`fa-plus` (:guilabel:`Add Floor`) icon to add a floor." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:32 -msgid "Click :guilabel:`Add a line` to create a table and set it up:" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:109 +msgid "Enter a :guilabel:`Floor name` and click :guilabel:`Apply`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:34 -msgid "Enter a :guilabel:`Table Number`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:110 +msgid "Click the :icon:`fa-paint-brush` (:guilabel:`Change Floor Background`) icon to select a background color, or click :icon:`fa-camera` :guilabel:`File` to upload an image." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:35 -msgid "Fill in the number of :guilabel:`Seats`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:112 +msgid "Optionally, click the :icon:`fa-pencil-square-o` (:guilabel:`Rename`) icon to rename the :guilabel:`Floor plan`, the :icon:`fa-files-o` (:guilabel:`Clone`) icon to create a copy, or the :icon:`fa-trash` (:guilabel:`Delete`) icon to delete it." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:36 -msgid "Select a :guilabel:`Square` or :guilabel:`Round` :guilabel:`Shape`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:115 +msgid "Click :icon:`fa-plus-circle` :guilabel:`Table` to add a new table. To edit a table, select it and click one of the following icons:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:37 -msgid "Assign an :guilabel:`Appointment resource` to make the table bookable." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:118 +msgid ":icon:`fa-user` (:guilabel:`Seats`): Add or change the number of seats." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:38 -msgid "Adjust the :guilabel:`Height`, :guilabel:`Width`, and :guilabel:`Color`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:119 +msgid ":icon:`fa-square-o` (:guilabel:`Square`) or :icon:`fa-circle-o` (:guilabel:`Round`): Change the table's shape." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:39 -msgid "Click the :icon:`fa-trash-o` (:guilabel:`delete`) icon to delete a table." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:121 +msgid ":icon:`fa-paint-brush` (:guilabel:`Change Floor Background`): Change the table's color." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:-1 -msgid "window to create a table in the POS backend" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:122 +msgid ":icon:`fa-pencil-square-o` (:guilabel:`Rename`): Change the table number." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:45 -msgid "Create floors on the spot: :ref:`access your POS settings `, type your floor name in the :guilabel:`Floors` field of the :guilabel:`Floors & Tables Map` section, and press *enter* or click :guilabel:`Create and edit...` to set it up." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:123 +msgid ":icon:`fa-copy` (:guilabel:`Clone`): Clone the table's attributes using the following table number." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:52 -msgid "From the POS front end" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:125 +msgid ":icon:`fa-trash` (:guilabel:`Delete`): Remove the table." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:54 -msgid "To create floors and tables from the front end, :ref:`open a POS session `, click the :icon:`fa-bars` (:guilabel:`hamburger menu`) icon in the upper right corner, then :guilabel:`Edit Plan`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:129 +msgid "Removing a table or a floor is permanent." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:58 -msgid "Add a floor by clicking the :icon:`fa-plus` (:guilabel:`plus`) icon, then enter a name in the modal window." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:134 +msgid "Order management" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:60 -msgid "Click the :icon:`fa-paint-brush` (:guilabel:`paintbrush`) icon to change the background color or image." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:136 +msgid "To take an order, :ref:`open the POS register ` and follow these steps:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:62 -msgid "Click :icon:`fa-plus-circle` :guilabel:`Table` to add a new table." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:138 +msgid "Select a :ref:`floor plan ` and click a table or click the :icon:`fa-plus-circle` (:guilabel:`order`) button at the top to create a direct sales order." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:64 -msgid "To adjust a specific table, select it and click:" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:140 +msgid "Add products to the order." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:66 -msgid "The :icon:`fa-user` (:guilabel:`user`) icon to change the number of seats." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:141 +msgid "Click :guilabel:`Order` to validate the order." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:67 -msgid "The :icon:`fa-square` (:guilabel:`square`) or :icon:`fa-circle` (:guilabel:`round`) icon to switch the shape from round to square, and vice versa." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:143 +msgid "When ready, :ref:`process the order payment `." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:69 -msgid "The :icon:`fa-paint-brush` (:guilabel:`paintbrush`) icon to change the table's color." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:146 +msgid "To cancel a processed order, click :guilabel:`Actions`, then :guilabel:`Cancel Order`. If an :ref:`order printer is configured `, a cancellation ticket is automatically printed." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:70 -msgid "The :icon:`fa-pencil-square-o` (:guilabel:`rename`) icon to change the table number." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:149 +msgid "To switch to another table order, click the button with the table number at the top of the POS interface, enter a table number, and click :guilabel:`Jump`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:71 -msgid "The :icon:`fa-copy` (:guilabel:`clone`) icon to duplicate the table." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:151 +msgid "Click :guilabel:`Release table` to cancel a table's occupancy." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:72 -msgid "The :icon:`fa-trash` (:guilabel:`bin`) icon to remove the table." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:152 +msgid ":ref:`Configure a printer ` to send an order to the kitchen printer when clicking :guilabel:`Order`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:74 -msgid "After making all the necessary modifications, click :guilabel:`Save` or the :icon:`fa-floppy-o` (:guilabel:`floppy disk`) icon to save." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:158 +msgid "Order transfer" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:-1 -msgid "the floor plan view in edit mode." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:160 +msgid "To transfer an order to another table from the :ref:`POS interface `, click :guilabel:`Actions`, then :guilabel:`Transfer/Merge`, and choose the target table in the :ref:`Floor plan ` view:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:82 -msgid "Removing a table or a floor cannot be undone." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:164 +msgid "Select an available table to transfer customers and their orders." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:87 -msgid "Table transfer" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:165 +msgid "Select an occupied table to merge customers and their orders." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:89 -msgid "Select a table to move customers to another table, then click :guilabel:`Actions` and :icon:`oi-arrow-right` :guilabel:`Transfer/Merge`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:170 +msgid "Order printing" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:92 -msgid "In the floor plan view, choose the target table:" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:175 +msgid "To enable sending orders to a kitchen or a bar printer, :doc:`connect a printer ` to Odoo, go to the :ref:`POS settings `, and follow these steps:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:94 -msgid "Select a free table to transfer customers and their orders." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:179 +msgid "Scroll down to the :guilabel:`Preparation` section and enable the :guilabel:`Preparation Printers` setting." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:95 -msgid "Select an occupied table to merge customers and their orders." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:181 +msgid "Type the printer's name in the :guilabel:`Printers` field and click :guilabel:`Create and edit`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/floors_tables.rst:98 -msgid ":doc:`../restaurant`" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:182 +msgid "On the printer setup form, select the :guilabel:`Printer Type`:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:3 -msgid "Orders printing" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:184 +msgid "If the printer is connected to an :doc:`IoT system `, select :guilabel:`Use a printer connected to the IoT`, and choose the relevant :doc:`device `. This process requires the IoT app and an IoT system." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:5 -msgid "Integrating printers in a restaurant or bar's workflow can enhance communication and collaboration between the front-of-house and back-of-house teams, leading to a more streamlined and efficient service." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:188 +msgid "If using an :doc:`Epson printer that does not require an IoT system connection `, select :guilabel:`Use an Epson printer` and enter the :guilabel:`Epson Printer IP Address`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:15 -msgid "Enable and create printers" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:191 +msgid "Define the product categories to be printed by clicking :guilabel:`Add a line` in the :guilabel:`Printed Product Categories` field and selecting the preferred category from the popover." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:17 -msgid "To enable sending orders to a kitchen or bar printer, go to :menuselection:`Point of Sale --> Configuration --> Settings`, scroll down to the :guilabel:`Restaurant & Bar` section, and enable :guilabel:`Kitchen Printers`. Type in a name for the printer in the :guilabel:`Printers` field and click :guilabel:`Create and edit...` to open a setup form." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:194 +msgid "Click :guilabel:`Save & Close`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:22 -msgid "To get a list of all the printers already created or to modify an already created printer, click :guilabel:`--> Printers` and select the desired printer to open the setup form." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:195 +msgid "In the :ref:`POS settings `, click :guilabel:`Save`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:-1 -msgid "settings to enable the kitchen printers" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:197 +msgid "The printer is then connected to the point of sale and can print kitchen orders and order receipts." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:32 -msgid "Setup form" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:200 +msgid "Printing kitchen orders requires assigning a :guilabel:`PoS Product Category`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:34 -msgid "From the :ref:`setup form `, select the :guilabel:`Printer Type` according to your installation:" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:201 +msgid "To create a :guilabel:`Printed Product Category` on the :guilabel:`Add: Printed Product Categories` popover, click :guilabel:`New`. Enter a name, select a :guilabel:`Parent Category`, choose a :guilabel:`Color`, click the :icon:`fa-pencil` (:guilabel:`Edit`) icon to add an image, determine the product availability, then click :guilabel:`Save & Close`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:37 -msgid "If your printer is connected to an IoT system, select :guilabel:`Use a printer connected to the IoT Box` and select the device in the :guilabel:`IoT Device` field." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:207 +msgid "To access all preparation printers from the :ref:`POS settings `, scroll down to the :guilabel:`Preparation` section, and click :icon:`oi-arrow-right` :guilabel:`Printers`. Alternatively, go to :menuselection:`Point of Sale --> Orders --> Preparations Printers`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:39 -msgid "If you use an Epson printer that does not require an IoT system, select :guilabel:`Use an Epson printer` and enter the printer's IP address in the :guilabel:`Epson Printer IP Address` field." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:213 +msgid ":doc:`Connect an IoT system to a POS `" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:43 +#: ../../content/applications/sales/point_of_sale/restaurant.rst:214 +msgid ":doc:`/applications/general/iot/devices/printer`" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:215 msgid ":doc:`/applications/general/iot/connect`" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:44 -msgid ":doc:`/applications/general/iot/devices/printer`" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:216 +msgid ":doc:`/applications/sales/point_of_sale/preparation`" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:45 -msgid ":doc:`../configuration/epos_ssc`" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:221 +msgid "Bills and payment" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:47 -msgid "Set your printer to print specific products based on their POS category. To do so, click :guilabel:`Add a line` in the :guilabel:`Printed Product Categories` field." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:226 +msgid "Bill splitting" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:-1 -msgid "setup form to configure a kitchen printer" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:228 +msgid "To allow bill splitting, go to :menuselection:`Point of Sale --> Configuration --> Settings`, and enable :guilabel:`Allow Bill Splitting` under the :guilabel:`Restaurant Mode` section." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:55 -msgid "Print orders" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:231 +msgid "To split a bill from the :ref:`POS interface `, follow these steps:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:57 -msgid "From an open session, start taking an order and click :guilabel:`Order` to send it to the bar or the kitchen." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:233 +msgid "Click :guilabel:`Actions`, then :guilabel:`Split`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:-1 -msgid "order button from the POS UI to send orders to a kitchen or a bar" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:234 +msgid "Select at least one product and click :guilabel:`Split Order`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/kitchen_printing.rst:65 -msgid "When products can be printed, they appear in green in the cart, and the order button turns green." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:235 +msgid "Proceed with the :ref:`payment `." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:3 -msgid "Tips" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:236 +msgid "Click :icon:`fa-chevron-right` :guilabel:`Continue` and repeat the process for each guest." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:239 +msgid "Splitting a bill requires ordering at least two products and creates a sub-order, which must be paid before returning to the main order." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:241 +msgid "Clicking :guilabel:`Split Order` without selecting any product creates an empty sub-order." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:246 +msgid "Order payment" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:248 +msgid "To proceed with the order payment from the :ref:`POS interface `, follow these steps:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:251 +msgid "Click :guilabel:`Payment`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:5 -msgid "Tipping is customary in multiple countries. Point of Sale allows tipping in :ref:`shops `, :doc:`bars <../restaurant>`, or :doc:`restaurants <../restaurant>`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:252 +msgid "Select a :doc:`payment method `." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:13 -msgid "To allow tipping in your POS, activate the :guilabel:`Tips` feature in :menuselection:`Point of Sale --> Configuration --> Settings`. At the top of the page, select the POS in which you wish to allow **tipping**, scroll down to the :guilabel:`Payment` section and check :guilabel:`Tips`. Once enabled, add a :guilabel:`Tip Product` in the corresponding field, and save. The designated product will be used as a reference on customers' receipts." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:253 +msgid "Optionally, select a customer and send an invoice to them:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:-1 -msgid "enable tips in a POS" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:255 +msgid "Click :icon:`fa-user` :guilabel:`Customer` to select or create a customer account." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:25 -msgid "Tip products" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:256 +msgid "Enable :icon:`fa-file-text-o` :guilabel:`Invoice` to allow sending an invoice to the customer." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:27 -msgid "**Tip products** can be created on the spot. To do so, enter a product's name in the :ref:`Tip Product ` field and click :guilabel:`Create` or press **enter**. The product is automatically configured to be used as a tip at the payment screen." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:258 +#: ../../content/applications/sales/point_of_sale/restaurant.rst:312 +msgid "Click :guilabel:`Validate`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:31 -msgid "However, if you wish to be able to select the tip product in a POS session, you must activate the **Available in POS** setting. To do so, click :guilabel:`Create and edit...` to open the product configuration form. Then, go to the :guilabel:`Sales` tab, tick the :guilabel:`Available in POS` checkbox, and click :guilabel:`Save & Close`." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:263 +msgid "Receipt printing" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:37 -msgid "When you create a product to use as a tip, leave the **product type** as :guilabel:`Consumable` to avoid unnecessary inventory movements." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:265 +msgid "To allow receipt printing, go to :menuselection:`Point of Sale --> Configuration --> Settings`, and enable :guilabel:`Early Receipt Printing` under the :guilabel:`Restaurant Mode` section." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:39 -msgid "You can only select one tip product per POS, but you can choose a different one for each." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:268 +msgid "After a successful :ref:`order payment `, click :icon:`fa-print` :guilabel:`Print Full Receipt` to generate and print a bill." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:42 -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:72 -msgid "Tip using an Adyen terminal" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:272 +msgid "If a printer is :doc:`configured and linked ` to a point of sale, the receipt is automatically printed upon payment confirmation." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:44 -msgid "If you use an :doc:`Adyen <../payment_methods/terminals/adyen>` payment terminal and wish to enable **tips** using the terminal, check :guilabel:`Add tip through payment terminal (Adyen)` below the :ref:`tip settings `." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:276 +msgid ":doc:`/applications/sales/point_of_sale/receipts_invoices`" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:49 -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:79 -msgid "Tip after payment" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:286 +msgid "To allow tipping in a POS, go to the :ref:`POS settings `, scroll down to the :guilabel:`Payment` section, enable :guilabel:`Tips`, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:51 -msgid "If you use a POS system in a bar or a restaurant, you can enable :guilabel:`Add tip after payment (North America specific)`. Doing so generates a bill to print and complete manually by the customer and the waiter. That bill indicates the tip value the customer chooses to give after the payment." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:290 +msgid "The :guilabel:`Add tip after payment` setting only works for a POS in the United States of America with an :doc:`Adyen ` or a :doc:`Stripe ` :ref:`payment terminal `." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:56 -msgid "To use this feature, the selected payment method must have a bank journal attributed." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:293 +msgid "The :guilabel:`Add tip through payment terminal (Adyen)` setting only works with an :ref:`Adyen ` terminal." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:59 -msgid "Add tips" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:297 +msgid "Saving the :guilabel:`Tips` setting automatically fills the :guilabel:`Tip product` field with the preconfigured :guilabel:`[TIPS] Tips` product, which is only used for tips. When selecting another product in the :guilabel:`Tip product` field, the chosen product is no longer available on the :ref:`POS interface `." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:61 -msgid "To add tips to an order, :ref:`access the payment screen ` and click :guilabel:`♥ Tip`. Then, enter the tipping amount, click :guilabel:`Confirm` to validate, and process the payment." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:301 +msgid "Choose only one tip product per POS." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:-1 -msgid "tip popup window" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:306 +msgid "Tip and payment" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:67 -msgid "Alternatively, you can select the :ref:`tip product ` on the POS interface to add it to the cart. When selected, the product is automatically set as a tip, and its default value equals its **Sales Price**." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:308 +msgid "To process a tip during :ref:`payment `, follow these steps:" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:74 -msgid "During checkout, select **Adyen** as the payment terminal, and send the payment request to the device by clicking :guilabel:`Send`. The customers are asked to enter the desired tipping amount on the terminal's screen before proceeding to the payment." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:310 +msgid "Click :icon:`fa-heart` :guilabel:`Tip`, add the amount, then click :guilabel:`Ok`." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:81 -msgid "At checkout, select a card payment method and click :guilabel:`Close Tab`. Doing so generates a bill to complete by the customer." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:311 +msgid "Select a :doc:`payment method ` for the order and the tip." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:-1 -msgid "tipping bill after payment to complete by customers" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:315 +msgid "If the order and the tip are paid using different payment methods, select a :doc:`payment method ` for the order, click :icon:`fa-heart` :guilabel:`Tip`, add the tip amount, and click :guilabel:`Ok`. Then, select a payment method for the tip and :guilabel:`Validate` the payment." msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:87 -msgid "On the following screen, click the percentage (:guilabel:`15%`, :guilabel:`20%`, :guilabel:`25%`), :guilabel:`No Tip`, or enter the tipping amount the customer chose to give. Then, click :guilabel:`Settle` to move to the following order." +#: ../../content/applications/sales/point_of_sale/restaurant.rst:321 +msgid "Tip after payment (US only)" msgstr "" -#: ../../content/applications/sales/point_of_sale/restaurant/tips.rst:-1 -msgid "screen to select a tip amount to collect after payment" +#: ../../content/applications/sales/point_of_sale/restaurant.rst:323 +msgid "To allow tipping after payment for a POS in the United States of America, ensure the :guilabel:`Add tip after payment` setting is enabled in the :ref:`POS settings `. To process tips after payment, follow these steps:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:327 +msgid "On the :guilabel:`Payment` screen, select a :guilabel:`Card` payment method linked to a :doc:`Stripe ` or :doc:`Adyen ` terminal." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:330 +msgid "Click :guilabel:`Close Tab` and select the relevant option in the :guilabel:`Add a tip` screen:" +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:332 +msgid ":guilabel:`15%`, :guilabel:`20%`, or :guilabel:`25%`: Tip rates based on order total." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:333 +msgid ":guilabel:`No Tip`." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:334 +msgid ":guilabel:`Tip Amount`: Enter the relevant amount in the field." +msgstr "" + +#: ../../content/applications/sales/point_of_sale/restaurant.rst:335 +msgid "Click :guilabel:`Settle` to validate." msgstr "" #: ../../content/applications/sales/point_of_sale/self_order.rst:3 @@ -10275,87 +10424,6 @@ msgstr "" msgid "You can also use a barcode scanner to log your employees. To do so, :ref:`restrict access ` to the POS and :ref:`use barcodes to log your employees in ` your POS." msgstr "" -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:5 -msgid "The **customer display** feature provides customers with real-time checkout updates on a secondary display." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:-1 -msgid "customer screen" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:14 -msgid "Depending on your POS setup, the feature can be displayed :ref:`locally on a secondary screen `, :ref:`remotely on another device `, or :ref:`another monitor connected to an IoT Box `." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:18 -msgid "To activate the feature, go to the POS settings, scroll down to the :guilabel:`Connected Devices` section, and tick the :guilabel:`Customer Display` checkbox." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:-1 -msgid "customer display setting checkbox" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:27 -msgid "Local" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:29 -msgid "Connect a second screen to your POS using an HDMI or USB-C cable, then," -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:32 -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:40 -msgid "Click the :icon:`fa-bars` icon (:guilabel:`hamburger menu`)." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:33 -msgid "Click the :icon:`fa-desktop` icon (:guilabel:`customer screen`) to open a new window to drag and drop onto the second screen." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:36 -msgid "For POS terminals running the Odoo Android app with dual-screen support," -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:38 -msgid ":doc:`Activate the Point of Sale Mobile module <../../../general/apps_modules>` to enable the customer display." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:41 -msgid "Once installed, click the :icon:`fa-desktop` icon (:guilabel:`customer screen`) to open the customer display on the terminal's secondary screen." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:47 -msgid "Remote" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:49 -msgid "Access your database from another device (any computer, tablet, or smartphone), go to the POS application, click the vertical ellipsis button (:guilabel:`⋮`) on a POS card, and then :guilabel:`Customer Display` to open the display remotely." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:54 -msgid "The two devices are not required to share the same network." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:59 -msgid "IoT system" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:61 -msgid "Connect an IoT box to your database and the second screen to the IoT box. Then, go to :menuselection:`Point of Sale --> Configuration --> Settings`, scroll down to the :guilabel:`Connected Devices` section, tick the :guilabel:`IoT Box` checkbox, and select the second monitor in the :guilabel:`Customer Display` field." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:-1 -msgid "iot setting to connect a customer display" -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:70 -msgid "Both devices need to be connected to the same local network." -msgstr "" - -#: ../../content/applications/sales/point_of_sale/shop/customer_display.rst:73 -msgid ":doc:`../configuration/pos_iot`" -msgstr "" - #: ../../content/applications/sales/point_of_sale/shop/sales_order.rst:3 msgid "Sales orders" msgstr "" @@ -11819,6 +11887,10 @@ msgstr "" msgid "After a plan is approved, Odoo automatically tracks performance and calculates commissions based on the established parameters." msgstr "" +#: ../../content/applications/sales/sales/commissions.rst:157 +msgid ":doc:`Commissions <../../hr/payroll/commissions>`" +msgstr "" + #: ../../content/applications/sales/sales/gelato.rst:3 msgid "Gelato" msgstr "" @@ -18384,251 +18456,6 @@ msgstr "" msgid ":doc:`Payment providers and payment methods `" msgstr "" -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:3 -msgid "Automation rules" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:5 -msgid "With subscriptions up-and-running, it is important to stay up-to-date with customers. It is efficient to use automation to avoid having to manually go through the list of subscribers to see how things are going. That is where Odoo's *automation rules* feature comes into play." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:9 -msgid "The Odoo *Subscriptions* application allows users to set up automatic emails, create tasks for salespeople, and even send satisfaction surveys for subscribers to evaluate their experience." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:13 -msgid "Create automation rules" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:15 -msgid "To create an automated rule, start by navigating to :menuselection:`Subscriptions app --> Configuration --> Automation Rules`. This is where all the automation rules for subscriptions can be found." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:19 -msgid "The :guilabel:`Automation Rules` page shows each rule's :guilabel:`Name`, :guilabel:`Action To Do`, what the automated rule will :guilabel:`Trigger On`, and the :guilabel:`Company` to which the rule applies." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:23 -msgid "To view or modify any existing automation rule, simply click the desired rule from this page." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:26 -msgid "When modifying an existing automation rule, Odoo \"grays-out\" the :guilabel:`Action` section of the form, and provides the following warning: *Action data can not be updated to avoid unexpected behaviors. Create a new action instead.*" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:30 -msgid "To create a new automation rule, click :guilabel:`New`." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:-1 -msgid "The Automation Rules page in the Odoo Subscriptions application." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:36 -msgid "Clicking :guilabel:`New` reveals a blank :guilabel:`Automation Rules` form with numerous fields to configure." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:-1 -msgid "A sample Automation Rules form in the Odoo Subscriptions application." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:44 -msgid "Automation rule form fields" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:46 -msgid ":guilabel:`Action Name`: title of the automated action rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:49 -msgid "Apply On section" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:51 -msgid "The :guilabel:`Apply On` section dictates which subscription orders/customers this automated action applies to." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:54 -msgid ":guilabel:`MRR Between`: designate a range of monthly recurring revenue to target." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:55 -msgid ":guilabel:`MRR Change More`: designate a change of monthly recurring revenue to target, in either percentage or unit of currency." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:57 -msgid ":guilabel:`Over`: choose a period of time over which the designated KPIs (Key Performance Indicators) are calculated." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:59 -msgid ":guilabel:`Rating Satisfaction`: designate satisfaction as :guilabel:`greater than` or :guilabel:`less than` a percentage." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:61 -msgid ":guilabel:`Status`: select the status of the subscriptions to be included in this automation rule. The options are: :guilabel:`Quotation`, :guilabel:`Quotation Sent`, :guilabel:`Sales Order`, and :guilabel:`Cancelled`." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:64 -msgid ":guilabel:`Stage goes from`: designate when the automation rule should be activated using two fields that represent two different stages of the subscription." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:66 -msgid ":guilabel:`Subscription Plans`: choose specific subscription plans to target with the automation rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:68 -msgid ":guilabel:`Products`: select specific product(s) to target with the automation rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:69 -msgid ":guilabel:`Customers`: select specific customer(s) to target with the automation rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:70 -msgid ":guilabel:`Company`: in a multi-company environment, select a specific company's subscription data to target with the automation rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:72 -msgid ":guilabel:`Sales Team`: select the data of specific sales team(s) to target with the automation rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:76 -msgid "If any field is left blank, the rule applies to every subscription without that specific designation." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:80 -msgid "The number of subscriptions that match the configured criteria of the customized automation rule are displayed at the bottom of the :guilabel:`Apply On` field." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:83 -msgid "If that green subscriptions link is clicked, Odoo reveals a separate page showcasing all the subscriptions that meet that automation rule's criteria." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:87 -msgid "Action section" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:89 -msgid "The :guilabel:`Action` section dictates what action occurs when an automated rule is triggered." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:91 -msgid "In the :guilabel:`Action To Do` field, choose the action that will occur once the automated rule is triggered. When clicked, the following options become available on a drop-down menu:" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:94 -msgid ":guilabel:`Create next activity`: creates the next activity to occur, which is configured in the :guilabel:`Activity` section that appears at the bottom of the automation rule form." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:96 -msgid ":guilabel:`Send an email to the customer`: sends an email to the customer(s) who fit the specified criteria of the automation rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:98 -msgid ":guilabel:`Send an SMS Text Message to the customer`: sends an SMS message to the customer(s) who fit the specified criteria of the automation rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:100 -msgid ":guilabel:`Set Contract Health value`: set the health value of the subscription contract." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:102 -msgid "If :guilabel:`Send an email to the customer` is selected in the :guilabel:`Action To Do` field, the following field appears:" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:105 -msgid ":guilabel:`Email Template`: create (and edit) a new email template *or* select from a list of pre-configured email templates to send to the customer(s)." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:108 -msgid "If :guilabel:`Send an SMS Text Message to the customer` is selected in the :guilabel:`Action To Do` field, the following field appears:" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:111 -msgid ":guilabel:`SMS Template`: create (and edit) a new SMS template *or* select from a list of pre-configured SMS templates to send to the customer(s)." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:114 -msgid "If :guilabel:`Set Contract Health value` is selected in the :guilabel:`Action To Do` field, the following field appears:" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:117 -msgid ":guilabel:`Health`: designate the health of the subscription by choosing one of the following options: :guilabel:`Neutral`, :guilabel:`Good`, or :guilabel:`Bad`." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:120 -msgid "In the :guilabel:`Trigger On` field, decide whether the automated rule should be triggered on a :guilabel:`Modification` or :guilabel:`Timed Condition`." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:124 -msgid "A :guilabel:`Trigger Now` button appears at the top of the automation rule form *only* when a trigger has been configured for the rule." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:128 -msgid "When the :guilabel:`Trigger Now` button is clicked, Odoo will trigger the action on *all* linked subscriptions, regardless of possible timed conditions." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:132 -msgid "Sending a SMS text message in Odoo requires In-App Purchase (IAP) credit or tokens. For more information on :abbr:`IAP (In-App Purchase)`, visit :doc:`../../essentials/in_app_purchase`. For more information on sending SMS messages, visit :doc:`../../marketing/sms_marketing`." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:137 -msgid "If :guilabel:`Timed Condition` is selected in the :guilabel:`Trigger On` field, the following fields appear:" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:140 -msgid ":guilabel:`Trigger Date`: represents when the condition should be triggered. If left blank, the action is created upon subscription creation *and* updates." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:142 -msgid ":guilabel:`Delay After Trigger`: select a delayed amount of time (:guilabel:`Minutes`, :guilabel:`Hours`, :guilabel:`Days`, or :guilabel:`Months`) for Odoo to wait before triggering the configured action. If a negative number is entered, the \"delay\" will occur *before* the :guilabel:`Trigger Date`." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:148 -msgid "Activity section" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:150 -msgid "If :guilabel:`Create next activity` is selected in the :guilabel:`Action To Do` field, an :guilabel:`Activity` section appears at the bottom of the :guilabel:`Automation Rules` form." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:153 -msgid ":guilabel:`Activity Type`: select an pre-configured activity type from the drop-down menu." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:154 -msgid ":guilabel:`Title`: enter a custom title for the chosen activity." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:155 -msgid ":guilabel:`Note`: leave a note for the employee to whom the activity is assigned." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:156 -msgid ":guilabel:`Due Date In`: enter an amount of days within which the activity should be completed." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:157 -msgid ":guilabel:`Assign To`: choose to assign the specified activity to either: :guilabel:`Subscription Salesperson`, :guilabel:`Sales Team Leader`, or :guilabel:`Specific Users`." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:161 -msgid "If :guilabel:`Specific Users` is selected as the :guilabel:`Assign To` option, a new :guilabel:`Specific Users` field appears beneath it, where a specific employee(s) can be chosen as the assignee(s) for the configured activity." -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:166 -#: ../../content/applications/sales/subscriptions/closing.rst:103 -#: ../../content/applications/sales/subscriptions/renewals.rst:128 -#: ../../content/applications/sales/subscriptions/reports.rst:403 -#: ../../content/applications/sales/subscriptions/scheduled_actions.rst:195 -#: ../../content/applications/sales/subscriptions/upselling.rst:107 -msgid ":doc:`../subscriptions`" -msgstr "" - -#: ../../content/applications/sales/subscriptions/automatic_alerts.rst:167 -msgid ":doc:`../../essentials/in_app_purchase`" -msgstr "" - #: ../../content/applications/sales/subscriptions/closing.rst:3 msgid "Close subscriptions" msgstr "" @@ -18737,6 +18564,14 @@ msgstr "" msgid "In addition, the specified :guilabel:`Close Reason` appears on the subscription order in the *Subscriptions* app in the backend (Administrator's view)." msgstr "" +#: ../../content/applications/sales/subscriptions/closing.rst:103 +#: ../../content/applications/sales/subscriptions/renewals.rst:128 +#: ../../content/applications/sales/subscriptions/reports.rst:403 +#: ../../content/applications/sales/subscriptions/scheduled_actions.rst:195 +#: ../../content/applications/sales/subscriptions/upselling.rst:107 +msgid ":doc:`../subscriptions`" +msgstr "" + #: ../../content/applications/sales/subscriptions/ecommerce.rst:3 msgid "Subscriptions in the eCommerce shop" msgstr "" @@ -19698,10 +19533,6 @@ msgstr "" msgid "For example, if the next invoice date is July 1st, and the :guilabel:`Automatic Closing` is set to '30 Days', the scheduled action would close the subscription on August 1st." msgstr "" -#: ../../content/applications/sales/subscriptions/scheduled_actions.rst:196 -msgid ":doc:`automatic_alerts`" -msgstr "" - #: ../../content/applications/sales/subscriptions/upselling.rst:3 #: ../../content/applications/sales/subscriptions/upselling.rst:44 msgid "Upsell subscriptions" diff --git a/locale/sources/services.pot b/locale/sources/services.pot index 8e9deda939..493ddec3aa 100644 --- a/locale/sources/services.pot +++ b/locale/sources/services.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -321,7 +321,7 @@ msgid "Helpdesk" msgstr "" #: ../../content/applications/services/helpdesk.rst:8 -msgid "Odoo **Helpdesk** is a ticket-based customer support application. Multiple teams can be configured and managed in one dashboard, each with their own pipeline for tickets submitted by customers. Pipelines are organized in customizable stages that enable teams to track, prioritize, and solve customer issues quickly and efficiently." +msgid "Odoo **Helpdesk** is a ticket-based customer support application. Multiple teams can be configured and managed in one dashboard, each with their own pipeline for tickets submitted by customers. Pipelines are organized in customizable stages that enable teams to track, prioritize, and solve customer issues efficiently." msgstr "" #: ../../content/applications/services/helpdesk.rst:16 @@ -408,96 +408,116 @@ msgstr "" msgid "When tickets are received, they need to be assigned to a member of the team. This is done either manually on each individual ticket, or through :guilabel:`Automatic Assignment`. Check the :guilabel:`Automatic Assignment` checkbox to enable this feature for the team." msgstr "" +#: ../../content/applications/services/helpdesk.rst:94 +msgid "If an employee has time off scheduled in the **Time Off** application, they are **not** assigned tickets during that time. If no employees are currently available, the system looks ahead on the calendar until there is a match." +msgstr "" + #: ../../content/applications/services/helpdesk.rst:-1 msgid "View of a Helpdesk team settings page emphasizing the automatic assignment features in Odoo\n" "Helpdesk." msgstr "" -#: ../../content/applications/services/helpdesk.rst:97 +#: ../../content/applications/services/helpdesk.rst:103 +msgid "Assign tickets based on workload" +msgstr "" + +#: ../../content/applications/services/helpdesk.rst:105 msgid "Select one of the following assignment methods, based on how the workload should be allocated across the team:" msgstr "" -#: ../../content/applications/services/helpdesk.rst:100 -msgid ":guilabel:`Each user is assigned an equal number of tickets`: Tickets are assigned to team members based on total ticket count, regardless of the number of open or closed tickets they are currently assigned." +#: ../../content/applications/services/helpdesk.rst:108 +msgid ":guilabel:`Each user is assigned an equal number of tickets`: Tickets are assigned to team members based on total unassigned ticket count, regardless of the number of open or closed tickets they are currently assigned." msgstr "" -#: ../../content/applications/services/helpdesk.rst:103 +#: ../../content/applications/services/helpdesk.rst:111 msgid ":guilabel:`Each user has an equal number of open tickets`: Tickets are assigned to team members based on how many open tickets they are currently assigned." msgstr "" -#: ../../content/applications/services/helpdesk.rst:107 +#: ../../content/applications/services/helpdesk.rst:115 msgid "When :guilabel:`Each user is assigned an equal number of tickets` is selected, the overall number of tickets assigned to team members is the same, but it does **not** consider the current workload." msgstr "" -#: ../../content/applications/services/helpdesk.rst:111 +#: ../../content/applications/services/helpdesk.rst:119 msgid "When :guilabel:`Each user has an equal number of open tickets` is selected, it ensures a balanced workload among team members, as it takes the current number of active tickets into account." msgstr "" -#: ../../content/applications/services/helpdesk.rst:114 -msgid "Finally, add the :guilabel:`Team Members` who are to be assigned tickets for this team. Leave the field empty to include all employees who have the proper assignments and access rights configured in their user account settings." +#: ../../content/applications/services/helpdesk.rst:122 +msgid "Add the :guilabel:`Team Members` who are to be assigned tickets for this team. Leave the field empty to include all employees who have the proper assignments and access rights configured in their user account settings." msgstr "" -#: ../../content/applications/services/helpdesk.rst:119 -msgid "If an employee has time off scheduled in the **Time Off** application, they are **not** assigned tickets during that time. If no employees are available, the system looks ahead until there is a match." +#: ../../content/applications/services/helpdesk.rst:127 +msgid "Assign tickets based on expertise" +msgstr "" + +#: ../../content/applications/services/helpdesk.rst:129 +msgid "To assign tickets to team members based on their expertise, and the associated tag on the tickets, select :guilabel:`Dispatch tickets based on tags` under :guilabel:`Automatic Assignment`. Then, click :guilabel:`Configure tags handled by team members`." msgstr "" -#: ../../content/applications/services/helpdesk.rst:124 +#: ../../content/applications/services/helpdesk.rst:133 +msgid "Click :guilabel:`New` to create a new :guilabel:`Ticket Tag`, such as `Pricing` or `IT`. Select one or more :guilabel:`Team Members` from the drop-down list. Click :guilabel:`Save` when finished." +msgstr "" + +#: ../../content/applications/services/helpdesk.rst:137 +msgid "If a ticket has no tag set, the ticket remains unassigned." +msgstr "" + +#: ../../content/applications/services/helpdesk.rst:140 msgid ":ref:`Manage users `" msgstr "" -#: ../../content/applications/services/helpdesk.rst:125 +#: ../../content/applications/services/helpdesk.rst:141 msgid ":doc:`Access rights <../general/users/access_rights>`" msgstr "" -#: ../../content/applications/services/helpdesk.rst:128 +#: ../../content/applications/services/helpdesk.rst:144 msgid "Merge tickets" msgstr "" -#: ../../content/applications/services/helpdesk.rst:130 +#: ../../content/applications/services/helpdesk.rst:146 msgid "If duplicate tickets are found in **Helpdesk**, they can be combined into a single ticket using the *merge* feature." msgstr "" -#: ../../content/applications/services/helpdesk.rst:134 +#: ../../content/applications/services/helpdesk.rst:150 msgid "The *merge* feature is **only** accessible if the :doc:`Data Cleaning <../productivity/data_cleaning>` application is installed on the database." msgstr "" -#: ../../content/applications/services/helpdesk.rst:137 +#: ../../content/applications/services/helpdesk.rst:153 msgid "To merge two or more tickets, navigate to :menuselection:`Helpdesk app --> Tickets --> All Tickets`. Identify the tickets to be merged, and tick the checkbox at the far-left of each ticket to select them. Then, click the :icon:`fa-cog` :guilabel:`Actions` icon, and select :guilabel:`Merge` from the drop-down menu. Doing so opens a new page where the selected tickets are listed with their :guilabel:`Similarity` rating. From here, click either :ref:`Merge ` to combine the tickets, or :guilabel:`DISCARD`." msgstr "" -#: ../../content/applications/services/helpdesk.rst:145 +#: ../../content/applications/services/helpdesk.rst:161 msgid "Convert tickets to opportunities" msgstr "" -#: ../../content/applications/services/helpdesk.rst:147 +#: ../../content/applications/services/helpdesk.rst:163 msgid "Some tickets may be better handled by the sales team, rather than the support team. In this case, tickets can be converted to *opportunities* and assigned to a sales team for follow-up." msgstr "" -#: ../../content/applications/services/helpdesk.rst:151 +#: ../../content/applications/services/helpdesk.rst:167 msgid "This feature is **only** available if the :doc:`CRM <../sales/crm>` app is installed." msgstr "" -#: ../../content/applications/services/helpdesk.rst:153 +#: ../../content/applications/services/helpdesk.rst:169 msgid "To convert a ticket to an opportunity, first navigate to a ticket, either from a team's pipeline, or by navigating to :menuselection:`Helpdesk app --> Tickets` and clicking a ticket to open it." msgstr "" -#: ../../content/applications/services/helpdesk.rst:156 +#: ../../content/applications/services/helpdesk.rst:172 msgid "At the top of the ticket, click the :guilabel:`Convert to Opportunity` button." msgstr "" -#: ../../content/applications/services/helpdesk.rst:159 +#: ../../content/applications/services/helpdesk.rst:175 msgid "If :doc:`leads <../sales/crm/acquire_leads/convert>` are enabled on the **CRM** app, tickets are converted to *leads*, and the button reads :guilabel:`Convert to Lead`." msgstr "" -#: ../../content/applications/services/helpdesk.rst:162 +#: ../../content/applications/services/helpdesk.rst:178 msgid "This opens the :guilabel:`Convert to Opportunity` pop-up. Fill in or select the following information on the pop-up:" msgstr "" -#: ../../content/applications/services/helpdesk.rst:165 +#: ../../content/applications/services/helpdesk.rst:181 msgid ":guilabel:`Customer`: Select whether to :guilabel:`Create a new customer`, :guilabel:`Link to an existing customer`, or :guilabel:`Do not link to a customer`. If :guilabel:`Link to a customer` is chosen, select the appropriate customer name from the :guilabel:`Customer` drop-down." msgstr "" -#: ../../content/applications/services/helpdesk.rst:169 +#: ../../content/applications/services/helpdesk.rst:185 msgid ":guilabel:`Sales Team`: Specify which :guilabel:`Sales Team` and :guilabel:`Salesperson` this created opportunity is assigned to." msgstr "" @@ -505,15 +525,15 @@ msgstr "" msgid "The convert to opportunity pop-up window." msgstr "" -#: ../../content/applications/services/helpdesk.rst:175 +#: ../../content/applications/services/helpdesk.rst:191 msgid "After completing the form, click :guilabel:`Convert to Opportunity`. Doing so creates a new opportunity in the **CRM** app. The original ticket is linked in the chatter of the new opportunity for traceability." msgstr "" -#: ../../content/applications/services/helpdesk.rst:180 +#: ../../content/applications/services/helpdesk.rst:196 msgid "After the ticket is converted to an opportunity, the ticket is archived." msgstr "" -#: ../../content/applications/services/helpdesk.rst:183 +#: ../../content/applications/services/helpdesk.rst:199 msgid "`Odoo Tutorials: Helpdesk `_" msgstr "" diff --git a/locale/sources/studio.pot b/locale/sources/studio.pot index d60cbe7fca..ccfbdc2330 100644 --- a/locale/sources/studio.pot +++ b/locale/sources/studio.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,7 @@ msgid "Studio" msgstr "" #: ../../content/applications/studio.rst:18 -msgid "**Odoo Studio** is a toolbox used to customize Odoo without coding knowledge. For example, in any app, add or modify:" +msgid "**Studio** is a toolbox used to customize Odoo without coding knowledge. For example, in any app, add or modify:" msgstr "" #: ../../content/applications/studio.rst:21 @@ -61,30 +61,14 @@ msgid "Learn how to :doc:`build an app from scratch msgstr "" #: ../../content/applications/studio.rst:34 -msgid "To access **Studio**, navigate to the app and model you want to modify, then click the :icon:`oi-studio` (:guilabel:`Toggle Studio`) icon. Alternatively, with any app open, click the :icon:`oi-studio` (:guilabel:`Toggle Studio`) icon and navigate to the relevant app and model." +msgid "To access Studio, navigate to the app and model you want to modify, then click the :icon:`oi-studio` (:guilabel:`Toggle Studio`) icon, or vice versa." msgstr "" -#: ../../content/applications/studio.rst:38 +#: ../../content/applications/studio.rst:37 msgid "To close **Studio**, click :guilabel:`Close` in the upper-right corner." msgstr "" -#: ../../content/applications/studio.rst:41 -msgid "Installing **Studio** in an Odoo database on the *Standard* pricing plan automatically triggers an upsell to the *Custom* pricing plan." -msgstr "" - -#: ../../content/applications/studio.rst:44 -msgid "**For yearly or multi-year contracts**: An upsell order is created with a 30-day limit." -msgstr "" - -#: ../../content/applications/studio.rst:45 -msgid "**For monthly contracts**: The subscription automatically switches to the *Custom* plan and the new rate is applied when the next bill is generated." -msgstr "" - -#: ../../content/applications/studio.rst:48 -msgid "For more information, refer to `Odoo's pricing page `_ or contact your account manager." -msgstr "" - -#: ../../content/applications/studio.rst:52 +#: ../../content/applications/studio.rst:40 msgid "`Odoo Tutorials: Studio `_" msgstr "" @@ -225,340 +209,262 @@ msgid "Automation rules" msgstr "" #: ../../content/applications/studio/automated_actions.rst:7 -msgid "Automation rules allow the execution of one or more predefined actions in response to a specific trigger, e.g., create an activity when a field is set to a specific value, or archive a record 7 days after its last update." +msgid "Automation rules are used to trigger automatic changes based on user actions (e.g., apply a modification when a field is set to a specific value), email events, time conditions (e.g., archive a record 7 days after its last update), or external events." msgstr "" #: ../../content/applications/studio/automated_actions.rst:11 -msgid "When creating an automation rule, :ref:`domain filters ` allow you to add conditions that must be met for the automation rule to run, e.g., the opportunity must be assigned to a specific salesperson, or the state of the record must not be :guilabel:`Draft`." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:16 -msgid "To create an automation rule with **Odoo Studio**, proceed as follows:" +msgid "To create an automation rule with Studio, proceed as follows:" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:18 +#: ../../content/applications/studio/automated_actions.rst:13 msgid ":ref:`Open Studio ` and click :guilabel:`Automations`, then :guilabel:`New`." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:19 -msgid "Give the automation rule a clear, meaningful name that identifies its purpose." +#: ../../content/applications/studio/automated_actions.rst:14 +msgid "Select the :ref:`studio/automated-actions/trigger` and, if necessary, fill in the fields that appear on the screen based on the chosen trigger." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:20 -msgid "Select the :ref:`trigger ` and, if necessary, fill in the fields that appear on the screen based on the chosen trigger." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:22 +#: ../../content/applications/studio/automated_actions.rst:16 msgid "Click :guilabel:`Add an action`, then select the :guilabel:`Type` of :ref:`action ` and fill in the fields that appear on the screen based on your selected action." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:25 +#: ../../content/applications/studio/automated_actions.rst:19 msgid "Click :guilabel:`Save & Close` or :guilabel:`Save & New`." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:29 -msgid "To ensure follow-up on less satisfied clients, this automation rule creates an activity 3 months after a sales order is created for clients with a satisfaction percentage lower than 30%." -msgstr "" - #: ../../content/applications/studio/automated_actions.rst:0 -msgid "Example of an automation rule on the Subscription model" +msgid "Example of an automated action on the Subscription model" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:37 -msgid "Use the :guilabel:`Notes` tab to document the purpose and functioning of automation rules. This makes rules easier to maintain and facilitates collaboration between users." +#: ../../content/applications/studio/automated_actions.rst:27 +msgid "To modify the :doc:`model ` of the automation rule, switch models before clicking :guilabel:`Automations` in Studio, or :ref:`activate the developer mode `, create or edit an automation rule, and select the :guilabel:`Model` in the :guilabel:`Automation Rules` form." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:39 -msgid "To modify the :doc:`model ` targeted by the automation rule, switch models before clicking :guilabel:`Automations` in Studio, or :ref:`activate developer mode `, create or edit an automation rule, and select the :guilabel:`Model` in the :guilabel:`Automation Rules` form." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:43 -msgid "Automation rules can be created from any kanban stage by clicking the :icon:`fa-cog` :guilabel:`(Settings)` icon that appears when hovering over the kanban stage name, then selecting :guilabel:`Automations`. In this case, the :guilabel:`Trigger` is set to :guilabel:`Stage is set to` by default, but it can be changed if necessary." +#: ../../content/applications/studio/automated_actions.rst:31 +msgid "You can also create automation rules from any kanban stage by clicking the gear icon (:guilabel:`⚙` ) next to the kanban stage name, then selecting :guilabel:`Automations`. In this case, the :guilabel:`Trigger` is set to :guilabel:`Stage is set to` by default, but you can change it if necessary." msgstr "" #: ../../content/applications/studio/automated_actions.rst:0 msgid "Create automations from a kanban stage" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:54 +#: ../../content/applications/studio/automated_actions.rst:42 msgid "Trigger" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:56 -msgid "The :guilabel:`Trigger` is used to define what kind of event needs to occur for the automation rule to run. The available triggers depend on the :doc:`model `. Five trigger categories are available overall:" +#: ../../content/applications/studio/automated_actions.rst:44 +msgid "The :guilabel:`Trigger` is used to define when the automation rule should be applied. The available triggers depend on the :doc:`model `. Five trigger categories are available overall:" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:60 -msgid ":ref:`studio/automated-actions/trigger-values-updated`" -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:61 -msgid ":ref:`studio/automated-actions/trigger-email-events`" +#: ../../content/applications/studio/automated_actions.rst:48 +msgid ":ref:`studio/automated-actions/trigger/values-updated`" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:62 -msgid ":ref:`studio/automated-actions/trigger-timing-conditions`" +#: ../../content/applications/studio/automated_actions.rst:49 +msgid ":ref:`studio/automated-actions/trigger/email-events`" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:63 -msgid ":ref:`studio/automated-actions/trigger-custom`" +#: ../../content/applications/studio/automated_actions.rst:50 +msgid ":ref:`studio/automated-actions/trigger/values-timing-conditions`" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:64 -msgid ":ref:`studio/automated-actions/trigger-external`" +#: ../../content/applications/studio/automated_actions.rst:51 +msgid ":ref:`studio/automated-actions/trigger/custom`" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:69 -msgid "Adding conditions" +#: ../../content/applications/studio/automated_actions.rst:52 +msgid ":ref:`studio/automated-actions/trigger/external`" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:71 -msgid "Domain filters allow you to determine the records an automation rule should target or exclude. Efficient filtering enhances overall performance as it avoids unnecessary processing on records that are not impacted by the rule." +#: ../../content/applications/studio/automated_actions.rst:55 +msgid "You can also define a :guilabel:`Before Update Domain` to specify the conditions that must be met *before* the automation rule is triggered. In contrast, the conditions defined using the :ref:`Extra Conditions ` and :ref:`Apply on ` filters are checked *during* the execution of the automation rule." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:76 -msgid ":ref:`Activate developer mode ` before creating an automation rule to have the most flexibility in adding domain filters." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:79 -msgid "Depending on the trigger chosen, it is possible to define one or more conditions a record must meet *before* and/or *after* a trigger occurs." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:82 -msgid "The :guilabel:`Before Update Domain` defines the conditions a record must meet *before* the trigger event occurs, e.g., the record must have `Type = Customer Invoice` and `Status = Posted`." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:85 -msgid "With :ref:`developer mode activated `, click :guilabel:`Edit Domain`, if available, then :guilabel:`New Rule`." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:88 -msgid ":guilabel:`Extra Conditions`, or in some cases :guilabel:`Apply on` filters, define the conditions a record must meet *after* the trigger event occurs, e.g., the customer invoice must have `Payment Status = Partially Paid`." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:92 -msgid "With :ref:`developer mode activated ` if needed, click :guilabel:`Add conditions` or :guilabel:`Edit Domain`, as relevant, then :guilabel:`New Rule`." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:95 -msgid "When a :ref:`trigger ` occurs, e.g., the payment status of a posted customer invoice is updated, the automation rule checks the defined conditions and only executes the :ref:`action ` if the record matches those conditions." +#: ../../content/applications/studio/automated_actions.rst:61 +msgid "To define a :guilabel:`Before Update Domain`, :ref:`activate the developer mode `, create or edit an automation rule, click :guilabel:`Edit Domain`, then click :guilabel:`New Rule`." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:100 -msgid "If the automated action should be executed when an email address is set for the first time (in contrast to modifying an email address) on an existing contact that is an individual rather than a company, use `Email is not set` and `Is a Company is not set` as the :guilabel:`Before Update Domain` and `Email is set` as the :guilabel:`Apply on` domain." +#: ../../content/applications/studio/automated_actions.rst:65 +msgid "For example, if you want the automated action to happen when an email address is set on a contact that did not have an address before (in contrast to modifying their existing address), define the :guilabel:`Before Update Domain` to :guilabel:`Email is not set`, and the :guilabel:`Apply on` domain to :guilabel:`Email is set`." msgstr "" #: ../../content/applications/studio/automated_actions.rst:0 msgid "Example of a trigger with a Before Update Domain" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:109 -msgid "The :guilabel:`Before Update Domain` is not checked upon the creation of a record." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:114 +#: ../../content/applications/studio/automated_actions.rst:76 msgid "Values Updated" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:116 -msgid "Trigger automated actions when specific changes happen in the database. The triggers available in this category depend on the model and are based on common changes, such as adding a specific tag (e.g., to a task) or setting a field's value (e.g., setting the :guilabel:`User` field)." +#: ../../content/applications/studio/automated_actions.rst:78 +msgid "The triggers available in this category depend on the model and are based on common field changes, such as adding a specific tag (e.g., to a task) or setting the :guilabel:`User` field. Select the trigger, then select a value if required." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:120 -msgid "Select the trigger, then select a value if required." +#: ../../content/applications/studio/automated_actions.rst:-1 +msgid "Example of a Values Updated trigger" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:125 +#: ../../content/applications/studio/automated_actions.rst:88 msgid "Email Events" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:127 +#: ../../content/applications/studio/automated_actions.rst:90 msgid "Trigger automated actions upon receiving or sending emails." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:132 +#: ../../content/applications/studio/automated_actions.rst:95 msgid "Timing Conditions" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:134 -msgid "Trigger automated actions at a point in time relative to a date field or to the creation or update of a record. The following triggers are available:" +#: ../../content/applications/studio/automated_actions.rst:97 +msgid "Trigger automated actions based on a date field. The following triggers are available:" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:137 -msgid ":guilabel:`Based on date field`: The action is triggered a defined period of time before or after the date of the selected date field." +#: ../../content/applications/studio/automated_actions.rst:99 +msgid ":guilabel:`Based on date field`: Select the field to be used next to the :guilabel:`Delay` field." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:139 -msgid ":guilabel:`After creation`: The action is triggered a defined period of time after a record is created and saved." +#: ../../content/applications/studio/automated_actions.rst:100 +msgid ":guilabel:`After creation`: The action is triggered when a record is created and saved." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:141 -msgid ":guilabel:`After last update`: The action is triggered a defined period of time after an existing record is edited and saved." +#: ../../content/applications/studio/automated_actions.rst:101 +msgid ":guilabel:`After last update`: The action is triggered when an existing record is edited and saved." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:144 +#: ../../content/applications/studio/automated_actions.rst:104 msgid "You can then define:" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:146 -msgid "a :guilabel:`Delay`: Specify the number of minutes, hours, days, or months. To have an action executed before the trigger date, specify a negative number. If you selected the :guilabel:`Based on date field` trigger, you must also select the date field to be used to determine the delay." +#: ../../content/applications/studio/automated_actions.rst:106 +msgid "a :guilabel:`Delay`: Specify the number of minutes, hours, days, or months. To trigger the action before the trigger date, specify a negative number. If you selected the :guilabel:`Based on date field` trigger, you must also select the date field to be used to determine the delay." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:151 -msgid "By default, the scheduler checks for time-triggered automation rules every 240 minutes, or 4 hours. This frequency is generally sufficient for delays such as 3 months after the order date or 7 days after the last update." +#: ../../content/applications/studio/automated_actions.rst:109 +msgid ":guilabel:`Extra Conditions`: Click :guilabel:`Add condition`, then specify the conditions to be met to trigger the automation rule. Click :guilabel:`New Rule` to add another condition." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:155 -msgid "For delays of less than the equivalent of 2400 minutes, or 40 hours, the system recalculates the frequency of this check to ensure that more granular delays, e.g., 1 hour before the event start date and time, or 30 minutes after creation, can be respected as closely as possible." +#: ../../content/applications/studio/automated_actions.rst:112 +msgid "The action is triggered when the delay is reached and the conditions are met." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:159 -msgid "An on-screen message indicates the possible delay after the scheduled triggering of the rule." +#: ../../content/applications/studio/automated_actions.rst:115 +msgid "If you want to send a reminder email 30 minutes before the start of a calendar event, select the :guilabel:`Start (Calendar Event)` under :guilabel:`Trigger Date` and set the :guilabel:`Delay` to **-30** :guilabel:`Minutes`." msgstr "" #: ../../content/applications/studio/automated_actions.rst:0 -msgid "Message about possible delay after scheduled execution" -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:164 -msgid "To view or manually edit the frequency of the scheduler, with :ref:`developer mode activated `, go to :menuselection:`Settings --> Technical --> Scheduled Actions` to see all scheduled actions for your database." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:168 -msgid "Enter `Automation` in the search bar, then, in the list of results, click :guilabel:`Automation Rules: check and execute`. If desired, update the value of the :guilabel:`Execute Every` field. Click :guilabel:`Run Manually` at any time to manually trigger this scheduled action." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:172 -msgid ":guilabel:`Extra Conditions`: Click :guilabel:`Add condition`, then specify the conditions to be met for the automation rule to run. Click :guilabel:`New Rule` to add another condition." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:175 -msgid "The action is executed when the delay is reached and the conditions are met." +msgid "Example of a Based on date field trigger" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:178 -msgid "To send a reminder email 30 minutes *before* the start of a calendar event, select :guilabel:`Start (Calendar Event)` as the date field for the :guilabel:`Trigger` and set the :guilabel:`Delay` to `-30` :guilabel:`Minutes`." +#: ../../content/applications/studio/automated_actions.rst:123 +msgid "By default, the scheduler checks for trigger dates every 4 hours, meaning lower granularity in time-based automations may not always be honored." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:0 -#: ../../content/applications/studio/automated_actions.rst:-1 -msgid "Example of a Based on date field trigger" -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:188 +#: ../../content/applications/studio/automated_actions.rst:129 msgid "Custom" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:190 +#: ../../content/applications/studio/automated_actions.rst:131 msgid "Trigger automated actions:" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:192 -msgid ":guilabel:`On save`: when a record is saved." +#: ../../content/applications/studio/automated_actions.rst:133 +msgid ":guilabel:`On save`: When the record is saved;" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:193 -msgid ":guilabel:`On deletion`: when a record is deleted." +#: ../../content/applications/studio/automated_actions.rst:134 +msgid ":guilabel:`On deletion`: When a record is deleted;" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:194 -msgid ":guilabel:`On UI change`: when a field's value is changed on the :ref:`Form view `, even before the record is saved." +#: ../../content/applications/studio/automated_actions.rst:135 +msgid ":guilabel:`On UI change`: When a field's value is changed on the :ref:`Form view `, even before saving the record." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:197 +#: ../../content/applications/studio/automated_actions.rst:138 msgid "For the :guilabel:`On save` and :guilabel:`On UI change` triggers, you **must** then select the field(s) to be used to trigger the automation rule in the :guilabel:`When updating` field." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:201 +#: ../../content/applications/studio/automated_actions.rst:142 msgid "If no field is selected in the :guilabel:`When updating` field, the automated action may be executed multiple times per record." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:204 +#: ../../content/applications/studio/automated_actions.rst:145 msgid "Optionally, you can also define additional conditions to be met to trigger the automation rule in the :guilabel:`Apply on` field." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:208 -msgid "To trigger an automated action *upon* the creation of a record, e.g., when a new contact is created, select the :ref:`On save ` trigger and use `ID is not set` as the :guilabel:`Before Update Domain` and `ID is set` as the :guilabel:`Apply on` domain. Make sure the correct field is selected in the :guilabel:`When updating` field." +#: ../../content/applications/studio/automated_actions.rst:149 +msgid "The :guilabel:`On UI change` trigger can only be used with the :ref:`studio/automated-actions/action/python-code` action and only works when a modification is made manually. The action is not executed if the field is changed through another automation rule." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:214 -msgid "When a new contact is saved, it is automatically assigned a database ID, thereby triggering the automation rule." +#: ../../content/applications/studio/automated_actions.rst:157 +msgid "External" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:0 -msgid "Example of a triggering an action upon creation of a record" +#: ../../content/applications/studio/automated_actions.rst:159 +msgid "Trigger automated actions based on an external event using a webhook. A webhook is a method of communication between two systems where the source system sends an HTTP(S) request to a destination system based on a specific event. It usually includes a data payload containing information about the event that occurred." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:221 -msgid "The :guilabel:`On UI change` trigger can only be used with the :ref:`Execute Code ` action and only works when a modification is made manually. The action is not executed if the field is changed through another automation rule." +#: ../../content/applications/studio/automated_actions.rst:164 +msgid "To configure the :guilabel:`On webhook` trigger, copy the :guilabel:`URL` generated by Odoo into the destination system (i.e., the system receiving the request). Then, in the :guilabel:`Target Record` field, enter the code to run to define the record(s) to be updated using the automation rule." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:228 -msgid "External" +#: ../../content/applications/studio/automated_actions.rst:169 +msgid "The URL must be treated as **confidential**; sharing it online or without caution could potentially expose your system to malicious parties. Click the :guilabel:`Rotate Secret` button to change the URL's secret if necessary." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:230 -msgid "Trigger automated actions based on a specific event in an external system or application using a :doc:`webhook `." +#: ../../content/applications/studio/automated_actions.rst:174 +msgid "The code defined by default in the :guilabel:`Target Record` field works for webhooks coming from another Odoo database. It is used to determine the record(s) to be updated using the information in the payload." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:233 -msgid "After the webhook is configured in Odoo, where the webhook's URL is generated and the target record defined, it needs to be implemented in the external system." +#: ../../content/applications/studio/automated_actions.rst:177 +msgid "If you wish to use the webhook's content for a purpose other than to find the record(s) (e.g., *create* a record), your only option is to use an :ref:`studio/automated-actions/action/python-code` action. In this case, the :guilabel:`Target record` field must contain any valid code, but its result doesn't have any effect on the automated action itself." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:237 -#: ../../content/applications/studio/automated_actions/webhooks.rst:6 -msgid "It is *highly recommended* to consult with a developer, solution architect, or another technical role when deciding to use webhooks and throughout the implementation process. If not properly configured, webhooks may disrupt the Odoo database and can take time to revert." +#: ../../content/applications/studio/automated_actions.rst:181 +msgid "The webhook content is available in the server action context as a `payload` variable (i.e., a dictionary that contains the GET parameters or POST JSON body of the incoming request)." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:245 -msgid "It is also possible to set up an automated action that :ref:`sends data to a external system's webhook ` when an event occurs in your Odoo database." +#: ../../content/applications/studio/automated_actions.rst:184 +msgid "You can also choose to :guilabel:`Log Calls` to record the payloads received, e.g., to make sure the data sent by the source system matches the expected format and content. This also helps identify and diagnose any issues that may arise. To access the logs, click the :guilabel:`Logs` smart button at the top of the :guilabel:`Automation rules` form." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:249 -msgid ":doc:`Webhook documentation `" +#: ../../content/applications/studio/automated_actions.rst:190 +msgid ":doc:`automated_actions/webhooks`" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:254 +#: ../../content/applications/studio/automated_actions.rst:195 msgid "Actions" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:256 -msgid "Once you have defined the automation rule's :ref:`trigger `, click :guilabel:`Add an action` in the :guilabel:`Actions To Do` tab to define the action to be executed." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:260 -msgid "You can define multiple actions for the same automation rule. By default, actions are executed in the order in which they were defined." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:263 -msgid "This means, for example, that if you define an :guilabel:`Update record` action and then a :guilabel:`Send email` action where the email references the field that was updated, the email uses the updated values. However, if the :guilabel:`Send email` action is defined before the :guilabel:`Update record` action, the email uses the values set *before* the record is updated." +#: ../../content/applications/studio/automated_actions.rst:197 +msgid "Once you have defined the automation rule's :ref:`trigger `, click :guilabel:`Add an action` to define the action to be executed." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:268 -msgid "To change the order of defined actions, click the :icon:`oi-draggable` :guilabel:`(drag handle)` icon beside an action and drag it to the desired position." +#: ../../content/applications/studio/automated_actions.rst:201 +msgid "You can define multiple actions for the same trigger/automation rule. The actions are executed in the order they are defined. This means, for example, that if you define an :guilabel:`Update record` action and then a :guilabel:`Send email` action, the email uses the updated values. However, if the :guilabel:`Send email` action is defined before the :guilabel:`Update record` action, the email uses the values set *before* the update action is run." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:274 +#: ../../content/applications/studio/automated_actions.rst:211 msgid "Update Record" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:276 -msgid "This action updates one of the record's (related) fields. Click the :guilabel:`Update` field and, in the list that opens, select or search for the field to be updated. If needed, click the :icon:`oi-chevron-right` :guilabel:`(right arrow)` next to the field name to access the list of related fields." +#: ../../content/applications/studio/automated_actions.rst:213 +msgid "This action allows to update one of the record's (related) fields. Click the :guilabel:`Update` field and, in the list that opens, select or search for the field to be updated; click the right arrow next to the field name to access the list of related fields if needed." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:281 +#: ../../content/applications/studio/automated_actions.rst:217 msgid "If you selected a :ref:`many2many field `, choose whether the field must be updated by :guilabel:`Adding`, :guilabel:`Removing`, or :guilabel:`Setting it to` the selected value or by :guilabel:`Clearing it`." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:286 -msgid "If you want the automated action to remove a tag from the customer record, set the :guilabel:`Update` field to :guilabel:`Customer > Tags`, select :guilabel:`by Removing`, then select the tag." +#: ../../content/applications/studio/automated_actions.rst:222 +msgid "If you want the automated action to remove a tag from the customer record, set the :guilabel:`Update` field to :guilabel:`Customer > Tags`, select :guilabel:`By Removing`, then select the tag." msgstr "" #: ../../content/applications/studio/automated_actions.rst:0 msgid "Example of an Update Record action" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:294 +#: ../../content/applications/studio/automated_actions.rst:230 msgid "Alternatively, you can also set a record's field dynamically using Python code. To do so, select :guilabel:`Compute` instead of :guilabel:`Update`, then enter the code to be used for computing the field's value. For example, if you want the automation rule to compute a custom :ref:`datetime field ` when a task's priority is set to `High` (by starring the task), you can define the trigger :guilabel:`Priority is set to` to `High` and define the :guilabel:`Update Record` action as follows:" msgstr "" @@ -566,23 +472,23 @@ msgstr "" msgid "Compute a custom datetime field using a Python expression" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:307 +#: ../../content/applications/studio/automated_actions.rst:241 msgid "Create Activity" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:309 +#: ../../content/applications/studio/automated_actions.rst:243 msgid "This action is used to schedule a new activity linked to the record. Select an :guilabel:`Activity Type`, enter a :guilabel:`Title` and description, then specify when you want the activity to be scheduled in the :guilabel:`Due Date In` field, and select a :guilabel:`User type`:" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:313 -msgid "To always assign the activity to the same user, select :guilabel:`Specific User`, then add the user in the :guilabel:`Responsible` field;" +#: ../../content/applications/studio/automated_actions.rst:247 +msgid "To always assign the activity to the same user, select :guilabel:`Specific User` and add the user in the :guilabel:`Responsible` field;" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:315 +#: ../../content/applications/studio/automated_actions.rst:249 msgid "To target a user linked to the record dynamically, select :guilabel:`Dynamic User (based on record)` and change the :guilabel:`User Field` if necessary." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:319 +#: ../../content/applications/studio/automated_actions.rst:253 msgid "After a lead is turned into an opportunity, you want the automated action to set up a call for the user responsible for the lead. To do so, set the :guilabel:`Activity Type` to :guilabel:`Call` and the :guilabel:`User Type` to :guilabel:`Dynamic User (based on record)`." msgstr "" @@ -590,163 +496,151 @@ msgstr "" msgid "Example of a Create Activity action" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:329 +#: ../../content/applications/studio/automated_actions.rst:261 msgid "Send Email and Send SMS" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:331 +#: ../../content/applications/studio/automated_actions.rst:263 msgid "These actions are used to send an email or a text message to a contact linked to a specific record. To do so, select or create an :guilabel:`Email Template` or an :guilabel:`SMS Template`, then, in the :guilabel:`Send Email As` or :guilabel:`Send SMS As` field, choose how you want to send the email or text message:" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:336 +#: ../../content/applications/studio/automated_actions.rst:268 msgid ":guilabel:`Email`: to send the message as an email to the recipients of the :guilabel:`Email Template`." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:338 +#: ../../content/applications/studio/automated_actions.rst:270 msgid ":guilabel:`Message`: to post the message on the record and notify the record's followers." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:339 +#: ../../content/applications/studio/automated_actions.rst:271 msgid ":guilabel:`Note`: to send the message as an internal note visible to internal users in the chatter." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:341 +#: ../../content/applications/studio/automated_actions.rst:273 msgid ":guilabel:`SMS (without note)`: to send the message as a text message to the recipients of the :guilabel:`SMS template`." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:343 +#: ../../content/applications/studio/automated_actions.rst:275 msgid ":guilabel:`SMS (with note)`: to send the message as a text message to the recipients of the :guilabel:`SMS template` and post it as an internal note in the chatter." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:345 +#: ../../content/applications/studio/automated_actions.rst:277 msgid ":guilabel:`Note only`: to only post the message as an internal note in the chatter." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:350 +#: ../../content/applications/studio/automated_actions.rst:282 msgid "Send WhatsApp" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:353 +#: ../../content/applications/studio/automated_actions.rst:285 msgid "To automate the sending of WhatsApp messages, one or more :ref:`WhatsApp templates ` must be created." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:356 -msgid "This action is used to send a WhatsApp message to a contact linked to a specific record. To do so, select the appropriate :guilabel:`WhatsApp Template` from the dropdown menu." +#: ../../content/applications/studio/automated_actions.rst:288 +msgid "This action is used to send a WhatsApp message to a contact linked to a specific record. To do so, select the appropriate :guilabel:`WhatsApp Template` from the drop-down menu." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:362 +#: ../../content/applications/studio/automated_actions.rst:294 msgid "Add Followers and Remove Followers" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:364 -msgid "This action is used to subscribe/unsubscribe existing contacts to/from the record." +#: ../../content/applications/studio/automated_actions.rst:296 +msgid "Use these actions to (un)subscribe existing contacts to/from the record." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:369 +#: ../../content/applications/studio/automated_actions.rst:299 msgid "Create Record" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:371 +#: ../../content/applications/studio/automated_actions.rst:301 msgid "This action is used to create a new record on any model." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:373 +#: ../../content/applications/studio/automated_actions.rst:303 msgid "Select the required model in the :guilabel:`Record to Create` field; it contains the current model by default. Specify a :guilabel:`Name` for the record, and then, if you want to create the record on another model, select a field in the :guilabel:`Link Field` field to link the record that triggered the creation of the new record." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:379 +#: ../../content/applications/studio/automated_actions.rst:309 msgid "The dropdown list related to the :guilabel:`Link Field` field only contains :ref:`one2many fields ` existing on the current model that are linked to a :ref:`many2one field ` on the target model." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:384 -msgid "You can create another automation rule with :ref:`studio/automated-actions/action-update-record` actions to update the fields of the new record if necessary. For example, you can use a :guilabel:`Create Record` action to create a new project task and then assign it to a specific user using an :guilabel:`Update Record` action." +#: ../../content/applications/studio/automated_actions.rst:314 +msgid "You can create another automation rule with :ref:`studio/automated-actions/action/update-record` actions to update the fields of the new record if necessary. For example, you can use a :guilabel:`Create Record` action to create a new project task and then assign it to a specific user using an :guilabel:`Update Record` action." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:392 +#: ../../content/applications/studio/automated_actions.rst:322 msgid "Execute Code" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:395 -msgid "For automation rules that require the execution of :ref:`custom code `, note that maintenance of custom code is not included in the *Standard* or *Custom* pricing plans and incurs :ref:`additional fees `." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:400 +#: ../../content/applications/studio/automated_actions.rst:324 msgid "This action is used to execute Python code. You can write your code into the :guilabel:`Code` tab using the following variables:" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:403 +#: ../../content/applications/studio/automated_actions.rst:327 msgid "`env`: environment on which the action is triggered" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:404 +#: ../../content/applications/studio/automated_actions.rst:328 msgid "`model`: model of the record on which the action is triggered; is a void recordset" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:405 +#: ../../content/applications/studio/automated_actions.rst:329 msgid "`record`: record on which the action is triggered; may be void" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:406 +#: ../../content/applications/studio/automated_actions.rst:330 msgid "`records`: recordset of all records on which the action is triggered in multi-mode; this may be left empty" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:408 +#: ../../content/applications/studio/automated_actions.rst:332 msgid "`time`, `datetime`, `dateutil`, `timezone`: useful Python libraries" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:409 +#: ../../content/applications/studio/automated_actions.rst:333 msgid "`float_compare`: utility function to compare floats based on specific precision" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:410 +#: ../../content/applications/studio/automated_actions.rst:334 msgid "`log(message, level='info')`: logging function to record debug information in ir.logging table" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:412 +#: ../../content/applications/studio/automated_actions.rst:336 msgid "`_logger.info(message)`: logger to emit messages in server logs" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:413 +#: ../../content/applications/studio/automated_actions.rst:337 msgid "`UserError`: exception class for raising user-facing warning messages" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:414 +#: ../../content/applications/studio/automated_actions.rst:338 msgid "`Command`: x2many commands namespace" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:415 +#: ../../content/applications/studio/automated_actions.rst:339 msgid "`action = {...}`: to return an action" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:418 +#: ../../content/applications/studio/automated_actions.rst:342 msgid "The available variables are described both in the :guilabel:`Code` and :guilabel:`Help` tabs." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:421 -msgid ":doc:`Odoo's ORM capabilities <../../developer/reference/backend/orm>`" -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:426 +#: ../../content/applications/studio/automated_actions.rst:347 msgid "Send Webhook Notification" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:428 -msgid "This action is used to send a `POST` API request with the values of the selected :guilabel:`Fields` to the webhook URL specified in the :guilabel:`URL` field." +#: ../../content/applications/studio/automated_actions.rst:349 +msgid "This action allows to send a POST request with the values of the :guilabel:`Fields` to the URL specified in the :guilabel:`URL` field." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:431 +#: ../../content/applications/studio/automated_actions.rst:352 msgid "The :guilabel:`Sample Payload` provides a preview of the data included in the request using a random record's data or dummy data if no record is available." msgstr "" -#: ../../content/applications/studio/automated_actions.rst:435 -msgid "It is also possible to set up an automated action that :doc:`uses a webhook to receive data from an external system ` when a predefined event occurs in that system." -msgstr "" - -#: ../../content/applications/studio/automated_actions.rst:441 +#: ../../content/applications/studio/automated_actions.rst:358 msgid "Execute Existing Actions" msgstr "" -#: ../../content/applications/studio/automated_actions.rst:443 +#: ../../content/applications/studio/automated_actions.rst:360 msgid "The action is used to trigger multiple actions (linked to the current model) at the same time. To do so, click on :guilabel:`Add a line`, then, in the :guilabel:`Add: Child Actions` pop-up, select an existing action or click :guilabel:`New` to create a new one." msgstr "" @@ -754,298 +648,237 @@ msgstr "" msgid "Webhooks" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:10 -msgid "Webhooks, which can be created in **Odoo Studio**, allow you to automate an action in your Odoo database when a specific event occurs in another, external system." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:13 -msgid "In practice, this works as follows: when the event occurs in the external system, a data file (the \"payload\") is sent to the Odoo webhook's URL via a `POST` API request, and a predefined action is performed in your Odoo database." +#: ../../content/applications/studio/automated_actions/webhooks.rst:6 +msgid "It is *highly recommended* to consult with a developer, solution architect, or another technical role when deciding to use webhooks and throughout the implementation process. If not properly configured, webhooks may disrupt the Odoo database and can take time to revert." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:17 -msgid "Unlike scheduled actions, which run at predefined intervals, or manual API requests, which need to be explicitly invoked, webhooks enable real-time, event-driven communication and automation. For example, you can set up a webhook to have your Odoo inventory data updated automatically when a sales order is confirmed in an external point-of-sale system." +#: ../../content/applications/studio/automated_actions/webhooks.rst:10 +msgid "Webhooks, which can be created in **Studio**, are automation rules triggered by external events via user-defined HTTP callbacks. When an external system sends data to an Odoo webhook's URL (the \"trigger\") with a data file (the \"payload\"), Odoo responds with a predefined action in the database." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:22 -msgid "Setting up a webhook in Odoo requires no coding when connecting two Odoo databases, but :ref:`testing a webhook ` requires an external tool. :ref:`Custom target records or actions ` may require programming skills." +#: ../../content/applications/studio/automated_actions/webhooks.rst:14 +msgid "Unlike scheduled actions or manual API calls, webhooks enable real-time communication and automation. For example, if a sales order is confirmed in an external POS system, a webhook can instantly update Odoo's inventory, ensuring system synchronization." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:28 -msgid "This article covers creating a webhook that *receives* data from an external source. However, it is also possible to create an automated action that :ref:`sends data to an external webhook ` when a change occurs in your Odoo database." +#: ../../content/applications/studio/automated_actions/webhooks.rst:19 +msgid "This article covers creating a webhook that *takes in* data from an external source. However, an automated action that :ref:`sends an API call to an external webhook ` can also be created." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:35 -msgid "Create a webhook in Odoo" +#: ../../content/applications/studio/automated_actions/webhooks.rst:24 +msgid "Create a webhook in Studio" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:38 -msgid "Before implementing a webhook in a live database, configure and test it using a :ref:`duplicate database ` to ensure the webhook performs as intended." +#: ../../content/applications/studio/automated_actions/webhooks.rst:26 +msgid "Webhooks are configured in **Studio**, and their setup is split between their :ref:`trigger ` and their :ref:`actions `." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:42 -msgid ":ref:`Activating developer mode ` before creating up a webhook gives greater flexibility in selecting the :doc:`model <../models_modules_apps>` the automation rule targets. It also allows you to find the technical name of the model and fields, which may be needed to configure the payload." +#: ../../content/applications/studio/automated_actions/webhooks.rst:30 +msgid "Setting up a webhook in Odoo requires no coding when connecting Odoo databases, but testing requires an external tool like `Postman `_. :ref:`Custom target records or actions ` may require programming skills." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:47 -msgid "To find a model's technical name, with developer mode activated, hover over the model name and then click :icon:`fa-arrow-right` :guilabel:`(Internal link)`. The technical name can be found in the :guilabel:`Model` field. For example, a sales order webhook uses the *Sales Order* model, but the technical name `sale.order` is used in the payload." +#: ../../content/applications/studio/automated_actions/webhooks.rst:33 +msgid ":ref:`Activate developer mode ` to modify the model targeted by the webhook (e.g., sales orders or contact information) and to find the model's technical name (which may be required for proper payload configuration)." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:52 -msgid "To create a webhook in **Studio**, proceed as follows:" +#: ../../content/applications/studio/automated_actions/webhooks.rst:40 +#: ../../content/applications/studio/automated_actions/webhooks.rst:127 +#: ../../content/applications/studio/automated_actions/webhooks.rst:208 +msgid "Set the webhook's trigger" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:54 -msgid ":ref:`Open Studio ` and click :guilabel:`Webhooks`, then :guilabel:`New`." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:55 -msgid "Give the webhook a clear, meaningful name that identifies its purpose." +#: ../../content/applications/studio/automated_actions/webhooks.rst:42 +msgid "To create a webhook with **Studio**, :ref:`open Studio `, click :guilabel:`Webhooks`, then :guilabel:`New`. From here, name the webhook, modify the webhook's model (the kind of database entry to be targeted) if needed, and toggle whether calls made to the webhook URL should be logged (which would track the webhook's call history for troubleshooting)." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:56 -msgid "If needed, and provided developer mode is activated, select the appropriate :guilabel:`Model` from the dropdown. If developer mode is not activated, the automation rule targets the current model by default." +#: ../../content/applications/studio/automated_actions/webhooks.rst:47 +msgid "The webhook's URL is automatically generated. This is the URL that should be used for testing the webhook and connecting it to the external system that will send updates to the database." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:60 -msgid "The webhook's URL is automatically generated, but can be changed if needed by clicking :guilabel:`Rotate Secret`. This is the URL that should be used when implementing the webhook in the external system that will send updates to the database." +#: ../../content/applications/studio/automated_actions/webhooks.rst:51 +msgid "The webhook's URL is **confidential** and should be treated with care. Sharing it online or without caution can provide unintended access to the Odoo database. Click :guilabel:`Rotate Secret` to change the URL if needed." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:65 -msgid "The URL is **confidential** and should be treated with care. Sharing it online or without caution can provide unintended access to the Odoo database. If the URL is updated after the initial implementation, make sure to update it in the external system." +#: ../../content/applications/studio/automated_actions/webhooks.rst:55 +msgid "Finally, if the system sending the webhook is not Odoo, adjust the :guilabel:`Target Record` actions to look for the JSON record that is included in the API call's payload when the call is made to the webhook's URL. If the system sending the webhook is an Odoo database, then make sure that the `id` and `model` appear in the payload." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:69 -msgid "If desired, enable :guilabel:`Log Calls` to track the history of API requests made to the webhook's URL, e.g., for troubleshooting purposes." +#: ../../content/applications/studio/automated_actions/webhooks.rst:61 +msgid "Although the :guilabel:`Model` is set in Odoo, it is the model's technical name that must be included in the payload. Hover over the model name, then click the :icon:`fa-arrow-right` :guilabel:`(Internal link)` icon to find this technical name in the :guilabel:`Model` field. For example, a sales order webhook uses the *Sales Order* model, but the technical name `sale.order` is used in the payload." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:72 -msgid "If the system sending the webhook is not Odoo, adjust the :guilabel:`Target Record` code to look for the JSON record included in the payload when the API request is made to the webhook's URL. If the system sending the webhook is an Odoo database, ensure that the `id` and `model` appear in the payload." +#: ../../content/applications/studio/automated_actions/webhooks.rst:68 +msgid "When creating a record in the Odoo database, the target record's default format should not be used. Instead, use `model.browse(i)` or `model.search(i)`." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:77 -msgid "If the webhook is used to create records in the Odoo database, use `model.browse(i)` or `model.search(i)` instead of the default :guilabel:`Target Record` format." +#: ../../content/applications/studio/automated_actions/webhooks.rst:74 +#: ../../content/applications/studio/automated_actions/webhooks.rst:149 +#: ../../content/applications/studio/automated_actions/webhooks.rst:220 +msgid "Set the webhook's action" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:80 -msgid "Click :guilabel:`Add an action` in the :guilabel:`Actions To Do` tab to define the :ref:`actions ` to be executed." +#: ../../content/applications/studio/automated_actions/webhooks.rst:76 +msgid "To set a webhook's action while configuring a webhook, click :guilabel:`Add an action` under the :guilabel:`Actions To Do` tab. Click the action's :guilabel:`Type` and set the fields as needed." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:82 -msgid "Before implementing the webhook in the external system, :ref:`test ` it to ensure it works as intended." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:86 -msgid "Webhooks can also be created via the :guilabel:`Automations` menu in **Studio** by selecting the trigger :guilabel:`On webhook`." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:88 -msgid "To access the history of API requests if :guilabel:`Log Calls` has been enabled, click the :guilabel:`Logs` smart button at the top of the :guilabel:`Automation rules` form." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:90 -msgid "If the purpose of the webhook is anything other than to update an existing record, e.g., to create a new record, the :guilabel:`Execute Code` action must be chosen." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:96 -msgid "Test a webhook" +#: ../../content/applications/studio/automated_actions/webhooks.rst:164 +#: ../../content/applications/studio/automated_actions/webhooks.rst:254 +msgid "Test the webhook" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:98 -msgid "Testing a webhook requires a test payload and an external tool or system, like `Postman `_, to send the payload via a `POST` API request. This section presents the steps to test a webhook in Postman." +#: ../../content/applications/studio/automated_actions/webhooks.rst:85 +msgid "Testing the webhook requires the webhook to be set up, a test payload to send to the webhook, and an external tool or system to send the payload through a `POST` API request. Consider using a tool like `Postman `_ so less technical skills are required." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:103 -msgid "See the :ref:`webhook use cases section ` for step-by-step explanations of how to test webhooks using test payloads." +#: ../../content/applications/studio/automated_actions/webhooks.rst:89 +msgid "If a message saying `200 OK` or `status: ok` gets returned during testing, then the webhook is functioning properly on Odoo's side. From here, implementation can begin with the other tool to automatically send those webhook calls into Odoo using the webhook's URL." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:105 -msgid "To get specific help with testing a webhook with Postman, contact their support team." +#: ../../content/applications/studio/automated_actions/webhooks.rst:93 +msgid "If any other responses are returned, the number sent in the response helps to identify the problem. For example, a `500 Internal Server Error` means that Odoo could not interpret the call properly. If this gets returned, ensure the fields found in the JSON file are properly mapped in the webhook's configuration and in the system sending the test call. Turning on call logging in the webhook's configuration provides error logs if the webhook is not functioning as intended." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:107 -msgid "In Postman, create a new HTTP request and set its method to :guilabel:`POST`." +#: ../../content/applications/studio/automated_actions/webhooks.rst:100 +msgid "Implement the webhook" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:108 -msgid "Copy the webhook's URL from your Odoo database using the :icon:`fa-link` :guilabel:`(link)` icon and paste it into the URL field in Postman." +#: ../../content/applications/studio/automated_actions/webhooks.rst:102 +msgid "Once the webhook is fully configured, begin connecting it to the system that sends data to the Odoo database through this webhook. Make sure that the API calls are sent to the webhook's URL when setting that system up." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:110 -#: ../../content/applications/studio/automated_actions/webhooks.rst:192 -#: ../../content/applications/studio/automated_actions/webhooks.rst:267 -msgid "Click the :guilabel:`Body` tab and select :guilabel:`raw`." +#: ../../content/applications/studio/automated_actions/webhooks.rst:109 +msgid "Webhook use cases" msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:111 -msgid "Set the file type to :guilabel:`JSON`, then copy the code from the test payload and paste it into the code editor." +msgid "Below are two examples of how to use webhooks in Odoo. These webhooks require external tools (which are listed with the example)." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:113 -#: ../../content/applications/studio/automated_actions/webhooks.rst:206 -#: ../../content/applications/studio/automated_actions/webhooks.rst:281 -msgid "Click :guilabel:`Send`." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:117 -msgid "In the :guilabel:`Response` viewer at the bottom of the screen in Postman, details, including a HTTP response code, indicate whether or not the webhook is functioning correctly." +#: ../../content/applications/studio/automated_actions/webhooks.rst:115 +msgid "Consult with a developer, solution architect, or another technical role when deciding to implement webhooks. If not properly configured, webhooks may disrupt the Odoo database and can take time to revert." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:120 -msgid "A `200 OK` or `status: ok` message indicates that the webhook is functioning properly on Odoo's side. From here, implementation can begin with the other system to automatically send the API requests to the Odoo webhook's URL." +msgid "Update a sales order's currency" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:124 -msgid "If any other response is returned, the number associated with it helps to identify the problem. For example, a `500 Internal Server Error` message means that Odoo could not interpret the call properly. In this case, ensure the fields found in the JSON file are properly mapped in the webhook's configuration and in the system sending the test call." +#: ../../content/applications/studio/automated_actions/webhooks.rst:122 +msgid "This webhook updates a sales order in the **Sales** app to USD. It useful for subsidiaries outside the United States with a mother company located inside the United States or during mergers when consolidating data into one Odoo database." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:130 -msgid "Turning on call logging in the webhook's configuration in Odoo provides error logs if the webhook is not functioning as intended." +#: ../../content/applications/studio/automated_actions/webhooks.rst:129 +msgid "To set up this webhook, open the **Sales** app. Then, :ref:`set the trigger ` so the :guilabel:`Model` is set to `Sales Order`. Also, set the :guilabel:`Target Record` to `model.env[payload.get('model')].browse(int(payload.get('id')))`. This is broken down below." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:134 -msgid "Implement a webhook in an external system" +msgid "**model**: what gets updated in Odoo (in this case, sales orders). This matches the :guilabel:`Model` set earlier." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:136 -msgid "When the webhook has been successfully created in Odoo and tested, implement it in the system that sends data to the Odoo database, making sure the `POST` API requests are sent to the webhook's URL." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:142 -msgid "Webhook use cases" +msgid "**env**: where the action takes place. In this case, it is Odoo." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:144 -msgid "Below are two examples of how to use webhooks in Odoo. A test payload is provided for each example, and can be found in the section on testing the webhook. `Postman `_ is used to send the test payload." +#: ../../content/applications/studio/automated_actions/webhooks.rst:137 +msgid "**payload**: what is sent to the webhook's URL. This contains the information that updates the sales order." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:149 -msgid "Update a sales order's currency" +#: ../../content/applications/studio/automated_actions/webhooks.rst:139 +msgid "**get('model')**: tells the webhook what database record to look at. In this case, the webhook retrieves (`get`) the data tied to a specific `model`. In this example, this is the Sales Order model." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:151 -msgid "This webhook updates a sales order in the **Sales** app to `USD` when the external system sends a `POST` API request to the webhook's URL that includes that sales order number (which is identified by the payload's `id` record)." +#: ../../content/applications/studio/automated_actions/webhooks.rst:142 +msgid "**browse**: tells the webhook to look in the `model` (Sales Order) set by the payload for what to update." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:155 -msgid "This could be useful for subsidiaries outside the United States with a mother company located inside the United States or during mergers when consolidating data into one Odoo database." +#: ../../content/applications/studio/automated_actions/webhooks.rst:144 +msgid "**int**: turns the target into an `integer` (a whole number). This is important in case some words (a `string`) or a decimal number is included in the payload's target record." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:159 -#: ../../content/applications/studio/automated_actions/webhooks.rst:221 -msgid "Create the webhook" +#: ../../content/applications/studio/automated_actions/webhooks.rst:146 +msgid "**get('id')**: identifies the sales order number that is being updated in Odoo." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:161 -#: ../../content/applications/studio/automated_actions/webhooks.rst:223 -msgid "To create this webhook, proceed as follows:" +#: ../../content/applications/studio/automated_actions/webhooks.rst:151 +msgid "After setting the trigger, set the webhook's action by clicking :guilabel:`Add an action`. For the :guilabel:`Type`, click :guilabel:`Update Record`. Then, select `Update`, choose the field `Currency`, and select `USD` to have the currency field updated to USD. Finally, click :guilabel:`Save & Close`." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:163 -msgid "Open the **Sales** app, then :ref:`open Studio ` and click :guilabel:`Webhooks`. The *Sales Order* model is selected by default." +#: ../../content/applications/studio/automated_actions/webhooks.rst:157 +#: ../../content/applications/studio/automated_actions/webhooks.rst:248 +msgid "Webhook setup summary" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:165 -#: ../../content/applications/studio/automated_actions/webhooks.rst:227 -msgid "Click :guilabel:`New`. The :guilabel:`Trigger` is set to :guilabel:`On webhook` by default." +#: ../../content/applications/studio/automated_actions/webhooks.rst:159 +msgid "To summarize what is set up, the webhook targets sales orders, identified by their sales order number, and updates their currency to `USD` when a POST request is sent to the webhook's URL that includes that sales order number (which is identified by the payload's `id` record)." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:166 -msgid "Set the :guilabel:`Target Record` to `model.env[payload.get('model')].browse(int(payload.get('id')))`, where:" +#: ../../content/applications/studio/automated_actions/webhooks.rst:256 +msgid "Test the webhook's setup to make sure everything is correct. This process uses a tool called `Postman `_ to send the simulated trigger." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:169 -msgid "`payload.get('model')` retrieves the value associated with the `model` key in the payload, i.e., `sale.order`, which is the technical name of the *Sales Order* model." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:171 -msgid "`payload.get('id')` retrieves the value associated with the `id` key in the payload, i.e., the number of the target sales order in your Odoo database with the `S` and leading zeros removed." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:174 -msgid "`int` converts the retrieved id to an integer (i.e., a whole number) because the method `browse()` can only be used with an integer." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:177 -#: ../../content/applications/studio/automated_actions/webhooks.rst:231 -msgid "Click :guilabel:`Add an action`." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:178 -msgid "In the :guilabel:`Type` section, click :guilabel:`Update Record`." -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:179 -msgid "In the :guilabel:`Action details` section, select :guilabel:`Update`, choose the field :guilabel:`Currency`, and select :guilabel:`USD`." +#: ../../content/applications/studio/automated_actions/webhooks.rst:259 +msgid "This section walks through the steps to test this webhook in Postman, but does not offer help if there's an issue within that tool. To get specific help with Postman, contact their support team." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:181 -#: ../../content/applications/studio/automated_actions/webhooks.rst:256 -msgid "Click :guilabel:`Save & Close`." +#: ../../content/applications/studio/automated_actions/webhooks.rst:172 +msgid "Once Postman is open, create a new :guilabel:`HTTP` request and set its method to :guilabel:`POST`. Next, copy the webhook's URL that is being tested and paste it into the URL field in Postman. After that, click the :guilabel:`Body` tab and select the :guilabel:`raw` option. Set the file type to :guilabel:`JSON`, then copy this code and paste it into the file." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:184 -#: ../../content/applications/studio/automated_actions/webhooks.rst:259 -msgid "Test the webhook" +msgid "From here, choose a sales order to test the webhook on. If it is not possible to test in a live Odoo database, consider creating a demo database with a sample sales order and the webhook that was configured. Replace `SALES ORDER NUMBER` with the sales order's number without the `S` or any zeros before the number. For example, a sales order with the number `S00007` should be entered as `7` in Postman. Finally, click :guilabel:`Send` in Postman." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:186 -#: ../../content/applications/studio/automated_actions/webhooks.rst:261 -msgid "To test this webhook, proceed as follows:" -msgstr "" - -#: ../../content/applications/studio/automated_actions/webhooks.rst:188 -msgid "With `Postman `_ open, create a new HTTP request and set its method to :guilabel:`POST`." +#: ../../content/applications/studio/automated_actions/webhooks.rst:190 +msgid "If a message saying `200 OK` or `status: ok` gets returned, then the webhook is functioning properly on Odoo's side. The test sales order's currency is updated. From here, implementation can begin with the other tool to automatically send those webhook calls into Odoo using the webhook's URL." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:190 -#: ../../content/applications/studio/automated_actions/webhooks.rst:265 -msgid "Copy the URL of the Odoo webhook using the :icon:`fa-link` :guilabel:`(link)` icon and paste it into the URL field in Postman." +#: ../../content/applications/studio/automated_actions/webhooks.rst:194 +msgid "If any other responses are returned, the number associated with them helps to identify the problem. For example, a `500 Internal Server Error` means that Odoo could not interpret the call properly. If this gets returned, ensure the `model` and `id` fields are properly mapped in the webhook's configuration and in Postman." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:193 -#: ../../content/applications/studio/automated_actions/webhooks.rst:268 -msgid "Set the file type to :guilabel:`JSON`, then copy this code, i.e., the payload, and paste it into the code editor:" +#: ../../content/applications/studio/automated_actions/webhooks.rst:202 +msgid "Create a new contact" msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:203 -msgid "In your Odoo database, choose a sales order to test the webhook on. In the pasted code, replace `SALES ORDER NUMBER` with the sales order's number without the `S` or any zeros before the number. For example, a sales order with the number `S00007` should be entered as `7` in Postman." +#: ../../content/applications/studio/automated_actions/webhooks.rst:204 +msgid "This webhook uses custom code to create a new contact in an Odoo database. This could be helpful for automatically creating new vendors or customers." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:207 -#: ../../content/applications/studio/automated_actions/webhooks.rst:282 -msgid "Consult the :ref:`Response viewer ` in Postman to determine whether or not the webhook is functioning properly. If a message other than `200 OK` or `status: ok` is returned, the number associated with the message helps to identify the problem." +#: ../../content/applications/studio/automated_actions/webhooks.rst:210 +msgid "To set up this webhook, open the **Contacts** app. Then, :ref:`set the trigger ` so the :guilabel:`Model` is set to `Contact`. Also, set the :guilabel:`Target Record` to `model.browse([2])`. This is broken down below." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:214 -msgid "Create a new contact" +msgid "**model**: what gets updated in Odoo (in this case, a contact). This matches the :guilabel:`Model` set earlier." msgstr "" #: ../../content/applications/studio/automated_actions/webhooks.rst:216 -msgid "This webhook uses custom code to create a new contact in an Odoo database when the external system sends a `POST` API request to the webhook's URL that includes the contact's information. This could be helpful for automatically creating new vendors or customers." +msgid "**browse**: tells the webhook to look in the `model` (the contacts) set by the payload for what to create." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:225 -msgid "Open the **Contacts** app, then :ref:`open Studio ` and click :guilabel:`Webhooks`. The *Contact* model is selected by default." +#: ../../content/applications/studio/automated_actions/webhooks.rst:222 +msgid "After setting the trigger, set the webhook's action by clicking :guilabel:`Add an action`. For the :guilabel:`Type`, click :guilabel:`Execute Code`, then set the :guilabel:`code` to the sample code below. Finally, click :guilabel:`Save & Close`." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:228 -msgid "Set the :guilabel:`Target Record` to `model.browse([2])`. This is essentially a placeholder as the code in the automated action tells the webhook what needs to be retrieved from the payload and in which model the record needs to be created." +#: ../../content/applications/studio/automated_actions/webhooks.rst:250 +msgid "To summarize what is set up, the webhook creates a contact when an API call is sent to the webhook's URL that includes the contact's information." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:232 -msgid "In the :guilabel:`Type` section, click :guilabel:`Execute Code`." +#: ../../content/applications/studio/automated_actions/webhooks.rst:262 +msgid "Once Postman is open, create a new request, and set its method to :guilabel:`POST`. Next, copy the webhook's URL that is being tested and paste it into the URL field in Postman. After that, click the :guilabel:`Body` tab and click :guilabel:`raw`. Set the file type to :guilabel:`JSON`, then copy this code and paste it into the file." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:233 -msgid "Copy this code and paste it into the code editor in the :guilabel:`Code` tab of the :guilabel:`Action details` section:" +#: ../../content/applications/studio/automated_actions/webhooks.rst:275 +msgid "Replace the fields above with a new contact's information in Postman, and then click :guilabel:`Send`." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:263 -msgid "In `Postman `_, create a new HTTP request and set its method to :guilabel:`POST`." +#: ../../content/applications/studio/automated_actions/webhooks.rst:278 +msgid "If a message saying `200 OK` or `status: ok` gets returned, then the webhook is functioning properly on Odoo's side. The new test contact appears in the **Contacts** app. From here, implementation can begin with the other tool to automatically send those webhook calls into Odoo using the webhook's URL." msgstr "" -#: ../../content/applications/studio/automated_actions/webhooks.rst:279 -msgid "In the pasted code, replace the `CONTACT NAME`, `CONTACTEMAIL@EMAIL.COM`, and `CONTACT PHONE NUMBER` with a new contact's information." +#: ../../content/applications/studio/automated_actions/webhooks.rst:283 +msgid "If any other responses are returned, the number associated with them helps to identify the problem. For example, a `500 Internal Server Error` means that Odoo could not interpret the call properly. If this gets returned, ensure the fields found in the JSON file are properly mapped in the webhook's configuration and in Postman." msgstr "" #: ../../content/applications/studio/fields.rst:3 @@ -1649,26 +1482,30 @@ msgid ":guilabel:`Warning for future dates`: Enable this property to display a w msgstr "" #: ../../content/applications/studio/fields.rst:553 -msgid ":guilabel:`Condensed display`: Enable this property to show days, months and hours with no leading zeros, e.g., `4/2/2025 8:05:00` instead of `04/02/2025 08:05:00`." +msgid ":guilabel:`Date format`: By default the date will be shown as `Apr 2, 2025, 08:05 AM`. Enable this property to show the date in the format `4/2/2025 08:05:00`. The numeric mode is the format set on the current language. In this mode the seconds are always shown." msgstr "" -#: ../../content/applications/studio/fields.rst:555 +#: ../../content/applications/studio/fields.rst:557 +msgid ":guilabel:`Show date`: This property is enabled by default for :guilabel:`Date & Time` fields. Disable this property to show only the time." +msgstr "" + +#: ../../content/applications/studio/fields.rst:559 msgid ":guilabel:`Show time`: This property is enabled by default for :guilabel:`Date & Time` fields. On a read-only field, disable the property to show only the date. This can keep a list view less cluttered, for example." msgstr "" -#: ../../content/applications/studio/fields.rst:558 -msgid ":guilabel:`Show seconds`: This property is enabled by default for :guilabel:`Date & Time` fields. Disable the property to show only hours and minutes." +#: ../../content/applications/studio/fields.rst:562 +msgid ":guilabel:`Show seconds`: This property is disabled by default for :guilabel:`Date & Time` fields. Enable the property to show the seconds." msgstr "" -#: ../../content/applications/studio/fields.rst:560 +#: ../../content/applications/studio/fields.rst:564 msgid ":guilabel:`Time interval`: Enter a value to determine the minute intervals shown in the time selector. For example, enter 15 to allow quarter-hour intervals. The default value is set to 5 minutes." msgstr "" -#: ../../content/applications/studio/fields.rst:563 +#: ../../content/applications/studio/fields.rst:567 msgid ":guilabel:`Earliest accepted date`: Enter the earliest date that can be selected in the date selector in ISO-format, i.e., `YYYY-MM-DD`. If the current date is always the earliest accepted date, enter `today`. On the date selector, dates prior to the earliest accepted date are grayed out." msgstr "" -#: ../../content/applications/studio/fields.rst:567 +#: ../../content/applications/studio/fields.rst:571 msgid ":guilabel:`Latest accepted date`: Enter the latest date that can be selected in the date selector in ISO-format, i.e., `YYYY-MM-DD`. If the current date is always the latest accepted date, enter `today`. On the date selector, dates later than the latest accepted date are grayed out." msgstr "" @@ -2536,8 +2373,7 @@ msgid "To structure a form, drag and drop the :guilabel:`Tabs and Columns` eleme msgstr "" #: ../../content/applications/studio/views.rst:46 -#: ../../content/applications/studio/views.rst:139 -msgid "To prevent users from creating, editing, or deleting records, untick :guilabel:`Can Create`, :guilabel:`Can Edit`, or :guilabel:`Can Delete`." +msgid "To prevent users from creating, editing, deleting or duplicating records, untick :guilabel:`Can Create`, :guilabel:`Can Edit`, :guilabel:`Can Delete` or :guilabel:`Can Duplicate`." msgstr "" #: ../../content/applications/studio/views.rst:48 @@ -2643,6 +2479,10 @@ msgstr "" msgid "The :guilabel:`List` :icon:`oi-view-list` view is used to overview many records at once, look for records, and edit simple records." msgstr "" +#: ../../content/applications/studio/views.rst:139 +msgid "To prevent users from creating, editing, deleting or duplicating records, untick :guilabel:`Can Create`, :guilabel:`Can Edit`, :guilabel:`Can Delete`, or :guilabel:`Can Duplicate`." +msgstr "" + #: ../../content/applications/studio/views.rst:141 msgid "To create and edit records directly within the view, select either :guilabel:`Add record at the bottom`, :guilabel:`Add record on top` or :guilabel:`Open form view` under :guilabel:`When Creating Record`." msgstr "" diff --git a/locale/sources/websites.pot b/locale/sources/websites.pot index 6c3227bf88..2d54f84429 100644 --- a/locale/sources/websites.pot +++ b/locale/sources/websites.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: Odoo 18.0\n" +"Project-Id-Version: Odoo 19.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-18 08:33+0000\n" +"POT-Creation-Date: 2025-09-30 10:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -239,6 +239,8 @@ msgstr "" #: ../../content/applications/websites/ecommerce.rst:20 #: ../../content/applications/websites/website.rst:52 +#: ../../content/applications/websites/website/structure.rst:37 +#: ../../content/applications/websites/website/web_design.rst:42 msgid "`Odoo Tutorials: Website `_" msgstr "" @@ -649,6 +651,150 @@ msgstr "" msgid "If you own multiple websites, you can make customer accounts available across **all** websites. Then, the customer only needs one account. To do so, go to :menuselection:`Website --> Configuration --> Settings --> Privacy section`, and enable :guilabel:`Shared Customer Accounts`." msgstr "" +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:3 +msgid "Google Merchant Center" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:5 +msgid "Google Merchant Center is a tool that allows ecommerce retailers to manage and submit product data to Google. It serves as a central hub to upload and maintain product details, such as images, prices, and descriptions so that products can appear across Google's platforms." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:10 +msgid "Google Merchant Center is only available for physical products and does not support services." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:13 +msgid "We recommend using the tool alongside other Google services, such as :doc:`Google Search Console <../website/configuration/google_search_console>`, :ref:`Google Analytics ` or :ref:`Google Tag Manager ` to obtain detailed reports on product listing issues, improve marketing strategies, increase your products' online visibility, and enhance the overall sales performance." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:20 +msgid "Google Merchant Center setup" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:22 +msgid "To connect your ecommerce with the :abbr:`GMC (Google Merchant Center)` platform, proceed as follows:" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:25 +msgid "Create or sign in to a Google account using the following link: ``_." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:27 +msgid "Indicate that you sell products online, and enter :guilabel:`Your store's website`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:28 +msgid "Click :guilabel:`Continue`, then click :guilabel:`Continue to Merchant Center`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:29 +msgid "Enter your business details by adding the :guilabel:`Business name` and the :guilabel:`Registered country`, then click the :guilabel:`Continue to Merchant Center` button twice." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:32 +msgid "Add the relevant information and click :guilabel:`Continue`, or click :guilabel:`Do it later` to skip this step for now." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:34 +msgid "Go to the :guilabel:`Business info` tab in the left menu, and click :guilabel:`Confirm online store`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:36 +msgid "`Verify your website's ownership `_ in one of the following ways:" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:39 +msgid "Via :ref:`HTML tag ` or :ref:`HTML file `" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:41 +msgid "Via :ref:`Google Tag Manager `" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:42 +msgid "Via :ref:`Google Analytics `" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:45 +msgid "You can also verify your website's ownership from Google Merchant Center's dashboard by navigating to :menuselection:`Settings --> Business Info` in the left menu." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:48 +msgid "Return to :abbr:`GMC (Google Merchant Center)`, click :guilabel:`Verify your online store`, and :guilabel:`Continue`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:52 +msgid "`Google Merchant Center Help `_" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:55 +msgid "Linking Odoo to GMC" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:58 +msgid "To activate the :abbr:`GMC (Google Merchant Center)` integration in your Odoo database, at least one :ref:`pricelist ` must be assigned to your website." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:61 +msgid "Navigate to :menuselection:`Website --> Configuration --> Settings`, scroll to the :guilabel:`SEO - Search Engine Optimization` section, and enable :guilabel:`Google Merchant Center Data Source`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:64 +msgid "Click the :guilabel:`Copy file link`, then :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:67 +msgid "By enabling the :guilabel:`Google Merchant Center Data Source` option, your website will generate a dynamic `/gmc.xml` feed containing essential product information and availability. This feed can be :ref:`customized ` to include multiple languages and pricelists, ensuring your products are displayed correctly for different regions and audiences." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:73 +msgid "Go to the :abbr:`GMC (Google Merchant Center)` dashboard, navigate to the :menuselection:`Your business --> Products` tab in the left menu, and click :guilabel:`Add products`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:76 +msgid "Choose :guilabel:`Add products from a file` and paste the URL of the copied file." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:79 +msgid "Make sure to select all the countries where you intend to sell your products. You are not able to proceed without selecting at least one target country. If necessary, enter a :guilabel:`feed label` as well." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:0 +msgid "Select countries in GMC." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:86 +msgid "Click :guilabel:`Continue`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:91 +msgid "Localized feeds" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:94 +msgid "Languages/regions" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:96 +msgid "It is helpful to create language-specific feeds for each country/language you sell in. To add a new feed, go to :guilabel:`Products` on the :abbr:`GMC` dashboard, click :guilabel:`Add products`, and select :guilabel:`Add another product source` from the dropdown menu." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:101 +msgid "The selected :doc:`language ` must first be enabled in your website's settings." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:105 +msgid "Currencies" +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:107 +msgid "It is also possible to create different feeds for different currencies, which allows customers to view prices in their local currency. To enable this feature, create a :ref:`pricelist ` with the foreign currency in Odoo. Then, go to the :guilabel:`Products` tab in :abbr:`GMC`, click :guilabel:`Manage product sources`, and choose a :guilabel:`Products source`. Navigate to the :guilabel:`Data source setup` tab, click :guilabel:`Show advanced options`, and choose a :guilabel:`Currency`." +msgstr "" + +#: ../../content/applications/websites/ecommerce/google_merchant_center.rst:116 +msgid "`Google Merchant Center Product Feed Specifications `_." +msgstr "" + #: ../../content/applications/websites/ecommerce/order_handling.rst:3 msgid "Order handling" msgstr "" @@ -931,18 +1077,14 @@ msgid "Enable the :doc:`developer mode `." msgstr "" #: ../../content/applications/websites/ecommerce/performance.rst:52 -msgid "Go to :menuselection:`Apps`, remove the :guilabel:`Apps` filter, and install the :guilabel:`Sales - Async Emails` module." -msgstr "" - -#: ../../content/applications/websites/ecommerce/performance.rst:54 msgid "Go to :menuselection:`Settings --> Technical --> System Parameters` and set the :guilabel:`sale.async_emails` system parameter to `True`." msgstr "" -#: ../../content/applications/websites/ecommerce/performance.rst:56 +#: ../../content/applications/websites/ecommerce/performance.rst:54 msgid "Go to :menuselection:`Settings --> Technical --> Scheduled Actions` and ensure that the :guilabel:`Sales: Send pending emails` scheduled action is enabled." msgstr "" -#: ../../content/applications/websites/ecommerce/performance.rst:60 +#: ../../content/applications/websites/ecommerce/performance.rst:58 msgid "Enabling this feature may delay order confirmation and invoice emails by a few minutes. It is recommended only for high-traffic websites, as it can introduce unnecessary delays for e-commerce websites with moderate traffic." msgstr "" @@ -1294,7 +1436,7 @@ msgid ":guilabel:`Sales Description` (under the :guilabel:`Sales` tab)." msgstr "" #: ../../content/applications/websites/ecommerce/products.rst:300 -msgid "Having untranslated content on a web page may be detrimental to the user experience and :doc:`SEO <../../websites/website/pages/seo>`. You can use the :doc:`Translate <../website/configuration/translate>` feature to translate the page's content." +msgid "Having untranslated content on a web page may be detrimental to the user experience and :doc:`SEO <../../websites/website/structure/seo>`. You can use the :doc:`Translate <../website/configuration/translate>` feature to translate the page's content." msgstr "" #: ../../content/applications/websites/ecommerce/products.rst:303 @@ -1666,7 +1808,7 @@ msgid "Place building block in the header or footer." msgstr "" #: ../../content/applications/websites/ecommerce/products/catalog.rst:248 -msgid "Adding content to an eCommerce category page helps improve the :doc:`SEO <../../website/pages/seo>` strategy. Using keywords linked to the products or the eCommerce categories can also increase organic traffic. Additionally, each category has its own specific URL that can be pointed to and is indexed by search engines." +msgid "Adding content to an eCommerce category page helps improve the :doc:`SEO <../../website/structure/seo>` strategy. Using keywords linked to the products or the eCommerce categories can also increase organic traffic. Additionally, each category has its own specific URL that can be pointed to and is indexed by search engines." msgstr "" #: ../../content/applications/websites/ecommerce/products/catalog.rst:252 @@ -2150,300 +2292,456 @@ msgstr "" msgid "`Odoo Tutorials: eLearning `_" msgstr "" -#: ../../content/applications/websites/elearning.rst:19 +#: ../../content/applications/websites/elearning.rst:21 msgid "Courses" msgstr "" -#: ../../content/applications/websites/elearning.rst:21 -msgid "By going to :menuselection:`eLearning --> Courses --> Courses`, you can get an overview of all your courses." +#: ../../content/applications/websites/elearning.rst:23 +msgid "To get an overview of all courses, go to :menuselection:`eLearning --> Courses --> Courses`." msgstr "" -#: ../../content/applications/websites/elearning.rst:24 -msgid "Click on a course title to edit your course on the back end. Click on :guilabel:`View course` to access your course on the front end." +#: ../../content/applications/websites/elearning.rst:25 +msgid "Click on a course card to edit the course on the back end. Click :guilabel:`View course` to access the course on the front end." msgstr "" -#: ../../content/applications/websites/elearning.rst:28 +#: ../../content/applications/websites/elearning.rst:31 msgid "Course creation" msgstr "" -#: ../../content/applications/websites/elearning.rst:30 -msgid "Click :guilabel:`New` to create a new course. When the page pops up, you can add your :guilabel:`Course Title` and one or more :guilabel:`Tags` to describe your course. You can add an image to illustrate your course by hovering your mouse on the camera placeholder image and clicking on the edit icon. Four tabs allow you to edit your course further: :ref:`Content `, :ref:`Description `, :ref:`Options `, and :ref:`Karma `." +#: ../../content/applications/websites/elearning.rst:33 +msgid "Click :guilabel:`New` to create a new course. In the form that opens, add a :guilabel:`Course Title` and one or more :guilabel:`Tags` to categorize the course and :ref:`allow users to filter courses based on their tags `. To add an image to illustrate the course, hover your mouse on the camera placeholder image and click on :icon:`fa-pencil` :guilabel:`(Edit)`." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:39 +msgid "Four tabs allow you to edit your course further: :ref:`Content `, :ref:`Description `, :ref:`Options `, and :ref:`Karma `." msgstr "" #: ../../content/applications/websites/elearning.rst:-1 msgid "Create your elearning course." msgstr "" -#: ../../content/applications/websites/elearning.rst:44 +#: ../../content/applications/websites/elearning.rst:49 msgid "Content tab" msgstr "" -#: ../../content/applications/websites/elearning.rst:46 -msgid "This tab allows you to manage your course content. Click on :guilabel:`Add Section` to divide your course into different sections. Click on :guilabel:`Add Content` to create :ref:`content `. Click on :guilabel:`Add Certification` to assess the level of understanding of your attendees, certify their skills, and motivate them. **Certification** is part of the :doc:`Surveys <../marketing/surveys/create>` app." +#: ../../content/applications/websites/elearning.rst:51 +msgid "This tab allows you to manage the course content. Click :guilabel:`Add Section` to divide the course into different sections. Click :guilabel:`Add Content` to create :ref:`content items `. Click :guilabel:`Add Certification` to assess the attendees' level of understanding, certify their skills, and motivate them. **Certification** is part of the :doc:`Surveys <../marketing/surveys/create>` app." msgstr "" -#: ../../content/applications/websites/elearning.rst:55 -#: ../../content/applications/websites/elearning.rst:204 +#: ../../content/applications/websites/elearning.rst:60 +#: ../../content/applications/websites/elearning.rst:318 msgid "Description tab" msgstr "" -#: ../../content/applications/websites/elearning.rst:57 -msgid "You can add a short description or information related to your course in the :guilabel:`Description` tab. It appears under your course title on your website." +#: ../../content/applications/websites/elearning.rst:62 +msgid "You can add a short description or information related to the course in the :guilabel:`Description` tab. It appears under the course title on your website." msgstr "" #: ../../content/applications/websites/elearning.rst:-1 msgid "Add a description to your course." msgstr "" -#: ../../content/applications/websites/elearning.rst:67 +#: ../../content/applications/websites/elearning.rst:71 #: ../../content/applications/websites/livechat.rst:91 msgid "Options tab" msgstr "" -#: ../../content/applications/websites/elearning.rst:69 -msgid "In the :guilabel:`Options` tab, different configurations are available: :ref:`Course `, :ref:`Communication `, :ref:`Access rights `, and :ref:`Display `." +#: ../../content/applications/websites/elearning.rst:73 +msgid "In the :guilabel:`Options` tab, different configurations are available: :ref:`Course `, :ref:`Access rights `, :ref:`Communication ` and :ref:`Display `." msgstr "" #: ../../content/applications/websites/elearning.rst:-1 msgid "Overview of the Options tab" msgstr "" -#: ../../content/applications/websites/elearning.rst:80 +#: ../../content/applications/websites/elearning.rst:84 msgid "Course" msgstr "" -#: ../../content/applications/websites/elearning.rst:82 -msgid "Assign a :guilabel:`Responsible` user for your course. If you have multiple websites, use the :guilabel:`Website` field to only display the course on the selected website." +#: ../../content/applications/websites/elearning.rst:86 +msgid "Assign a :guilabel:`Responsible` user for the course. If you have multiple websites, use the :guilabel:`Website` field to display the course only on the selected website." msgstr "" -#: ../../content/applications/websites/elearning.rst:88 -msgid "Communication" +#: ../../content/applications/websites/elearning.rst:92 +msgid "Access rights" msgstr "" -#: ../../content/applications/websites/elearning.rst:90 -msgid ":guilabel:`Allow Reviews`: tick the box to allow attendees to like and comment on your content and to submit reviews on your course;" +#: ../../content/applications/websites/elearning.rst:94 +msgid ":guilabel:`Prerequisites`: Set one or more other courses that users are advised to complete before accessing the course." msgstr "" -#: ../../content/applications/websites/elearning.rst:92 -msgid ":guilabel:`Forum`: add a dedicated forum to your course (only shown if the **Forum** feature is enabled in the app's settings);" +#: ../../content/applications/websites/elearning.rst:96 +msgid ":guilabel:`Prerequisite Of`: If the course has been defined as a prerequisite for one or more courses, this read-only field displays the course name(s)." msgstr "" -#: ../../content/applications/websites/elearning.rst:94 -msgid ":guilabel:`New Content Notification`: select an email template sent to your attendees when you upload new content. Click on the internal link button (:guilabel:`➜`) to have access to the email template editor;" +#: ../../content/applications/websites/elearning.rst:98 +msgid ":guilabel:`Show course to`: Define who can see the course on your website. Select one of the following:" msgstr "" -#: ../../content/applications/websites/elearning.rst:97 -msgid ":guilabel:`Completion Notification`: select an email template sent to your attendees once they reach the end of your course. Click on the internal link button (:guilabel:`➜`) to access the email template editor;" +#: ../../content/applications/websites/elearning.rst:101 +msgid ":guilabel:`Everyone`: The course is publicly visible." msgstr "" -#: ../../content/applications/websites/elearning.rst:104 -msgid "Access rights" +#: ../../content/applications/websites/elearning.rst:102 +msgid ":guilabel:`Signed In`: The course is only visible to users who are logged in." msgstr "" -#: ../../content/applications/websites/elearning.rst:106 -msgid ":guilabel:`Prerequisites`: set one or more courses that users are advised to complete before" +#: ../../content/applications/websites/elearning.rst:103 +msgid ":guilabel:`Course Attendees`: The course is only visible to users who are already enrolled in the course." msgstr "" -#: ../../content/applications/websites/elearning.rst:107 -msgid "accessing your course;" +#: ../../content/applications/websites/elearning.rst:105 +msgid ":guilabel:`Anyone with the link`: The course can only be accessed via a direct link." msgstr "" -#: ../../content/applications/websites/elearning.rst:108 -msgid ":guilabel:`Show course to`: define who can access your course and their content between :guilabel:`Everyone`, :guilabel:`Signed In` or :guilabel:`Course Attendees`;" +#: ../../content/applications/websites/elearning.rst:107 +msgid ":guilabel:`Enroll Policy`: Define how people can enroll in the course. The choice of policy also determines which internal eLearning users can add, i.e., manually enroll, attendees via the :guilabel:`Add attendees` button or invite attendees to enroll via the :guilabel:`Invite` button." msgstr "" -#: ../../content/applications/websites/elearning.rst:110 -msgid ":guilabel:`Enroll Policy`: define how people enroll in your course. Select:" +#: ../../content/applications/websites/elearning.rst:112 +msgid "Internal eLearning users have either `Officer` or `Manager` :doc:`access rights `." msgstr "" -#: ../../content/applications/websites/elearning.rst:112 -msgid ":guilabel:`Open`: if you want your course to be available to anyone;" +#: ../../content/applications/websites/elearning.rst:115 +msgid "Select one of the following:" msgstr "" -#: ../../content/applications/websites/elearning.rst:113 -msgid ":guilabel:`On Invitation`: if only people who received an invitation can enroll to your course. If selected, fill in the :guilabel:`Enroll Message` explaining the course's enrollment process. This message appears on your website under the course title;" +#: ../../content/applications/websites/elearning.rst:117 +msgid ":guilabel:`Open`:" msgstr "" -#: ../../content/applications/websites/elearning.rst:116 -msgid ":guilabel:`On Payment`: if only people who bought your course can attend it. The :guilabel:`Paid Courses` feature must be enabled to get this option. If you select :guilabel:`On Payment`, you must add a :guilabel:`Product` for your course." +#: ../../content/applications/websites/elearning.rst:119 +msgid "Anyone who can see the course can enroll." msgstr "" -#: ../../content/applications/websites/elearning.rst:121 -msgid "Only products set up with :guilabel:`Course` as their :guilabel:`Product Type` are displayed." +#: ../../content/applications/websites/elearning.rst:120 +msgid "Any eLearning Officer or eLearning Manager can add or invite internal or external attendees." msgstr "" -#: ../../content/applications/websites/elearning.rst:127 -msgid "Display" +#: ../../content/applications/websites/elearning.rst:123 +msgid ":guilabel:`On invitation`:" msgstr "" -#: ../../content/applications/websites/elearning.rst:129 -msgid ":guilabel:`Training`: the course content appears as a training program, and the courses must be taken in the proposed order." +#: ../../content/applications/websites/elearning.rst:125 +msgid "Only people who have received an invitation can enroll in the course." msgstr "" -#: ../../content/applications/websites/elearning.rst:131 -msgid ":guilabel:`Documentation`: the content is available in any order. If you choose this option, you can choose which page should be promoted on the course homepage by using the :guilabel:`Featured Content` field." +#: ../../content/applications/websites/elearning.rst:126 +msgid "If the course visibility is set to :guilabel:`Everyone`, :guilabel:`Signed In`, or :guilabel:`Anyone with the link`, any non-invited person who logs in can request access to the course via the course page. Enter an :guilabel:`Enroll Message` to explain how to enroll, e.g., \"Contact Responsible\"." msgstr "" -#: ../../content/applications/websites/elearning.rst:138 -msgid "Karma tab" +#: ../../content/applications/websites/elearning.rst:132 +msgid "The request creates a to-do assigned to the course's :guilabel:`Responsible` user, allowing them to :guilabel:`Grant Access` or :guilabel:`Refuse Access`. The to-do is visible to the :guilabel:`Responsible` user and any eLearning Manager in the course's chatter, and the :guilabel:`Responsible` user is notified via email. Either the :guilabel:`Responsible` user or an eLearning Manager can grant access, in which case the requestor is automatically enrolled in the course, or refuse access." msgstr "" -#: ../../content/applications/websites/elearning.rst:140 -msgid "This tab is about gamification to make eLearning fun and interactive." +#: ../../content/applications/websites/elearning.rst:139 +msgid "Only the :guilabel:`Responsible` user for the course or an eLearning Manager can add or invite internal or external attendees." msgstr "" #: ../../content/applications/websites/elearning.rst:142 -msgid "In the :guilabel:`Rewards` section, choose how many karma points you want to grant your students when they :guilabel:`Review` or :guilabel:`Finish` a course." +msgid ":guilabel:`On payment`:" +msgstr "" + +#: ../../content/applications/websites/elearning.rst:144 +msgid "This option is only shown if the :guilabel:`Paid courses` feature is enabled in the :ref:`eLearning settings `." msgstr "" -#: ../../content/applications/websites/elearning.rst:145 -msgid "In the :guilabel:`Access Rights` section, define the karma needed to :guilabel:`Add Review`, :guilabel:`Add Comment`, or :guilabel:`Vote` on the course." +#: ../../content/applications/websites/elearning.rst:146 +msgid "Anyone who can see the course can enroll in the course upon payment." msgstr "" -#: ../../content/applications/websites/elearning.rst:149 -msgid "From your course, click the :guilabel:`Contact Attendees` button to reach people who are enrolled in the course." +#: ../../content/applications/websites/elearning.rst:147 +msgid "Any eLearning Officer can *invite* internal or external attendees to enroll in the course." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:148 +msgid "Only the :guilabel:`Responsible` user for the course or an eLearning Manager can *add* attendees. Payment is not required when an attendee is added in this way." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:150 +msgid "To set a course as :guilabel:`On payment`, a :guilabel:`Product` must be selected; only products set up with :guilabel:`Course` as their :guilabel:`Product Type` are available for selection." msgstr "" #: ../../content/applications/websites/elearning.rst:155 +msgid "To add or invite an attendee, the attendee must be an existing contact or created as a new contact. A person who creates a customer account on your website is automatically a contact." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:161 +msgid "Communication" +msgstr "" + +#: ../../content/applications/websites/elearning.rst:163 +msgid ":guilabel:`Allow Reviews`: Enable this option to allow attendees to like, comment on, and submit reviews for the course content." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:165 +msgid ":guilabel:`Forum`: Add a dedicated forum to the course. This option is only shown if the :guilabel:`Forum` feature is enabled in the :ref:`eLearning settings `." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:167 +msgid ":guilabel:`New Content Notification`: Select an email template to send emails to attendees when you upload new content items. Click on :icon:`oi-arrow-right` :guilabel:`Internal link` to access the email template editor." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:170 +msgid ":guilabel:`Completion Notification`: Select an email template to send emails to attendees once they reach the end of the course. Click on :icon:`oi-arrow-right` :guilabel:`Internal link` to access the email template editor." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:175 +msgid "If the :guilabel:`Mailing` feature is enabled in the :ref:`eLearning settings `, it is possible to send mass mailings to people enrolled in a course via a :guilabel:`Contact Attendees` button at the top left of the course form. The button is only visible to eLearning Officers who also have `User` :doc:`access rights ` for Email Marketing and to eLearning Managers." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:184 +msgid "Display" +msgstr "" + +#: ../../content/applications/websites/elearning.rst:186 +msgid ":guilabel:`Training`: The course content appears as a training program, and the courses must be taken in the proposed order." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:188 +msgid ":guilabel:`Documentation`: The content is available in any order. Use the :guilabel:`Featured Content` field to define which content items are promoted on the course homepage." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:194 +msgid "Karma tab" +msgstr "" + +#: ../../content/applications/websites/elearning.rst:196 +msgid "This tab is about gamification to make eLearning fun and interactive." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:198 +msgid "In the :guilabel:`Rewards` section, choose how many karma points you want to grant attendees when they :guilabel:`Review` or :guilabel:`Finish` a course." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:201 +msgid "In the :guilabel:`Access Rights` section, define the karma points needed to :guilabel:`Add Review`, :guilabel:`Add Comment`, or :guilabel:`Vote` on the course." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:207 msgid "Course groups" msgstr "" -#: ../../content/applications/websites/elearning.rst:157 -msgid "Use the **Course Groups** to inform users and allow them to filter the courses from the :guilabel:`All Courses` dashboard." +#: ../../content/applications/websites/elearning.rst:209 +msgid "**Course Groups** allow users to filter the :guilabel:`All Courses` dashboard on your website and find the course that meets their interests, needs, level, etc." msgstr "" -#: ../../content/applications/websites/elearning.rst:160 -msgid "You can manage them by going to :menuselection:`Configuration --> Course Groups`. Click :guilabel:`New` to create a new course group. Add the :guilabel:`Course Group Name`, tick the :guilabel:`Menu Entry` box to allow users to search by course group on the website, and add tags in the :guilabel:`Tag Name` column. For each tag, you can select a corresponding color." +#: ../../content/applications/websites/elearning.rst:212 +msgid "To manage them, go to :menuselection:`eLearning --> Configuration --> Course Groups`. Click :guilabel:`New` to create a new course group. Add the :guilabel:`Course Group Name`, enable :guilabel:`Menu Entry` to allow users to search by course group on the website, and add tags in the :guilabel:`Tag Name` column. For each tag, you can select a corresponding color." msgstr "" -#: ../../content/applications/websites/elearning.rst:166 +#: ../../content/applications/websites/elearning.rst:220 msgid "Settings" msgstr "" -#: ../../content/applications/websites/elearning.rst:168 -msgid "You can enable different features to customize your courses by going to :menuselection:`eLearning --> Configuration --> Settings`:" +#: ../../content/applications/websites/elearning.rst:222 +msgid "The following options are available in the eLearning settings. Go to :menuselection:`eLearning --> Configuration --> Settings`, then enable the desired feature:" +msgstr "" + +#: ../../content/applications/websites/elearning.rst:225 +msgid ":guilabel:`Certifications`: Assess attendees' knowledge and provide official certification of their skills." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:227 +msgid ":guilabel:`Paid Courses`: Sell course access directly through your website and track revenue." msgstr "" -#: ../../content/applications/websites/elearning.rst:171 -msgid "**Certifications**: to evaluate the knowledge of your attendees and certify their skills;" +#: ../../content/applications/websites/elearning.rst:230 +msgid "Enabling :guilabel:`Paid Courses` automatically installs the :guilabel:`eCommerce` module, which may impact your `pricing plan `_." msgstr "" -#: ../../content/applications/websites/elearning.rst:172 -msgid "**Paid courses**: to sell access to your courses on your website and track revenues;" +#: ../../content/applications/websites/elearning.rst:234 +msgid ":doc:`eCommerce documentation `" msgstr "" -#: ../../content/applications/websites/elearning.rst:173 -msgid "**Mailing**: to update all your attendees at once through mass mailings;" +#: ../../content/applications/websites/elearning.rst:236 +msgid ":guilabel:`Mailing`: Send mass mailings to keep all attendees informed and up to date." msgstr "" -#: ../../content/applications/websites/elearning.rst:174 -msgid "**Forum**: to create a community and let attendees answer each other's questions." +#: ../../content/applications/websites/elearning.rst:237 +msgid ":guilabel:`Forum`: Build a community space where attendees can ask questions and help each other." msgstr "" -#: ../../content/applications/websites/elearning.rst:179 +#: ../../content/applications/websites/elearning.rst:242 msgid "Content" msgstr "" -#: ../../content/applications/websites/elearning.rst:181 -msgid "Manage your content by going to :menuselection:`eLearning --> Courses --> Contents`. Click :guilabel:`New` to create content. Add your :guilabel:`Content Title`, and if you want :ref:`Tags `, then fill in the related information among the different tabs." +#: ../../content/applications/websites/elearning.rst:244 +msgid "To manage course content, go to :menuselection:`eLearning --> Courses --> Contents`. Click :guilabel:`New` to create a content item. Add the :guilabel:`Content Title` and any desired :ref:`Tags `, then fill in the required information in the different tabs." msgstr "" #: ../../content/applications/websites/elearning.rst:-1 msgid "Create your content." msgstr "" -#: ../../content/applications/websites/elearning.rst:190 +#: ../../content/applications/websites/elearning.rst:252 +msgid "You can also create new content from within a course. Go to :menuselection:`eLearning --> Courses --> Courses`, click the relevant course card, then click :guilabel:`Add content` at the bottom of the :guilabel:`Content` tab." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:259 msgid "Document tab" msgstr "" -#: ../../content/applications/websites/elearning.rst:192 -msgid ":guilabel:`Course`: select the course your content belongs to;" +#: ../../content/applications/websites/elearning.rst:261 +msgid "For each content type, provide the following information:" msgstr "" -#: ../../content/applications/websites/elearning.rst:193 -msgid ":guilabel:`Content Type`: select the type of your content;" +#: ../../content/applications/websites/elearning.rst:263 +msgid ":guilabel:`Course`: Select the course to which the content item belongs." msgstr "" -#: ../../content/applications/websites/elearning.rst:194 -msgid ":guilabel:`Responsible`: add a responsible person for your content;" +#: ../../content/applications/websites/elearning.rst:264 +msgid ":guilabel:`Content Type`: Select the relevant :ref:`content type ` and provide the required information." msgstr "" -#: ../../content/applications/websites/elearning.rst:195 -msgid ":guilabel:`Duration`: indicate the time required to complete the course;" +#: ../../content/applications/websites/elearning.rst:266 +msgid ":guilabel:`Responsible`: Select the user responsible for the content item. By default, this is the user who creates the course, but another user can be selected." msgstr "" -#: ../../content/applications/websites/elearning.rst:196 -msgid ":guilabel:`Allow Download`: allow users to download the content of the slide. This option is only visible when the content is a document;" +#: ../../content/applications/websites/elearning.rst:268 +msgid ":guilabel:`Duration`: Enter the time required to complete the lesson." msgstr "" -#: ../../content/applications/websites/elearning.rst:198 -msgid ":guilabel:`Allow Preview`: the course is accessible by anyone." +#: ../../content/applications/websites/elearning.rst:269 +msgid ":guilabel:`Allow Preview`: Enable this if the content should be accessible to anyone." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:272 +msgid "If the :ref:`Content Type ` is :guilabel:`Document`, enabling :guilabel:`Allow Download` allows users to download the content." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:275 +msgid "Two read-only fields provide data about how often the content item is viewed:" msgstr "" -#: ../../content/applications/websites/elearning.rst:199 -msgid ":guilabel:`# of Public Views`: displays the number of views from non-enrolled participants;" +#: ../../content/applications/websites/elearning.rst:277 +msgid ":guilabel:`# of Public Views`: displays the number of views from non-enrolled participants." msgstr "" -#: ../../content/applications/websites/elearning.rst:200 +#: ../../content/applications/websites/elearning.rst:278 msgid ":guilabel:`# Total Views`: displays the total number of views (non-enrolled and enrolled participants)." msgstr "" -#: ../../content/applications/websites/elearning.rst:206 -msgid "You can add a description of your content that appears front end in the :guilabel:`About` section of your course content." +#: ../../content/applications/websites/elearning.rst:-1 +msgid "Provide information about the content." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:287 +msgid "Content types" +msgstr "" + +#: ../../content/applications/websites/elearning.rst:289 +msgid "You can add the following content types:" +msgstr "" + +#: ../../content/applications/websites/elearning.rst:291 +msgid ":guilabel:`Image`: To upload an image, select :guilabel:`Upload from Device`, click :guilabel:`Upload your file`, then select the relevant file. Supported formats include JPG, JPEG, PNG, SVG, GIF, and WEBP. The maximum file size is 25MB." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:295 +msgid "Alternatively, to add an image saved on Google Drive, select :guilabel:`Retrieve from Google Drive`, then add the Google Drive link to the image." msgstr "" -#: ../../content/applications/websites/elearning.rst:210 +#: ../../content/applications/websites/elearning.rst:298 +msgid ":guilabel:`Article`: Articles are website pages that are customized using the website builder on your website's front end." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:301 +msgid "With the :guilabel:`Course` selected, click the :guilabel:`Go to Website` smart button, then, at the top-right of the screen, click :icon:`fa-pencil` :guilabel:`(Edit)`. Write the article's content and :doc:`customize the page using the website builder `." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:305 +msgid ":guilabel:`Document`: To upload a document, select :guilabel:`Upload from Device`, click :guilabel:`Upload your file`, then select the relevant file. Only PDF documents can be uploaded." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:308 +msgid "Alternatively, to add a Google Slides presentation, Google Doc document, or Google Sheets spreadsheet, click :guilabel:`Retrieve from Google Drive` and add the Google Drive link to the file." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:312 +msgid ":guilabel:`Video`: Add the YouTube, Google Drive, or Vimeo link to the video." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:313 +msgid ":guilabel:`Quiz`: Open the :ref:`Quiz tab ` to create a quiz." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:320 +msgid "Add a description for the content. This text is displayed in the :guilabel:`About` section of the content item on your website." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:326 msgid "Additional Resources tab" msgstr "" -#: ../../content/applications/websites/elearning.rst:212 -msgid "Click :guilabel:`Add a line` to add a link or a file that supports your participants' learning. It appears in the course content on your website." +#: ../../content/applications/websites/elearning.rst:328 +msgid "Click :guilabel:`Add a line` to add a link or a file that supports your participants' learning. The resource appears in the course content on your website." msgstr "" #: ../../content/applications/websites/elearning.rst:-1 msgid "Additional ressources" msgstr "" -#: ../../content/applications/websites/elearning.rst:222 +#: ../../content/applications/websites/elearning.rst:337 msgid "Quiz tab" msgstr "" -#: ../../content/applications/websites/elearning.rst:224 -msgid "From this tab you can create a quiz to assess your students at the end of the course." +#: ../../content/applications/websites/elearning.rst:339 +msgid "From this tab, you can create a quiz to assess your students at the end of the course." msgstr "" -#: ../../content/applications/websites/elearning.rst:226 -msgid "The :guilabel:`Points Rewards` section lets you give a specific number of karma points depending on how many tries they need to correctly answer the question. Then, create your questions and the possible answers by clicking on :guilabel:`Add a line`. A new window pops up, add the question by filling in the :guilabel:`Question Name` and add multiple answers by clicking on :guilabel:`Add a line`. Tick the :guilabel:`Is correct answer` to mark one or more answers as correct. You can also fill in the :guilabel:`Comment` field to display additional information when the answer is chosen by the participant." +#: ../../content/applications/websites/elearning.rst:341 +msgid "The :guilabel:`Points Rewards` section allows you to assign karma points based on how many attempts are needed to answer correctly. To create a question, click :guilabel:`Add a line`, enter the :guilabel:`Question Name`, and add possible answers. Mark the correct answer(s) by selecting :guilabel:`Is correct answer`. You can also use the :guilabel:`Comment` field to provide additional information when an answer is selected." msgstr "" -#: ../../content/applications/websites/elearning.rst:237 +#: ../../content/applications/websites/elearning.rst:350 msgid "Content Tags" msgstr "" -#: ../../content/applications/websites/elearning.rst:239 -msgid "The **Content Tags** help users to classify the content from the :guilabel:`Contents` dashboard." +#: ../../content/applications/websites/elearning.rst:352 +msgid "**Content Tags** are visible on the :guilabel:`Contents` dashboard of a course on your website, and can help users identify the kind of content a particular lesson contains, e.g., theory, or exercises." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:355 +msgid "To manage content tags, go to :menuselection:`eLearning --> Configuration --> Content Tags`. Click :guilabel:`New` to create a new tag." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:361 +msgid "Publish courses and content" msgstr "" -#: ../../content/applications/websites/elearning.rst:241 -msgid "You can manage them by going to :menuselection:`eLearning --> Configuration --> Content Tags`. Click :guilabel:`New` to create a new tag." +#: ../../content/applications/websites/elearning.rst:363 +msgid "Courses and content items must be published from the front end to be available to your audience. To access the front end, click the :guilabel:`Go to Website` smart button at the top of the course form or an individual content form." msgstr "" -#: ../../content/applications/websites/elearning.rst:245 -msgid "Publish your content" +#: ../../content/applications/websites/elearning.rst:367 +msgid "A course and its content items are published separately:" msgstr "" -#: ../../content/applications/websites/elearning.rst:247 -msgid "Everything created on the back end needs to be published from the front end. Unpublished content is always visible from your website but still needs to be published to be available to your audience." +#: ../../content/applications/websites/elearning.rst:369 +msgid "To publish a course, access the main course page, then toggle the switch in the upper-right corner from :guilabel:`Unpublished` to :guilabel:`Published`." msgstr "" -#: ../../content/applications/websites/elearning.rst:250 -msgid "You must be on your website's front end to publish your content. To do so, click on the :guilabel:`Go To Website` smart button, and tick the :guilabel:`Publish` option available in the right-hand corner." +#: ../../content/applications/websites/elearning.rst:371 +msgid "To publish individual content items, click on an item to open it, then toggle the switch from :guilabel:`Unpublished` to :guilabel:`Published`." msgstr "" #: ../../content/applications/websites/elearning.rst:-1 msgid "Publish your content." msgstr "" +#: ../../content/applications/websites/elearning.rst:378 +msgid "When publishing a new course, publish the individual content items before publishing the course itself. Published content is only available to your audience once the course it is part of is published." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:382 +msgid "To unpublish a course or an individual content item, open the course or item, then toggle the switch from :guilabel:`Published` to :guilabel:`Unpublished`." +msgstr "" + +#: ../../content/applications/websites/elearning.rst:386 +msgid "Unpublishing a course renders the course *and* its content unavailable to your audience." +msgstr "" + #: ../../content/applications/websites/forum.rst:3 msgid "Forum" msgstr "" @@ -2521,7 +2819,7 @@ msgid "A user's karma points are shared across all forums, courses, etc., of a s msgstr "" #: ../../content/applications/websites/forum.rst:56 -msgid "eLearning users can earn karma points through different :ref:`course interactions ` and by :ref:`completing quizzes `." +msgid "eLearning users can earn karma points through different :ref:`course interactions ` and by :ref:`completing quizzes `." msgstr "" #: ../../content/applications/websites/forum.rst:62 @@ -3820,7 +4118,7 @@ msgid "If a user's :guilabel:`Online Chat Name` is not set, the name displayed d msgstr "" #: ../../content/applications/websites/livechat/participate.rst:24 -msgid "Mitchell Admin has his full name as his :guilabel:`User Name`, but he does not want to include his last name in a live chat conversation for privacy reasons. He would then set his :guilabel:`Online Chat Name` to include only his first name, Mitchell." +msgid "A user has their full name as their :guilabel:`User Name`, but they do not want to include their last name in a live chat conversation. They would then set their :guilabel:`Online Chat Name` to include only their first name." msgstr "" #: ../../content/applications/websites/livechat/participate.rst:0 @@ -3848,14 +4146,30 @@ msgid "Only :doc:`languages <../../general/users/language>` that are enabled on msgstr "" #: ../../content/applications/websites/livechat/participate.rst:53 -msgid "Join or leave a channel" +msgid "Set live chat expertise" msgstr "" #: ../../content/applications/websites/livechat/participate.rst:55 +msgid "Operators can designate *Expertise* in one or more areas on their profile. A :doc:`chatbot ` can then assign conversations to the operator with the appropriate expertise. Select one or more options from the :guilabel:`Live Chat Expertise` drop-down list." +msgstr "" + +#: ../../content/applications/websites/livechat/participate.rst:59 +msgid "To create a new expertise, navigate to :menuselection:`Live Chat app --> Configuration --> Expertise` and click :guilabel:`New`. Enter the :guilabel:`Name` of the expertise, and, if desired, select one or more :guilabel:`Operators`. Click :guilabel:`Save` when finished." +msgstr "" + +#: ../../content/applications/websites/livechat/participate.rst:64 +msgid "When forwarding live chat conversations, the chatbot prioritizes users with matching expertise. If no applicable match is found, the chatbot forwards the conversation to the next available operator." +msgstr "" + +#: ../../content/applications/websites/livechat/participate.rst:69 +msgid "Join or leave a channel" +msgstr "" + +#: ../../content/applications/websites/livechat/participate.rst:71 msgid "To join a live chat channel, go to the :menuselection:`Live Chat app --> Channels`, and click the :guilabel:`Join` button on the Kanban card for the appropriate channel." msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:58 +#: ../../content/applications/websites/livechat/participate.rst:74 msgid "Any channel where the user is currently active shows a :guilabel:`Leave` button. Click this button to disconnect from the channel." msgstr "" @@ -3863,19 +4177,19 @@ msgstr "" msgid "View of a channel form and the option to join a channel for Odoo Live Chat." msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:65 +#: ../../content/applications/websites/livechat/participate.rst:81 msgid "Operators that do not show any activity in Odoo for more than thirty minutes are considered disconnected, and subsequently removed from the channel." msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:69 +#: ../../content/applications/websites/livechat/participate.rst:85 msgid "Manage live chat requests" msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:71 -msgid "When an operator is active in a channel, chat windows open in the bottom-right corner of the screen, no matter what page they are on in Odoo. This allows them to access other pages and apps, while still participating in the conversation." +#: ../../content/applications/websites/livechat/participate.rst:87 +msgid "When an operator is active in a channel, chat windows open in the bottom-right corner of the screen, no matter where they are in the database. This allows them to access other pages and apps, while still participating in the conversation." msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:75 +#: ../../content/applications/websites/livechat/participate.rst:91 msgid "Live chat conversations can also be viewed by navigating to the :menuselection:`Discuss app`. New conversations appear in bold under the channel name, located along the left panel." msgstr "" @@ -3883,27 +4197,27 @@ msgstr "" msgid "View of the discuss application with a message sent through live chat in Odoo." msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:81 -msgid "Click on a conversation in the left panel to open it. From this view, an operator can participate in the chat the same as they would in the normal chat window." +#: ../../content/applications/websites/livechat/participate.rst:97 +msgid "Click on a conversation in the left panel to select it. This opens the conversation. From this view, an operator can participate in the chat the same as they would in the normal chat window." msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:85 -msgid "Conversations can also be accessed by clicking the :icon:`fa-comments` :guilabel:`(messages)` icon in the menu bar." +#: ../../content/applications/websites/livechat/participate.rst:101 +msgid "Conversations can also be accessed by clicking the :icon:`fa-comments` :guilabel:`(Messages)` icon in the menu bar." msgstr "" #: ../../content/applications/websites/livechat/participate.rst:0 msgid "View of the menu bar in Odoo emphasizing the comments icon." msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:92 +#: ../../content/applications/websites/livechat/participate.rst:108 msgid ":doc:`../../productivity/discuss`" msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:93 +#: ../../content/applications/websites/livechat/participate.rst:109 msgid ":doc:`../livechat`" msgstr "" -#: ../../content/applications/websites/livechat/participate.rst:94 +#: ../../content/applications/websites/livechat/participate.rst:110 msgid ":doc:`../livechat/responses`" msgstr "" @@ -4739,7 +5053,7 @@ msgid "You could add a link to this page in your website's footer, for example." msgstr "" #: ../../content/applications/websites/website/configuration/cookies_bar.rst:57 -msgid ":doc:`Pages <../pages>`" +msgid ":doc:`Pages <../structure/pages>`" msgstr "" #: ../../content/applications/websites/website/configuration/domain_names.rst:3 @@ -5406,18 +5720,18 @@ msgid "`Google Tag Manager container snippet ` or :ref:`Google Tag Manager `. You need to access your domain registrar's settings for domain verification." msgstr "" -#: ../../content/applications/websites/website/configuration/google_search_console.rst:72 +#: ../../content/applications/websites/website/configuration/google_search_console.rst:73 msgid "HTML file upload" msgstr "" -#: ../../content/applications/websites/website/configuration/google_search_console.rst:74 +#: ../../content/applications/websites/website/configuration/google_search_console.rst:75 msgid "This method involves uploading an HTML file provided by Google containing the verification code you have to put in your Odoo's Website Settings. Google verifies ownership by checking for this code." msgstr "" -#: ../../content/applications/websites/website/configuration/google_search_console.rst:77 +#: ../../content/applications/websites/website/configuration/google_search_console.rst:78 msgid "Once you added your website URL under the URL prefix option and clicked :guilabel:`continue`, expand the HTML file section where you find a download :icon:`fa-download` button." msgstr "" @@ -5425,7 +5739,7 @@ msgstr "" msgid "HTML file download" msgstr "" -#: ../../content/applications/websites/website/configuration/google_search_console.rst:83 +#: ../../content/applications/websites/website/configuration/google_search_console.rst:84 msgid "Download your HTML verification file and copy the verification code (e.g., `google123abc.html`)." msgstr "" @@ -5433,7 +5747,7 @@ msgstr "" msgid "Open and copy html file" msgstr "" -#: ../../content/applications/websites/website/configuration/google_search_console.rst:88 +#: ../../content/applications/websites/website/configuration/google_search_console.rst:89 msgid "In your Odoo database, go to :menuselection:`Website --> Configuration --> Settings`, and enable :guilabel:`Google Search Console` in the :guilabel:`SEO` section. Paste the verification code (e.g., `google123abc.html`) in the dedicated field." msgstr "" @@ -5441,11 +5755,43 @@ msgstr "" msgid "Paste html code in Odoo" msgstr "" -#: ../../content/applications/websites/website/configuration/google_search_console.rst:95 +#: ../../content/applications/websites/website/configuration/google_search_console.rst:96 msgid "In Google Search Console, click :guilabel:`Verify`. If you perform the steps above correctly, verification should be done immediately." msgstr "" -#: ../../content/applications/websites/website/configuration/google_search_console.rst:99 +#: ../../content/applications/websites/website/configuration/google_search_console.rst:102 +msgid "HTML tag" +msgstr "" + +#: ../../content/applications/websites/website/configuration/google_search_console.rst:104 +msgid "This method involves copying a meta tag provided by Google and pasting it into your Odoo website. To verify your site ownership using an HTML tag, follow these instructions:" +msgstr "" + +#: ../../content/applications/websites/website/configuration/google_search_console.rst:107 +msgid "Expand the HTML tag section." +msgstr "" + +#: ../../content/applications/websites/website/configuration/google_search_console.rst:0 +msgid "Open HTML tag section." +msgstr "" + +#: ../../content/applications/websites/website/configuration/google_search_console.rst:112 +msgid ":guilabel:`Copy` the HTML tag to clipboard." +msgstr "" + +#: ../../content/applications/websites/website/configuration/google_search_console.rst:113 +msgid "On your Odoo website, click :guilabel:`Edit` in the upper-right corner, go to the :guilabel:`Theme` tab, scroll down to the :guilabel:`Advanced` section, then click :guilabel:` and ` next to :guilabel:`Code Injection`. Paste the copied tag into the first field (:guilabel:``), and click :guilabel:`Save`." +msgstr "" + +#: ../../content/applications/websites/website/configuration/google_search_console.rst:0 +msgid "Paste tag in head field." +msgstr "" + +#: ../../content/applications/websites/website/configuration/google_search_console.rst:121 +msgid "Return to :abbr:`GSC (Google Search Console)` and click :guilabel:`Verify`." +msgstr "" + +#: ../../content/applications/websites/website/configuration/google_search_console.rst:124 msgid ":doc:`domain_names`" msgstr "" @@ -5458,11 +5804,11 @@ msgid "Odoo allows you to create multiple websites from the same database. This msgstr "" #: ../../content/applications/websites/website/configuration/multi_website.rst:11 -msgid "Each website can be designed and configured independently with its own :doc:`domain name `, :doc:`theme <../web_design/themes>`, :doc:`pages <../pages>`, :doc:`menus <../pages/header_footer>`, :doc:`languages `, :doc:`products <../../ecommerce/products>`, assigned sales team, etc. They can also :ref:`share content and pages `." +msgid "Each website can be designed and configured independently with its own :doc:`domain name `, :doc:`theme <../web_design/themes>`, :doc:`pages <../structure/pages>`, :doc:`menus <../structure/header_footer>`, :doc:`languages `, :doc:`products <../../ecommerce/products>`, assigned sales team, etc. They can also :ref:`share content and pages `." msgstr "" #: ../../content/applications/websites/website/configuration/multi_website.rst:18 -msgid "Duplicate content (i.e., pages and content shared between multiple websites) can have a negative impact on :doc:`../pages/seo`." +msgid "Duplicate content (i.e., pages and content shared between multiple websites) can have a negative impact on :doc:`../structure/seo`." msgstr "" #: ../../content/applications/websites/website/configuration/multi_website.rst:22 @@ -5723,7 +6069,7 @@ msgid "Cloudflare Turnstile verification error message" msgstr "" #: ../../content/applications/websites/website/configuration/spam_protection.rst:56 -#: ../../content/applications/websites/website/pages.rst:46 +#: ../../content/applications/websites/website/structure/pages.rst:46 msgid "Click :guilabel:`Create`." msgstr "" @@ -5875,7 +6221,7 @@ msgid "Install languages" msgstr "" #: ../../content/applications/websites/website/configuration/translate.rst:16 -msgid "To allow translation of your website, you must first :doc:`install <../../../general/users/language>` the required languages and add them to your website. To do so, go to :menuselection:`Website --> Configuration --> Settings` and click :icon:`fa-arrow-right` :guilabel:`Install languages` in the :guilabel:`Website Info` section. In the dialog box that opens, select the :guilabel:`Languages` you want from the dropdown menu, tick the required :guilabel:`Websites to translate`, and click :guilabel:`Add`." +msgid "To allow translation of your website, you must first :doc:`install <../../../general/users/language>` the required languages and add them to your website. To do so, go to :menuselection:`Website --> Configuration --> Settings` and click :icon:`fa-arrow-right` :guilabel:`Install new languages` in the :guilabel:`Website Info` section. In the dialog box that opens, select the :guilabel:`Languages` you want from the dropdown menu, tick the required :guilabel:`Websites to translate`, and click :guilabel:`Add`." msgstr "" #: ../../content/applications/websites/website/configuration/translate.rst:23 @@ -6138,1149 +6484,1161 @@ msgstr "" msgid "You can also access the mail group's moderation rules by going to :menuselection:`Website --> Configuration --> Mailing Lists`, selecting the group, then clicking the :guilabel:`Moderations` smart button." msgstr "" -#: ../../content/applications/websites/website/pages.rst:5 -msgid "Pages" +#: ../../content/applications/websites/website/reporting/analytics.rst:3 +msgid "Website analytics" msgstr "" -#: ../../content/applications/websites/website/pages.rst:7 -msgid "Odoo allows you to create pages for your website and customize their content and appearance to your needs." +#: ../../content/applications/websites/website/reporting/analytics.rst:5 +msgid "Website analytics helps website owners monitor how people use their site. It provides data on visitor demographics, behavior, and interactions, helping improve websites and marketing strategies." msgstr "" -#: ../../content/applications/websites/website/pages.rst:12 -msgid "**Static** pages, such as the homepage or any :ref:`custom-created `, contain fixed content that does not change dynamically. You can manually create these pages, define their URLs, and adapt their :ref:`properties ` as needed. **Dynamic** pages, on the other hand, are generated dynamically. All pages generated automatically by Odoo, for example, when you install an app or module (e.g., `/shop` or `/blog`) or publish a new product or :doc:`blog post <../blog>`, are dynamic pages and are therefore managed differently." +#: ../../content/applications/websites/website/reporting/analytics.rst:8 +msgid "You can track your Odoo website's traffic using :ref:`analytics/plausible` or :ref:`analytics/google-analytics`. We recommend using Plausible.io as it is privacy-friendly, lightweight, and easy to use." msgstr "" -#: ../../content/applications/websites/website/pages.rst:22 -msgid "Page creation" +#: ../../content/applications/websites/website/reporting/analytics.rst:12 +msgid "The Plausible Analytics dashboard is also integrated into Odoo and can be accessed via :menuselection:`Website --> Reporting --> Analytics`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:24 -msgid "Website pages can be created from the **frontend** and the **backend**. To create a new website page, proceed as follows:" +#: ../../content/applications/websites/website/reporting/analytics.rst:18 +msgid "Plausible.io" msgstr "" -#: ../../content/applications/websites/website/pages.rst:27 -msgid "Either open the **Website** app, click :guilabel:`+ New` in the top-right corner, then select :guilabel:`Page`;" +#: ../../content/applications/websites/website/reporting/analytics.rst:20 +msgid "Odoo hosts its own Plausible.io server and provides a free and ready-to-use Plausible.io solution for **Odoo Online** databases that use the odoo.com domain. Odoo automatically creates and sets up your account. Start using it by going to :menuselection:`Website --> Reporting --> Analytics`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:29 -msgid "Or go to :menuselection:`Website --> Site --> Pages` and click :guilabel:`New`." +#: ../../content/applications/websites/website/reporting/analytics.rst:26 +msgid "If you use a custom :doc:`domain name <../configuration/domain_names>` (e.g., `example.com`), you need to create your own Plausible.io account and subscription." msgstr "" -#: ../../content/applications/websites/website/pages.rst:30 -msgid "In the :guilabel:`New Page` selection menu, click on a template. They are sorted by type:" +#: ../../content/applications/websites/website/reporting/analytics.rst:28 +msgid "**If you already have a Plausible.io account** and you want to connect it to your Odoo Online database, you must create two `ir.config.parameters` to use Plausible.io's servers. To do so, enable the :ref:`developer mode ` and go to :menuselection:`General Settings --> Technical --> System Parameters`. Click :guilabel:`New` and fill in the following :guilabel:`Key` and :guilabel:`Value` fields:" msgstr "" -#: ../../content/applications/websites/website/pages.rst:32 -msgid ":guilabel:`Basic`: Multi-purpose page. A blank page is also available to start from scratch." +#: ../../content/applications/websites/website/reporting/analytics.rst:37 +msgid "Key" msgstr "" -#: ../../content/applications/websites/website/pages.rst:33 -msgid ":guilabel:`About`: Information about your brand." +#: ../../content/applications/websites/website/reporting/analytics.rst:38 +msgid "Value" msgstr "" -#: ../../content/applications/websites/website/pages.rst:34 -msgid ":guilabel:`Landing Pages`: Summary of company content and info." +#: ../../content/applications/websites/website/reporting/analytics.rst:39 +msgid "`website.plausible_script`" msgstr "" -#: ../../content/applications/websites/website/pages.rst:35 -msgid ":guilabel:`Gallery`: Photos and media showcase." +#: ../../content/applications/websites/website/reporting/analytics.rst:40 +msgid "`https://plausible.io/js/plausible.js`" msgstr "" -#: ../../content/applications/websites/website/pages.rst:36 -msgid ":guilabel:`Services`: Focus on what you're selling and contact." +#: ../../content/applications/websites/website/reporting/analytics.rst:41 +msgid "`website.plausible_server`" msgstr "" -#: ../../content/applications/websites/website/pages.rst:37 -msgid ":guilabel:`Pricing Plans`: Highlight on subscription and prices." +#: ../../content/applications/websites/website/reporting/analytics.rst:42 +msgid "`https://plausible.io`" msgstr "" -#: ../../content/applications/websites/website/pages.rst:38 -msgid ":guilabel:`Team`: The people behind your company." +#: ../../content/applications/websites/website/reporting/analytics.rst:44 +msgid "Then, follow the steps below to connect your existing account with Plausible.io servers." msgstr "" -#: ../../content/applications/websites/website/pages.rst:39 -msgid ":guilabel:`Custom`: To select a custom template. To add a template to this category, open the page you want to save as a template, then go to :menuselection:`Site --> Properties`, enter the :guilabel:`Page Title`, :ref:`edit the page's properties `, enable :guilabel:`Is a template`, and click :guilabel:`Save`." +#: ../../content/applications/websites/website/reporting/analytics.rst:47 +msgid "Deactivating the free Plausible.io account linked to your **Odoo Online** database will also remove the existing keys. As a result, new keys will be generated, while all historical data will remain associated with the old keys. If you plan to deactivate the account, it is recommended to save the existing keys to preserve access to that data." msgstr "" -#: ../../content/applications/websites/website/pages.rst:45 -msgid "Enter a :guilabel:`Page Title`; this title is used in the menu and the page's URL." +#: ../../content/applications/websites/website/reporting/analytics.rst:52 +msgid "If your database is hosted on **Odoo.sh** or **On-premise**, or if you wish to use your own Plausible.io account, proceed as follows:" msgstr "" -#: ../../content/applications/websites/website/pages.rst:47 -msgid "If needed, :doc:`customize the page's content and appearance ` using the website editor, then click :guilabel:`Save`." +#: ../../content/applications/websites/website/reporting/analytics.rst:55 +msgid "Create or sign in to a Plausible.io account using the following link: ``_." msgstr "" -#: ../../content/applications/websites/website/pages.rst:49 -msgid ":ref:`Publish ` the page." +#: ../../content/applications/websites/website/reporting/analytics.rst:56 +msgid "If you are creating a new account, go through the registration and activation steps. On the :guilabel:`Add website info` page, add the :guilabel:`Domain` of your website without including `www` (e.g., `example.odoo.com`) and change the :guilabel:`Reporting Timezone`, if necessary. Click :guilabel:`Install Plausible` to proceed to the next step. Ignore the :guilabel:`Manual installation` instructions and click :guilabel:`Start collecting data`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:52 -msgid "Disable :guilabel:`Add to menu` if the page should not appear in the menu." +#: ../../content/applications/websites/website/reporting/analytics.rst:61 +msgid "Once done, click the Plausible.io logo in the upper-left part of the page to access your `list of websites `_, then click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) icon next to the website and select :icon:`fa-cog` :guilabel:`Settings` from the drop-down menu." msgstr "" -#: ../../content/applications/websites/website/pages.rst:57 -msgid "Page management" +#: ../../content/applications/websites/website/reporting/analytics.rst:0 +msgid "Click the gear icon in the list of websites." msgstr "" -#: ../../content/applications/websites/website/pages.rst:62 -msgid "Publishing/unpublishing pages" +#: ../../content/applications/websites/website/reporting/analytics.rst:69 +msgid "In the sidebar, select :guilabel:`Visibility`, then click :guilabel:`Add Shared link`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:64 -msgid "Pages need to be published to make them visible to website visitors. To publish or unpublish a page, access it and toggle the switch in the upper-right corner from :guilabel:`Unpublished` to :guilabel:`Published`, or vice versa." +#: ../../content/applications/websites/website/reporting/analytics.rst:70 +msgid "Enter a :guilabel:`Name`, leave the :guilabel:`Password (optional)` field empty, as the Plausible analytics dashboard integration in Odoo does not support it, then click :guilabel:`Create shared link`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:-1 -msgid "Unpublished/Published toggle" +#: ../../content/applications/websites/website/reporting/analytics.rst:74 +msgid "Copy the shared link." msgstr "" -#: ../../content/applications/websites/website/pages.rst:72 -msgid "It is also possible to:" +#: ../../content/applications/websites/website/reporting/analytics.rst:0 +msgid "Copy the shared link URL from Plausible.io" msgstr "" -#: ../../content/applications/websites/website/pages.rst:74 -msgid "Publish/unpublish a page from the :ref:`page properties `, where you can define a publishing date and/or restrict the page's visibility if needed;" +#: ../../content/applications/websites/website/reporting/analytics.rst:79 +#: ../../content/applications/websites/website/reporting/analytics.rst:124 +msgid "In Odoo, go to :menuselection:`Website --> Configuration --> Settings`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:76 -msgid "Publish/unpublish several pages at once: go to :menuselection:`Website --> Site --> Pages`, select the pages, then click :guilabel:`Action` and select :guilabel:`Publish` or :guilabel:`Unpublish`." +#: ../../content/applications/websites/website/reporting/analytics.rst:80 +msgid "In the :guilabel:`SEO` section, enable :guilabel:`Plausible Analytics`, then paste the :guilabel:`Shared Link Auth` and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:81 -msgid "Alternatively, you can define any :ref:`static page ` as your homepage by going to :menuselection:`Website --> Site --> Properties`. Select the :guilabel:`Publish` tab and enable :guilabel:`Use as Homepage`." +#: ../../content/applications/websites/website/reporting/analytics.rst:84 +msgid "If you have :doc:`multiple websites <../configuration/multi_website>`, add your websites to your Plausible.io account by going to ``_ and clicking :guilabel:`+ Add Website`. In Odoo, in the **Website settings**, make sure to select the website in the :guilabel:`Settings of Website` field at the top of the page before pasting the :guilabel:`Shared link`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:88 -msgid "Page properties" +#: ../../content/applications/websites/website/reporting/analytics.rst:91 +msgid "Odoo automatically pushes two custom goals: `Lead Generation` and `Shop`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:90 -msgid "To modify a :ref:`static page's ` properties, access the page you wish to modify, then go to :menuselection:`Site --> Properties`, where you can change the following properties:" +#: ../../content/applications/websites/website/reporting/analytics.rst:94 +msgid "`Plausible Analytics documentation `_" msgstr "" -#: ../../content/applications/websites/website/pages.rst:94 -msgid ":guilabel:`Page URL` : Modify the page URL in the field. In this case, you can redirect the old URL to the new one if needed. To do so, enable :guilabel:`Redirect old URL`, then select the :guilabel:`Type` of :ref:`redirection `:" +#: ../../content/applications/websites/website/reporting/analytics.rst:99 +msgid "Google Analytics" msgstr "" -#: ../../content/applications/websites/website/pages.rst:98 -msgid ":guilabel:`301 Moved permanently`: to redirect the page permanently." +#: ../../content/applications/websites/website/reporting/analytics.rst:101 +msgid "To follow your Odoo website's traffic with Google Analytics:" msgstr "" -#: ../../content/applications/websites/website/pages.rst:99 -msgid ":guilabel:`302 Moved temporarily`: to redirect the page temporarily." +#: ../../content/applications/websites/website/reporting/analytics.rst:103 +msgid "Create or sign in to a Google account using the following link: ``_." msgstr "" -#: ../../content/applications/websites/website/pages.rst:0 -msgid "Redirect old URL" +#: ../../content/applications/websites/website/reporting/analytics.rst:104 +msgid "If you are setting up Google Analytics for the first time, click :guilabel:`Start measuring` and go through the account creation step." msgstr "" -#: ../../content/applications/websites/website/pages.rst:104 -msgid ":guilabel:`In Menu`: Disable if you don't want the page to appear in the menu." +#: ../../content/applications/websites/website/reporting/analytics.rst:106 +msgid "If you already have a Google Analytics account, sign in and click the :icon:`fa-cog` icon in the bottom-left corner of the page to access the **Admin** page. Then, click :guilabel:`+ Create` and select :guilabel:`Property` from the drop-down menu." msgstr "" -#: ../../content/applications/websites/website/pages.rst:105 -msgid ":guilabel:`Is Homepage`: Enable if you want the page to be the homepage of your website." +#: ../../content/applications/websites/website/reporting/analytics.rst:110 +msgid "Complete the next steps: `property creation `_, business details and business objectives." msgstr "" -#: ../../content/applications/websites/website/pages.rst:106 -msgid ":guilabel:`Published`: Enable to publish the page." +#: ../../content/applications/websites/website/reporting/analytics.rst:112 +msgid "When you reach the **Data collection** step, choose the :guilabel:`Web` platform." msgstr "" -#: ../../content/applications/websites/website/pages.rst:107 -msgid ":guilabel:`Publishing Date`: To publish the page at a specific date and time, click the field, set the date and time, then press **Enter** or click :guilabel:`Apply` to validate your selection." +#: ../../content/applications/websites/website/reporting/analytics.rst:0 +msgid "Choose a platform for your Google Analytics property." msgstr "" -#: ../../content/applications/websites/website/pages.rst:109 -msgid ":guilabel:`Indexed`: Disable if you don't want the page to appear in search engine results." +#: ../../content/applications/websites/website/reporting/analytics.rst:117 +msgid "Set up your data stream: Specify your :guilabel:`Website URL` and a :guilabel:`Stream name`, then click :guilabel:`Create & continue`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:110 -msgid ":guilabel:`Visibility`: Select who can access the page:" +#: ../../content/applications/websites/website/reporting/analytics.rst:119 +msgid "Copy the :guilabel:`Measurement ID`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:112 -msgid ":guilabel:`Public`: Everyone can access the page." +#: ../../content/applications/websites/website/reporting/analytics.rst:0 +msgid "Measurement ID in Google Analytics." msgstr "" -#: ../../content/applications/websites/website/pages.rst:113 -msgid ":guilabel:`Signed In`: Only signed-in users can access the page." +#: ../../content/applications/websites/website/reporting/analytics.rst:125 +msgid "In the :guilabel:`SEO` section, enable :guilabel:`Google Analytics`, then paste the :guilabel:`Measurement ID` and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:114 -msgid ":guilabel:`Restricted Group`: Select the :doc:`user access group(s) ` in the :guilabel:`Authorized group` field." +#: ../../content/applications/websites/website/reporting/analytics.rst:129 +msgid "If you have :doc:`multiple websites <../configuration/multi_website>` with separate domains, it is recommended to create `one property `_ per domain. In Odoo, in the **Website settings**, make sure to select the website in the :guilabel:`Settings of Website` field at the top of the page before pasting the :guilabel:`Measurement ID`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:116 -msgid ":guilabel:`With Password`: Type the password required to access the page in the :guilabel:`Password` field." +#: ../../content/applications/websites/website/reporting/analytics.rst:136 +msgid "`Google documentation on setting up Analytics for a website `_" msgstr "" -#: ../../content/applications/websites/website/pages.rst:119 -msgid ":guilabel:`Is a template`: Toggle the switch to save the page as a template and add it to the :guilabel:`Custom` category." +#: ../../content/applications/websites/website/reporting/analytics.rst:142 +msgid "Google Tag Manager" msgstr "" -#: ../../content/applications/websites/website/pages.rst:123 -msgid "*Some* of these properties can also be modified in batch from :menuselection:`Website --> Site --> Pages`." +#: ../../content/applications/websites/website/reporting/analytics.rst:144 +msgid "Google Tag Manager is a tag management system that allows you to easily update measurement codes and related code fragments, collectively known as tags on your website or mobile app, directly through the code injector." msgstr "" -#: ../../content/applications/websites/website/pages.rst:129 -msgid "Duplicating pages" +#: ../../content/applications/websites/website/reporting/analytics.rst:149 +msgid ":abbr:`GTM (Google Tag Manager)` is not an analytics tool and does not offer reporting features; it is used to collect data and works alongside Google Analytics to provide more detailed insights. In order to use GTM properly, it is recommended to configure Google Analytics as well." msgstr "" -#: ../../content/applications/websites/website/pages.rst:131 -msgid "To duplicate a page, access the page, then go to :menuselection:`Site --> Properties`, and click :guilabel:`Duplicate Page`. Enter a :guilabel:`Page Name`, then click :guilabel:`OK`. By default, the new page is added after the duplicated page in the menu, but you can remove it from the menu or change its position using the :doc:`menu editor `." +#: ../../content/applications/websites/website/reporting/analytics.rst:153 +msgid "For more information refer to the `documentation on linking Google Analytics and Google Tag Manager `_." msgstr "" -#: ../../content/applications/websites/website/pages.rst:139 -msgid "Deleting pages" +#: ../../content/applications/websites/website/reporting/analytics.rst:157 +msgid "Some GTM tags use data layers (e.g., advanced eCommerce tracking data layers) to retrieve variables and send them to Google Analytics. Data layers are currently not managed in Odoo." msgstr "" -#: ../../content/applications/websites/website/pages.rst:141 -msgid "To delete a page, proceed as follows:" +#: ../../content/applications/websites/website/reporting/analytics.rst:159 +msgid "Google Tag Manager may not be compliant with local data protection regulations." msgstr "" -#: ../../content/applications/websites/website/pages.rst:143 -msgid "Access the page, then go to :menuselection:`Site --> Properties` and click :guilabel:`Delete Page`." +#: ../../content/applications/websites/website/reporting/analytics.rst:161 +msgid "To configure GTM, proceed as follows:" msgstr "" -#: ../../content/applications/websites/website/pages.rst:144 -msgid "A pop-up window shows all links referring to the page you want to delete, organized by category. To ensure website visitors don't land on an error page, you must update all the links on your website referring to the page. To do so, expand a category, then click on a link to open it in a new window. Alternatively, you can set up a :ref:`redirection ` for the deleted page." +#: ../../content/applications/websites/website/reporting/analytics.rst:163 +msgid "Create or sign in to a Google account by going to https://tagmanager.google.com/." msgstr "" -#: ../../content/applications/websites/website/pages.rst:149 -msgid "Once you have updated the links (or set up a :ref:`redirection `), tick the :guilabel:`I am sure about this` check box, then click :guilabel:`OK`." +#: ../../content/applications/websites/website/reporting/analytics.rst:165 +msgid "In the :guilabel:`Accounts` tab, click :guilabel:`Create Account`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:155 -msgid "URL redirect mapping" +#: ../../content/applications/websites/website/reporting/analytics.rst:167 +msgid "Enter an :guilabel:`Account Name` and select the account's :guilabel:`Country`." +msgstr "" + +#: ../../content/applications/websites/website/reporting/analytics.rst:169 +msgid "Enter your website's URL in the :guilabel:`Container name` field and select the :guilabel:`Target platform`." msgstr "" -#: ../../content/applications/websites/website/pages.rst:157 -msgid "URL redirect mapping consists in sending visitors and search engines to a URL different from the one they initially requested. This technique is used, for example, to prevent broken links when you :ref:`delete a page `, :ref:`modify its URL `, or migrate your site from another platform to an Odoo :doc:`domain `. It can also be used to improve :doc:`pages/seo`." +#: ../../content/applications/websites/website/reporting/analytics.rst:172 +msgid "Click :guilabel:`Create` and agree to the Terms of Service." msgstr "" -#: ../../content/applications/websites/website/pages.rst:163 -msgid "To access existing URL redirections and create new ones, :doc:`activate the developer mode ` and go to :menuselection:`Website --> Configuration --> Redirects`." +#: ../../content/applications/websites/website/reporting/analytics.rst:174 +msgid "Copy the `` and `` codes from the popup window. Then, go to your website, click :guilabel:`Edit`, go to the :guilabel:`Theme` tab, scroll down to the :guilabel:`Advanced` section, then click :guilabel:`` and :guilabel:`` next to :guilabel:`Code Injection` to paste the codes." msgstr "" -#: ../../content/applications/websites/website/pages.rst:168 -msgid "A redirect record is added automatically every time you :ref:`modify a page's URL ` and enable :guilabel:`Redirect Old URL`." +#: ../../content/applications/websites/website/reporting/analytics.rst:0 +msgid "Install Google Tag Manager" msgstr "" -#: ../../content/applications/websites/website/pages.rst:170 -msgid "You can set up redirections for :ref:`static and dynamic pages `." +#: ../../content/applications/websites/website/reporting/analytics.rst:183 +msgid "The data is collected in the marketing tools used to monitor the website (e.g., Google Analytics, Plausible, Facebook Pixel), not in Odoo." msgstr "" -#: ../../content/applications/websites/website/pages.rst:172 -msgid "To create a new redirection, click the :guilabel:`New` button, then fill in the fields:" +#: ../../content/applications/websites/website/reporting/analytics.rst:187 +msgid "`Setting up click triggers on Google `_" msgstr "" -#: ../../content/applications/websites/website/pages.rst:174 -msgid ":guilabel:`Name`: Enter a name to identify the redirect." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:3 +msgid "Link tracker" msgstr "" -#: ../../content/applications/websites/website/pages.rst:175 -msgid ":guilabel:`Action`: Select the type of redirection:" +#: ../../content/applications/websites/website/reporting/link_tracker.rst:5 +msgid "The link tracker allow you to create tracked links to measure your marketing campaigns' effectiveness. They let you determine which channels bring you the most visitors and make informed decisions." msgstr "" -#: ../../content/applications/websites/website/pages.rst:177 -msgid ":guilabel:`404 Not found`: visitors are redirected to a 404 error page when they try to access an unpublished or deleted page." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:12 +msgid "The :guilabel:`Link Tracker` module is not installed by default. You need to enable the :guilabel:`Email Marketing` option by going to :menuselection:`Website --> Configuration --> Settings.` Alternatively, you can :doc:`install <../../../general/apps_modules>` the :guilabel:`Link Tracker` module itself or one of the marketing apps." msgstr "" -#: ../../content/applications/websites/website/pages.rst:179 -msgid ":guilabel:`301 Moved Permanently`: for permanent redirections of unpublished or deleted :ref:`static pages `. The new URL is shown in search engine results, and the redirect is cached by browsers." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:18 +msgid "Create a traceable URL" msgstr "" -#: ../../content/applications/websites/website/pages.rst:182 -msgid ":guilabel:`302 Moved Temporarily`: for short-term redirections, for example, if you are redesigning or updating a page. The new URL is neither cached by browsers nor shown in search engine results." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:20 +msgid "To create and manage tracked links, navigate to :menuselection:`Website --> Site --> Link Tracker`. Fill in the following information and click :guilabel:`Get tracked link` to generate a tracking URL." msgstr "" -#: ../../content/applications/websites/website/pages.rst:185 -msgid ":guilabel:`308 Redirect/Rewrite`: for permanent redirections of existing :ref:`dynamic pages `. The URL is renamed; the new name is shown in search engine results and is cached by browsers. Use this redirect type to rename a dynamic page, for example, if you wish to rename `/shop` into `/market`." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:23 +msgid ":guilabel:`URL`: The URL which is the target of the campaign. It is automatically populated with the URL from where you access the menu." msgstr "" -#: ../../content/applications/websites/website/pages.rst:190 -msgid ":guilabel:`URL from`: Enter the URL to be redirected (e.g., `/about-the-company`) or search for the desired :ref:`dynamic page ` and select it from the list." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:26 +msgid ":guilabel:`Campaign`: The specific campaign the link should be associated with. This parameter is used to distinguish the different campaigns." msgstr "" -#: ../../content/applications/websites/website/pages.rst:192 -msgid ":guilabel:`URL to`: For 301, 302, and 308 redirects, enter the URL to be redirected to. If you want to redirect to an external URL, include the protocol (e.g., `https://`)." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:29 +msgid ":guilabel:`Medium`: The medium describes the category or method through which the visitor arrives at your site, such as organic search, paid search, social media ad, email, etc." msgstr "" -#: ../../content/applications/websites/website/pages.rst:194 -msgid ":guilabel:`Website`: Select a specific website." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:32 +msgid ":guilabel:`Source`: The source identifies the precise platform or website that referred the visitor, such as a search engine, a newsletter, or a website." msgstr "" -#: ../../content/applications/websites/website/pages.rst:195 -msgid ":guilabel:`Sequence`: To define the order in which redirections are performed, e.g., in the case of redirect chains (i.e., a series of redirects where one URL is redirected to another one, which is itself further redirected to another URL)." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:-1 +msgid "Create a link tracker URL" msgstr "" -#: ../../content/applications/websites/website/pages.rst:199 -msgid "Toggle the :guilabel:`Activate` switch to deactivate the redirection." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:38 +msgid "The :guilabel:`Campaign`, :guilabel:`Medium`, and :guilabel:`Source` are called :abbr:`UTM (Urchin Tracking Module)` parameters. They are incorporated in the tracked URL." msgstr "" -#: ../../content/applications/websites/website/pages.rst:202 -msgid "404, 301, and 302 redirections are meant to migrate traffic from :ref:`unpublished ` or :ref:`deleted ` pages to *new* pages, while the 308 redirect is used for *permanent* redirections of *existing* pages." +#: ../../content/applications/websites/website/reporting/link_tracker.rst:42 +msgid "You can customize the :ref:`visibility ` of building blocks using the :abbr:`UTM (Urchin Tracking Module)` parameters, amongst other conditions." msgstr "" -#: ../../content/applications/websites/website/pages.rst:207 -msgid "`Google documentation on redirects and search `_" +#: ../../content/applications/websites/website/reporting/link_tracker.rst:46 +msgid "Tracked links overview" +msgstr "" + +#: ../../content/applications/websites/website/reporting/link_tracker.rst:48 +msgid "To get an overview of your tracked links, go to :menuselection:`Website --> Site --> Link Tracker` and scroll down to :guilabel:`Your tracked links` section." +msgstr "" + +#: ../../content/applications/websites/website/reporting/link_tracker.rst:-1 +msgid "Get an overview of all the links you track." msgstr "" -#: ../../content/applications/websites/website/pages.rst:208 -msgid ":doc:`pages/seo`" +#: ../../content/applications/websites/website/reporting/link_tracker.rst:55 +msgid "Statistics" +msgstr "" + +#: ../../content/applications/websites/website/reporting/link_tracker.rst:57 +msgid "To measure the performance of tracked links, click the :guilabel:`Stats` button." +msgstr "" + +#: ../../content/applications/websites/website/reporting/link_tracker.rst:-1 +msgid "View the statistics related to a specific tracked link." +msgstr "" + +#: ../../content/applications/websites/website/reporting/link_tracker.rst:62 +msgid "Scroll down to the :guilabel:`Statistics` section to get an overview of the number of clicks of your tracked links. You can display information for a specific period by clicking the :guilabel:`All Time`, :guilabel:`Last Month`, or :guilabel:`Last Week` options." +msgstr "" + +#: ../../content/applications/websites/website/structure.rst:7 +msgid "Structure" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:3 +#: ../../content/applications/websites/website/structure.rst:9 +msgid "Structure your website using :doc:`pages <../website/structure/pages>`, provide consistent visual and navigational framework with :doc:`headers and footers <../website/structure/header_footer>` and optimize your online presence with :doc:`Search Engine Optimization (SEO) <../website/structure/seo>`." +msgstr "" + +#: ../../content/applications/websites/website/structure/header_footer.rst:3 msgid "Headers and footers" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:5 +#: ../../content/applications/websites/website/structure/header_footer.rst:5 msgid "The website header is the top section of a web page and usually contains elements such as the logo, the :ref:`menu `, the search bar, the sign-in/customer account button, etc. The footer is displayed at the bottom of a web page and usually contains information such as contact details, links, legal notices, and other options." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:11 +#: ../../content/applications/websites/website/structure/header_footer.rst:11 msgid "Header design" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:13 +#: ../../content/applications/websites/website/structure/header_footer.rst:13 msgid "To modify the header's design, click on :guilabel:`Edit`, then click on the header. The following options are available in the :guilabel:`Header` section of the :guilabel:`Customize` tab in the website editor:" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:17 +#: ../../content/applications/websites/website/structure/header_footer.rst:17 msgid "Choose a :guilabel:`Template` from the drop-down menu." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:18 +#: ../../content/applications/websites/website/structure/header_footer.rst:18 msgid "Select :guilabel:`Background` settings to change the color palette through different :ref:`Theme styles `, :guilabel:`Custom` color options, and :guilabel:`Gradient` ones." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:21 +#: ../../content/applications/websites/website/structure/header_footer.rst:21 msgid "When adding a :guilabel:`Border` to the header, its size, style, and color can be defined." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:22 +#: ../../content/applications/websites/website/structure/header_footer.rst:22 msgid "Adapt :guilabel:`Round corners` to fit the design." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:23 +#: ../../content/applications/websites/website/structure/header_footer.rst:23 msgid "Add a :guilabel:`Shadow` and define its :guilabel:`Color`, :guilabel:`Offset`, :guilabel:`Blur`, and :guilabel:`Spread`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:25 +#: ../../content/applications/websites/website/structure/header_footer.rst:25 msgid "Add a :guilabel:`Scroll Effect`. Hover on an effect to preview it." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:26 +#: ../../content/applications/websites/website/structure/header_footer.rst:26 msgid "Choose the :guilabel:`Header Position` between :guilabel:`Regular`, :guilabel:`Hidden`, and :guilabel:`Over The Content`. When :guilabel:`Over The Content` is selected, you can customize the :guilabel:`Background` and :guilabel:`Text Color`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:29 +#: ../../content/applications/websites/website/structure/header_footer.rst:29 msgid "Show or hide :guilabel:`Elements` such as text, the search bar, :guilabel:`Sign in` button, social media links, :guilabel:`Contact us` button, and logo." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:32 -#: ../../content/applications/websites/website/pages/header_footer.rst:109 -#: ../../content/applications/websites/website/pages/header_footer.rst:151 -#: ../../content/applications/websites/website/pages/header_footer.rst:169 +#: ../../content/applications/websites/website/structure/header_footer.rst:32 +#: ../../content/applications/websites/website/structure/header_footer.rst:109 +#: ../../content/applications/websites/website/structure/header_footer.rst:151 +#: ../../content/applications/websites/website/structure/header_footer.rst:169 msgid "To finalize changes, click on :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:35 +#: ../../content/applications/websites/website/structure/header_footer.rst:35 msgid "To hide the header, click on :guilabel:`Edit`, click on the header, and go to the :guilabel:`Theme` tab of the website editor. Scroll down to the :guilabel:`Advanced` section and toggle the :guilabel:`Show Header` switch to hide/show the header." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:42 +#: ../../content/applications/websites/website/structure/header_footer.rst:42 msgid "Header content" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:44 +#: ../../content/applications/websites/website/structure/header_footer.rst:44 msgid "Menus organize the header’s content and help users navigate through web pages effectively. User-friendly and well-structured menus also play a crucial role in improving :doc:`search engine rankings `." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:51 +#: ../../content/applications/websites/website/structure/header_footer.rst:51 msgid "Menu editor" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:53 +#: ../../content/applications/websites/website/structure/header_footer.rst:53 msgid "The menu editor allows to edit the website's header and add :ref:`menu items ` and :ref:`mega menus `." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:57 +#: ../../content/applications/websites/website/structure/header_footer.rst:57 msgid "To edit the header's content, go to :menuselection:`Website --> Site --> Menu Editor`. From there, you can:" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:60 +#: ../../content/applications/websites/website/structure/header_footer.rst:60 msgid "**rename** a menu item or change its URL using the :guilabel:`Edit Menu Item` icon;" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:61 +#: ../../content/applications/websites/website/structure/header_footer.rst:61 msgid "**delete** a menu item using the :guilabel:`Delete Menu Item` icon;" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:62 +#: ../../content/applications/websites/website/structure/header_footer.rst:62 msgid "**move** a menu item by dragging and dropping it to the desired place in the menu;" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:63 +#: ../../content/applications/websites/website/structure/header_footer.rst:63 msgid "**create a regular drop-down menu** by dragging and dropping the sub-menu items to the right, underneath their parent menu." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:-1 +#: ../../content/applications/websites/website/structure/header_footer.rst:-1 msgid "Menu editor with sub-menus" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:70 +#: ../../content/applications/websites/website/structure/header_footer.rst:70 msgid "You can also access the menu editor by clicking :guilabel:`Edit`, selecting any menu item, and clicking the :guilabel:`Edit Menu` icon." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:0 +#: ../../content/applications/websites/website/structure/header_footer.rst:0 msgid "Access the Menu editor while in Edit mode." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:79 +#: ../../content/applications/websites/website/structure/header_footer.rst:79 msgid "Adding menu items" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:81 -msgid "By default, pages are added to the menu as drop-down menu items when :doc:`they are created <../pages>`. To add a new menu item, follow these steps:" +#: ../../content/applications/websites/website/structure/header_footer.rst:81 +msgid "By default, pages are added to the menu as drop-down menu items when :doc:`they are created <../structure/pages>`. To add a new menu item, follow these steps:" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:84 +#: ../../content/applications/websites/website/structure/header_footer.rst:84 msgid "Go to :menuselection:`Website --> Site --> Menu Editor`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:85 +#: ../../content/applications/websites/website/structure/header_footer.rst:85 msgid "In the menu editor, click :guilabel:`Add Menu Item`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:86 +#: ../../content/applications/websites/website/structure/header_footer.rst:86 msgid "In the pop-up window, enter the :guilabel:`Name` to be displayed in the menu." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:87 +#: ../../content/applications/websites/website/structure/header_footer.rst:87 msgid "Type `/` in the :guilabel:`URL or Email` field to search for a page on your website or `#` to search for an existing custom anchor." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:89 +#: ../../content/applications/websites/website/structure/header_footer.rst:89 msgid "Click :guilabel:`OK`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:90 +#: ../../content/applications/websites/website/structure/header_footer.rst:90 msgid "Edit the :ref:`menu structure ` if needed, then :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:94 +#: ../../content/applications/websites/website/structure/header_footer.rst:94 msgid "Menu item design" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:96 +#: ../../content/applications/websites/website/structure/header_footer.rst:96 msgid "To modify the menu items, click on :guilabel:`Edit`, click on a menu item, then go to the :guilabel:`Navbar` section of the website editor. The following options are available:" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:99 +#: ../../content/applications/websites/website/structure/header_footer.rst:99 msgid "Adapt the :guilabel:`Mobile Alignment`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:100 +#: ../../content/applications/websites/website/structure/header_footer.rst:100 msgid "Choose the :guilabel:`Font` for the menu items." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:101 +#: ../../content/applications/websites/website/structure/header_footer.rst:101 msgid "Change the font size, color, and alignment in the :guilabel:`Format` field." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:102 +#: ../../content/applications/websites/website/structure/header_footer.rst:102 msgid "Select a :guilabel:`Links Style` to highlight the current page in the menu." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:103 +#: ../../content/applications/websites/website/structure/header_footer.rst:103 msgid "Change the :ref:`style of the header buttons `." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:104 +#: ../../content/applications/websites/website/structure/header_footer.rst:104 msgid "Choose to display the :guilabel:`Sub Menus` :guilabel:`On Hover` or :guilabel:`On Click`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:107 +#: ../../content/applications/websites/website/structure/header_footer.rst:107 msgid "The fields available in the :guilabel:`Navbar` section can vary depending on the chosen template." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:114 +#: ../../content/applications/websites/website/structure/header_footer.rst:114 msgid "Mega menus" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:116 +#: ../../content/applications/websites/website/structure/header_footer.rst:116 msgid "Mega menus are similar to drop-down menus, but instead of a simple list of sub-menus, they display a panel divided into groups of navigation options. This makes them suitable for websites with large amounts of content or :doc:`e-commerce websites <../../ecommerce>`, as they can help include all of your web pages or :doc:`e-commerce categories <../../ecommerce/products/catalog>` in the menu while still making all menu items visible at once." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:-1 +#: ../../content/applications/websites/website/structure/header_footer.rst:-1 msgid "Mega menu in the navigation bar." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:125 +#: ../../content/applications/websites/website/structure/header_footer.rst:125 msgid "To create a mega menu, go to :menuselection:`Website --> Site --> Menu Editor` and click :guilabel:`Add Mega Menu Item`. Enter the :guilabel:`Name` of the mega menu in the pop-up, click :guilabel:`OK`, then :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:129 +#: ../../content/applications/websites/website/structure/header_footer.rst:129 msgid "To adapt the options and content of the mega menu, click on a mega menu item in the header, then click :guilabel:`Edit`. Mega menus are composed of building blocks, which means you can customize each component individually. For example:" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:133 +#: ../../content/applications/websites/website/structure/header_footer.rst:133 msgid "Edit the text directly in the building block." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:134 +#: ../../content/applications/websites/website/structure/header_footer.rst:134 msgid "Edit a menu item's URL by selecting the menu item and clicking the :guilabel:`Edit link` button in the small preview pop-up. Type `/` to search for a page on your website, or `#` to search for an existing custom anchor." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:0 +#: ../../content/applications/websites/website/structure/header_footer.rst:0 msgid "Edit a mega menu option." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:141 +#: ../../content/applications/websites/website/structure/header_footer.rst:141 msgid "Move a menu item by dragging and dropping the related block to the desired position in the mega menu." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:143 +#: ../../content/applications/websites/website/structure/header_footer.rst:143 msgid "Delete a menu item by deleting the related block." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:145 +#: ../../content/applications/websites/website/structure/header_footer.rst:145 msgid "To adapt the general layout of the mega menu, go to the :guilabel:`Customize` tab of the website editor, then, in the :guilabel:`Mega Menu` section:" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:148 +#: ../../content/applications/websites/website/structure/header_footer.rst:148 msgid "Choose a :guilabel:`Template`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:149 +#: ../../content/applications/websites/website/structure/header_footer.rst:149 msgid "Pick the :guilabel:`Size`: either :guilabel:`Full-Width` or :guilabel:`Narrow`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:154 +#: ../../content/applications/websites/website/structure/header_footer.rst:154 msgid "Footer design" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:156 +#: ../../content/applications/websites/website/structure/header_footer.rst:156 msgid "To modify the footer, click on :guilabel:`Edit`, click on the footer, and in the :guilabel:`Footer` section of the :guilabel:`Customize` tab in the website editor:" msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:159 +#: ../../content/applications/websites/website/structure/header_footer.rst:159 msgid "Select a :guilabel:`Template`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:160 +#: ../../content/applications/websites/website/structure/header_footer.rst:160 msgid "Choose its :guilabel:`Colors`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:161 +#: ../../content/applications/websites/website/structure/header_footer.rst:161 msgid "Choose a :guilabel:`Slideout Effect`: :guilabel:`Regular` (i.e., no effect), :guilabel:`Slide Hover`, or :guilabel:`Shadow`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:163 +#: ../../content/applications/websites/website/structure/header_footer.rst:163 msgid "Toggle the :guilabel:`Copyright` switch to hide or show the copyright." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:164 +#: ../../content/applications/websites/website/structure/header_footer.rst:164 msgid "Choose the :guilabel:`Border` size." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:165 +#: ../../content/applications/websites/website/structure/header_footer.rst:165 msgid "Add a :guilabel:`Shadow`." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:166 +#: ../../content/applications/websites/website/structure/header_footer.rst:166 msgid "Add a :guilabel:`Scroll Top Button` and choose its position." msgstr "" -#: ../../content/applications/websites/website/pages/header_footer.rst:167 +#: ../../content/applications/websites/website/structure/header_footer.rst:167 msgid "Hide or show the footer by toggling the :guilabel:`Page visibility` switch." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:3 -msgid "Search Engine Optimization (SEO)" +#: ../../content/applications/websites/website/structure/pages.rst:5 +msgid "Pages" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:5 -msgid "Search Engine Optimization, often abbreviated as SEO, is a digital marketing strategy to improve a website's visibility and ranking in search engine results (e.g., in Google). It involves optimizing various elements on your website, including its content, social sharing, URLs, images, and page speed." +#: ../../content/applications/websites/website/structure/pages.rst:7 +msgid "Odoo allows you to create pages for your website and customize their content and appearance to your needs." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:11 -msgid "Odoo provides several modules to help you build your website content, such as :doc:`eCommerce <../../ecommerce>`, :doc:`Blog <../../blog>`, :doc:`eLearning <../../elearning>`, and :doc:`Forum <../../forum>`." +#: ../../content/applications/websites/website/structure/pages.rst:12 +msgid "**Static** pages, such as the homepage or any :ref:`custom-created `, contain fixed content that does not change dynamically. You can manually create these pages, define their URLs, and adapt their :ref:`properties ` as needed. **Dynamic** pages, on the other hand, are generated dynamically. All pages generated automatically by Odoo, for example, when you install an app or module (e.g., `/shop` or `/blog`) or publish a new product or :doc:`blog post <../../blog>`, are dynamic pages and are therefore managed differently." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:14 -msgid "All Odoo :doc:`themes <../web_design/themes>` rely on the CSS Framework `Bootstrap `_ to render efficiently according to the device: desktop, tablet, or mobile, which positively impacts ranking in search engines." +#: ../../content/applications/websites/website/structure/pages.rst:22 +msgid "Page creation" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:19 -msgid "`Magic Sheet - Optimize your website [PDF] `_" +#: ../../content/applications/websites/website/structure/pages.rst:24 +msgid "Website pages can be created from the **frontend** and the **backend**. To create a new website page, proceed as follows:" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:23 -msgid "Content optimization" +#: ../../content/applications/websites/website/structure/pages.rst:27 +msgid "Either open the **Website** app, click :guilabel:`+ New` in the top-right corner, then select :guilabel:`Page`;" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:25 -msgid "To optimize a webpage's SEO, access the page, then go to :menuselection:`Website --> Site --> Optimize SEO`." +#: ../../content/applications/websites/website/structure/pages.rst:29 +msgid "Or go to :menuselection:`Website --> Site --> Pages` and click :guilabel:`New`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:-1 -msgid "Optimize SEO" +#: ../../content/applications/websites/website/structure/pages.rst:30 +msgid "In the :guilabel:`New Page` selection menu, click on a template. They are sorted by type:" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:32 -msgid "Meta tags" +#: ../../content/applications/websites/website/structure/pages.rst:32 +msgid ":guilabel:`Basic`: Multi-purpose page. A blank page is also available to start from scratch." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:34 -msgid "Meta tags are HTML elements that provide information about a webpage to search engines and website visitors. They play a crucial role in SEO by helping search engines understand the content and context of a webpage and attract visitors with appealing content. There are two types of meta tags in Odoo:" +#: ../../content/applications/websites/website/structure/pages.rst:33 +msgid ":guilabel:`About`: Information about your brand." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:39 -msgid ":guilabel:`Title` tags specify a webpage's title and are displayed as a clickable link in search engine results. They should be concise, descriptive, and relevant to the page's content. You can update the title tag of your webpage or keep it empty to use the default value based on the page’s content." +#: ../../content/applications/websites/website/structure/pages.rst:34 +msgid ":guilabel:`Landing Pages`: Summary of company content and info." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:44 -msgid ":guilabel:`Description` tags summarize the webpage's content, often displayed in search engine results below the title. They are used to encourage the user to visit the page. You can update the description tag of your webpage or keep it empty to use the default value based on the page’s content." +#: ../../content/applications/websites/website/structure/pages.rst:35 +msgid ":guilabel:`Gallery`: Photos and media showcase." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:50 -msgid "The :guilabel:`Preview` card displays how the title and description tags should appear in search results. It also includes the URL of your page." +#: ../../content/applications/websites/website/structure/pages.rst:36 +msgid ":guilabel:`Services`: Focus on what you're selling and contact." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:54 -msgid "Keywords" +#: ../../content/applications/websites/website/structure/pages.rst:37 +msgid ":guilabel:`Pricing Plans`: Highlight on subscription and prices." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:56 -msgid "Keywords are one of the main elements of SEO. A website that is well optimized for search engines speaks the same language as potential visitors, with keywords for SEO helping them to connect to your site." +#: ../../content/applications/websites/website/structure/pages.rst:38 +msgid ":guilabel:`Team`: The people behind your company." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:60 -msgid "You can enter the keywords you consider essential in the :guilabel:`Keyword` field and click :guilabel:`ADD` to see how they are used at different levels in your content (H1, H2, page title, page description, page content) and the related searches in Google. The tool also suggests relevant keywords to drive your web traffic. The more keywords are present on your webpage, the better." +#: ../../content/applications/websites/website/structure/pages.rst:39 +msgid ":guilabel:`Custom`: To select a custom template. To add a template to this category, open the page you want to save as a template, then go to :menuselection:`Site --> Properties`, enter the :guilabel:`Page Title`, :ref:`edit the page's properties `, enable :guilabel:`Is a template`, and click :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:66 -msgid "It is strongly recommended to only use one H1 title per page for SEO." +#: ../../content/applications/websites/website/structure/pages.rst:45 +msgid "Enter a :guilabel:`Page Title`; this title is used in the menu and the page's URL." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:69 -msgid "Image for social share" +#: ../../content/applications/websites/website/structure/pages.rst:47 +msgid "If needed, :doc:`customize the page's content and appearance <../web_design>` using the website editor, then click :guilabel:`Save`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:71 -msgid "When you share your page on social media, your logo image is selected, but you can upload any other image by clicking the upward arrow." +#: ../../content/applications/websites/website/structure/pages.rst:49 +msgid ":ref:`Publish ` the page." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:75 -msgid "The :guilabel:`Social Preview` card displays how the page's information would appear when shared." +#: ../../content/applications/websites/website/structure/pages.rst:52 +msgid "Disable :guilabel:`Add to menu` if the page should not appear in the menu." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:77 -msgid "If you change the title of a blog post or the name of a product, the changes apply automatically everywhere on your website. The old link still functions when external websites use a :ref:`301 redirect `, maintaining the SEO link juice." +#: ../../content/applications/websites/website/structure/pages.rst:57 +msgid "Page management" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:82 -#: ../../content/applications/websites/website/web_design/elements.rst:64 -msgid "Images" +#: ../../content/applications/websites/website/structure/pages.rst:62 +msgid "Publishing/unpublishing pages" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:84 -msgid "The size of images has a significant impact on page speed, which is an essential criterion for search engines to optimize SEO ranking." +#: ../../content/applications/websites/website/structure/pages.rst:64 +msgid "Pages need to be published to make them visible to website visitors. To publish or unpublish a page, access it and toggle the switch in the upper-right corner from :guilabel:`Unpublished` to :guilabel:`Published`, or vice versa." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:88 -msgid "Compare how your website ranks using `Google Page Speed `_ or `Pingdom Website Speed Test `_." -msgstr "" - -#: ../../content/applications/websites/website/pages/seo.rst:91 -msgid "Odoo automatically compresses uploaded images and converts them to `Webp`. With this file format, photos are smaller, which increases the page loading speed and, therefore, gives a better ranking in SEO. All images used in Odoo official :doc:`themes <../web_design/themes>` are also compressed by default. If you are using a third-party theme, it may provide images that are not compressed efficiently." -msgstr "" - -#: ../../content/applications/websites/website/pages/seo.rst:97 -msgid "**To modify an image** from your website, select the image, click :guilabel:`Edit`, then go to the :guilabel:`Customize` tab, and adapt the :guilabel:`Format` in the :guilabel:`Image` section." -msgstr "" - -#: ../../content/applications/websites/website/pages/seo.rst:-1 -msgid "automated image compression" -msgstr "" - -#: ../../content/applications/websites/website/pages/seo.rst:104 -msgid "Alt tags are used to provide context to what an image is displaying, informing search engine crawlers and allowing them to index an image correctly. Adding alt tags keywords in the :guilabel:`Description` field is essential from an SEO perspective. This description is added to the HTML code of your image, and it is shown when the image cannot be displayed." -msgstr "" - -#: ../../content/applications/websites/website/pages/seo.rst:110 -msgid "Advanced features" +#: ../../content/applications/websites/website/structure/pages.rst:-1 +msgid "Unpublished/Published toggle" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:113 -msgid "Structured data markup" +#: ../../content/applications/websites/website/structure/pages.rst:72 +msgid "It is also possible to:" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:115 -msgid "Structured data markup is used to generate rich snippets in search engine results. It is a way for websites to send structured data to search engine robots, helping them understand your content and create well-presented search results." +#: ../../content/applications/websites/website/structure/pages.rst:74 +msgid "Publish/unpublish a page from the :ref:`page properties `, where you can define a publishing date and/or restrict the page's visibility if needed;" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:119 -msgid "By default, Google supports many `rich snippets `_ for content types, including Reviews, People, Products, Businesses, Events, and Organizations." +#: ../../content/applications/websites/website/structure/pages.rst:76 +msgid "Publish/unpublish several pages at once: go to :menuselection:`Website --> Site --> Pages`, select the pages, then click :guilabel:`Action` and select :guilabel:`Publish` or :guilabel:`Unpublish`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:122 -msgid "Microdata is a set of tags, introduced with HTML5, that help search engines better understand your content and display it in a relevant way. Odoo implements microdata as defined in the schema.org `specification `_ for events, eCommerce products, forum posts, and contact addresses. This allows your product pages to be displayed in Google using extra information like the price and rating of a product:" +#: ../../content/applications/websites/website/structure/pages.rst:81 +msgid "Alternatively, you can define any :ref:`static page ` as your homepage by going to :menuselection:`Website --> Site --> Properties`. Select the :guilabel:`Publish` tab and enable :guilabel:`Use as Homepage`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:-1 -msgid "snippets in search engine results" +#: ../../content/applications/websites/website/structure/pages.rst:88 +msgid "Page properties" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:132 -msgid "robots.txt" +#: ../../content/applications/websites/website/structure/pages.rst:90 +msgid "To modify a :ref:`static page's ` properties, access the page you wish to modify, then go to :menuselection:`Site --> Properties`, where you can change the following properties:" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:134 -msgid "A `robots.txt` file instructs search engine crawlers which parts of a website they are permitted to access. Its primary purpose is to:" +#: ../../content/applications/websites/website/structure/pages.rst:94 +msgid ":guilabel:`Page URL` : Modify the page URL in the field. In this case, you can redirect the old URL to the new one if needed. To do so, enable :guilabel:`Redirect old URL`, then select the :guilabel:`Type` of :ref:`redirection `:" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:137 -msgid "**Prevent overloading the website:** By guiding crawlers away from certain sections, robots.txt helps manage server load." +#: ../../content/applications/websites/website/structure/pages.rst:98 +msgid ":guilabel:`301 Moved permanently`: to redirect the page permanently." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:139 -msgid "**Control access to resources and detailed descriptions:** It can prevent crawlers from accessing media files (images, videos), CSS stylesheets, and JavaScript files, and from reading the content (text) of specific pages." +#: ../../content/applications/websites/website/structure/pages.rst:99 +msgid ":guilabel:`302 Moved temporarily`: to redirect the page temporarily." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:143 -msgid "When indexing your website, search engines first look at the robots.txt file. Odoo automatically creates one robot.txt file available on `mydatabase.odoo.com/robots.txt`." +#: ../../content/applications/websites/website/structure/pages.rst:0 +msgid "Redirect old URL" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:147 -msgid "Reputable bots adhere to robots.txt; others may require blocking via :ref:`Cloudflare ` on your custom domain." +#: ../../content/applications/websites/website/structure/pages.rst:104 +msgid ":guilabel:`In Menu`: Disable if you don't want the page to appear in the menu." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:151 -msgid "Edit robots.txt" +#: ../../content/applications/websites/website/structure/pages.rst:105 +msgid ":guilabel:`Is Homepage`: Enable if you want the page to be the homepage of your website." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:153 -msgid "By editing a robots.txt file, you can control which site pages are accessible to search engine crawlers. To add custom instructions to the file, go to :menuselection:`Website --> Configuration --> Settings`, scroll down to the :guilabel:`SEO` section, and click :guilabel:`Edit robots.txt`." +#: ../../content/applications/websites/website/structure/pages.rst:106 +msgid ":guilabel:`Published`: Enable to publish the page." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:158 -msgid "If you do not want robots to crawl the `/about-us` page of your site, you can edit the robots.txt file to add `Disallow: /about-us`." +#: ../../content/applications/websites/website/structure/pages.rst:107 +msgid ":guilabel:`Publishing Date`: To publish the page at a specific date and time, click the field, set the date and time, then press **Enter** or click :guilabel:`Apply` to validate your selection." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:162 -msgid "While `robots.txt` prevents content from being crawled, **it does not guarantee that a page will not be indexed**. A page can still appear in search results if it is linked to from other crawled pages (indexed by \"reference\"). Google generally does not recommend using robots.txt to block webpages that you wish to keep out of search results entirely." +#: ../../content/applications/websites/website/structure/pages.rst:109 +msgid ":guilabel:`Indexed`: Disable if you don't want the page to appear in search engine results." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:168 -msgid "Prevent a page from being indexed" +#: ../../content/applications/websites/website/structure/pages.rst:110 +msgid ":guilabel:`Visibility`: Select who can access the page:" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:170 -msgid "To effectively prevent a page from appearing in search engine results, use one of the following methods:" +#: ../../content/applications/websites/website/structure/pages.rst:112 +msgid ":guilabel:`Public`: Everyone can access the page." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:173 -msgid "**noindex tag:** Access the page's :ref:`properties ` and toggle the :guilabel:`Indexed` switch off." +#: ../../content/applications/websites/website/structure/pages.rst:113 +msgid ":guilabel:`Signed In`: Only signed-in users can access the page." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:177 -msgid "This option is not yet available for :ref:`dynamic pages `." +#: ../../content/applications/websites/website/structure/pages.rst:114 +msgid ":guilabel:`Restricted Group`: Select the :doc:`user access group(s) ` in the :guilabel:`Authorized group` field." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:179 -msgid "**404 or 403:** Configure the page to return a 404 (Not Found) or 403 (Forbidden) HTTP status code. These codes signal to search engines that the page does not exist or is inaccessible, leading to its eventual removal from the index." +#: ../../content/applications/websites/website/structure/pages.rst:116 +msgid ":guilabel:`With Password`: Type the password required to access the page in the :guilabel:`Password` field." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:183 -msgid "**404:** :ref:`Configure a 404 redirection. `" +#: ../../content/applications/websites/website/structure/pages.rst:119 +msgid ":guilabel:`Is a template`: Toggle the switch to save the page as a template and add it to the :guilabel:`Custom` category." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:184 -msgid "**403:** Access the page's :ref:`properties ` and toggle the :guilabel:`Visibility` switch off or :ref:`unpublish the page `." +#: ../../content/applications/websites/website/structure/pages.rst:123 +msgid "*Some* of these properties can also be modified in batch from :menuselection:`Website --> Site --> Pages`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:187 -msgid "**Google Search Console:** Use Google Search Console to request the removal of specific URLs from Google's index." +#: ../../content/applications/websites/website/structure/pages.rst:129 +msgid "Duplicating pages" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:191 -msgid ":doc:`../configuration/google_search_console`" +#: ../../content/applications/websites/website/structure/pages.rst:131 +msgid "To duplicate a page, access the page, then go to :menuselection:`Site --> Properties`, and click :guilabel:`Duplicate Page`. Enter a :guilabel:`Page Name`, then click :guilabel:`OK`. By default, the new page is added after the duplicated page in the menu, but you can remove it from the menu or change its position using the :doc:`menu editor `." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:192 -msgid ":doc:`../pages`" +#: ../../content/applications/websites/website/structure/pages.rst:139 +msgid "Deleting pages" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:195 -msgid "Sitemap" +#: ../../content/applications/websites/website/structure/pages.rst:141 +msgid "To delete a page, proceed as follows:" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:197 -msgid "The sitemap points out website pages and their relation to each other to search engine robots. Odoo generates a `/sitemap.xml` file, including all URLs. For performance reasons, this file is cached and updated every 12 hours." +#: ../../content/applications/websites/website/structure/pages.rst:143 +msgid "Access the page, then go to :menuselection:`Site --> Properties` and click :guilabel:`Delete Page`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:202 -msgid "If your website has a lot of pages, Odoo automatically creates a Sitemap Index file, respecting the `sitemaps.org protocol `_, grouping sitemap URLs in 45000 chunks per file." +#: ../../content/applications/websites/website/structure/pages.rst:144 +msgid "A pop-up window shows all links referring to the page you want to delete, organized by category. To ensure website visitors don't land on an error page, you must update all the links on your website referring to the page. To do so, expand a category, then click on a link to open it in a new window. Alternatively, you can set up a :ref:`redirection ` for the deleted page." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:206 -msgid "Every sitemap entry has three attributes that are computed automatically:" +#: ../../content/applications/websites/website/structure/pages.rst:149 +msgid "Once you have updated the links (or set up a :ref:`redirection `), tick the :guilabel:`I am sure about this` check box, then click :guilabel:`OK`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:208 -msgid "``: the URL of a page." +#: ../../content/applications/websites/website/structure/pages.rst:155 +msgid "URL redirect mapping" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:209 -msgid "``: last modification date of the resource, computed automatically based on the related object. For a page related to a product, this could be the last modification date of the product or the page." +#: ../../content/applications/websites/website/structure/pages.rst:157 +msgid "URL redirect mapping consists in sending visitors and search engines to a URL different from the one they initially requested. This technique is used, for example, to prevent broken links when you :ref:`delete a page `, :ref:`modify its URL `, or migrate your site from another platform to an Odoo :doc:`domain <../configuration/domain_names>`. It can also be used to improve :doc:`seo`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:212 -msgid "``: modules may implement their priority algorithm based on their content (for example, a forum might assign a priority based on the number of votes on a specific post). The priority of a static page is defined by its priority field, which is normalized (16 is the default)." +#: ../../content/applications/websites/website/structure/pages.rst:163 +msgid "To access existing URL redirections and create new ones, :doc:`activate the developer mode ` and go to :menuselection:`Website --> Configuration --> Redirects`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:217 -msgid "To prevent pages from appearing in a sitemap, go to :menuselection:`Site --> Properties`, click the :guilabel:`Publish` tab, and turn off the :guilabel:`Indexed` feature." +#: ../../content/applications/websites/website/structure/pages.rst:168 +msgid "A redirect record is added automatically every time you :ref:`modify a page's URL ` and enable :guilabel:`Redirect Old URL`." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:0 -msgid "disabling the “Indexed” checkbox" +#: ../../content/applications/websites/website/structure/pages.rst:170 +msgid "You can set up redirections for :ref:`static and dynamic pages `." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:224 -msgid "Hreflang HTML tags" +#: ../../content/applications/websites/website/structure/pages.rst:172 +msgid "To create a new redirection, click the :guilabel:`New` button, then fill in the fields:" msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:226 -msgid "Odoo automatically includes `hreflang` and `x-default` tags in the code of your website's multilingual pages. These HTML attributes are crucial in informing search engines about a specific page's language and geographical targeting." +#: ../../content/applications/websites/website/structure/pages.rst:174 +msgid ":guilabel:`Name`: Enter a name to identify the redirect." msgstr "" -#: ../../content/applications/websites/website/pages/seo.rst:231 -msgid ":doc:`../configuration/translate`" +#: ../../content/applications/websites/website/structure/pages.rst:175 +msgid ":guilabel:`Action`: Select the type of redirection:" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:3 -msgid "Website analytics" +#: ../../content/applications/websites/website/structure/pages.rst:177 +msgid ":guilabel:`404 Not found`: visitors are redirected to a 404 error page when they try to access an unpublished or deleted page." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:5 -msgid "Website analytics helps website owners monitor how people use their site. It provides data on visitor demographics, behavior, and interactions, helping improve websites and marketing strategies." +#: ../../content/applications/websites/website/structure/pages.rst:179 +msgid ":guilabel:`301 Moved Permanently`: for permanent redirections of unpublished or deleted :ref:`static pages `. The new URL is shown in search engine results, and the redirect is cached by browsers." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:8 -msgid "You can track your Odoo website's traffic using :ref:`analytics/plausible` or :ref:`analytics/google-analytics`. We recommend using Plausible.io as it is privacy-friendly, lightweight, and easy to use." +#: ../../content/applications/websites/website/structure/pages.rst:182 +msgid ":guilabel:`302 Moved Temporarily`: for short-term redirections, for example, if you are redesigning or updating a page. The new URL is neither cached by browsers nor shown in search engine results." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:12 -msgid "The Plausible Analytics dashboard is also integrated into Odoo and can be accessed via :menuselection:`Website --> Reporting --> Analytics`." +#: ../../content/applications/websites/website/structure/pages.rst:185 +msgid ":guilabel:`308 Redirect/Rewrite`: for permanent redirections of existing :ref:`dynamic pages `. The URL is renamed; the new name is shown in search engine results and is cached by browsers. Use this redirect type to rename a dynamic page, for example, if you wish to rename `/shop` into `/market`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:18 -msgid "Plausible.io" +#: ../../content/applications/websites/website/structure/pages.rst:190 +msgid ":guilabel:`URL from`: Enter the URL to be redirected (e.g., `/about-the-company`) or search for the desired :ref:`dynamic page ` and select it from the list." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:20 -msgid "Odoo hosts its own Plausible.io server and provides a free and ready-to-use Plausible.io solution for **Odoo Online** databases that use the odoo.com domain. Odoo automatically creates and sets up your account. Start using it by going to :menuselection:`Website --> Reporting --> Analytics`." +#: ../../content/applications/websites/website/structure/pages.rst:192 +msgid ":guilabel:`URL to`: For 301, 302, and 308 redirects, enter the URL to be redirected to. If you want to redirect to an external URL, include the protocol (e.g., `https://`)." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:26 -msgid "If you use a custom :doc:`domain name <../configuration/domain_names>` (e.g., `example.com`), you need to create your own Plausible.io account and subscription." +#: ../../content/applications/websites/website/structure/pages.rst:194 +msgid ":guilabel:`Website`: Select a specific website." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:28 -msgid "**If you already have a Plausible.io account** and you want to connect it to your Odoo Online database, you must create two `ir.config.parameters` to use Plausible.io's servers. To do so, enable the :ref:`developer mode ` and go to :menuselection:`General Settings --> Technical --> System Parameters`. Click :guilabel:`New` and fill in the following :guilabel:`Key` and :guilabel:`Value` fields:" +#: ../../content/applications/websites/website/structure/pages.rst:195 +msgid ":guilabel:`Sequence`: To define the order in which redirections are performed, e.g., in the case of redirect chains (i.e., a series of redirects where one URL is redirected to another one, which is itself further redirected to another URL)." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:37 -msgid "Key" +#: ../../content/applications/websites/website/structure/pages.rst:199 +msgid "Toggle the :guilabel:`Activate` switch to deactivate the redirection." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:38 -msgid "Value" +#: ../../content/applications/websites/website/structure/pages.rst:202 +msgid "404, 301, and 302 redirections are meant to migrate traffic from :ref:`unpublished ` or :ref:`deleted ` pages to *new* pages, while the 308 redirect is used for *permanent* redirections of *existing* pages." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:39 -msgid "`website.plausible_script`" +#: ../../content/applications/websites/website/structure/pages.rst:207 +msgid "`Google documentation on redirects and search `_" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:40 -msgid "`https://plausible.io/js/plausible.js`" +#: ../../content/applications/websites/website/structure/pages.rst:208 +msgid ":doc:`seo`" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:41 -msgid "`website.plausible_server`" +#: ../../content/applications/websites/website/structure/seo.rst:3 +msgid "Search Engine Optimization (SEO)" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:42 -msgid "`https://plausible.io`" +#: ../../content/applications/websites/website/structure/seo.rst:5 +msgid "Search Engine Optimization, often abbreviated as SEO, is a digital marketing strategy to improve a website's visibility and ranking in search engine results (e.g., in Google). It involves optimizing various elements on your website, including its content, social sharing, URLs, images, and page speed." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:44 -msgid "Then, follow the steps below to connect your existing account with Plausible.io servers." +#: ../../content/applications/websites/website/structure/seo.rst:11 +msgid "Odoo provides several modules to help you build your website content, such as :doc:`eCommerce <../../ecommerce>`, :doc:`Blog <../../blog>`, :doc:`eLearning <../../elearning>`, and :doc:`Forum <../../forum>`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:47 -msgid "Deactivating the free Plausible.io account linked to your **Odoo Online** database will also remove the existing keys. As a result, new keys will be generated, while all historical data will remain associated with the old keys. If you plan to deactivate the account, it is recommended to save the existing keys to preserve access to that data." +#: ../../content/applications/websites/website/structure/seo.rst:14 +msgid "All Odoo :doc:`themes <../web_design/themes>` rely on the CSS Framework `Bootstrap `_ to render efficiently according to the device: desktop, tablet, or mobile, which positively impacts ranking in search engines." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:52 -msgid "If your database is hosted on **Odoo.sh** or **On-premise**, or if you wish to use your own Plausible.io account, proceed as follows:" +#: ../../content/applications/websites/website/structure/seo.rst:19 +msgid "`Magic Sheet - Optimize your website [PDF] `_" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:55 -msgid "Create or sign in to a Plausible.io account using the following link: ``_." +#: ../../content/applications/websites/website/structure/seo.rst:23 +msgid "Content optimization" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:56 -msgid "If you are creating a new account, go through the registration and activation steps. On the :guilabel:`Add website info` page, add the :guilabel:`Domain` of your website without including `www` (e.g., `example.odoo.com`) and change the :guilabel:`Reporting Timezone`, if necessary. Click :guilabel:`Install Plausible` to proceed to the next step. Ignore the :guilabel:`Manual installation` instructions and click :guilabel:`Start collecting data`." +#: ../../content/applications/websites/website/structure/seo.rst:25 +msgid "To optimize a webpage's SEO, access the page, then go to :menuselection:`Website --> Site --> Optimize SEO`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:61 -msgid "Once done, click the Plausible.io logo in the upper-left part of the page to access your `list of websites `_, then click the :icon:`fa-ellipsis-v` (:guilabel:`ellipsis`) icon next to the website and select :icon:`fa-cog` :guilabel:`Settings` from the drop-down menu." +#: ../../content/applications/websites/website/structure/seo.rst:-1 +msgid "Optimize SEO" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:0 -msgid "Click the gear icon in the list of websites." +#: ../../content/applications/websites/website/structure/seo.rst:32 +msgid "Meta tags" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:69 -msgid "In the sidebar, select :guilabel:`Visibility`, then click :guilabel:`Add Shared link`." +#: ../../content/applications/websites/website/structure/seo.rst:34 +msgid "Meta tags are HTML elements that provide information about a webpage to search engines and website visitors. They play a crucial role in SEO by helping search engines understand the content and context of a webpage and attract visitors with appealing content. There are two types of meta tags in Odoo:" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:70 -msgid "Enter a :guilabel:`Name`, leave the :guilabel:`Password (optional)` field empty, as the Plausible analytics dashboard integration in Odoo does not support it, then click :guilabel:`Create shared link`." +#: ../../content/applications/websites/website/structure/seo.rst:39 +msgid ":guilabel:`Title` tags specify a webpage's title and are displayed as a clickable link in search engine results. They should be concise, descriptive, and relevant to the page's content. You can update the title tag of your webpage or keep it empty to use the default value based on the page’s content." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:74 -msgid "Copy the shared link." +#: ../../content/applications/websites/website/structure/seo.rst:44 +msgid ":guilabel:`Description` tags summarize the webpage's content, often displayed in search engine results below the title. They are used to encourage the user to visit the page. You can update the description tag of your webpage or keep it empty to use the default value based on the page’s content." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:0 -msgid "Copy the shared link URL from Plausible.io" +#: ../../content/applications/websites/website/structure/seo.rst:50 +msgid "The :guilabel:`Preview` card displays how the title and description tags should appear in search results. It also includes the URL of your page." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:79 -#: ../../content/applications/websites/website/reporting/analytics.rst:124 -msgid "In Odoo, go to :menuselection:`Website --> Configuration --> Settings`." +#: ../../content/applications/websites/website/structure/seo.rst:54 +msgid "Keywords" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:80 -msgid "In the :guilabel:`SEO` section, enable :guilabel:`Plausible Analytics`, then paste the :guilabel:`Shared Link Auth` and click :guilabel:`Save`." +#: ../../content/applications/websites/website/structure/seo.rst:56 +msgid "Keywords are one of the main elements of SEO. A website that is well optimized for search engines speaks the same language as potential visitors, with keywords for SEO helping them to connect to your site." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:84 -msgid "If you have :doc:`multiple websites <../configuration/multi_website>`, add your websites to your Plausible.io account by going to ``_ and clicking :guilabel:`+ Add Website`. In Odoo, in the **Website settings**, make sure to select the website in the :guilabel:`Settings of Website` field at the top of the page before pasting the :guilabel:`Shared link`." +#: ../../content/applications/websites/website/structure/seo.rst:60 +msgid "You can enter the keywords you consider essential in the :guilabel:`Keyword` field and click :guilabel:`ADD` to see how they are used at different levels in your content (H1, H2, page title, page description, page content) and the related searches in Google. The tool also suggests relevant keywords to drive your web traffic. The more keywords are present on your webpage, the better." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:91 -msgid "Odoo automatically pushes two custom goals: `Lead Generation` and `Shop`." +#: ../../content/applications/websites/website/structure/seo.rst:66 +msgid "It is strongly recommended to only use one H1 title per page for SEO." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:94 -msgid "`Plausible Analytics documentation `_" +#: ../../content/applications/websites/website/structure/seo.rst:69 +msgid "Image for social share" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:99 -msgid "Google Analytics" +#: ../../content/applications/websites/website/structure/seo.rst:71 +msgid "When you share your page on social media, your logo image is selected, but you can upload any other image by clicking the upward arrow." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:101 -msgid "To follow your Odoo website's traffic with Google Analytics:" +#: ../../content/applications/websites/website/structure/seo.rst:75 +msgid "The :guilabel:`Social Preview` card displays how the page's information would appear when shared." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:103 -msgid "Create or sign in to a Google account using the following link: ``_." +#: ../../content/applications/websites/website/structure/seo.rst:77 +msgid "If you change the title of a blog post or the name of a product, the changes apply automatically everywhere on your website. The old link still functions when external websites use a :ref:`301 redirect `, maintaining the SEO link juice." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:104 -msgid "If you are setting up Google Analytics for the first time, click :guilabel:`Start measuring` and go through the account creation step." +#: ../../content/applications/websites/website/structure/seo.rst:82 +#: ../../content/applications/websites/website/web_design/elements.rst:64 +msgid "Images" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:106 -msgid "If you already have a Google Analytics account, sign in and click the :icon:`fa-cog` icon in the bottom-left corner of the page to access the **Admin** page. Then, click :guilabel:`+ Create` and select :guilabel:`Property` from the drop-down menu." +#: ../../content/applications/websites/website/structure/seo.rst:84 +msgid "The size of images has a significant impact on page speed, which is an essential criterion for search engines to optimize SEO ranking." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:110 -msgid "Complete the next steps: `property creation `_, business details and business objectives." +#: ../../content/applications/websites/website/structure/seo.rst:88 +msgid "Compare how your website ranks using `Google Page Speed `_ or `Pingdom Website Speed Test `_." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:112 -msgid "When you reach the **Data collection** step, choose the :guilabel:`Web` platform." +#: ../../content/applications/websites/website/structure/seo.rst:91 +msgid "Odoo automatically compresses uploaded images and converts them to `Webp`. With this file format, photos are smaller, which increases the page loading speed and, therefore, gives a better ranking in SEO. All images used in Odoo official :doc:`themes <../web_design/themes>` are also compressed by default. If you are using a third-party theme, it may provide images that are not compressed efficiently." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:0 -msgid "Choose a platform for your Google Analytics property." +#: ../../content/applications/websites/website/structure/seo.rst:97 +msgid "**To modify an image** from your website, select the image, click :guilabel:`Edit`, then go to the :guilabel:`Customize` tab, and adapt the :guilabel:`Format` in the :guilabel:`Image` section." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:117 -msgid "Set up your data stream: Specify your :guilabel:`Website URL` and a :guilabel:`Stream name`, then click :guilabel:`Create & continue`." +#: ../../content/applications/websites/website/structure/seo.rst:-1 +msgid "automated image compression" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:119 -msgid "Copy the :guilabel:`Measurement ID`." +#: ../../content/applications/websites/website/structure/seo.rst:104 +msgid "Alt tags are used to provide context to what an image is displaying, informing search engine crawlers and allowing them to index an image correctly. Adding alt tags keywords in the :guilabel:`Description` field is essential from an SEO perspective. This description is added to the HTML code of your image, and it is shown when the image cannot be displayed." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:0 -msgid "Measurement ID in Google Analytics." +#: ../../content/applications/websites/website/structure/seo.rst:110 +msgid "Advanced features" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:125 -msgid "In the :guilabel:`SEO` section, enable :guilabel:`Google Analytics`, then paste the :guilabel:`Measurement ID` and click :guilabel:`Save`." +#: ../../content/applications/websites/website/structure/seo.rst:113 +msgid "Structured data markup" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:129 -msgid "If you have :doc:`multiple websites <../configuration/multi_website>` with separate domains, it is recommended to create `one property `_ per domain. In Odoo, in the **Website settings**, make sure to select the website in the :guilabel:`Settings of Website` field at the top of the page before pasting the :guilabel:`Measurement ID`." +#: ../../content/applications/websites/website/structure/seo.rst:115 +msgid "Structured data markup is used to generate rich snippets in search engine results. It is a way for websites to send structured data to search engine robots, helping them understand your content and create well-presented search results." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:136 -msgid "`Google documentation on setting up Analytics for a website `_" +#: ../../content/applications/websites/website/structure/seo.rst:119 +msgid "By default, Google supports many `rich snippets `_ for content types, including Reviews, People, Products, Businesses, Events, and Organizations." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:142 -msgid "Google Tag Manager" +#: ../../content/applications/websites/website/structure/seo.rst:122 +msgid "Microdata is a set of tags, introduced with HTML5, that help search engines better understand your content and display it in a relevant way. Odoo implements microdata as defined in the schema.org `specification `_ for events, eCommerce products, forum posts, and contact addresses. This allows your product pages to be displayed in Google using extra information like the price and rating of a product:" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:144 -msgid "Google Tag Manager is a tag management system that allows you to easily update measurement codes and related code fragments, collectively known as tags on your website or mobile app, directly through the code injector." +#: ../../content/applications/websites/website/structure/seo.rst:-1 +msgid "snippets in search engine results" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:149 -msgid ":abbr:`GTM (Google Tag Manager)` is not an analytics tool and does not offer reporting features; it is used to collect data and works alongside Google Analytics to provide more detailed insights. In order to use GTM properly, it is recommended to configure Google Analytics as well." +#: ../../content/applications/websites/website/structure/seo.rst:132 +msgid "robots.txt" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:153 -msgid "For more information refer to the `documentation on linking Google Analytics and Google Tag Manager `_." +#: ../../content/applications/websites/website/structure/seo.rst:134 +msgid "A `robots.txt` file instructs search engine crawlers which parts of a website they are permitted to access. Its primary purpose is to:" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:157 -msgid "Some GTM tags use data layers (e.g., advanced eCommerce tracking data layers) to retrieve variables and send them to Google Analytics. Data layers are currently not managed in Odoo." +#: ../../content/applications/websites/website/structure/seo.rst:137 +msgid "**Prevent overloading the website:** By guiding crawlers away from certain sections, robots.txt helps manage server load." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:159 -msgid "Google Tag Manager may not be compliant with local data protection regulations." +#: ../../content/applications/websites/website/structure/seo.rst:139 +msgid "**Control access to resources and detailed descriptions:** It can prevent crawlers from accessing media files (images, videos), CSS stylesheets, and JavaScript files, and from reading the content (text) of specific pages." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:161 -msgid "To configure GTM, proceed as follows:" +#: ../../content/applications/websites/website/structure/seo.rst:143 +msgid "When indexing your website, search engines first look at the robots.txt file. Odoo automatically creates one robot.txt file available on `mydatabase.odoo.com/robots.txt`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:163 -msgid "Create or sign in to a Google account by going to https://tagmanager.google.com/." +#: ../../content/applications/websites/website/structure/seo.rst:147 +msgid "Reputable bots adhere to robots.txt; others may require blocking via :ref:`Cloudflare ` on your custom domain." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:165 -msgid "In the :guilabel:`Accounts` tab, click :guilabel:`Create Account`." +#: ../../content/applications/websites/website/structure/seo.rst:151 +msgid "Edit robots.txt" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:167 -msgid "Enter an :guilabel:`Account Name` and select the account's :guilabel:`Country`." +#: ../../content/applications/websites/website/structure/seo.rst:153 +msgid "By editing a robots.txt file, you can control which site pages are accessible to search engine crawlers. To add custom instructions to the file, go to :menuselection:`Website --> Configuration --> Settings`, scroll down to the :guilabel:`SEO` section, and click :guilabel:`Edit robots.txt`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:169 -msgid "Enter your website's URL in the :guilabel:`Container name` field and select the :guilabel:`Target platform`." +#: ../../content/applications/websites/website/structure/seo.rst:158 +msgid "If you do not want robots to crawl the `/about-us` page of your site, you can edit the robots.txt file to add `Disallow: /about-us`." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:172 -msgid "Click :guilabel:`Create` and agree to the Terms of Service." +#: ../../content/applications/websites/website/structure/seo.rst:162 +msgid "While `robots.txt` prevents content from being crawled, **it does not guarantee that a page will not be indexed**. A page can still appear in search results if it is linked to from other crawled pages (indexed by \"reference\"). Google generally does not recommend using robots.txt to block webpages that you wish to keep out of search results entirely." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:174 -msgid "Copy the `` and `` codes from the popup window. Then, go to your website, click :guilabel:`Edit`, go to the :guilabel:`Theme` tab, scroll down to the :guilabel:`Advanced` section, then click :guilabel:`` and :guilabel:`` next to :guilabel:`Code Injection` to paste the codes." +#: ../../content/applications/websites/website/structure/seo.rst:168 +msgid "Prevent a page from being indexed" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:0 -msgid "Install Google Tag Manager" +#: ../../content/applications/websites/website/structure/seo.rst:170 +msgid "To effectively prevent a page from appearing in search engine results, use one of the following methods:" msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:183 -msgid "The data is collected in the marketing tools used to monitor the website (e.g., Google Analytics, Plausible, Facebook Pixel), not in Odoo." +#: ../../content/applications/websites/website/structure/seo.rst:173 +msgid "**noindex tag:** Access the page's :ref:`properties ` and toggle the :guilabel:`Indexed` switch off." msgstr "" -#: ../../content/applications/websites/website/reporting/analytics.rst:187 -msgid "`Setting up click triggers on Google `_" +#: ../../content/applications/websites/website/structure/seo.rst:177 +msgid "This option is not yet available for :ref:`dynamic pages `." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:3 -msgid "Link tracker" +#: ../../content/applications/websites/website/structure/seo.rst:179 +msgid "**404 or 403:** Configure the page to return a 404 (Not Found) or 403 (Forbidden) HTTP status code. These codes signal to search engines that the page does not exist or is inaccessible, leading to its eventual removal from the index." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:5 -msgid "The link tracker allow you to create tracked links to measure your marketing campaigns' effectiveness. They let you determine which channels bring you the most visitors and make informed decisions." +#: ../../content/applications/websites/website/structure/seo.rst:183 +msgid "**404:** :ref:`Configure a 404 redirection. `" msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:12 -msgid "The :guilabel:`Link Tracker` module is not installed by default. You need to enable the :guilabel:`Email Marketing` option by going to :menuselection:`Website --> Configuration --> Settings.` Alternatively, you can :doc:`install <../../../general/apps_modules>` the :guilabel:`Link Tracker` module itself or one of the marketing apps." +#: ../../content/applications/websites/website/structure/seo.rst:184 +msgid "**403:** Access the page's :ref:`properties ` and toggle the :guilabel:`Visibility` switch off or :ref:`unpublish the page `." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:18 -msgid "Create a traceable URL" +#: ../../content/applications/websites/website/structure/seo.rst:187 +msgid "**Google Search Console:** Use Google Search Console to request the removal of specific URLs from Google's index." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:20 -msgid "To create and manage tracked links, navigate to :menuselection:`Website --> Site --> Link Tracker`. Fill in the following information and click :guilabel:`Get tracked link` to generate a tracking URL." +#: ../../content/applications/websites/website/structure/seo.rst:191 +msgid ":doc:`../configuration/google_search_console`" msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:23 -msgid ":guilabel:`URL`: The URL which is the target of the campaign. It is automatically populated with the URL from where you access the menu." +#: ../../content/applications/websites/website/structure/seo.rst:192 +msgid ":doc:`pages`" msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:26 -msgid ":guilabel:`Campaign`: The specific campaign the link should be associated with. This parameter is used to distinguish the different campaigns." +#: ../../content/applications/websites/website/structure/seo.rst:195 +msgid "Sitemap" msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:29 -msgid ":guilabel:`Medium`: The medium describes the category or method through which the visitor arrives at your site, such as organic search, paid search, social media ad, email, etc." +#: ../../content/applications/websites/website/structure/seo.rst:197 +msgid "The sitemap points out website pages and their relation to each other to search engine robots. Odoo generates a `/sitemap.xml` file, including all URLs. For performance reasons, this file is cached and updated every 12 hours." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:32 -msgid ":guilabel:`Source`: The source identifies the precise platform or website that referred the visitor, such as a search engine, a newsletter, or a website." +#: ../../content/applications/websites/website/structure/seo.rst:202 +msgid "If your website has a lot of pages, Odoo automatically creates a Sitemap Index file, respecting the `sitemaps.org protocol `_, grouping sitemap URLs in 45000 chunks per file." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:-1 -msgid "Create a link tracker URL" +#: ../../content/applications/websites/website/structure/seo.rst:206 +msgid "Every sitemap entry has three attributes that are computed automatically:" msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:38 -msgid "The :guilabel:`Campaign`, :guilabel:`Medium`, and :guilabel:`Source` are called :abbr:`UTM (Urchin Tracking Module)` parameters. They are incorporated in the tracked URL." +#: ../../content/applications/websites/website/structure/seo.rst:208 +msgid "``: the URL of a page." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:42 -msgid "You can customize the :ref:`visibility ` of building blocks using the :abbr:`UTM (Urchin Tracking Module)` parameters, amongst other conditions." +#: ../../content/applications/websites/website/structure/seo.rst:209 +msgid "``: last modification date of the resource, computed automatically based on the related object. For a page related to a product, this could be the last modification date of the product or the page." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:46 -msgid "Tracked links overview" +#: ../../content/applications/websites/website/structure/seo.rst:212 +msgid "``: modules may implement their priority algorithm based on their content (for example, a forum might assign a priority based on the number of votes on a specific post). The priority of a static page is defined by its priority field, which is normalized (16 is the default)." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:48 -msgid "To get an overview of your tracked links, go to :menuselection:`Website --> Site --> Link Tracker` and scroll down to :guilabel:`Your tracked links` section." +#: ../../content/applications/websites/website/structure/seo.rst:217 +msgid "To prevent pages from appearing in a sitemap, go to :menuselection:`Site --> Properties`, click the :guilabel:`Publish` tab, and turn off the :guilabel:`Indexed` feature." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:-1 -msgid "Get an overview of all the links you track." +#: ../../content/applications/websites/website/structure/seo.rst:0 +msgid "disabling the “Indexed” checkbox" msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:55 -msgid "Statistics" +#: ../../content/applications/websites/website/structure/seo.rst:224 +msgid "Hreflang HTML tags" msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:57 -msgid "To measure the performance of tracked links, click the :guilabel:`Stats` button." +#: ../../content/applications/websites/website/structure/seo.rst:226 +msgid "Odoo automatically includes `hreflang` and `x-default` tags in the code of your website's multilingual pages. These HTML attributes are crucial in informing search engines about a specific page's language and geographical targeting." msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:-1 -msgid "View the statistics related to a specific tracked link." +#: ../../content/applications/websites/website/structure/seo.rst:231 +msgid ":doc:`../configuration/translate`" msgstr "" -#: ../../content/applications/websites/website/reporting/link_tracker.rst:62 -msgid "Scroll down to the :guilabel:`Statistics` section to get an overview of the number of clicks of your tracked links. You can display information for a specific period by clicking the :guilabel:`All Time`, :guilabel:`Last Month`, or :guilabel:`Last Week` options." +#: ../../content/applications/websites/website/web_design.rst:7 +msgid "Web design" msgstr "" -#: ../../content/applications/websites/website/web_design.rst:5 -msgid "Web design" +#: ../../content/applications/websites/website/web_design.rst:9 +msgid "Design your website using :doc:`building blocks <../website/web_design/building_blocks>`, customize its :doc:`theme <../website/web_design/themes>` with various options, structure and present content with :doc:`elements <../website/web_design/elements>`, and display or hide building blocks using :doc:`visibility settings <../website/web_design/visibility>`." msgstr "" #: ../../content/applications/websites/website/web_design/building_blocks.rst:5 @@ -7300,7 +7658,7 @@ msgid "Add a building block" msgstr "" #: ../../content/applications/websites/website/web_design/building_blocks.rst:19 -msgid "To add a block to a :doc:`website page <../pages>`, access the page, click :guilabel:`Edit`, then drag and drop the desired building block into the appropriate location. Two types of building blocks are available: :guilabel:`Categories` and :guilabel:`Inner Content`. :guilabel:`Inner Content` building blocks can only be added into :guilabel:`Categories` building blocks." +msgid "To add a block to a :doc:`website page <../structure/pages>`, access the page, click :guilabel:`Edit`, then drag and drop the desired building block into the appropriate location. Two types of building blocks are available: :guilabel:`Categories` and :guilabel:`Inner Content`. :guilabel:`Inner Content` building blocks can only be added into :guilabel:`Categories` building blocks." msgstr "" #: ../../content/applications/websites/website/web_design/building_blocks.rst:24 From 0edad61248cbfdc5857319885a5eec0f8d1c6826 Mon Sep 17 00:00:00 2001 From: Smit Patel Date: Mon, 14 Jul 2025 12:35:39 +0000 Subject: [PATCH 31/52] [IMP] l10n_in: adopt new tax return mechanism and add GSTR-2B report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In community PR odoo/odoo#223358 and enterprise PR odoo/enterprise#92173. we introduce the new tax return mechanism. This includes filing returns directly from the Tax Returns dashboard, validation checks before submission and an improved reconciliation flow. This commit updates the Indian GST documentation to reflect these changes and also adds the GSTR-2B report inside the Tax Reports section. task- 5097904 closes odoo/documentation#14728 X-original-commit: 2fb17957f5bb053c4e11bc9bd858de59620930da Signed-off-by: Anne-Françoise Marcq (afma) Signed-off-by: Smit Patel (pasm) --- .../finance/fiscal_localizations/india.rst | 249 +++++++++--------- .../india/gst-gstr-1-error.png | Bin 10189 -> 0 bytes .../india/gst-gstr-1-file.png | Bin 0 -> 16506 bytes .../india/gst-gstr-1-filed.png | Bin 6841 -> 0 bytes .../india/gst-gstr-1-generate.png | Bin 11787 -> 0 bytes .../india/gst-gstr-1-report.png | Bin 0 -> 20597 bytes .../india/gst-gstr-1-sale-report.png | Bin 54833 -> 0 bytes .../india/gst-gstr-1-sending.png | Bin 7209 -> 0 bytes .../india/gst-gstr-1-sent.png | Bin 11162 -> 0 bytes .../india/gst-gstr-1-spreadsheet-view.png | Bin 65405 -> 0 bytes .../india/gst-gstr-1-validation.png | Bin 14434 -> 0 bytes .../india/gst-gstr-1-verify.png | Bin 7314 -> 0 bytes .../india/gst-gstr-1-waiting.png | Bin 10996 -> 0 bytes .../india/gst-gstr-2b-matched.png | Bin 13897 -> 0 bytes .../india/gst-gstr-2b-partially.png | Bin 14518 -> 0 bytes .../india/gst-gstr-2b-processed.png | Bin 14460 -> 0 bytes .../india/gst-gstr-2b-report.png | Bin 0 -> 12857 bytes .../india/gst-gstr-2b-waiting.png | Bin 14527 -> 0 bytes .../india/gst-gstr-3-filed.png | Bin 13153 -> 0 bytes .../india/gst-gstr-3-not_filed.png | Bin 12802 -> 0 bytes .../india/gst-gstr-3-post.png | Bin 13904 -> 0 bytes .../india/gst-gstr-3-report.png | Bin 25128 -> 0 bytes .../india/gst-gstr-3b-report.png | Bin 0 -> 17642 bytes 23 files changed, 127 insertions(+), 122 deletions(-) delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-error.png create mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-file.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-filed.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-generate.png create mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-report.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-sale-report.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-sending.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-sent.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-spreadsheet-view.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-validation.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-verify.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-1-waiting.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-2b-matched.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-2b-partially.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-2b-processed.png create mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-2b-report.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-2b-waiting.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-3-filed.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-3-not_filed.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-3-post.png delete mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-3-report.png create mode 100644 content/applications/finance/fiscal_localizations/india/gst-gstr-3b-report.png diff --git a/content/applications/finance/fiscal_localizations/india.rst b/content/applications/finance/fiscal_localizations/india.rst index ade13a55e9..bf8c2ba511 100644 --- a/content/applications/finance/fiscal_localizations/india.rst +++ b/content/applications/finance/fiscal_localizations/india.rst @@ -425,153 +425,146 @@ Username`. File-in GST Return ------------------ -When the :guilabel:`GST E-Filing & Matching Feature` is enabled, you can file your GST return. Go -to :menuselection:`Accounting --> Reporting --> India --> GST Return periods` and create a new -**GST Return Period** if it does not exist. GST Return file-in is done in **three steps** in Odoo: +To file a GST return, make sure the :ref:`GST E-Filing & Matching Feature +` is enabled. Then, go to the Accounting dashboard and click +:guilabel:`Tax Returns` on the :guilabel:`Tax Returns` journal. In the +:guilabel:`Accounting Periods` window, fill in the following fields. -.. note:: - **Tax Return Periodicity** can be - :doc:`configured <../accounting/reporting/tax_returns>` according to the user's - needs. - -.. _india/gstr-1: - -Send GSTR-1 -~~~~~~~~~~~ - -#. Click :guilabel:`GSTR-1 Report` to verify the :ref:`GSTR-1 ` report before - uploading it to the **GST portal**. - - .. image:: india/gst-gstr-1-verify.png - :alt: GSTR-1 verify - - .. note:: - The system performs basic validations to ensure compliance with the GST portal's requirements. - Possible issues include: - - - **Incorrect Tax Application:** The tax type does not match the :guilabel:`Fiscal Position` - (:guilabel:`CGST/SGST` applied instead of :guilabel:`IGST` for interstate transactions, or - :guilabel:`IGST` applied instead of :guilabel:`CGST/SGST` for intrastate transactions). - - **Missing HSN Code:** No HSN Code is defined for the product. - - **Invalid HSN Code for Services:** The HSN Code for a service does not start with "99" or is - incorrect. - - **Non-compliant UQC:** The Unit Quantity Code (UQC) does not meet Indian GST standards. - - If any validation fails, the system alerts users with a warning, highlighting the - discrepancies and providing a direct link to the affected lines. - - .. image:: india/gst-gstr-1-validation.png - :alt: GSTR-1 validation warning - -#. Click :guilabel:`Generate` to view the report in **Spreadsheet view**. - - .. image:: india/gst-gstr-1-generate.png - :alt: GSTR-1 generate - - .. image:: india/gst-gstr-1-spreadsheet-view.png - :alt: GSTR-1 Spreadsheet View - -#. If the **GSTR-1** report is correct, then click :guilabel:`Push to GSTN` to send it to the **GST - portal**. The status of the :guilabel:`GSTR-1` report changes to :guilabel:`Sending`. - - .. image:: india/gst-gstr-1-sending.png - :alt: GSTR-1 in the Sending Status +- :guilabel:`Opening Date`: Starting date from which tax return periods are created. +- :guilabel:`Fiscal Year End`: End date of the fiscal year (e.g., :guilabel:`31 March`). +- :guilabel:`GSTIN Periodicity`: Frequency of return filing (e.g., :guilabel:`Monthly`). -#. After a few seconds, the status of the **GSTR-1** report changes to :guilabel:`Waiting for - Status`. It means that the **GSTR-1** report has been sent to the :guilabel:`GST Portal` and is - being verified on the :guilabel:`GST Portal`; +.. tip:: + Alternatively, go to :menuselection:`Accounting --> Reporting --> Tax Report`, click + :icon:`fa-book` :guilabel:`Report:` and select :guilabel:`GSTR-1 (IN)`. Then, click + :guilabel:`Returns` to file the return. - .. image:: india/gst-gstr-1-waiting.png - :alt: GSTR-1 in the Waiting for Status +.. note:: + To reconcile vendor bills with GST portal data, go to + :menuselection:`Accounting --> Reporting --> Tax Report`, click :icon:`fa-book` + :guilabel:`Report:` and select :guilabel:`GSTR-2B`, and click :guilabel:`Reconcile`. -#. Once more, after a few seconds, the status either changes to :guilabel:`Sent` or :guilabel:`Error - in Invoice`. The status :guilabel:`Error in Invoice` indicates that some of the invoices are not - correctly filled out to be validated by the **GST portal**; +.. _india/gstr-1: - - If the state of the **GSTR-1** is :guilabel:`Sent`, it means your **GSTR-1** report is ready to - be filed on the **GST portal**. +Filing GSTR-1 tax return +~~~~~~~~~~~~~~~~~~~~~~~~ - .. image:: india/gst-gstr-1-sent.png - :alt: GSTR-1 Sent +To file a GSTR-1 tax return, follow these steps: - - If the state of the **GSTR-1** is :guilabel:`Error in Invoice`, invoices can be checked for - errors in the chatter. Once issues have been resolved, the user can click - :guilabel:`Push to GSTN` to submit the file again on the **GST portal**. +#. Click the suitable :guilabel:`GSTR-1` report for the desired period to open the filing view. - .. image:: india/gst-gstr-1-error.png - :alt: GSTR-1 Error in Invoice + .. image:: india/gst-gstr-1-file.png + :alt: GSTR-1 filing view -#. Click :guilabel:`Mark as Filed` after filing the **GSTR-1** report on the **GST portal**. The - status of the report changes to :guilabel:`Filed` in **Odoo**. + .. note:: + It is recommended to file the return **five days before the filing date** to avoid any + penalties. - .. image:: india/gst-gstr-1-filed.png - :alt: GSTR-1 in the Filed Status +#. Odoo automatically performs validation checks before submission to ensure compliance with GST + portal requirements that must be addressed before filing. -.. _india/gstr-2B: + .. note:: + The following types of validation issues can be raised: + + - :guilabel:`Apply Appropriate Tax`: :guilabel:`IGST` is not applicable for intra-state + transactions. + - :guilabel:`Wrong CGST/SGST on Inter-State Transactions`: :guilabel:`CGST/SGST` cannot be + applied on inter-state transactions. + - :guilabel:`Fiscal Year Reversed Move`: Credit Notes for invoices issued in a given financial + year should not be included in GSTR-1 after **November 30th**; remove tax from these lines. + - :guilabel:`Invalid HSN Codes`: + - For products (non-services), HSN codes must not begin with `99`. + - For services, HSN codes must begin with `99`. + - :guilabel:`Missing HSN Codes`: Some product lines do not have HSN codes for journal + items. + - :guilabel:`Invalid UQC Codes`: The Unit Quantity Code (UQC) must comply with Indian GST + standards. + - :guilabel:`Missing Document Summary`: Document summary lines are mandatory for GSTR-1. This + check is always marked as :guilabel:`Anomaly` initially. After reviewing the summary by + clicking the relevant check, it changes to :guilabel:`Reviewed`. + - :guilabel:`Missing E-Invoice`: Some invoices are not linked to an e-invoice. + - :guilabel:`Unlinked Unregistered Credit Notes`: Credit Notes have been issued without + referencing an invoice. + + Validation checks have four stages: + + - :guilabel:`To Review`: Check requires review. + - :guilabel:`Reviewed`: Check has been reviewed. + - :guilabel:`Supervised`: Check is supervised, and a supervisor is assigned. + - :guilabel:`Anomaly`: Check has failed. + + Click on any individual check to view and resolve the corresponding issue. -Receive GSTR-2B -~~~~~~~~~~~~~~~ + .. tip:: + A tax return can only be validated when all checks are in the :guilabel:`Reviewed` or + :guilabel:`Supervised` stage. -Users can retrieve the **GSTR-2B Report** from the **GST portal**. This automatically reconciles -the **GSTR-2B** report with your Odoo bills; + After reviewing the checks, click :guilabel:`Validate`. The :guilabel:`Review` stage appears in + green then. -#. Click :guilabel:`Fetch GSTR-2B Summary` to retrieve the **GSTR-2B** summary. After a few seconds, - the status of the report changes to :guilabel:`Waiting for Reception`. This means Odoo is trying - to receive the **GSTR-2B** report from the **GST portal**; +#. Click :guilabel:`GSTR-1 (IN)` to review the report. - .. image:: india/gst-gstr-2b-waiting.png - :alt: GSTR-2B in Waiting for Reception +#. Click :guilabel:`Submit`, and click :guilabel:`Push Data` in the + :guilabel:`Submission Instructions` window to send the report to the GST portal. -#. Once more, after a few seconds, the status of the **GSTR-2B** changes to the :guilabel:`Being - Processed`. It means Odoo is reconciling the **GSTR-2B** report with your Odoo bills; + During this step, GST portal credentials must be verified. As the data is being sent, the + :guilabel:`Send` stage in the progress bar appears orange. Once the GST portal confirms receipt, + the stage turns green. If an error occurs, the :guilabel:`Send` stage changes to red. - .. image:: india/gst-gstr-2b-processed.png - :alt: GSTR-2B in Waiting for Reception + .. note:: + Click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon on the relevant :guilabel:`GSTR-1` + line to display additional options: -#. Once it is done, the status of the **GSTR-2B** report changes to either :guilabel:`Matched` or - :guilabel:`Partially Matched`; + - :guilabel:`Generate XLSX`: Download the GSTR-1 report as an XLSX file. + - :guilabel:`Reset`: Clear the current state and revert the return to the initial stage. - - If the status is :guilabel:`Matched`: +#. Click :guilabel:`Check Status` to retrieve the current status from the GST portal. + Once the confirmation is received, the :guilabel:`Review` stage in the progress bar turns green. + Then, click :guilabel:`Mark as Filed` to finalize and submit the return as filed. - .. image:: india/gst-gstr-2b-matched.png - :alt: GSTR-2B Matched + .. important:: + Once a return is marked as **Filed**, it cannot be reset or filed again. - - If the status is :guilabel:`Partially Matched`, you can review and modify the bills by - clicking :guilabel:`View Reconciled Bills`. This will display categorized discrepancies, such - as bills missing in Odoo or GSTR-2. After making the necessary corrections, click - :guilabel:`re-match` to update the reconciliation and ensure accuracy before finalizing the - report. +.. _india/gstr-2b: - .. image:: india/gst-gstr-2b-partially.png - :alt: GSTR-2B Partially Matched +Receive GSTR-2B tax reconciliation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.. _india/gstr-3: +#. Select the relevant :guilabel:`GSTR-2B` report for the desired period that needs to be + reconciled. -GSTR-3 report -~~~~~~~~~~~~~ +#. In the validation checks view, click :guilabel:`Fetch E-Invoice` to retrieve vendor e-invoice + data for the reconciliation period. The check is initially marked as :guilabel:`Anomaly` and + changes to :guilabel:`Reviewed` after fetching. Then, click :guilabel:`Validate` to confirm and + mark the :guilabel:`Review` stage as green. -The :ref:`GSTR-3 ` report is a monthly summary of **sales** and **purchases**. -This return is auto-generated by extracting information from **GSTR-1** and **GSTR-2**. + .. important:: + The :guilabel:`Fetch E-Invoice` check only turns green if the e-invoice data is fetched + **two days after the end of the last month's reconciliation period**. -#. Users can compare the **GSTR-3** report with the **GSTR-3** report available on the - **GST portal** to verify if they match by clicking :guilabel:`GSTR-3 Report`; +#. Click :guilabel:`Fetch GSTR-2B` to retrieve all invoices from the GST portal. Once the data is + fetched, the :guilabel:`Fetch` stage in the progress bar turns green. To view the raw report + data, click :guilabel:`GSTR-2B (IN)`. -#. Once the **GSTR-3** report has been verified by the user and the tax amount on the **GST portal** - has been paid. Once paid, the report can be **closed** by clicking :guilabel:`Closing Entry`; +#. The fetched invoices are automatically matched with the E-invoices. Click :guilabel:`View Bills` + to see detailed matching results. - .. image:: india/gst-gstr-3-not_filed.png - :alt: GSTR-3 + .. note:: + The :guilabel:`Match` stage indicates the reconciliation status: -#. In :guilabel:`Closing Entry`, add the tax amount paid on the **GST portal** using challan, and - click :guilabel:`POST` to post the :guilabel:`Closing Entry`; + - Orange: Partially matched (some bills require correction). + - Green: Fully matched (all bills reconciled). - .. image:: india/gst-gstr-3-post.png - :alt: GSTR-3 Post Entry + In case of mismatches, correct the affected bills, then click the :icon:`fa-ellipsis-v` + :guilabel:`(ellipsis)` icon to access additional options: -#. Once posted, the **GSTR-3** report status changes to :guilabel:`Filed`. + - :guilabel:`Re-Match`: Re-run the matching process after making corrections. + - :guilabel:`Reset`: Reset the reconciliation to the :guilabel:`Match` stage. - .. image:: india/gst-gstr-3-filed.png - :alt: GSTR-3 Filed +#. After all bills are fully matched, click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon + and select :guilabel:`Mark as Complete`. + The :guilabel:`Complete` stage in the progress bar turns green, finalizing the bill + reconciliation. .. _india/gstr_reports: @@ -587,23 +580,35 @@ The :guilabel:`GSTR-1` report is divided into sections. It displays the :guilabe :abbr:`CGST (Central Goods and Services Tax)`, :abbr:`SGST (State Goods and Service Tax)`, :abbr:`IGST (Integrated Goods and Services Tax)`, and :guilabel:`CESS` for each section. - .. image:: india/gst-gstr-1-sale-report.png + .. image:: india/gst-gstr-1-report.png :alt: GSTR-1 Report -.. _india/gstr-3_report: +.. _india/gstr-2b_report: -GSTR-3 report -------------- +GSTR-2B report +-------------- + +The :guilabel:`GSTR-2` report is divided into sections. It displays the :guilabel:`Base` amount, +:abbr:`CGST (Central Goods and Services Tax)`, :abbr:`SGST (State Goods and Service Tax)`, +:abbr:`IGST (Integrated Goods and Services Tax)`, and :guilabel:`CESS` for each section. + + .. image:: india/gst-gstr-2b-report.png + :alt: GSTR-2B Report + +.. _india/gstr-3b_report: + +GSTR-3B report +-------------- -The :guilabel:`GSTR-3` report contains different sections: +The :guilabel:`GSTR-3B` report contains different sections: - Details of inward and outward supply subject to a **reverse charge**; - Eligible :abbr:`ITC (Income Tax Credit)`; - Values of **exempt**, **Nil-rated**, and **non-GST** inward supply; - Details of inter-state supplies made to **unregistered** persons. - .. image:: india/gst-gstr-3-report.png - :alt: GSTR-3 Report + .. image:: india/gst-gstr-3b-report.png + :alt: GSTR-3B Report Profit and Loss (IN) report --------------------------- diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-1-error.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-1-error.png deleted file mode 100644 index ca4caa1a15bb01f6048ec8a3f4a3501c5ee1c436..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10189 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 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-1-file.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-1-file.png new file mode 100644 index 0000000000000000000000000000000000000000..848405440141c720903a4c1d5433e665933bc7a3 GIT binary patch literal 16506 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 REyI5sG}ZJTqg8BQ{x3vrK+XUF diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-1-generate.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-1-generate.png deleted file mode 100644 index 66c2d4e4fed8d30de9dc10602e6fd5ada6ebb47d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11787 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 U-*GXt{`-`M%5&u^#h35?8#)kB;s5{u diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-1-report.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-1-report.png new file mode 100644 index 0000000000000000000000000000000000000000..0b8720f00ff4d9ae691e3a2b100dc409a2cad159 GIT binary patch literal 20597 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 CIR()G literal 0 HcmV?d00001 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-1-sale-report.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-1-sale-report.png deleted file mode 100644 index 0f71b165a7e23655b9fad21e92df7a63caa72fc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54833 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 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-1-spreadsheet-view.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-1-spreadsheet-view.png deleted file mode 100644 index f91327178ea11139f33d23890f2c5f4e47227604..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65405 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�@C=j@8=i+mOD)TIA-&jl=qhoJa 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 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-1-validation.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-1-validation.png deleted file mode 100644 index f99e9a11350af2aa09a0dc974c789e6d0c89efd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14434 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 H_WyqXrK{+( diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-1-verify.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-1-verify.png deleted file mode 100644 index a874060e7ffe0db2943bcc42def019794cd7af32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7314 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 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-matched.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-matched.png deleted file mode 100644 index 819785fad36da0100a2b7dbb4ecf62a677231dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13897 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 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-partially.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-partially.png deleted file mode 100644 index 45bee9abea858d6af73381ecb59ded97ae01ffd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14518 zcmcJ#cTiJb^e-AkL`6YGKw3}`kS@I?ARr<|dMAKL?}i#eQ>uUv=`Hl$rH3vx^xmrw zdJnxOkMHl@d2|1L_s!cgXP=opXRTe%TI;jQ4pvc;ee#I<5dZ*qBKPTo8UR3u1_15= z9uVA)NK%NC+`b-u`=sjx0Fbo*_uPqLC!qlV2mmUI8Z!9*+T}SOzl+BUNvhuQ_P6@x zxtR=j_LAk64v)v+@%x8(ytt$)9)HqtgBP@`n#bes`UKNK$J&%G}E7=h;vu5deVDSN$lX_KZRIj!)V;4*!yh1;1DS_D6s%)F)#W z_lz1Wsq{5+7AGiW70{2%-N1)9!9|Ty@TarSsNU(1UEZYx^g;m92l&@CZ{15ULNqLd zQH_?7y_>%Pg0ev)HE~Y~0Qi+^G9UkIbTIyKDA~>Py^sI=B zc#V^0BNBi=TNjjZ(U4M|KgHX=1T)AhD{lg93dONLge#)wv>ber{Z5u8CA=NOEj|Mq< z>;e7&h2Y_eOS~{4Ap00^^VMv3zIT3M`Oag2tE{Tq-&1)emS=1ZZ(_2v>;d@cjKG$S zDimsWtWq(0dM?oxKZ$SSmGwU!Z=JhPW4qm+k^@M9t_#5E8Q_gH;K3V!YX4DQ5+Jt|bF?|9iTp>WlZRi) z?@s;^&ksm71$4Jp%@4KN)E+?6Qi>!1Y(RkMdl|c5{-TbJZb3=Uf}=N3h@ZxQtF@kz zoM31||7_czxcK;R0tur$oL-go)|{lA6a>^6gx6$Ljq61#q)C1=jD< zWFhun&ahh=KGhxtnblUjoeO*3uL0!9whvzcYDG1C-0vzo`^#Ja;p_lzHNdzRKuKC` zHA8>I|07EOR=n~0m|Zde;1xjbgQNy*W(Vn|s9`}7WHAIuXjP-0M2+3EU<#+|w9{mM z%CBZM#vl8E+NQ$$15bN)SXG1uyQ#n)MTI#=;%!oaCgXX_7e>=C)Lp2)z&yF>@T)4l zh?kj~p^4TH)V61KJO(@@EcPD1@{>P3yH4kGTPP*&*mDuSRkZ)V+q<8?05^Ah z-T?qGTHvit{%`$X%)#vn{+}MjDW_jAmV-bW2?GvI4Q#5-Y+>()q*hwv@eW`7yJnW5>dgIKV&_SIFclu zRkvs0z0HlGKGc5951cgu*MvP+cfE-kL;0LXDrLj@x$@J~Xe@&iep0B=B< zK1|H`v{YTm^43VTzSqMRF$JebRV)@C&;|s@!U6&ohD~I>?xwT6h1HF9+k_{mfi9(T zCr<}pZjp4Zt{2p3A;0_hF@F1r(h9<1GK(pq^LdXVc7uIH0?@vT)YVTxIv zOJd;I8EJ{MsHa%;AgPCRUB>Nd(RX7SmZ&AWkj2w4m!Z$fXo8&pe@Ee-xxHVUbW2G< z7885QCGVtmg3$CobL!o6Os@N@Ikg|P8PQV%5u1K!T`xU0uc9WV^YDm0L6V%TK&xzb zWb^%o?9)vDYDBX2i>!D8hcyqJ=(~jh3@%#W=0w=%cY7cuZ>fVr9@^>#$9+IT_zDhm zqoh3T#W1od*c=gUKvVEe3c`CcNC{JL)8Ye=2Nu<~f=$TjdFEAr;E@@tx;2s$vxbe3 zh>zq~uKW%6&HvJFQDsKk&*dh_`35?1y^mErJ!iPd?AU_BpS$X#e1zE_Ri6~P5C8e0 z44-`YCOzY=wZl}s%-iKVH>WWDS5G%M$X&M$0@r;7!$8jPq}kM`T6)yPI*0j zYWS5My$XdTYhFY}%;qp#0RBBTr&TX470A87coK`*@>1uW0S@Z*8{Hd7Y{R~j2R;I( zQmHCZAe>PBaSMN*c{ytisrLAFbtTBqT&cP@{G=Vs4YbMj@XU!wd$o8Zt(3^}$YZT3 z)k?np*SAhXsl@}W`&=+2!!V3 zPbT5k)*8g&4a)!@%_+*gOAVl!x;W8wijH!8@ApncEsc`E963YLV#uT71FHI8zi4)0 z*CCM{8P{bY<+oTP-Hlm%*t|Osryr)#nz1UhFn(PthD4JRGEGS@V~GO2oH#BVBAu%A zJtB$>i%(+G>w0$`_h*bT*k9u_dqs7oHAzYPYK_U+T(ij~OgBE=g4K8LcVHmQbW7Em zJJ@h2rgJ=Ra-d72jV#JkuJt&c)2iEJs)`ph@Q_X^1YNAgZf;qxu7Fh$Q>e2r|BZGc zzBkgAvpb%IZG_F8v13eOeAOAB7&}Gd#65;ikT_QN7NF7fpR_H{!dBpJD7qtyXZQ?N z;cHKJAK{n2g_Y0z&a}9UHDGLof!gfEZ82CUc(w=~k0$8|l4js%`q8-e=AHR1i{qQg z5*38SisfKkpTdhUvppt-{atx(;^Ff&7{vOz?Ys*pWJKP5d(?W6^L&5aSFH3l>Gjb<16Wq)l8#3kMwN=AKI=DGW+0N;zKd~jEPx%<^iQf#s1_^EQZO)C6QULN#HMt( z>^|%0ibgp4;nquSw=Gl0&^o){t|`=p)i6(}SK-+^&8<<9q3cWw_Ba?_MY|uCce6=& zkXH>t*I$$Z1ly69^5+8wv*q-vvA?V|zd8?dt=zioG*3n;`? zFEqRFv^Ba@8Jjr-3&@(iGxm@^g2%E>m3i8 z3@i&I%8t}y&wfEpin7p%0)0ZXWhdi|l&|vBznH);74|M_85yWPJ^8~tBVcYUMC#=h z)~UdV6>Q&h@Azp=(F)au-^w$ZDaYv?inJuKk`4QUiF&CNnYbEy{!6~nGnOqb+6H(G zPovG;)OvJW88@lLhMd>o`I}I5ZP31pJ^Jv;fQJqS3LJ>`A;qFx>!sRGmQF=#TV>|S z9|WT>QbKTHIsQS}-jD@w?-PHXhmMMdfUaDM z=?O~3@-QqTqrh?3rq6cOx)!$ZbPMXx+vaP->&`egrKa*~EzRUJ@AU*2r_8fd6YftC zQd9Qt3t6ay+<7cKwGsxZRdqg%j6l3ySlwAz(EzJU5p}{ld}1Ts{=(CHtkdh8xpZPZ zdOwFoYbD9u%eOO2UmB#%=04wVfnY=C{v2cbwYp9{Dl3%^L2s&Lj1D`ci zc`uBvg9eYhQ>@5p0?Zfmv-d>{rZAX=Ow2~{Ls0BF^U+4(9^qZsTmiwdofNtL0xYYl z>g2nYJr@wa%qVJNScL8#c(H&=ZynJ04EIvp=VC<}GbGCxxg}Kxe;s2K6(lw{kJ;nJsqIidJ)F3wLEbk9m_qRGXeryNf9VI{%$wF&d zcLf@VNJ#rAF@ZsjZ!`vB=liEG8s8(fr`kF6;2s>{mQ!JFSLwmbOtZsoF|smXa|q+) z2qxNE_~X{u)=zYdY!v>rP~l0nL#q1YlONO>hTdOV?{x-52DB7Mj9D$yLybL4PEp|< zd8DI2H||@ttVW}2deVA`$>R*t(4<7mh!fPKqJ~Z92~l=*PPT9{evw3xLqUxE8A6On zq1N5grPLj{{RKCs&T^naH^iCV)x&p_NwWIr6Z`&V;qx}l6*+oHYS)X)jc~wNy*t;`7P+_95Go znQEF^E}1!QZ}no+90L{M6OUoG_{#sEKtnpvq?I)_KI!#zYWF;reyE2L8uj;%V_v}b za`?15JdlL5pSTP+S=+OQP=TZL?0H$M5gSrDs*yKU>@5B)`82sPwbieSd9Qhd)cf6P7+i{vZA?^7KP3(tQc@h6* z6PcY7#mFA9{;4ZA+#cJ!3SFSBo@uxTq*rB{UpqPHsN$o-!ZOnBnipuI7q(wT39Wa) zJk{DU!4QxV@tF?7$+w4{Kq&rCi0A9l&^G32P|9KjnvwFsKPdbDJC&7(#qCHC@a>^( z16suQaE#dgra=%d#!QZUQB*OtzR>{P#qJF)tZ&%@n|m9JROB|#_MuuiM-Unk%UNjH zH-jcf+k)N1LX1Rn5Khl<^0cgyIxbL4-N1V}>T@y^k8A+AM67&6>J8VEEr~;ZaAA}2 z=t7bw@!?hk+r==xd)! zp|z7Bm!80~N=%Pp)CCSQl`Pl42Owm@C7*XsP~-2IRTr z91LpQUis*EK+^2GKQWW0*mL3tLmsyTv7y_I57ebu#K?u*-<;f$C78a^wC>|t#uP*t z3xH(}&m=EW*`l&0byAx$IS@xm7M6EF8reu~`V;YTsS|bDTE0e`wd)Qx>$cwG%(Jyz z3$9XVB&7UAJ3^J(ZFjK0qEC4>^>b!FJ@qxDhT4eb<1V(gFIpGV){#KPKuB7vy3Yi0wA%WXMiGgE&d z%;rrmW|<~@(sXwH*yz=FGlk)T~g8vnjh;JLx`$ z8*Boz#LP(xGHPU4z&KC7bXfhM1~b1_Z^S@rK4K?mK?5{#Z2Z?XG}0`Exhjv{nPFTx zeeaKH&D zh)M{0i+1=0x;RqQk0~J#O|Y6xGOs~eGGoT> zbl;PTSyEA&x7uv_0-b*RnafTy?t6 zycowqAK9l0GYz2Fe@1Hj%3UXha^BRc6G~#6=(HkKof;vjWUjn)xE)#^(u$m1@)L7S zZF&7d@#)UTgG;)km?Hanh9NxGqoDUGY0Q)?``U~y;N%GBBhb+a?riJy{C zQJV6E^M%sVeO+W5HVp19C)!iAz61lp5cf~~>6)S{42qD^J$f<&&dj%doV4S z3s3Qfa>W}lIKz20eo7g)ln|5au@jWXq6v_MZ7DE4k)iHzUrc8NrK9u3X2=K<2l?Cy~i+wRgxdG>)dElCVOv4t{ApwL~HD3 zCoV1$-cLVC5QB>sz7#rod0-tp4yXzwqco1Jz4B)!|IWiQ~(1{rj3 zdj^N_C8sCGs_#2YCqf!3+Mi_T0Nql@Yz2jFQZwB-USw7mW_2AEk4+E>n=;+j?)&$`6HQj_Cjb7_z-5Wzb=iK8E&Y91Io2N+N=doHDi418i|=cM@Y2a=`rP}7 zSas?*_YEe?#9VGRhCqIjcL4uJG7XEM`U{61oAvy8vL8`@Em|`bW`yP zmBXbF8P@sWb~48DOlGZ4v&D>-eukZOw9X25a%G-#)33+lh_pG?Bz)1iiaUlGI+mc^AqfX32CC0#dGgLr$3m}#Iz)21nf2sH{* zV@@f~W96xJBwur6g7bJx_V9kLN>q0O9~on+`yp~2>CUwhr{hTzKeG-M##ShN`0M8qskdoeEPsUcGV_yxc?sqqJ zV}(p$^wlMDKb*+(4BO!hbdsNYJ$uJLKxTtWhJy_|b}EE2;frCX+^tnf=k~9d7Wvm$ z8}9+W_Z$jeXmyv!GR}$u7cmJ-&k<3QXunft{cd$P$^c7g?GMnt&g3)%x;7{Hxg)T- zWvXSj=6H}+sBy+TJho2$^?XNgiP8fgypyB$X@c1^Unq45wD0$h#9!vsk}4ID`uBrrI-3{V9f8sN$`; zq0If=sy+Xz`TS$5}cBgI>0X|Op>X~zwiCv&#Z85Y%*UN{%(hO9`7(KxT=-#a|7Ldq7GtB)?q zo(ea%v^zN%28^pnv{;s8L2myO+W@BjiRYXggMNAR!-FMmSVL2P%6*L$=tzyc1`KRC zuaD$;7Yz+i4}~ZI?Bk`^A{Hwi=-TN&5?DXh-+^+2B!`Z|-c3V)MjJO724n;?Jgu^Xv91l%mUVJ_Z zJ4tQT@4afp@JW|aEZWl*d2=MuQyv}GvR6nE#XpGklzBi4nwv!CHKIntKd0zCuJ8+t z>Ms2GVeq54H_(R>@cj`MhFIgE)&ZrCLNrw3!UeYRpWF?eSRY3=eR4;XAuFH=ndydI=1b^2yfL~!tL*}H0v+w%}nl}!H`Ns<7~Ggiaj4k zU=^C&$vZDs?!J+3ejLhTz&-kv=ee3;e<=MEU=m)X6H}0auqnG>QIMq2^WqkBFSn$d zLStUs5o-&fW30~RMorNBEGse{I*WSn6erSlW4;P~Mm$N@Cyi|g0EfGv0D!c}+Jxp` za_<2EmD+n0p4RTSK&BDc*2Z!Cx9b%x(e3ukn92E89Jz1D*&-(@QSwGL7aaOBiw%d#Q?rnw2oa>#wHt`Ej;&TqIdf>H`clD(SC8Xa{L-(IRCG1=~~{f z*;@_hkgRBfvzOd20 zhFOX_f(6bTgFQ>J=z+ z0Whwn((SJIe_wx0z$7fj+FCC)4<<~6tugpaKF^Rm>!|EBsSoYJ@aDe`m_FOiilCb@ zVEnPQ&iup+6K9;8>uWCOqLg2=Z8QeQh5zg$;KuP-O&L6|aQ2_tvl+#B`8?&+JZ)NA zvawF2t5aQuMtUDM{5qil19KN(t~djX_}J|Q8FH2X?gG$>8w38b21(6)$lv~W(T=Q* z@oxGgSGK^1Dv7A)ev3f=d=e6nYNs#1|B}aPB0)g=m%X{&*6jH`xoVFnr{qLW>$p?R zysHtSM}Zd*;J{8C%l-KIvG6lH#2~hp00;DuZ!{Cw_aFd#AN|OmD->&6u(^7c$@a>D zI#jWACCcX+7Q4&#$gw7yD!D;kn?||hj3^clVL4=@_kMJ0&|Uw0Ngxw)|Hzh^X-B@8 zEVO9<$Lo=O)5YK#eWJo75F^9+#EV7>ah>_t+vF<^zC<)_;KPJ0|NKMyd3)~D^FzOA zZ;6d_lfjkSQm)p>M&8FXbjJMm_OZ)% zhQ0HkcSk4Z56LSCZf#E~R<)nWD(X_uk!AD17w*itPA#mVY>SBU+Wj}H#uBiwZs67J zDL)$j&hBTcwR!zaq|?ny13?|o5GJ5r z@1{v9Hr?FUO$$(*$utX;v6nd)ab899Bc4#n039MpxK3fvw?&;o9{l8;>O{VkZ~4kr zio6TjLsy}>iy{&6SUAL)TF3CF3p0wl!1}fb8G_NWj{(A=)VcBcKT%?-kZA9$G$dqt z{1vlG&J)8OEUnM68NvNYP zJyvLI16ed^%f02;;ZNZyV4wJVPAv8L=FX+yGaAau^Xxw?rOT8E*-((uJg9`%$g#$p z2`KRqRAT7L%b$IMQQv>!<}LyNAVoj*yIoh8u9*3HFn5^Q>+A8pV`Gy0QJ&zXwdCmJ zCnRCG1D%lmahg(qx8X`0)!o5b4rrV#9b&@Kd}d&-URss|5dwe`=P=S^si0~0v|zq~ zS>{|5_a+yo2?yDFH0aqz?qE&V<8INZQ=%$CHe+JF7lvFu?fbq9RV`)Ek1f>Z0eidD zzb$2;c=|SRFn{dU#m|ibpS_`aR;!nO2$nWuG{+wcmF4GX->V`7HfxxzYIY&Iv%hRC zIlUfPflF*>2AP4B!yHg#VZ6I08)uvMB;eOBgSCiSSJIjVQk z5lo|wK{^^TONuRMAU<`hg1EG165nNhEv!PRM8l9(YhLS4B|KV9d%wB320&>Eph+5; zFUsH{P07i2!g~bCfbZ&|U`|8fc!Qgl&F!=Z%3_UdHOyDD7b#)=c-2JcX-135dThKN zkqjcaUVQ>n)FCkQ_O@92TgNYZ472u3&|9apTu*PiFdE*V$)`3$p68t zzt=gVWV=d~gpKqzWcvTwjF`5xzU{AY&gz_a@7!Ad|DZyukaASd)o}jF=w~l|?EE|B z#4W>t+D>%ap{`rXWHn~=7H$~Hbl&ZkgBEZ;r{`%D%}4aE145O-{0K~x^V;Xp4`SQd z`0|kSuR40#`u+^yYW_fb5jH#du%O)N^13>M7cXiQ0{-Z|crt&#y?kH3eoj(=doEN1 zQcp3=*IRbgO190_t6CvRA^Aitq;&s+&nHEW*)Al-XX}h0Qtqg4|00Yt^B1DE;EdsFyc|GA7ia|PDq+=CD>^=GdXb4E)hQOAyG)*~t?u%8u<8_P#tM=}MjT@Z69vI<8-Bvp{pwlip11mt=l+(Y~VeKHPMfh{0A4 zvBz1|l%=anM7}0%dUlqfEqGG4($|8rM1I1VhJCRYb?uU^e2z0=6>?tRH=PQrx(dMo z-;a5Au7$o2&6s1I!AR?0&I{o>$t)Y{vs2$(R$gb{aM`N=xDAa%)gz2NZGb*T+o@Mg z0;}s6rAaqC^}O9O&O3}rg~6Sm^||uF{k0MBOLKY+dp@_M%itjEjiqIAh^#Od9P;y( z?HU~Nc>dG+S#J|Y#)lMTwWy{Wh(2jsM^`5|>l)m>4a*JbmAOE%+GiApu(q4o8X{nK zlK4CEx}7tym)5E2cZw{6vt+e(iEE849|@xi+2ECzDCS|i#ZjA)cE(zpiY9Fg{Gzih zl7(|U;aH*AiyWu*-?Xr~=kS_(n^bj2gAJ}34526LF=F2}s?CiAv^@Euy1u@%H;d)W zXrYwgHnqSJHF1=c<(0@H)rKh=DWZyQCilOtt-5sHO$(gg!&$}{mIHq`&;AXft`DoL z-`d=+`?LS`4ubfZ|K~z5_HS$6^pM_+a!l)og%3lN*7g*YJXbKU zf(;kl9TOXJrY|b2WA`d_*xon@$am@>?gIdCX?zZQ9al@|L*a9;`G=IRgvQq&i_3U$ z7zKoJ$@iyK<2sIuY{IIwke^Z?SD&DsN={Y6=cwTtdp%ZRr6#?qFIn78lp_@Hq!Nq#6S)U`d~~X@Y!26@?tZhNI>?VDeGdy|UPI z6v3vD#;nJGLZJt?e?q6ntu6kNy9^GheHz@3kT13ip;k5{2!W%Qu}jWuF*EDOkk=)O zxjBtJU2M#Q?uVG5aWxhmW`p6#1d|b_mgkZ=t8;Dm-dBzCHW;jNx!c$9ZV@;*Mm0M8 z2?auy@fk0Bvi}G3Zg+D`ghnj#j;Q>jtkx|oVO^?dkc1B4y?D5vyMU`Pf{)aO_Hl2M zXokiXw0qQ1A(nKs2Ulq{!2=S{EB$QDQ2D=(55(e(X>Kj|lt$6Tz#0%j!mg}rcJ`I` zqt~p5F?y*9IOL0-5_a48>FAW#Ul(oV<4(~QzETe`2Nwz5otPP&=Xr<+4cN%l9yU^4 zm#F@AODwO8*s+0ZIK?NK-lP=I%Y(B=fIlrov2mJ+sCnv=O)v7TfkMQ*qqGof;*lPA z#~4QHp0T=7ZpI`=BwZ~301>_F4jSuxWY_Hy_41Fkpd=L;XkkErdzW;C?y>vxwgUa) zkr*kSg<`I9;5tx9tF!X=_wagKoO2b_`kz%~RQJy^vFXfHogW&<4RX~-ur9`_Q^YrLC>N1tjaoc>~+cWrl4{{|C!! zZzuWBPzD({RwJ4+Erqm-YnF8?ztrtQFC8sGzqD{-m z-e5I5;zb?|{_;V*;cU_nm-ozQexYhIc?7pO6{T~2q`u+%p$1~%{>OdbNb?Z9VExgu z>R#s2#nu4M2_$s<4DoB2{Sz(};e~XOm!)WXx~xx7UNxk975 z$RrY`9y&`t`wP$42nBU2JKrWIkP>BH(xiyp{{Y{98v5c$Guo7Y-eenk>PcQ&0RG;= zm+&yst}ZJOOuO2cx4tvj>%8!Iap6VfH;gD2hO75*>*tI+Ttx+#OLyax3YT5t7HuPhS<};>$_IYwc=_bM^xK|gm3x{G14ua2fB1e{rtpVGX6p*LSYlP) zO;w`0hkVURlRrOQc$D+<=FW|G^Pm%A&osYSsJFpLx-VJD&GB8T$8qESQ6YtuX+U9E&`&TSZWR4InO44vR zdXej}2Jl7n=HP}hRj~&eHde@`z&U8}+ZyEBHg!dJr5&^v8Io8QR7=Z^yO$P;!g|;`Sb_kczEhv@Pb1Riso?yl%P%jpc#o^5-&Zu-7-hUcwWm`^zcFBEIL6lg+kXyEQ0ju>+sid+suNcn=SWLVgc}d)ntv#EVUz9MTVW9U zw}bWv7Jx4yjVKH8X8xmvMs+%N-luV0vHx6?>9{`WS3O1O+2z}Wb7>TK1zSAqc!zqz zN?o(aIaSg5rHWR5k_(>nI#=N}+8~&@K{yfP;6O6ymZrbQ7`_6_c6WBpszRdpUZYP~ zZRfldH3|P#Dr~dakXFdtFSe$&CTz>DARduzqn+gW#vT!IVpypcckZPbTt7X0AXmyl zaFR12!_OTg!lj=MP*={>RyHCL*-JrA@YN!Fv8ypl7ow+hONBflC9)L7C#r_P#Zt!` z?HjLxMHR@MZ?7FaHxUWki+wvyOvCwDH=V99v;*#Dj8%U^!lRDLXG*@>ey+dL^lBYR z6I_^UxooAz-E;ibP;&LQ5wp&i53z9Y>${~&AUherE8(euUAdch-KgNfCOf1}9N zLt@)Gsh|pv1vJ+^0_+U``TC$F2+riI(0WRbW4A;fc2Dh zCDhL@tRGtiwsAcc5#P6d7m2xi7~;C2<`_u+7w{#KgDF9Tx5)>>D?9^Vu-w_#$qW*7 zv>Dkx8tk)89Fk~Kt@v9>l)NixQePSn$?j(Ny0!DPdu|hlRSc(OO4~KqCE8pyQwE(+ z&5W2_yqFD6{ba3wGkl^+4HjYO5nmr;$=XFTdAY2g=qq#|#mR!FWzJrI5A7bQiDI{X z5z_o-nkr88{=}nzk5)O3&mAGk#&k>DxU#G;&rwb}+>+;jSimqXci-Olh-?AwP;gcD z5LUB4XhC>9-w!|i=snt>2{&U*BY)+`(2jdaQ(^l;?hH_{BNRY;(*lfU4zNi zRW}5g%@-q&@>0f&AN@z%5chHibYoMj_ub~Zb$eI+;Rhn(S0>G_|0uL{Ila8*CZql| mJOU`DGT;gSkKuM5E%CTt?Y-4ql^_4{kdsmRP$Kok_x}Q64ghli diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-processed.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-processed.png deleted file mode 100644 index 043667dbcaf710f5aa5f25df34d7e4edf285a717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14460 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 P$Hwx~%2H(#pTGYPktPMD diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-report.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-report.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb634c9d88644a2ddc06f2a03f8593a3b02d58b GIT binary patch literal 12857 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 literal 0 HcmV?d00001 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-waiting.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-2b-waiting.png deleted file mode 100644 index cca7919308df617191be181da5b7373a303bffba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14527 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�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 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-3-filed.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-3-filed.png deleted file mode 100644 index e7714ca3e642c7e22c75e4982c61101a8bd8522e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13153 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 diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-3-not_filed.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-3-not_filed.png deleted file mode 100644 index 9ec59fe894d069ecf5f88a67f1dc8f90313b8bcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12802 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 BCIbKf diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-3-post.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-3-post.png deleted file mode 100644 index e72d8d1bcecd8f68276602c056f197e4b806a020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13904 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 Hb}#-9Kwt>y diff --git a/content/applications/finance/fiscal_localizations/india/gst-gstr-3b-report.png b/content/applications/finance/fiscal_localizations/india/gst-gstr-3b-report.png new file mode 100644 index 0000000000000000000000000000000000000000..0d3e78c64d329c3066f1720e27476c20cd83f99c GIT binary patch literal 17642 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 Ti8%z^LB!zc>gTe~DWM4ff*Of$ literal 0 HcmV?d00001 From cc24435e3fc5b96caa90381ac22becb5188f5259 Mon Sep 17 00:00:00 2001 From: "Antoine Vandevenne (anv)" Date: Tue, 23 Sep 2025 11:24:50 +0000 Subject: [PATCH 32/52] [IMP] tests: enable additional resource file-related checkers The following custom checkers were never run by the `ci/documentation_guidelines` build and had to be run locally with `make review`: - `check_image_size`: Check that images are not larger than the maximum file size allowed for their extension. - `check_image_color_depth`: Check that PNG images are compressed to 8-bit color depth with PNGQuant. - `check_resource_file_name`: Check that resource file names use hyphens rather than underscores. Since reviewers systematically perform these checks manually, it makes sense to include them in the standard test suite. Should a check raise a false positive (e.g., an `example_db.zip` resource file is added and hyphens should not be used), the red CI can be safely ignored as it is not required for merging. closes odoo/documentation#14717 X-original-commit: 41f2e20636e015d31ce4b6f1daa1911d49de2f27 Signed-off-by: Antoine Vandevenne (anv) --- tests/main.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/tests/main.py b/tests/main.py index 3af845e85d..3275c48540 100644 --- a/tests/main.py +++ b/tests/main.py @@ -18,20 +18,23 @@ ] ADDITIONAL_CHECKERS = [ - checkers.resource_files.check_resource_file_referenced + checkers.resource_files.check_image_size, + checkers.resource_files.check_image_color_depth, + checkers.resource_files.check_resource_file_name, + checkers.resource_files.check_resource_file_referenced, ] def run_additional_checks(argv=None): _enabled_checkers, args = sphinxlint.parse_args(argv) for path in chain.from_iterable(sphinxlint.walk(path, args.ignore) for path in args.paths): - if path.startswith('content') and not path.endswith('.rst'): + if 'content/' in path and not path.endswith('.rst'): # Leave root and locale files alone. for checker in ADDITIONAL_CHECKERS: checker(path) """ -The following checkers are selected for `make test`. +The following built-in checkers are enabled for `make test`: - backtick-before-role: Search for roles preceded by a backtick. - bad-dedent: Check for mis-alignment in indentation in code blocks. - carriage-return: Check for carriage returns (\r) in lines. @@ -55,13 +58,11 @@ def run_additional_checks(argv=None): - role-without-backticks: Search roles without backticks. - trailing-whitespace: Check for trailing whitespaces at end of lines. - unbalanced-inline-literals-delimiters: Search for unbalanced inline literals delimiters. ---- -- all the checkers defined in checkers/* files. -The following checkers are only selected for `make review`. -- line-too-long: Check for line length. +All the custom checkers defined in checkers/* files are also enabled, except for the following ones, +which are only enabled for `make review`: +- line-too-long: Check for line lengths. - early-line-break: Check for early line breaks. - """ if __name__ == '__main__': # Patch sphinxlint's global constants to include our custom directives and parse their content. @@ -87,10 +88,5 @@ def run_additional_checks(argv=None): if os.getenv('REVIEW') == '1': # Enable checkers for `make review`. setattr(sphinxlint.check_line_too_long, 'enabled', True) setattr(checkers.rst_style.check_early_line_breaks, 'enabled', True) - ADDITIONAL_CHECKERS.extend([ - checkers.resource_files.check_image_size, - checkers.resource_files.check_image_color_depth, - checkers.resource_files.check_resource_file_name, - ]) run_additional_checks() sys.exit(sphinxlint.main()) From ab07f94290699ef6ca9a551c54b77557d0dd227f Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Fri, 19 Sep 2025 18:02:43 +0000 Subject: [PATCH 33/52] [ADD] Payroll: Add United States Localization closes odoo/documentation#14701 X-original-commit: 3ad4b7d52d7724caba5ce05c963d34221bfab85d Signed-off-by: Felicia Kuan (feku) Signed-off-by: Lara Martini (larm) --- .../hr/employees/new_employee.rst | 2 + .../hr/payroll/payroll_localizations.rst | 3 +- .../payroll_localizations/united_states.rst | 621 ++++++++++++++++++ .../united_states/940.png | Bin 0 -> 25058 bytes .../united_states/941.png | Bin 0 -> 24485 bytes .../united_states/bank.png | Bin 0 -> 32123 bytes .../united_states/check-payslips.png | Bin 0 -> 13228 bytes .../united_states/create-draft-entry.png | Bin 0 -> 37945 bytes .../united_states/employer-deductions.png | Bin 0 -> 14866 bytes .../united_states/first-rules.png | Bin 0 -> 8166 bytes .../united_states/health.png | Bin 0 -> 7086 bytes .../united_states/irs.png | Bin 0 -> 14697 bytes .../united_states/other-inputs.png | Bin 0 -> 8812 bytes .../united_states/paid.png | Bin 0 -> 15615 bytes .../united_states/payroll-overview.png | Bin 0 -> 37021 bytes .../united_states/post-entries.png | Bin 0 -> 15734 bytes .../united_states/post-tax.png | Bin 0 -> 6079 bytes .../united_states/pre-tax.png | Bin 0 -> 24013 bytes .../united_states/retirement.png | Bin 0 -> 16381 bytes .../united_states/state-filing.png | Bin 0 -> 8685 bytes .../united_states/structure-types.png | Bin 0 -> 16487 bytes .../united_states/us-rules-top-half.png | Bin 0 -> 15867 bytes .../united_states/w2.png | Bin 0 -> 64901 bytes .../united_states/work-entries.png | Bin 0 -> 17835 bytes 24 files changed, 625 insertions(+), 1 deletion(-) create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states.rst create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/940.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/941.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/bank.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/check-payslips.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/create-draft-entry.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/employer-deductions.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/first-rules.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/health.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/irs.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/other-inputs.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/paid.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/payroll-overview.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/post-entries.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/post-tax.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/pre-tax.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/retirement.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/state-filing.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/structure-types.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/us-rules-top-half.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/w2.png create mode 100644 content/applications/hr/payroll/payroll_localizations/united_states/work-entries.png diff --git a/content/applications/hr/employees/new_employee.rst b/content/applications/hr/employees/new_employee.rst index ae2cae68a7..c887e120f3 100644 --- a/content/applications/hr/employees/new_employee.rst +++ b/content/applications/hr/employees/new_employee.rst @@ -405,6 +405,8 @@ the information. Depending on the localization setting, other fields may be present. For example, for the United States, a :guilabel:`SSN No` (Social Security Number) field is present. +.. _employees/private-contact: + PRIVATE CONTACT --------------- diff --git a/content/applications/hr/payroll/payroll_localizations.rst b/content/applications/hr/payroll/payroll_localizations.rst index e7b88d402e..4e7ff96b57 100644 --- a/content/applications/hr/payroll/payroll_localizations.rst +++ b/content/applications/hr/payroll/payroll_localizations.rst @@ -93,7 +93,7 @@ Payroll localization modules are available for the countries listed below. - Switzerland - Türkiye - :doc:`United Arab Emirates ` -- United States +- :doc:`United States ` .. toctree:: :titlesonly: @@ -104,4 +104,5 @@ Payroll localization modules are available for the countries listed below. payroll_localizations/hong_kong payroll_localizations/jordan payroll_localizations/united_arab_emirates + payroll_localizations/united_states payroll_localizations/employment_hero diff --git a/content/applications/hr/payroll/payroll_localizations/united_states.rst b/content/applications/hr/payroll/payroll_localizations/united_states.rst new file mode 100644 index 0000000000..d7389b34e7 --- /dev/null +++ b/content/applications/hr/payroll/payroll_localizations/united_states.rst @@ -0,0 +1,621 @@ +============= +United States +============= + +The U.S. payroll localization covers salary computations for employees, including both employee and +employer payroll taxes. It accounts for federal and state regulations. + +The states included in this localization are: + +- California (CA) +- New York (NY) +- Texas (TX) +- Florida (FL) +- Colorado (CO) +- Alabama (AL) +- Washington (WA) +- Nevada (NV) + +.. note:: + Federal taxes (Income, :abbr:`FICA (Federal Insurance Contributions Act)`, and Unemployment) for + both employees and employers are covered by default in the Odoo U.S. Payroll localization. + Additional states will be added over time, so check back for updates. + +Before configuring the United States localization, refer to the general :doc:`payroll +<../../payroll>` documentation, which includes the basic information for all localizations, as well +as all universal settings and fields. + +.. _payroll/usa_apps: + +Apps & modules +============== + +:ref:`Install ` the following modules to get all the features of the United States +payroll localization: + +.. list-table:: + :header-rows: 1 + + * - Name + - Technical name + - Dependencies + - Description + * - :guilabel:`United States - Payroll` + - `l10n_us_hr_payroll` + - - hr_payroll + - hr_contract_reports + - hr_work_entry_holidays + - hr_payroll_holidays + - Provides U.S. payroll basics, including employee tax details, salary structures + (Basic/Gross/Net), tax rules, and W-2/3PA reporting. + * - :guilabel:`United States - Payroll with Accounting` + - `l10n_us_hr_payroll_account` + - - hr_payroll_account + - l10n_us + - l10n_us_hr_payroll + - Links payroll and accounting by creating journal entries (per payslip if needed) to record + payroll in the company's books. + +.. seealso:: + :doc:`Configure the United States fiscal localization + <../../../finance/fiscal_localizations/united_states>` + +General configurations +====================== + +First, the company must be configured. Navigate to :menuselection:`Settings app --> Users & +Companies --> Companies`. From the list, select the desired company, and configure the following +fields: + +- :guilabel:`Company Name`: Enter the business name in this field. +- :guilabel:`Address`: Complete the full address, including the :guilabel:`City`, :guilabel:`State`, + :guilabel:`Zip Code`, and :guilabel:`Country`. + + .. important:: + The state selected in the company's address is associated as the *work address* by default for + the employee, and the one used to calculate payroll taxes. + +- :guilabel:`Tax ID`: Enter the company's :abbr:`EIN (Employer Identification Number)`. +- :guilabel:`Company ID` : Enter the business's state ID number. +- :guilabel:`Currency`: By default, :abbr:`USD (US Dollars)` is selected. If not, select + :guilabel:`USD` from the drop-down menu. +- :guilabel:`Phone`: Enter the company phone number. +- :guilabel:`Email`: Enter the email used for general contact information. + +.. warning:: + Ensure the information is accurate, as it is used when creating W-2s. + +Employees +========= + +Every employee being paid must have their employee profiles configured for the United States payroll +localization. Additional fields are present after configuring the database for the United States. + +To update an employee form, open the :menuselection:`Employees` app and click on the desired +employee record. On the employee form, configure the required fields in the related tabs. + +Work tab +-------- + +Enter the :guilabel:`Work Address` for the employee in the :guilabel:`Location` section of the +:guilabel:`Work` tab. + +.. important:: + The state selected in this address determines which salary rules Odoo applies when calculating + taxes. + +Personal tab +------------ + +Ensure the employee has a minimum of one :ref:`trusted bank account ` +listed in the :guilabel:`Bank Accounts` field in the :guilabel:`Private Contact` section. + +These accounts are used to pay the employee, via an automation through a NACHA payment file. Payroll +**cannot** be processed for employees without a *trusted* :ref:`bank account +`. If no trusted bank account is set, a warning appears on the +**Payroll** dashboard and an error occurs when attempting to run payroll. + +Ensure there is a valid :guilabel:`SSN No` entered in the :guilabel:`Citizenship` section . The last +four digits of the :abbr:`SSN (Social Security Number)` number appears on the employee's payslips. + +.. image:: united_states/bank.png + :alt: Where bank account information is located on the employee profile. + +Payroll tab +----------- + +Contract overview section +~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section holds information that drives salary calculations. Ensure the following fields are +configured: + +- :guilabel:`Contract`: The Validity of the compensation conditions can be updated depending on the + needs. +- :guilabel:`Wage Type`: Select how the employee is paid. + + - Select :guilabel:`Fixed Wage` for salaried employees who receive the same amount each pay + period. + - Select :guilabel:`Hourly Wage` for employees paid based on hours worked. + + .. tip:: + Set a default :guilabel:`Wage Type` in the salary :ref:`Structure Type + ` to configure employees in bulk. If needed, the default can be + overridden on individual employee records if exceptions are needed. + +- :guilabel:`Contract Type`: Determines how the employee is paid and classified, such as + :guilabel:`Salary-exempt`, :guilabel:`Salary-nonexempt`, :guilabel:`Hourly`. + + .. important:: + This field is visible on payslips. Some states require payslips to state if the employee is + exempt or non-exempt from overtime. Ensure the selection follows the state laws. + +- :guilabel:`Pay Category`: Select :guilabel:`United States: Employee` for this field. This defines + when the employee is paid, their default working schedule, and the work entry type it applies to. + +.. image:: united_states/payroll-overview.png + :alt: The contract overview section of the employee form of the payroll tab. + +Schedule section +~~~~~~~~~~~~~~~~ + +- :guilabel:`Work Entry Source`: Defines how :doc:`work entries <../work_entries>` are generated for + payroll during the specified pay period. The options are: + + - :guilabel:`Working Schedule`: Based on the employee's assigned :ref:`working schedule + ` (e.g., 40 hours per week). + - :guilabel:`Attendances`: Based on :doc:`approved checked-in hours + <../../attendances/management>` in the **Attendances** app. + - :guilabel:`Planning`: Based on :ref:`scheduled shifts ` in the **Planning** + app. + +- :guilabel:`Extra Hours`: Tick the checkbox to allow the **Attendances** app to add any extra work + entries logged by the employee. +- :guilabel:`Working Hours`: Using the drop-down menu, select the default work schedule. This is + particularly important for employees available to receive overtime pay (typically hourly + employees, not salaried). + +W-2 form section +~~~~~~~~~~~~~~~~ + +A W-2 is an annual tax form that reports an employee's wages, taxes, and benefits. Employees use it +to file their tax returns. The options below correspond to checkboxes in *box 13* of the W-2 form. +Select any that apply to the employee. + +- :guilabel:`Statutory Employee`: Tick this box if the employee is exempt from income tax, but + subject to :abbr:`FICA (Federal Insurance Contributions Act)` taxes. +- :guilabel:`Retirement Plan`: Tick this box if the employee is an active contributor to an + employer-sponsored retirement plan. +- :guilabel:`Third-Party Sick Pay`: Tick this box if the employee is covered under a plan where sick + pay benefits may be provided by a third party (e.g., an insurance company) during the year. + +W-4 form section +~~~~~~~~~~~~~~~~ + +A W-4 is an :abbr:`IRS (Internal Revenue Services)` form that determines an employee's federal tax +withholding, which the employer remits directly to the :abbr:`IRS (Internal Revenue Services)`. + +Configure any relevant fields for the employee in this section. + +State filing section +~~~~~~~~~~~~~~~~~~~~ + +An employee's marital status impacts their payroll taxes. Configure the following fields regarding +their status and withholdings. + +- :guilabel:`Status`: Using the drop-down menu, select the employee's *federal* filing status. The + options are :guilabel:`Single`, :guilabel:`Married/RDP filing jointly`, :guilabel:`Married/RDP + filing separately`, :guilabel:`Head of household`, or :guilabel:`Qualifying surviving spouse/RDP + with child`. This typically comes from the employee's W-4 form. +- :guilabel:`Tax Status`: Using the drop-down menu, select the employee's *state* filing status, if + applicable. + + .. tip:: + The federal and state statuses do **not** need to match. + + .. note:: + As of 2025, these states do **not** collect state income tax: Alaska, Florida, Nevada, New + Hampshire, South Dakota, Tennessee, Texas, Washington, and Wyoming. If a payroll localization + exists for these states, there are **no** corresponding state options in the :guilabel:`Tax + Status` field. Leave it blank. + +- :guilabel:`Withholding Allowance`: Enter the total annual amount to be withheld from the + employee's pay for the year, for state taxes. Only fill this out if the employee lives in a state + with state income tax. +- :guilabel:`Extra Withholding`: Enter the total *extra* annual amount (not including the + :guilabel:`Withholding Allowance` amount) to be withheld from the employee's pay for the year, for + state taxes, if the employee lives in a state with state income tax. + +.. image:: united_states/state-filing.png + :alt: The state filing section of the employee form, filled out. + +Common benefits +~~~~~~~~~~~~~~~ + +The following sections of benefits are considered common ones offered by US employers. This +information needs to be populated with the information selected by the employee. + +.. note:: + The benefits listed in this section are considered the most commonly offered by companies. If + other employee benefits exist that require regular paycheck deductions, they can be added as + *inputs*. + +Pre-tax deductions +****************** + +Pre-tax benefits lower the employee's gross wage, which decreases the base amount for tax +calculations. These are displayed at the beginning of the payslip before the gross wage is +stipulated. + +Retirement plans section +^^^^^^^^^^^^^^^^^^^^^^^^ + +This section is where the employee and employer 401(k) contributions are configured. Fill out the +following fields: + +- :guilabel:`401(k)`: Enter the amount of money taken out of the employee's payslip each pay period. + This can be entered either as a percentage (%) of the payslip amount, or a specific dollar amount + per payslip ($/slip). +- :guilabel:`Matching Amount`: Enter the matching amount the employer contributes to the employee's + 401(k), as compared to the employee's contributions. This field can also be configured as either a + percentage (%) of the employee's contribution, or a specific dollar amount ($/slip). +- :guilabel:`Matching Yearly Cap`: If there is a limit to the employer's contribution, enter it as a + percentage of the employee's annual salary. + +.. example:: + A company allows employees to contribute to a 401(k) retirement plan, and matches 50% of the + employee's contributions, up to $5,000 USD a year. The employee earns $50,000 USD a year, and + contributes 20% of their pay to their 401(k), which is $10,000 USD. + + To configure this, enter `20.00` in the :guilabel:`401(k)` field, `50.00` in the + :guilabel:`Matching Amount` field, and `20.00` in the :guilabel:`Matching Yearly Cap` field. + + .. image:: united_states/retirement.png + :alt: An employee's retirement configurations. + +Health benefits section +^^^^^^^^^^^^^^^^^^^^^^^ + +This section is where the employee's health contributions are configured. Populate each of the +fields with the corresponding amount deducted from *each paycheck* for the employee. + +.. image:: united_states/health.png + :alt: The health benefits section for an employee, filled out with payslip deductions. + +Other benefits section +^^^^^^^^^^^^^^^^^^^^^^ + +This section currently only houses a :guilabel:`Commuter` benefit field. Enter the amount being +deducted per paycheck, for applicable commuter benefits. + +Post-tax deductions section +*************************** + +These types of benefits count as deductions *after* taxes are calculated. They appear towards the +end of the payslip before the net amount is displayed. Currently, only one field, :guilabel:`ROTH +401(k)` appears in this section. Enter either a percentage (%) of the payslip amount, or a specific +dollar amount per payslip ($/slip) being deducted from the employee's pay, and deposited into a ROTH +401(k) account. + +Payroll configuration +===================== + +Several sections within the **Payroll** app installs a Salary Structure, Structure Type, Rules, and +Parameters specific to the United States. + +Salary structures & structure types +----------------------------------- + +When the **l10n_us_hr_payroll** module is :ref:`installed `, a new +:guilabel:`Salary Structure` gets installed, :guilabel:`United States: Regular Pay`. This structure +includes one :guilabel:`Structure Type`, :guilabel:`United States: Regular Pay`. + +The :guilabel:`Salary Structure` contains all the individual :ref:`salary rules ` +that informs the **Payroll** app how to calculate employee payslips. + +.. image:: united_states/structure-types.png + :alt: The United States salary structure in the salary structures list. + +.. _payroll/usa_rules: + +Salary rules +------------ + +To view the salary rules that inform the salary structure what to do, navigate to +:menuselection:`Payroll app --> Configuration --> Structures` and expand the :guilabel:`United +States: Employee` group to reveal the :guilabel:`United States: Regular Pay` structure type. Click +:guilabel:`United States: Regular Pay` to view the detailed salary rules. + +.. image:: united_states/us-rules-top-half.png + :alt: The top portion of the US salary rules. + +Each rule defines how pay is calculated, taking into account factors such as commissions, bonuses, +taxes, and insurance. The *logic* behind the :guilabel:`United States: Regular Pay` rules is as +follows: + +- The first four rules listed reflects all sources of income, including the basic wage listed on the + contract (:guilabel:`Basic Salary`), plus any allowances, such as :guilabel:`Commissions`, + :guilabel:`Tips`, and :guilabel:`Bonuses`. + + .. image:: united_states/first-rules.png + :alt: The basic salary rules for the US localization. + +- Adding up these inputs is how the gross salary (:guilabel:`Gross Pay`) is calculated. This amount + is the base amount used to calculate payroll taxes. + +- The next set of rules are the various pre-tax benefits and taxable income, such as + :guilabel:`Medical` insurance contributions and :guilabel:`Commuter Benefits`. After the + employee's :guilabel:`Gross Pay` is calculated, Odoo deducts all the pre-tax benefits listed on + the employee's contract to determine the employee's :guilabel:`Taxable Income`. + + .. image:: united_states/pre-tax.png + :alt: The pre-tax rules for the US localization. + +- Next, all the various tax rules are listed where both federal and state payroll withholdings are + outlined. First, federal tax rules are listed, then any state rules (if any) are listed. + + .. image:: united_states/irs.png + :alt: The federal tax rules for the US localization. + + .. note:: + The rule for federal withholdings for `Worker's Compensation` appears *after* several + state-specific withholdings are listed, and does **not** appear in the above image, but are + listed in the rules. + +- The last rules listed are the post-tax employee deductions. + + .. image:: united_states/post-tax.png + :alt: The post-tax rules for the US localization. + +- The :guilabel:`Other Inputs` tab contains anything else affecting payroll. This includes items to + be added to the payslip, such as :guilabel:`Tips`, and other deductions, such as :guilabel:`Child + Support`. + + .. image:: united_states/other-inputs.png + :alt: The other inputs for the US localization. + +- The employee's net salary is the amount the employee receives from the employer. The formula to + calculate the net salary is: + + .. math:: + + \text{Gross Salary} + \text{Allowances} - \text{Payroll Taxes} - \text{General Deductions} + +- Additionally, an extra section exists in payroll calculation for the US called `Employer + Deductions`, and it breaks down the payments the employer must make as their portion of payroll + taxes. + + .. image:: united_states/employer-deductions.png + :alt: The employer deduction rules for the US localization. + + .. note:: + The rule for employer deductions for `Worker's Compensation` appears *after* several + state-specific employer deductions are listed, and does **not** appear in the above image, but + are listed in the rules. + +Rule parameters +--------------- + +Some calculations require specific rates associated with them, or wage caps. *Rules Parameters* are +capable of listing a value, either a percentage or a fixed amount, to reference in the salary rules. + +.. example:: + The wage base for Social Security tax calculations has a cap for 2025, accounted for in the `US: + FICA OASDI Cap` parameter. + +Most rules pull information stored in the parameters module to get the rate of the rule (a +percentage) and the cap (a dollar amount). + +To view rule parameters, navigate to :menuselection:`Payroll app --> Configuration --> Rule +Parameters`. Here, all rule parameters are displayed with their linked :guilabel:`Salary Rules`, +which can be accessed. Review the parameters associated with a rule by looking for the +:guilabel:`Name` of the rule, and make any edits as needed. + +.. example:: + The Unemployment tax of a company is different from the one added by default in Odoo. To update + this, navigate to :menuselection:`Payroll app --> Configuration --> Rule Parameters`, then, + filter the results by :abbr:`FUTA (Federal Unemployment Tax Act)`, or the name of the state that + needs editing, and edit the corresponding rate from the list. + +.. important:: + Odoo adds updated rule parameters for the current calendar year. It is **not** recommended to + edit rule parameters **unless a federal or state parameter has changed**, and is different from + the rule parameters created by Odoo. Check with all local and national regulations *before* + making any changes to rule parameters. + +Run US payroll +============== + +Before running paypoll, the payroll officer must validate employee :doc:`work entries +<../work_entries>` to confirm pay accuracy and catch errors. This includes checking that all time +off is approved and any overtime is appropriate. + +Work entries sync based on the employee's :doc:`contract <../contracts>` configuration. Odoo pulls +from the assigned working schedule, attendance records, planning schedule, and approved time off. + +Any :ref:`discrepencies or conflicts ` must be resolved, then the work entries +can be :ref:`regenerated `. + +Once everything is correct, draft payslips can be :ref:`created individually ` or +in :doc:`batches <../batches>`, referred to in the **Payroll** app as *Pay Runs*. + +.. image:: united_states/work-entries.png + :alt: The work entries for a pay run, with some time off entered in the work entries. + +.. note:: + To cut down on the payroll officer's time, it is typical to process payslips in batches, either + by wage type (fixed salary vs hourly), pay schedule (weekly, bi-weekly, monthly, etc.), + department (direct cost vs. administration), or any other grouping that best suits the company. + +The process of running payroll includes different actions that need to be executed to ensure that +the amount withheld from payroll taxes is correct, the amount that the employee receives as their +net salary is correct, and the computation of hours worked reflects the employee's actual hours +worked, among others. + +When running a payroll batch, check that the period, company, and employees included are correct +*before* starting to analyze or validate the data. + +Once the payslips are drafted, review them for accuracy. Check the :guilabel:`Worked Days & Inputs` +tab, and ensure the listed worked time is correct, as well as any other inputs. Add any missing +inputs, such as commissions, tips, reimbursements, that are missing. + +Next, check the various totals (gross pay, employee taxes, benefits, employer taxes, net salaries), +then click :guilabel:`Compute Sheet` to update the salary calculations, if there were edits. If +everything is correct, click :guilabel:`Validate`. + +.. image:: united_states/check-payslips.png + :alt: The worked days tab of a payslip. + +Accounting check +---------------- + +The accounting process when running payroll has two components: :ref:`creating journal entries +`, and :ref:`registering payments `. + +.. _payroll/journal: + +Journal entry creation +~~~~~~~~~~~~~~~~~~~~~~ + +After payslips are confirmed and validated, journal entries are posted either individually, or in a +batch. The journal entry is created first as a draft. + +.. important:: + It must be decided if journal entries are done individually or in batches *before* running + payroll. + +.. image:: united_states/create-draft-entry.png + :alt: All payslips in a draft state. + +Four accounts from the US :abbr:`CoA (Chart of Accounts)` are included with the payroll +localization: + +- `611000 Salaries & Wages`: Records gross salary and the employer's portion of payroll expenses. + Also groups values from rules without specific accounts (e.g., company-specific benefits). +- `230100 Employee Payroll Taxes`: Withheld taxes from employees, which the employer must file and + pay. The partner and label columns of the journal entry indicate the specific tax. +- `230200 Employer Payroll Taxes`: Employer portion of payroll taxes to be filed and paid. The + partner and label columns of the journal entry indicate the specific tax. +- `230000 Salary Payable`: Net salary owed to the employee. + +.. note:: + The :abbr:`CoA (Chart of Accounts)` configuration is done by default when a company is located in + the US. The account codes and names can be edited to suit the company's needs. If there is no + :abbr:`CoA (Chart of Accounts)` account associated with a salary rule (used in a salary + structure), Odoo uses the account `Salary Expenses` to create the journal entry, regardless of + the nature of the move. + +If everything seems correct on the journal entry draft, post the journal entries. + +.. image:: united_states/post-entries.png + :alt: Journal entries posted. + +.. _payroll/register: + +Register Payments +----------------- + +After the :ref:`journla entries ` are validated, Odoo can generate payments. + +.. important:: + To generate payments from payslips,employee's **must** have a *trusted* bank account. If the + employee's bank account is *not* marked as `trusted`, NACHA files **cannot** be generated through + Odoo. + +Payments can be :guilabel:`Grouped by Partner` if there is a partner associated with a salary rule. + +.. image:: united_states/paid.png + :alt: Payslips with a status of paid. + +Close Payroll +------------- + +If there are no errors, payroll is completed for the pay period. + +Reports +======= + +The US localization contains several reports unique to the US, which provide tax information for +employees, as well as the ability to integrate with outside organizations such as ADP. + +W2 Report +--------- + +The *W2 Report* provides a CSV file that allows employees to e-file their W2 report with third-party +software. To access this report, navigate to :menuselection:`Payroll -> Reporting -> United States +-> W2`. + +To create a W2 form, click :guilabel:`New`, and a blank :guilabel:`Create W2 Form` page loads. Set +the :guilabel:`Start Date` and :guilabel:`End Date` (typically a calendar year), and select the +:guilabel:`Company`, if in a multi-company database. + +All pay runs for the time period appear in a list view. To add any missing pay runs, click +:guilabel:`Add a line` at the bottom of the list, and select the missing files. + +When done, click the :guilabel:`Generate` button to create a CSV file with a summary of all payroll +related payments made during the specified time period. + +.. image:: united_states/w2.png + :alt: The W2 report screen, with the file to download in the top half. + +Form 941 +-------- + +The *Form 941* report is meant to inform the government of the amount of federal income tax, +:abbr:`FICA (Federal Insurance Contributions Act)` taxes (Medicare and Social Security) withheld +from employee paychecks. It also reports the employee's side of taxes. + +To create this report, navigate to :menuselection:`Payroll -> Reporting -> United States -> Form +941`. Click the :guilabel:`New` button, and a new :guilabel:`Form 941` report page loads. Configure +the information on the top portion of the form, including the :guilabel:`Company`, :guilabel:`Tax +Year`, :guilabel:`Quarter`, :guilabel:`IRS Payment Option` (how the money is being sent to the IRS), +and :guilabel:`Deposit Schedule and Tax Liability` (how often payments are made to the IRS). + +All pay runs for the time period appear in a list view. To add any missing pay runs, click +:guilabel:`Add a line` at the bottom of the list, and select the missing files. + +When done, click :guilabel:`Generate`, and the report is created as a CSV file, and appears on the +:guilabel:`Form 941` report dashboard. Companies then download and submit this report through a +third party for e-filing. + +.. image:: united_states/941.png + :alt: The 941 report screen, with the file to download in the top half. + +Form 940 +-------- + +The *Form 940* report details the annual :abbr:`FUTA (Federal Unemployment Tax Act)` withheld for +payroll. + +To create this report, navigate to :menuselection:`Payroll -> Reporting -> United States -> Form +940`. Click the :guilabel:`New` button, and a new :guilabel:`Form 940` report page loads. Configure +the information on the top portion of the form, including the :guilabel:`Company`, :guilabel:`Tax +Year`, :guilabel:`Single State Payer`, :guilabel:`Multi State Employer`, :guilabel:`Paid in Credit +Reduction State`, and :guilabel:`IRS Payment Option` (how the money is being sent to the IRS). + +All pay runs for the time period appear in a list view. To add any missing pay runs, click +:guilabel:`Add a line` at the bottom of the list, and select the missing files. + +When done, click :guilabel:`Generate`, and the report is created as a CSV file, and appears on the +:guilabel:`Form 940` report dashboard. Companies then download and submit this report through a +third party for e-filing. + +.. image:: united_states/940.png + :alt: The 940 report screen, with the file to download in the top half. + +Export data to third-party apps +------------------------------- + +The *ADP Export* report generates a CSV file that can be submitted to ADP, which then makes payments +to the employees. + +The CSV file summarizes the employee's worked hours during a specified time period, correlating to +their salary or hourly wage. The report is generated from :doc:`work entry <../work_entries>` +*after* any time off is confirmed. + +The export format is meant to match with the ADP format. Since companies can customize their portal +and may require some changes, the data is there to be fed to ADP to run payroll in it. + +.. important:: + To access the ADP Export report, the `United States - Payroll - Export to ADP` module **must** be + :ref:`installed `. diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/940.png b/content/applications/hr/payroll/payroll_localizations/united_states/940.png new file mode 100644 index 0000000000000000000000000000000000000000..21dabe439312182d28d803a45abb028f9a43f86a GIT binary patch literal 25058 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

g(|geVa`nu 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 z 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/create-draft-entry.png b/content/applications/hr/payroll/payroll_localizations/united_states/create-draft-entry.png new file mode 100644 index 0000000000000000000000000000000000000000..c67c88456b18bc09503920b66a696498ebc31e3a GIT binary patch literal 37945 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/health.png b/content/applications/hr/payroll/payroll_localizations/united_states/health.png new file mode 100644 index 0000000000000000000000000000000000000000..264e8efdcb8719d4eb3c285a2311b4275a1f578d GIT binary patch literal 7086 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 AEdT%j literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/irs.png b/content/applications/hr/payroll/payroll_localizations/united_states/irs.png new file mode 100644 index 0000000000000000000000000000000000000000..bc7335d1075812940e257981d2330c8b57d2841e GIT binary patch literal 14697 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

BGB79SDA$BbtK>(V?4PkV=GeS&D*f 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 KMNUMnLSTZtjKtLd literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/post-entries.png b/content/applications/hr/payroll/payroll_localizations/united_states/post-entries.png new file mode 100644 index 0000000000000000000000000000000000000000..25e3dc30c1c60d936414bf3b8ff854f1972398ec GIT binary patch literal 15734 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 HhC%-aOd6~2 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/post-tax.png b/content/applications/hr/payroll/payroll_localizations/united_states/post-tax.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccd54e97900ce416d4f23bd0f6f786bacf717fd GIT binary patch literal 6079 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/pre-tax.png b/content/applications/hr/payroll/payroll_localizations/united_states/pre-tax.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1b592be4cca855f49932db82a25cda86f2e1e3 GIT binary patch literal 24013 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/state-filing.png b/content/applications/hr/payroll/payroll_localizations/united_states/state-filing.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ebb87b04cd76facf13fdfacc584652bc3cb483 GIT binary patch literal 8685 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/united_states/structure-types.png b/content/applications/hr/payroll/payroll_localizations/united_states/structure-types.png new file mode 100644 index 0000000000000000000000000000000000000000..cc803dd8b2c2e03f141266a3aa6b8b5dc6307159 GIT binary patch literal 16487 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

$ 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

*Rwb0}b+Y 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 J)eKbec3q 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 Date: Thu, 18 Sep 2025 17:34:12 +0000 Subject: [PATCH 34/52] [IMP] Update Mercado Pago countries More countries are available: https://www.odoo.com/odoo/knowledge/17784 closes odoo/documentation#14734 X-original-commit: 59ca9b83b4afd99a58d903cb26b2e0cf5dfd91c2 Signed-off-by: Audrey Vandromme (auva) Signed-off-by: Loredana Perazzo (lrpz) --- .../point_of_sale/payment_methods/terminals/mercado_pago.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/applications/sales/point_of_sale/payment_methods/terminals/mercado_pago.rst b/content/applications/sales/point_of_sale/payment_methods/terminals/mercado_pago.rst index 397b2273a2..ee8c972769 100644 --- a/content/applications/sales/point_of_sale/payment_methods/terminals/mercado_pago.rst +++ b/content/applications/sales/point_of_sale/payment_methods/terminals/mercado_pago.rst @@ -6,8 +6,8 @@ Connecting a payment terminal allows you to offer a fluid payment flow to your c the work of your cashiers. .. important:: - Only **Point Smart** payment terminals in **Argentina**, **Brazil**, and **Mexico** are - supported. They can be purchased on `Mercado Pago's website + Only **Point Smart** payment terminals in Argentina, Brazil, Chile, Colombia, Mexico, Peru, and + Uruguay are supported. They can be purchased on `Mercado Pago's website `_. .. seealso:: From d30e295d3e74d347a8dbfc22a2a0a8bc85f71956 Mon Sep 17 00:00:00 2001 From: "guillaume gallant (guga)" <“guga@odoo.com”~> Date: Fri, 26 Sep 2025 09:27:31 +0000 Subject: [PATCH 35/52] [FIX] project: settings changes in 19.0 task-5116839 closes odoo/documentation#14741 X-original-commit: 739266f0aaa18db7a71a68415cb8a64525adb461 Signed-off-by: Xavier Platteau (xpl) --- .../project/project_management/project_dashboard.rst | 11 ++++++++--- .../services/project/tasks/recurring_tasks.rst | 6 ++++-- .../services/project/tasks/task_dependencies.rst | 6 ++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/content/applications/services/project/project_management/project_dashboard.rst b/content/applications/services/project/project_management/project_dashboard.rst index ab4c5e3034..1c8edc9fae 100644 --- a/content/applications/services/project/project_management/project_dashboard.rst +++ b/content/applications/services/project/project_management/project_dashboard.rst @@ -68,9 +68,14 @@ Milestones ---------- This section is only visible if :doc:`milestones ` -have been enabled in the Project’s app settings. Click :guilabel:`Add Milestone` to create a new -milestone. Click a milestone in the checklist to edit it, enable its checkbox to mark it as -completed, or click the :icon:`fa-trash` (:guilabel:`trash`) icon to remove it. +have been enabled in the project you're browsing: go to :guilabel:`Project`, click the +:icon:`fa-ellipsis-v` (:guilabel:`vertical ellipsis`) icon on one of your projects, and click on +:guilabel:`Settings`. Click on the :guilabel:`Settings` tab, look for :guilabel:`Tasks Management` +and make sure :guilabel:`Milestones` is enabled. + +In a project's Dashboard, click :guilabel:`Add Milestone` to create a new milestone. Click a +milestone in the checklist to edit it, enable its checkbox to mark it as completed, or click the +:icon:`fa-trash` (:guilabel:`trash`) icon to remove it. The milestones are displayed in red if they’re past their deadline, or in green if they are ready to be marked as reached (i.e. tasks linked to the milestone that have been marked with :guilabel:`done` diff --git a/content/applications/services/project/tasks/recurring_tasks.rst b/content/applications/services/project/tasks/recurring_tasks.rst index ba02433e99..100d8678dc 100644 --- a/content/applications/services/project/tasks/recurring_tasks.rst +++ b/content/applications/services/project/tasks/recurring_tasks.rst @@ -12,8 +12,10 @@ creation of those tasks. Configuration ============= -To enable recurring tasks, go to :menuselection:`Project --> Configuration --> Settings`, then -activate :guilabel:`Recurring Tasks`, and press :guilabel:`Save`. +To use task dependencies in a project, go to :guilabel:`Project`, click the :icon:`fa-ellipsis-v` +(:guilabel:`vertical ellipsis`) icon on one of your projects, and click on :guilabel:`Settings`. +Click on the :guilabel:`Settings` tab, look for :guilabel:`Tasks Management` and make sure +:guilabel:`Recurring Tasks` is enabled. Set up task recurrence ---------------------- diff --git a/content/applications/services/project/tasks/task_dependencies.rst b/content/applications/services/project/tasks/task_dependencies.rst index 00b87589bb..46d0c33100 100644 --- a/content/applications/services/project/tasks/task_dependencies.rst +++ b/content/applications/services/project/tasks/task_dependencies.rst @@ -6,8 +6,10 @@ Odoo Project allows you to break down projects into tasks and establish relation tasks to determine the order in which they are executed. Task dependencies ensure that certain tasks begin only after the preceding tasks are completed. -To enable task dependencies in projects, go to :menuselection:`Project --> Configuration --> -Settings`, enable :guilabel:`Task Dependencies`, and click :guilabel:`Save`. +To use task dependencies in a project, go to :guilabel:`Project`, click the :icon:`fa-ellipsis-v` +(:guilabel:`vertical ellipsis`) icon on one of your projects, and click on :guilabel:`Settings`. +Click on the :guilabel:`Settings`. Click on the :guilabel:`Settings` tab, look for :guilabel:`Tasks +Management` and make sure :guilabel:`Task Dependencies` is enabled. Set task dependencies ===================== From 5838086e876ea71657fb250ba308fb0ffd9b6b93 Mon Sep 17 00:00:00 2001 From: emmi-odoo Date: Fri, 29 Aug 2025 15:12:06 +0000 Subject: [PATCH 36/52] [ADD] pos/pine_labs: add Pine Labs terminal page task-4921798 closes odoo/documentation#14737 X-original-commit: e6608ccdfa1150cd6de1def674da905161085036 Signed-off-by: Audrey Vandromme (auva) Signed-off-by: Emmanuel Minga (EMMI) --- .../payment_methods/terminals.rst | 4 +- .../payment_methods/terminals/pine_labs.rst | 53 +++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 content/applications/sales/point_of_sale/payment_methods/terminals/pine_labs.rst diff --git a/content/applications/sales/point_of_sale/payment_methods/terminals.rst b/content/applications/sales/point_of_sale/payment_methods/terminals.rst index 99d7384719..2852165ca6 100644 --- a/content/applications/sales/point_of_sale/payment_methods/terminals.rst +++ b/content/applications/sales/point_of_sale/payment_methods/terminals.rst @@ -26,7 +26,8 @@ To activate a payment terminal and allow processing payments with it, follow the - :doc:`Adyen ` - :doc:`Ingenico ` - :doc:`Mercado Pago ` - - :doc:`QFPay configuration ` + - :doc:`Pine Labs ` + - :doc:`QFPay ` - :doc:`Razorpay ` - :doc:`SIX ` - :doc:`Stripe ` @@ -58,6 +59,7 @@ Once the transaction is successful, the payment is automatically validated in Po terminals/adyen terminals/ingenico terminals/mercado_pago + terminals/pine_labs terminals/qfpay terminals/razorpay terminals/six diff --git a/content/applications/sales/point_of_sale/payment_methods/terminals/pine_labs.rst b/content/applications/sales/point_of_sale/payment_methods/terminals/pine_labs.rst new file mode 100644 index 0000000000..3ece53c61d --- /dev/null +++ b/content/applications/sales/point_of_sale/payment_methods/terminals/pine_labs.rst @@ -0,0 +1,53 @@ +========= +Pine Labs +========= + +`Pine Labs `_ offers in-store payment solutions for +customer transactions through several `physical terminals +`_. + +.. important:: + - The Odoo Pine Labs module is only available for Indian companies. + - Pine Labs terminals accept credit/debit cards (Visa, MasterCard, and RuPay) and UPI QR codes + by swiping, scanning, or tapping. + +.. _pos/pine-labs/credentials: + +Pine Labs credentials +===================== + +`Create a Pine Labs account and order at least one terminal +`_. The system then sends an email with the +following credentials: + +- Merchant ID +- Store ID +- Client ID +- Security Token + +.. _pos/pine-labs/odoo-configuration: + +Odoo configuration +================== + +To enable Pine Labs in Odoo, first :ref:`install the POS Pine Labs module ` to +make it visible in the list of payment terminals. Then, follow these steps to connect the Pine Labs +terminal with Odoo Point of Sale: + +#. Go to :menuselection:`Point of Sale --> Configuration --> Settings`, scroll down to the + :guilabel:`Payment Terminals` section, enable the relevant :ref:`payment terminal + `, and click :guilabel:`Save`. +#. Go to :menuselection:`Point of Sale --> Configuration --> Payment Methods` and :doc:`create a + payment method <../../payment_methods>`. +#. Set the :guilabel:`Journal` field to :guilabel:`Bank`. +#. Set the :guilabel:`Integration` field to :guilabel:`Terminal`. +#. Set the :guilabel:`Integrate with` field to :guilabel:`Pine Labs`. +#. Paste the copied :ref:`credentials ` in their corresponding fields. +#. Select the preferred payment mode in the :guilabel:`Pine Labs Allowed Payment Modes` field and + save. +#. Go to :menuselection:`Point of Sale --> Configuration --> Settings` and add the created payment + method to the :guilabel:`Payment Methods` list to use it in a POS. +#. Click :guilabel:`Save`. + +.. tip:: + Enable the :guilabel:`Pine Labs Test Mode` to test transaction processes with a device. From 44244eef7844ab8531cfab221f89af4b59384271 Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Tue, 30 Sep 2025 18:20:24 +0000 Subject: [PATCH 37/52] [IMP] Payroll: Update Public Holiday Error closes odoo/documentation#14747 X-original-commit: 92bb19f524c508f6fa5eb85dacb7e33d101e2257 Signed-off-by: Felicia Kuan (feku) Signed-off-by: Lara Martini (larm) --- content/applications/hr/time_off.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/content/applications/hr/time_off.rst b/content/applications/hr/time_off.rst index 661e730e03..c8a31b2268 100644 --- a/content/applications/hr/time_off.rst +++ b/content/applications/hr/time_off.rst @@ -153,14 +153,15 @@ off is visible to other users, and how the time off affects the **Payroll** app. request would be for three hours, since the two extra worked hours are used first, and deducted from the request. -- :guilabel:`Public Holiday Included`: Enable this option if public holidays should be excluded from - a time off request. +- :guilabel:`Public Holiday Included`: Enable this option if public holidays should be included in + time off requests. .. example:: An employee in the United States requests time off for the week of July 4th, for a total of five days. Since the 4th of July is a holiday in the United States, the time off request is - automatically modified for four days off instead of five. That is because the holiday is - included, and the user does not need to use their own vacation time for a public holiday. + automatically modified to use four vacation days and one public holiday, instead of five + vacation days. That is because the holiday is included, and the user does not need to use their + own vacation time for a public holiday. This option reduces extra work for users, enabling them to make only one time off request for the entire week, instead of making two separate requests, one for the days *before* the From 1fdf7a765aca508075d4804430101f525663299a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CDallas=E2=80=9D?= Date: Thu, 17 Apr 2025 13:51:31 +0000 Subject: [PATCH 38/52] [ADD] journals: explain journals and accounts task-3991940 closes odoo/documentation#14763 X-original-commit: b6da586dfc01ba124f01e8e59ada797811d6f13a Signed-off-by: Dallas Dean (dade) --- .../applications/finance/accounting/bank.rst | 159 +---------- .../accounting/bank/bank-journal-config.png | Bin 25967 -> 0 bytes .../accounting/bank/reconciliation.rst | 7 +- .../finance/accounting/get_started.rst | 1 + .../get_started/chart_of_accounts.rst | 94 +++---- .../chart-of-accounts-reconciliation.png | Bin 2508 -> 0 bytes .../accounting/get_started/journals.rst | 266 ++++++++++++++++++ .../finance/accounting/payments.rst | 10 +- .../finance/accounting/payments/batch_sdd.rst | 16 +- .../finance/accounting/reporting/year_end.rst | 2 +- .../fiscal_localizations/argentina.rst | 6 +- .../finance/fiscal_localizations/vietnam.rst | 2 +- .../finance/payment_providers.rst | 2 +- 13 files changed, 345 insertions(+), 220 deletions(-) delete mode 100644 content/applications/finance/accounting/bank/bank-journal-config.png delete mode 100644 content/applications/finance/accounting/get_started/chart_of_accounts/chart-of-accounts-reconciliation.png create mode 100644 content/applications/finance/accounting/get_started/journals.rst diff --git a/content/applications/finance/accounting/bank.rst b/content/applications/finance/accounting/bank.rst index 8bb8c218c8..a9a5f8dde8 100644 --- a/content/applications/finance/accounting/bank.rst +++ b/content/applications/finance/accounting/bank.rst @@ -13,7 +13,7 @@ account. Both the journal and the account are automatically created and configur a bank account. .. note:: - Cash journals and accounts must be configured manually. + :ref:`Cash journals ` and accounts must be configured manually. Bank journals are displayed by default on the :guilabel:`Accounting Dashboard` in the form of cards which include action buttons. @@ -29,9 +29,9 @@ Manage bank and cash accounts Connect a bank for automatic synchronization -------------------------------------------- -To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration ---> Add a Bank Account`, select your bank in the list, click :guilabel:`Connect`, and follow the -instructions. +To connect your bank account to your database, go to the :guilabel:`Accounting Dashboard` and on the +kanban card of an unconnected bank, click :guilabel:`Search over 26000 banks`. Select your bank from +the list, click on :guilabel:`Connect`, and follow the instructions. .. seealso:: :doc:`bank/bank_synchronization` @@ -44,153 +44,18 @@ Create a bank account If your banking institution is not available in Odoo, or if you don't want to connect your bank account to your database, you can configure your bank account manually. -To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Add a Bank -Account`, click :guilabel:`Record transactions manually` (at the bottom right), fill out the bank -information, and click :guilabel:`Create`. +To manually add a bank account, go to the :guilabel:`Accounting Dashboard` and on the kanban card of +an unconnected bank, click :guilabel:`Search over 26000 banks`. Then, click on :guilabel:`Record +transactions manually` (at the bottom right), fill out the bank information, and click +:guilabel:`Create`. .. note:: - Odoo automatically detects the bank account type (e.g., IBAN) and enables some features accordingly. - - A default bank journal is available and can be used to configure your bank account by going to - :menuselection:`Accounting --> Configuration --> Accounting: Journals --> Bank`. Open it and - edit the different fields to match your bank account information. - -Create a cash journal ---------------------- - -To create a new cash journal, go to :menuselection:`Accounting --> Configuration --> Accounting: -Journals`, click :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field. - -For more information on the accounting information fields, read the -:ref:`accounting/bank/configuration` section of this page. - -.. note:: - A default cash journal is available and can be used straight away. You can review it by going to - :menuselection:`Accounting --> Configuration --> Accounting: Journals --> Cash`. - -Edit an existing bank or cash journal -------------------------------------- - -To edit an existing bank journal, go to :menuselection:`Accounting --> Configuration --> Accounting: -Journals` and select the journal you want to modify. - -.. _accounting/bank/configuration: - -Configuration -============= - -You can edit the accounting information and bank account number according to your needs. - -.. image:: bank/bank-journal-config.png - :alt: Manually configure your bank information - -.. seealso:: - - :doc:`get_started/multi_currency` - - :doc:`bank/transactions` - - `Bank configuration `_ - -.. _accounting/bank/suspense: - -Suspense account ----------------- - -Bank statement transactions are posted on the suspense account until they are reconciled. At any -moment, the suspense account's balance in the general ledger shows the balance of transactions that -have not yet been reconciled. - -.. note:: - When a bank transaction is reconciled, the journal entry is modified to replace the bank suspense - account with the account of the journal item it is reconciled with. This account is usually the - :ref:`outstanding receipts or payments account ` if - reconciling with a registered payment or the account receivable or payable if reconciling with - an invoice or bill directly. - -Profit and loss accounts ------------------------- - -The :guilabel:`Profit Account` is used to register a profit when the ending balance of a cash -register differs from what the system computes, while the :guilabel:`Loss Account` is used to -register a loss when the ending balance of a cash register differs from what the system computes. - -Currency --------- - -You can edit the currency used to enter the transactions. - -.. seealso:: - :doc:`get_started/multi_currency` - -.. _accounting/bank/account-number: - -Account number --------------- - -If you need to **edit your bank account details**, click the external link arrow next to your -:guilabel:`Account Number`. On the account page, click the external link arrow next to your -:guilabel:`Bank` and update your bank information accordingly. These details are used when -registering payments. - -.. image:: bank/bank-account-number.png - :alt: Edit your bank information - -Bank feeds ----------- - -:guilabel:`Bank Feeds` defines how the bank transactions are registered. Three options are -available: - -- :guilabel:`Undefined yet`, which should be selected when you don’t know yet if you will - synchronize your bank account with your database or not. -- :guilabel:`Import (CAMT, CODA, CSV, OFX, QIF)`, which should be selected if you want to import - your bank statements and transactions using a different format. -- :guilabel:`Automated Bank Synchronization`, which should be selected if your bank is synchronized - with your database. - -.. seealso:: - - :doc:`bank/bank_synchronization` - - :doc:`bank/transactions` - -.. _accounting/bank/outstanding-accounts: - -Outstanding accounts -==================== - -By default, payments in Odoo do not create journal entries, but they can easily be configured to -create journal entries using **outstanding accounts**. - -- An **outstanding receipts account** is where incoming payments are posted until they are linked - with incoming bank transactions. -- An **outstanding payments account** is where outgoing payments are posted until they are linked - with outgoing bank transactions. - -These accounts are usually of :ref:`type ` :guilabel:`Current Assets` and -:guilabel:`Current Liabilities`. - -Payments that are registered in Odoo are posted to the outstanding receipts and outstanding accounts -until they are reconciled. At any moment, the outstanding receipts account's balance in the general -ledger shows the balance of registered incoming payments that have not yet been reconciled, and the -outstanding payments account's balance in the general ledger shows the balance of registered -outgoing payments that have not yet been reconciled. - -Bank and cash journal configuration ------------------------------------ - -To configure payments to create journal entries, set outstanding accounts for the journal's payment -methods. This can be done for any journal with the :ref:`type ` -:guilabel:`Bank` or :guilabel:`Cash`. - -To configure the outstanding accounts for a journal's payment methods, first go to -:menuselection:`Accounting --> Configuration --> Journals` and select a bank or cash journal. In the -:guilabel:`Incoming Payments` and :guilabel:`Outgoing Payments` tabs, set :guilabel:`Outstanding -Receipts accounts` and :guilabel:`Outstanding Payments accounts` for each payment method that you -want to create journal entries. - -.. note:: - - If the main bank account of the journal is added as an outstanding receipts account or - outstanding payments account, when a payment is registered, the invoice or bill's status is - directly set to :guilabel:`Paid`. - - If the outstanding receipts or outstanding payments account for a payment method is left blank, - registering a payment with that payment method will not create any journal entry. + - A default :ref:`bank journal ` is available and can be used to + configure your bank account by going to :menuselection:`Accounting --> Configuration --> + Accounting: Journals --> Bank`. Open it and edit the different fields to match your bank + account information. .. toctree:: :titlesonly: diff --git a/content/applications/finance/accounting/bank/bank-journal-config.png b/content/applications/finance/accounting/bank/bank-journal-config.png deleted file mode 100644 index e60972fc1d33109cf63165f944cc34a71ff3881c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25967 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 BlfeK0 diff --git a/content/applications/finance/accounting/bank/reconciliation.rst b/content/applications/finance/accounting/bank/reconciliation.rst index 0ee8dd93ca..e626718b6d 100644 --- a/content/applications/finance/accounting/bank/reconciliation.rst +++ b/content/applications/finance/accounting/bank/reconciliation.rst @@ -56,10 +56,9 @@ Transactions ------------ Every :doc:`transaction ` is linked to a journal entry that debits/credits the -journal's main account and its :ref:`suspense account ` until it is fully -reconciled. At that point, the suspense account is replaced with the account of the counterpart item -or, in the case of :ref:`manual matching `, the selected -account. +journal's main account and its suspense account until it is fully reconciled. At that point, the +suspense account is replaced with the account of the counterpart item or, in the case of +:ref:`manual matching `, the selected account. .. _accounting/reconciliation/action-buttons: diff --git a/content/applications/finance/accounting/get_started.rst b/content/applications/finance/accounting/get_started.rst index 4341b0b4c4..5b9b5569ad 100644 --- a/content/applications/finance/accounting/get_started.rst +++ b/content/applications/finance/accounting/get_started.rst @@ -191,6 +191,7 @@ Get started with Stripe and enable secure integrated credit and debit card payme get_started/cheat_sheet get_started/chart_of_accounts get_started/consolidation + get_started/journals get_started/multi_currency get_started/avg_price_valuation get_started/tax_units diff --git a/content/applications/finance/accounting/get_started/chart_of_accounts.rst b/content/applications/finance/accounting/get_started/chart_of_accounts.rst index eba7abcf4c..843e37a1a2 100644 --- a/content/applications/finance/accounting/get_started/chart_of_accounts.rst +++ b/content/applications/finance/accounting/get_started/chart_of_accounts.rst @@ -54,45 +54,45 @@ Correctly configuring the **account type** is critical as it serves multiple pur To configure an account type, open the :guilabel:`Type` field's drop-down selector and select the corresponding type from the following list: -+---------------+--------------+-------------------------+ -| Report | Category | Account Types | -+===============+==============+=========================+ -| Balance Sheet | Assets | Receivable | -| | +-------------------------+ -| | | Bank and Cash | -| | +-------------------------+ -| | | Current Assets | -| | +-------------------------+ -| | | Non-current Assets | -| | +-------------------------+ -| | | Prepayments | -| | +-------------------------+ -| | | Fixed Assets | -| +--------------+-------------------------+ -| | Liabilities | Payable | -| | +-------------------------+ -| | | Credit Card | -| | +-------------------------+ -| | | Current Liabilities | -| | +-------------------------+ -| | | Non-current Liabilities | -| +--------------+-------------------------+ -| | Equity | Equity | -| | +-------------------------+ -| | | Current Year Earnings | -+---------------+--------------+-------------------------+ -| Profit & Loss | Income | Income | -| | +-------------------------+ -| | | Other Income | -| +--------------+-------------------------+ -| | Expense | Expense | -| | +-------------------------+ -| | | Depreciation | -| | +-------------------------+ -| | | Cost of Revenue | -+---------------+--------------+-------------------------+ -|Other | Other | Off-Balance Sheet | -+---------------+--------------+-------------------------+ ++---------------+-------------+-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| Report | Category | Account Types | Description | ++===============+=============+=========================+=================================================================================================================+ +| Balance Sheet | Assets | Receivable | Money owed to the company by customers for goods or services delivered | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Bank and Cash | Funds held in company bank accounts or on hand as cash | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Current Assets | Short-term assets expected to be converted into cash within a year | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Non-current Assets | Long-term assets not expected to be converted to cash within a year | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Prepayments | Payments made in advance for goods or services to be received in the future | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Fixed Assets | Tangible long-term assets like buildings, machinery, and vehicles used in operation and subject to depreciation | +| +-------------+-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | Liabilities | Payable | Money the company owes to suppliers or vendors | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Credit Card | Balances and transactions associated with company credit card usage | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Current Liabilities | Obligations due within one year, such as short-term loans or accrued expenses | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Non-current Liabilities | Long-term debts and financial obligations due beyond one year | +| +-------------+-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | Equity | Equity | The owner's residual interest in the company after liabilities are deducted from assets | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Current Year Earnings | The company's net profit or loss accumulated in the current fiscal year | ++---------------+-------------+-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| Profit & Loss | Income | Income | Revenue generated from the company's primary business activities | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Other Income | Revenue from secondary or non-operational sources, like interest or asset sales | +| +-------------+-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | Expense | Expense | Costs incurred during operations to generate revenue | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Depreciation | The allocation of the cost of tangible assets over their useful life | +| | +-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| | | Cost of Revenue | Direct costs attributable to the production or delivery of goods and services | ++---------------+-------------+-------------------------+-----------------------------------------------------------------------------------------------------------------+ +| Other | Other | Off-Balance Sheet | Transactions not displayed on the balance sheet or profit and loss report | ++---------------+-------------+-------------------------+-----------------------------------------------------------------------------------------------------------------+ Assets ~~~~~~ @@ -156,18 +156,12 @@ and select :guilabel:`Hierarchy and Subtotals`. Allow reconciliation -------------------- -Some accounts, such as accounts made to record the transactions of a payment method, can be used for -the reconciliation of journal entries. +To keep the reconciliation process simple, when reconciling a bank, cash, or credit card transaction +with an existing journal item, only journal items that debit or credit accounts with the +:guilabel:`Allow reconciliation` option enabled are displayed as possible matches. -For example, an invoice paid with a credit card can be marked as :guilabel:`paid` if reconciled with -its payment. Therefore, the account used to record credit card payments needs to be configured as -**allowing reconciliation**. - -To do so, check the :guilabel:`Allow Reconciliation` box in the account's settings, and -:guilabel:`Save`; or enable the button from the chart of accounts view. - -.. image:: chart_of_accounts/chart-of-accounts-reconciliation.png - :alt: Allow reconciliation for accounts in Odoo Accounting +To enable this option on an account, tick the :guilabel:`Allow Reconciliation` checkbox in the +account's settings, and :guilabel:`Save`; or enable the button from the chart of accounts view. .. _coa_shared_accounts: diff --git a/content/applications/finance/accounting/get_started/chart_of_accounts/chart-of-accounts-reconciliation.png b/content/applications/finance/accounting/get_started/chart_of_accounts/chart-of-accounts-reconciliation.png deleted file mode 100644 index 8e17776bbaa66d3a1ab2435b7ab9d6a72ed66bb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2508 zcmai0XEYlO8%=ds)uBuAwyL#fQL_{=Y9v-^@mf_hR$n`%cG1u@NUV?wC6xw6s8M^= zEU~3#%@`Fj?D6@2y#Ky)zUQ3#+;jgu=REh^b77`neJ&1O4gdhaW$;+X{Dc`N2xL2b zvO8el+b6{S&tq#p0N_IFe{m{B;sPH4zydTiexiGDa6qHcs8s6a<|g~)dwY9(ySux` z$H)8o`&cZNPNy@O%&o1h?d|Q(o`IR!#hsmEEs zFNMUTqazM(p|}LpB_8p%_MX!6nm_B*^H)WXDH#GH$~SJya`Q^k>5RJ)592?ity4E< ze$U+$kQ0%9l$nK@n_Ijkq=-n)Tv((O78VLgsiV@eJ$>E~E51KaGfqTil@hD%oL`CG z*Y*jBkXJR>-rnix=wL9Iul&Mc@YLG+=9021G$wy%XScDrePC!b;PqR5kgcY^C7+;z znHQjqFKKG&kWtiY{n2IXUt|ozuo=Ay0Ij2!R5DH~|jm??|YXZtWMQ#%At_d)Y=G?bK52Cf5W) zooWBn0P_Wj)jW>iNQR|rQf$czq{yqBkUVDrsm9CNHfH>?gG2h@%f7?yGNHO1S{Ezh z@ox6>siEq8U%NXW4-^b4(yjE%cx`GpQRLsjMqQZ^yFbGy=lD$c*-v54u&N?yl5H?e ziUySP{NP{ddLPGR6ZlUTUojV(MxUY#h92beEOf?7G^%pPpg`t&{PiL?8*?&=hBIQh zbGj&(A1q@(U&tHx#|nvcSOArpzrnH~!2O62`pBTPPDM{olvhmI$@NrLjWSO%;q3*# z+?0>Eql;pKw=Cl4fO2Ba8n+Vbh-}uZ!4_=QU@=g^f=0H!^bAXdE13d<>G6X$Gb8Sq zcNKI9u2_pxvQlp{;CM-*DAu-gO*jB?nqm>ieU+l2T-Zu!^Ab{k)33b^VFvqN47GBw zR^m;bkvpS3+M(onH|2(PU87}c2HbVF#VFA3>`~5Kg@punx^~uBPxGWGo~@~nS3mEs`bM6|PQYKt z2m_l@$m^XgXP&XeJ!0WYx5yG!5q|i|%465a zyiZ-eQ*YY*edX0|ytV1nr`Yu-kG&sW*Zej36%va;RX1KxWMzV@e7L&b$FE`HT-tx` zt3PWTRak5@OY08pm!RJb;MCbmp4vs$4ImE0!L%&&G_7~Er~g;Xi&H!LPhIvM_LI2UnmTiF=2 z|13VuocO2Suv(Ch_mx=?vNI|0iER=H5~wPp*r<0m#3zQ}g%un(4JKQowW7GB6fd9o zKS}d%1~HB=9D1=C^4^Y07JiG(^SL7`CU`~&bY9B9I7)G~jY>qPCYArqyY9|%T3#6%U|3MmKamzz#RBpNI(yI!^9o*({gTX=p89w zlGvh8T3gpX)EZsqX;d5S_X$^Cv+MgI%=m1%*2ojqNN8FmBqKD7d{sTMUv3Lo`Lnnx1_ea`UVkK9mX@KA=#gi zjEaOy-xHhzG` +- :ref:`Cash ` +- :ref:`Credit Card ` +- :ref:`Sales ` +- :ref:`Purchase ` +- :ref:`Miscellaneous ` + +.. note:: + It is possible to have multiple journals of the same type, such as two separate bank journals, + each for a unique bank account, or two separate sales journals to track :abbr:`B2B (business to + business)` versus :abbr:`B2C (business to customer)` income. + +.. _accounting/journals/configuration: + +Configuration +============= + +Each card on the :guilabel:`Accounting Dashboard` represents a journal. To edit the configuration of +a journal, click the :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` on the journal card, then +click :guilabel:`Configuration`. Alternatively, go to :menuselection:`Accounting --> Configuration +--> Journals` to select and edit an existing journal or to create a new one. + +While different journal types have slightly different fields to configure, some fields are +consistent across all the journal types: + +- :guilabel:`Short Code`: Each journal must have a unique code (from 1 to 5 characters long). The + short code is used as the prefix for all journal entries belonging to this journal. +- :guilabel:`Currency`: If desired, set the currency of this journal. For bank and cash journals, + this is the currency of the journal's :doc:`transactions <../bank/transactions>`. This field is + only visible when :doc:`multiple currencies ` are enabled. + +The :guilabel:`Advanced Settings` tab contains more technical options: + +- :guilabel:`Allowed accounts`: Limit which accounts are available when recording journal entries in + this journal. Leave this field blank to allow all accounts. +- :guilabel:`Email Alias`: Set an email address to create journal entries by digitizing PDFs sent + to this address. This is most commonly used to create :ref:`customer invoices and vendor bills + `. +- :guilabel:`Secure Posted Entries with Hash`: Restrict the :doc:`alterability + <../reporting/data_inalterability>` of this journal's entries to comply with tax authorities in + certain countries. + +.. warning:: + The :guilabel:`Secure Posted Entries with Hash` option cannot be removed from a journal once the + journal has a posted journal entry. + +.. note:: + - Bank and cash journals do not have the :guilabel:`Secure Posted Entries with Hash` or + :guilabel:`Email Alias` fields. + - If an :ref:`alias domain ` has not yet been configured, a link to + :icon:`fa-arrow-right` :guilabel:`Configure Alias Domain` is displayed instead of the + :guilabel:`Email Alias` field. + +.. _accounting/journals/bank-cash-cc: + +Bank, cash, and credit card journals +------------------------------------ + +Bank, cash, and credit card journals share the following features: + +- :guilabel:`Suspense Account`: :doc:`../bank/transactions` on this journal are posted on this + account until they are reconciled, at which point this account is replaced with the account the + transaction was reconciled against. At any moment, the suspense account's balance in the general + ledger shows the balance of transactions that have not yet been reconciled. + + .. note:: + When a bank transaction is reconciled, the journal entry is modified to replace the bank + suspense account with the account of the journal item it is reconciled with. This account is + usually either: + + - the :ref:`outstanding receipts or payments account + ` if reconciling with a registered payment; or + - the account receivable or payable if reconciling with an invoice or bill directly. + +- :guilabel:`Dedicated Payment Sequence`: Tick this field to use separate sequences for payments + and transactions posted on this journal. + + .. note:: + If the :guilabel:`Dedicated Payment Sequence` field is ticked, payments that use an + :ref:`outstanding account ` will have references that + add :guilabel:`P` before the journal's short code. Otherwise, the references will begin with + :guilabel:`PAY`. + +The :guilabel:`Incoming Payments` and :guilabel:`Outgoing Payments` tabs contain the :ref:`payment +methods ` of this journal. Different payment methods are +available depending on the journal type. If desired, set :ref:`outstanding accounts +` on the payment methods. + +.. seealso:: + - :doc:`../bank` + - :doc:`multi_currency` + - :doc:`../bank/transactions` + - `Bank configuration `_ + +.. _accounting/journals/outstanding-accounts: + +Outstanding accounts +~~~~~~~~~~~~~~~~~~~~ + +By default, payments in Odoo do not create journal entries, but they can be configured to create +journal entries by using **outstanding accounts** on :ref:`bank ` and +:ref:`cash ` journals. + +- An **outstanding receipts account** is where incoming payments are posted until they are linked + with incoming bank transactions. +- An **outstanding payments account** is where outgoing payments are posted until they are linked + with outgoing bank transactions. + +These accounts are usually of :ref:`type ` :guilabel:`Current Assets` and +:guilabel:`Current Liabilities`. + +Payments that are registered in Odoo are posted to the outstanding receipts and outstanding accounts +until they are reconciled. At any moment, the outstanding receipts account's balance in the general +ledger shows the balance of registered incoming payments that have not yet been reconciled, and the +outstanding payments account's balance in the general ledger shows the balance of registered +outgoing payments that have not yet been reconciled. + +Configuration +************* + +To configure outstanding accounts, go to :menuselection:`Accounting --> Configuration --> Journals` +and select or create a bank or cash journal. In the :guilabel:`Incoming Payments` and +:guilabel:`Outgoing Payments` tabs, set :guilabel:`Outstanding Receipts accounts` and +:guilabel:`Outstanding Payments accounts` for each payment method that you want to create journal +entries. + +.. note:: + - If the main bank account of the journal is added as an outstanding receipts account or + outstanding payments account, when a payment is registered, the invoice or bill's status is + directly set to :guilabel:`Paid`. + - If the outstanding receipts or outstanding payments account for a payment method is left blank, + registering a payment with that payment method will not create any journal entry. + +.. _accounting/journals/bank: + +Bank +~~~~ + +Bank journals are used to record journal entries related to :doc:`bank transactions +<../bank/transactions>` and incoming and outgoing :doc:`payments <../payments>`. The following +fields are specific to bank journals: + +- :guilabel:`Bank Account`: This :guilabel:`Bank and Cash` type account is the default account for + this bank journal. +- :guilabel:`Account Number`: The bank account's number is used when registering payments and is + required for generating outgoing payment files, such as :doc:`SEPA <../payments/pay_sepa>` or + :ref:`NACHA `. To edit the bank account details, click on the + :icon:`oi-arrow-right` :guilabel:`(Internal link)` button next to the :guilabel:`Account Number` + and update the account information accordingly. +- :guilabel:`Bank`: The bank name is used when registering payments and is required for generating + outgoing payment files. To edit the bank account details, click on the :icon:`oi-arrow-right` + :guilabel:`(Internal link)` button next to the :guilabel:`Bank` name and update the account + information accordingly. +- :guilabel:`Bank Feeds`: Define the method of creating bank :doc:`transactions + <../bank/transactions>`, whether :guilabel:`Manual` or via :doc:`Online Synchronization + <../bank/bank_synchronization>`. +- :guilabel:`Split Transactions`: Split collective payments for CODA files. + +Multiple payment methods are available for bank journals, as are configurations for generating +outgoing payment files, such as :doc:`SEPA <../payments/pay_sepa>` or :ref:`NACHA `. + +.. _accounting/journals/cash: + +Cash +~~~~ + +Cash journals are used to record journal entries related to cash :doc:`transactions +<../bank/transactions>`. The following fields are specific to cash journals: + +- :guilabel:`Cash Account`: This :guilabel:`Bank and Cash` type account is the default account for + this cash journal. +- :guilabel:`Profit Account`: This :guilabel:`Income` or :guilabel:`Other Income` type account is + used to register a profit when the ending balance of a cash register is greater than expected. +- :guilabel:`Loss Account`: This :guilabel:`Expenses` type account is used to register a loss when + the ending balance of a cash register is less than expected. + +Only manual payment methods are available for cash journals. + +.. _accounting/journals/credit: + +Credit card +~~~~~~~~~~~ + +Credit card journals are used to record journal entries related to credit cards. The following +fields are specific to credit card journals: + +- :guilabel:`Journal Account`: This :guilabel:`Credit Card` type account is the default account for + this credit card journal. +- :guilabel:`Bank Feeds`: Define the method of creating credit card transactions, whether manual or + via :doc:`Online Synchronization <../bank/bank_synchronization>`. + +Only manual payment methods are available for credit card journals. + +.. _accounting/journals/sales-purchase-misc: + +Sales, purchase, and miscellaneous journals +------------------------------------------- + +.. _accounting/journals/sales: + +Sales +~~~~~ + +Sales journals, also known as income journals, are used to record journal entries related to +:doc:`customer invoices <../customer_invoices>`. The following fields are specific to customer +invoice journals: + +- :guilabel:`Default Income Account`: Invoices in this journal use this :guilabel:`Income` or + :guilabel:`Other Income` type account unless overwritten by another income account set on the + product category, product, or invoice line itself. +- :guilabel:`Dedicated Credit Note Sequence`: Check this box to use a separate sequence for the + reference of credit notes that increments separately from the main invoice sequence and adds an + `R` to the reference before the journal's short code. +- :guilabel:`Dedicated Debit Note Sequence`: Check this box to use a separate sequence for the + reference of credit notes that increments separately from the main invoice sequence and adds a `D` + before the journal's short code. + +Sales journals have additional fields in the :guilabel:`Advanced Settings` tab that allow you to set +the default communication format that will appear on customer invoices so that the customer can +refer to that particular invoice when making a payment: + +- :guilabel:`Communication Type`: Choose if the format of the payment reference communicated to the + customer should be based on the invoice number or the customer's number. +- :guilabel:`Communication Standard`: Choose the format of the payment reference itself that is + communicated to the customer. + +.. _accounting/journals/purchase: + +Purchase +~~~~~~~~ + +Purchase journals are used to record journal entries related to :doc:`vendor bills +<../vendor_bills>`. The following fields are specific to purchase journals: + +- :guilabel:`Default Expense Account`: Vendor bills in this journal use this :guilabel:`Expense` + type account unless overwritten by another expense account set on the product category, product, + or expense. +- :guilabel:`Private Part Account`: Select the account to be used to register the private part of + mixed expenses. +- :guilabel:`Dedicated Credit Note Sequence`: Check this box to use a separate sequence for the + reference of credit notes that increments separately from the main vendor bill sequence and adds + an `R` to the reference before the journal's short code. +- :guilabel:`Dedicated Debit Note Sequence`: Check this box to use a separate sequence for the + reference of credit notes that increments separately from the main invoice sequence and adds a `D` + before the journal's short code. + +.. _accounting/journals/misc: + +Miscellaneous +~~~~~~~~~~~~~ + +Miscellaneous journals are used to record journal entries that are not related to any of the other +journal types such as tax closing journal entries. + +.. seealso:: + - `Tax return eLearning `_ + - :doc:`../reporting/tax_returns` + - :doc:`../taxes` diff --git a/content/applications/finance/accounting/payments.rst b/content/applications/finance/accounting/payments.rst index d6994482d8..df127e0b32 100644 --- a/content/applications/finance/accounting/payments.rst +++ b/content/applications/finance/accounting/payments.rst @@ -113,8 +113,8 @@ After the payment is registered, the customer invoice or vendor bill is marked a .. group-tab:: Without outstanding accounts - If no :ref:`outstanding accounts ` are configured, no - journal entry is created. To display more information about the payment, click the + If no :ref:`outstanding accounts ` are configured, + no journal entry is created. To display more information about the payment, click the :guilabel:`Payments` smart button. When the invoice or vendor bill is :doc:`reconciled ` with a bank @@ -130,11 +130,11 @@ After the payment is registered, the customer invoice or vendor bill is marked a By default, payments in Odoo do not create journal entries, but they can easily be configured to create journal entries using :ref:`outstanding accounts - `. + `. Registering a payment on a customer invoice or vendor bill generates a new journal entry and reduces the :guilabel:`Amount Due` based on the payment amount. The counterpart is - reflected in an :ref:`outstanding ` **receipts** or + reflected in an :ref:`outstanding ` **receipts** or **payments** account. At this point, the customer invoice or vendor bill is marked as :guilabel:`In payment`. Then, when the payment is :doc:`reconciled ` with a bank transaction, the invoice or vendor bill status changes to :guilabel:`Paid`. @@ -172,7 +172,7 @@ directly linked to an invoice or bill. .. group-tab:: Without outstanding accounts Payments that are not linked to an invoice or bill should not be registered without using - :ref:`outstanding accounts `, as there is no way to + :ref:`outstanding accounts `, as there is no way to associate the payment with the invoice or bill since no journal entry is created for the payment. The amount paid or received is not reflected in the accounting and the :guilabel:`Amount Due` is not updated based on the payment amount. diff --git a/content/applications/finance/accounting/payments/batch_sdd.rst b/content/applications/finance/accounting/payments/batch_sdd.rst index 010f8df0e2..af89ec89a2 100644 --- a/content/applications/finance/accounting/payments/batch_sdd.rst +++ b/content/applications/finance/accounting/payments/batch_sdd.rst @@ -153,7 +153,7 @@ automatically withdraws the amount of that payment from the recipient's account, transaction for a negative amount is created to reflect the |sdd| rejection. |sdd| rejections are handled differently depending on whether :ref:`outstanding accounts -` are configured or not for the |sdd| payment method. +` are configured or not for the |sdd| payment method. .. note:: The following procedures assume that the incoming |sdd| payment's bank transaction has already @@ -163,8 +163,8 @@ transaction for a negative amount is created to reflect the |sdd| rejection. .. tab:: Without outstanding accounts - If no :ref:`outstanding accounts ` are configured for - the |sdd| payment method, no journal entry is created. In this case, you must cancel and + If no :ref:`outstanding accounts ` are configured + for the |sdd| payment method, no journal entry is created. In this case, you must cancel and unreconcile the payment. #. Access the invoice linked to the rejected |sdd| payment. @@ -180,11 +180,11 @@ transaction for a negative amount is created to reflect the |sdd| rejection. .. tab:: Using outstanding accounts - If an :ref:`outstanding account ` is set on the |sdd| - payment method, |sdd| payments create journal entries. If an |sdd| payment is rejected, you - must reverse the journal entry associated with the rejected payment and reconcile the reversal - of the journal entry with the transaction for the |sdd| rejection. To do so, follow these - steps: + If an :ref:`outstanding account ` is set on the + |sdd| payment method, |sdd| payments create journal entries. If an |sdd| payment is rejected, + you must reverse the journal entry associated with the rejected payment and reconcile the + reversal of the journal entry with the transaction for the |sdd| rejection. To do so, follow + these steps: #. Access the invoice linked to the rejected |sdd| payment. #. Click the :icon:`fa-info-circle` :guilabel:`(information)` icon in the footer of the diff --git a/content/applications/finance/accounting/reporting/year_end.rst b/content/applications/finance/accounting/reporting/year_end.rst index 8f265df59b..58b95784f4 100644 --- a/content/applications/finance/accounting/reporting/year_end.rst +++ b/content/applications/finance/accounting/reporting/year_end.rst @@ -47,7 +47,7 @@ Before closing a fiscal year, ensure that everything is accurate and up-to-date: - Confirm that all :doc:`vendor bills <../vendor_bills>` have been created and confirmed. - Ensure the accuracy of all :doc:`expenses <../../expenses>` and validate them. - Check that all :doc:`received payments <../payments>` have been encoded and confirmed. -- Close all :ref:`suspense accounts `. +- Close all :ref:`suspense accounts `. - Book all :doc:`depreciation <../vendor_bills/assets>` and :doc:`deferred revenue <../customer_invoices/deferred_revenues>` entries. diff --git a/content/applications/finance/fiscal_localizations/argentina.rst b/content/applications/finance/fiscal_localizations/argentina.rst index 7315e6f888..7846701a43 100644 --- a/content/applications/finance/fiscal_localizations/argentina.rst +++ b/content/applications/finance/fiscal_localizations/argentina.rst @@ -696,9 +696,9 @@ Taxes` and removing the default :guilabel:`Sale or Purchase` filter. To verify t `: Journal entries are *not* created when payments are posted unless :ref:`outstanding accounts -` are set up. Thus, for this feature to work properly, it is -important to verify that *all* payment methods within the bank journals have an outstanding payment -and receipt account set. +` are set up. Thus, for this feature to work properly, it +is important to verify that *all* payment methods within the bank journals have an outstanding +payment and receipt account set. .. image:: argentina/l10n-ar-outstanding-payments.png :alt: An outstanding payment account must be set. diff --git a/content/applications/finance/fiscal_localizations/vietnam.rst b/content/applications/finance/fiscal_localizations/vietnam.rst index 908e67e2c0..d49a91f1fa 100644 --- a/content/applications/finance/fiscal_localizations/vietnam.rst +++ b/content/applications/finance/fiscal_localizations/vietnam.rst @@ -255,7 +255,7 @@ Enable :guilabel:`Include Reference` to include the invoice number in the QR cod .. important:: - The account holder's country must be set to `Vietnam`, and their city must be specified on the contact form. - - The :ref:`account number ` and bank must be set on the + - The :ref:`account number ` and bank must be set on the :guilabel:`Bank` journal. .. seealso:: diff --git a/content/applications/finance/payment_providers.rst b/content/applications/finance/payment_providers.rst index 50da629cf9..9793771d99 100644 --- a/content/applications/finance/payment_providers.rst +++ b/content/applications/finance/payment_providers.rst @@ -452,7 +452,7 @@ entries. We recommend you ask your accountant for advice. By default, the :guilabel:`Bank Account` defined for the :ref:`payment journal ` is used, but you can also specify an :ref:`outstanding account -` for each payment provider to separate the provider's +` for each payment provider to separate the provider's payments from other payments. .. image:: payment_providers/bank_journal.png From 94575634da329c04c4e9c2edb8df2fa4adabc20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CDallas=E2=80=9D?= Date: Thu, 4 Sep 2025 08:11:51 +0000 Subject: [PATCH 39/52] [IMP] accounting/tax-mapping: split tax mapping from fiscal positions closes odoo/documentation#14762 X-original-commit: 3bd5aa05937e02370f530b8e79e0b0e5b5932c89 Signed-off-by: Dallas Dean (dade) --- .../applications/finance/accounting/taxes.rst | 46 ++++++++++++- .../accounting/taxes/fiscal_positions.rst | 62 +++++++++--------- .../fiscal-positions-tax-mapping.png | Bin 14775 -> 0 bytes .../accounting/taxes/tax-mapping-example.png | Bin 0 -> 8217 bytes .../accounting/taxes/tax-mapping-list.png | Bin 0 -> 8599 bytes .../point_of_sale/pricing/fiscal_position.rst | 2 +- 6 files changed, 76 insertions(+), 34 deletions(-) delete mode 100644 content/applications/finance/accounting/taxes/fiscal_positions/fiscal-positions-tax-mapping.png create mode 100644 content/applications/finance/accounting/taxes/tax-mapping-example.png create mode 100644 content/applications/finance/accounting/taxes/tax-mapping-list.png diff --git a/content/applications/finance/accounting/taxes.rst b/content/applications/finance/accounting/taxes.rst index 3f7514c302..94b2fb70a3 100644 --- a/content/applications/finance/accounting/taxes.rst +++ b/content/applications/finance/accounting/taxes.rst @@ -20,9 +20,9 @@ are also used to prefill the :guilabel:`Taxes` field when adding a new line on a .. image:: taxes/default-configuration.png :alt: Odoo fills out the Tax field automatically according to the Default Taxes -To change your **default taxes**, go to :menuselection:`Accounting --> Configuration --> Settings ---> Taxes --> Default Taxes`, select the appropriate taxes for your default sales tax and purchase -tax, and click on :guilabel:`Save`. +To change your **default taxes**, go to :menuselection:`Accounting --> Configuration --> Settings`, +scroll down to the :guilabel:`Taxes` section, select the appropriate default sales and purchase +taxes in the :guilabel:`Default Taxes` field, and click on :guilabel:`Save`. .. image:: taxes/default-taxes.png :alt: Define which taxes to use by default on Odoo @@ -173,6 +173,46 @@ Tax scope The :guilabel:`Tax Scope` restricts the use of taxes to a type of product, either **goods** or **services**. +.. _taxes/tax-mapping: + +Tax mapping +----------- + +Taxes can be combined with :doc:`fiscal positions ` to map taxes to each +other so that the correct tax is applied based on the customer's or vendor's location and business +type. + +When configuring a tax, leave the :guilabel:`Fiscal Position` field blank to apply the tax across +all fiscal positions or select specific fiscal positions where this tax should be used. If one or +multiple fiscal positions are selected, use the :guilabel:`Replaces` field to select all of the +taxes that this tax should replace for the selected fiscal position(s). + +To replace one tax with multiple other taxes, configure each of the replacement taxes to replace the +default product tax. + +.. example:: + As a sales tax, the :guilabel:`0% Exports` tax applies to quotations, sales orders, and invoices + that use the :guilabel:`Foreign Trade` fiscal position. On those records, any time that the + :guilabel:`15%` tax would be used, the :guilabel:`0% Exports` tax is used instead. + +.. note:: + Since the first fiscal position in the sequence is considered the company's default, the taxes + set on products are expected to be used with that fiscal position, so the :guilabel:`Replaces` + field is not displayed on it. + + .. image:: taxes/tax-mapping-example.png + :alt: The **0% Exports** tax record + +.. tip:: + To more easily view which taxes are replaced, use the :icon:`oi-settings-adjust` + :guilabel:`adjust settings` in the taxes list view and display the :guilabel:`Replaces` field. + + .. image:: taxes/tax-mapping-list.png + :alt: The **Replaces** field shown in the list view + +.. note:: + Tax mapping only works with :ref:`taxes/active` taxes. + .. _taxes/definition-tab: Definition tab diff --git a/content/applications/finance/accounting/taxes/fiscal_positions.rst b/content/applications/finance/accounting/taxes/fiscal_positions.rst index cd3556c786..3646c3143b 100644 --- a/content/applications/finance/accounting/taxes/fiscal_positions.rst +++ b/content/applications/finance/accounting/taxes/fiscal_positions.rst @@ -3,11 +3,11 @@ Fiscal positions (tax and account mapping) ========================================== Default taxes and accounts are set on products and customers to create new transactions on the fly. -However, depending on the customers' and providers' localization and business type, using different +However, depending on the customers' and vendors' location and business type, using different taxes and accounts for a transaction might be necessary. -**Fiscal positions** allow the creation of rules to adapt the taxes and accounts used for a -transaction automatically. +**Fiscal positions** allow the creation of rules to adapt the taxes and the income and expense +accounts used for a transaction automatically. They can be applied :ref:`automatically `, :ref:`manually `, or :ref:`assigned to a partner `. @@ -16,38 +16,39 @@ They can be applied :ref:`automatically `, :ref:`man Several default fiscal positions are available as part of your :ref:`fiscal localization package `. +.. _fiscal_positions/configuration: + Configuration ============= - .. _fiscal_positions/mapping: +To edit or create a fiscal position, go to :menuselection:`Accounting --> Configuration --> Fiscal +Positions`, and open the record to modify or click :guilabel:`New`. -Tax and account mapping ------------------------ +.. tip:: + If any notes are legally required when using this fiscal position, add them in the + :guilabel:`Legal Notes...` field below the :ref:`tax mapping ` + section to display them on quotations, sales orders, invoices, and bills. -To edit or create a fiscal position, go to :menuselection:`Accounting --> Configuration --> Fiscal -Positions`, and open the entry to modify or click on :guilabel:`New`. +.. _fiscal_positions/tax-mapping: -The mapping of taxes and accounts is based on the default taxes and accounts defined in the -product form. +Tax mapping +----------- -- To map to another tax or account, fill out the right column (:guilabel:`Tax to Apply`/ - :guilabel:`Account to Use Instead`). +Fiscal positions are required to map taxes. :ref:`Tax mapping ` is configured on +taxes themselves. -.. image:: fiscal_positions/fiscal-positions-tax-mapping.png - :align: center - :alt: Example of a fiscal position's tax mapping +.. _fiscal_positions/account-mapping: -.. image:: fiscal_positions/fiscal-positions-account-mapping.png - :align: center - :alt: Example of a fiscal position's account mapping +Account mapping +--------------- -- To remove a tax, leave the field :guilabel:`Tax to Apply` empty. -- To replace a tax with several other taxes, add multiple lines using the same :guilabel:`Tax on - Product`. +Account mapping is based on the income and expense accounts defined on the product or product +category. To map to another account, select the account to be replaced in the left column +(:guilabel:`Account on Product`) and select the account to use instead in the right column +(:guilabel:`Account to Use Instead`). -.. note:: - The mapping only works with *active* taxes. Therefore, make sure they are active by going to - :menuselection:`Accounting --> Configuration --> Taxes`. +.. image:: fiscal_positions/fiscal-positions-account-mapping.png + :alt: Example of a fiscal position's account mapping Application =========== @@ -68,7 +69,6 @@ From there, several conditions can be activated: selected country or country group. .. image:: fiscal_positions/fiscal-positions-automatic.png - :align: center :alt: Example of a fiscal position automatic application settings .. note:: @@ -91,12 +91,11 @@ From there, several conditions can be activated: Manual application ------------------ -To manually select a fiscal position, open a sales order, invoice, or bill, go to the -:guilabel:`Other Info` tab and select the desired :guilabel:`Fiscal Position` before adding product -lines. +To manually select a fiscal position, open a sales order, purchase order, invoice, or bill, go to +the :guilabel:`Other Info` tab and select the desired :guilabel:`Fiscal Position` before adding +product lines. .. image:: fiscal_positions/fiscal-positions-manual.png - :align: center :alt: Selection of a fiscal position on a sales order, invoice, or bill .. _fiscal_positions/partner: @@ -109,9 +108,12 @@ To define which fiscal position must be used by default for a specific partner, :guilabel:`Sales & Purchase` tab, and select the :guilabel:`Fiscal Position`. .. image:: fiscal_positions/fiscal-positions-customer.png - :align: center :alt: Selection of a fiscal position on a customer +.. tip:: + To view all partners at once instead of only customers, remove the :guilabel:`Customer Invoices` + filter or use the **Contacts** application. + .. seealso:: * :doc:`../taxes` diff --git a/content/applications/finance/accounting/taxes/fiscal_positions/fiscal-positions-tax-mapping.png b/content/applications/finance/accounting/taxes/fiscal_positions/fiscal-positions-tax-mapping.png deleted file mode 100644 index ace6efff75d39f998fd7873aa579f898a883ab69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14775 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 diff --git a/content/applications/finance/accounting/taxes/tax-mapping-example.png b/content/applications/finance/accounting/taxes/tax-mapping-example.png new file mode 100644 index 0000000000000000000000000000000000000000..1b95f868e0ab2400c95ab923497468e2c6d2c35c GIT binary patch literal 8217 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 activated, several fiscal positions are preconfigured and can be set and used in POS. However, you -can also :ref:`create new fiscal positions `. +can also :ref:`create new fiscal positions `. .. note:: If you do not set a fiscal position, the tax remains as defined in the **customer taxes** field From 258cc10941330fcf3fa5fc1572166615fd09794a Mon Sep 17 00:00:00 2001 From: Gorash Date: Thu, 25 Sep 2025 10:48:54 +0200 Subject: [PATCH 40/52] [IMP] base,all: remove deprecated 't-esc' ir.qweb directive closes odoo/documentation#14675 Related: odoo/odoo#228421 Related: odoo/enterprise#95456 Related: odoo/upgrade#8493 Related: odoo/design-themes#1150 Related: odoo/upgrade-util#326 Signed-off-by: Christophe Matthieu (chm) --- content/administration/on_premise/geo_ip.rst | 2 +- .../howtos/standalone_owl_application.rst | 4 ++-- .../developer/reference/backend/security.rst | 4 ++-- content/developer/tutorials/web.rst | 18 +++++++++--------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/content/administration/on_premise/geo_ip.rst b/content/administration/on_premise/geo_ip.rst index 25d3c2f9f5..5fb9ce8bc6 100644 --- a/content/administration/on_premise/geo_ip.rst +++ b/content/administration/on_premise/geo_ip.rst @@ -47,7 +47,7 @@ request IP address. To do so: .. code-block:: xml -

+

#. Save and refresh the page. diff --git a/content/developer/howtos/standalone_owl_application.rst b/content/developer/howtos/standalone_owl_application.rst index 807b41fe29..880270d20a 100644 --- a/content/developer/howtos/standalone_owl_application.rst +++ b/content/developer/howtos/standalone_owl_application.rst @@ -117,9 +117,9 @@ Now that we have created our assets bundle, we need to create a diff --git a/content/developer/reference/backend/security.rst b/content/developer/reference/backend/security.rst index 0fea6bfa13..47d7c4f0d6 100644 --- a/content/developer/reference/backend/security.rst +++ b/content/developer/reference/backend/security.rst @@ -383,8 +383,8 @@ While formatting the template differently would prevent such vulnerabilities.
-
-
+
+
diff --git a/content/developer/tutorials/web.rst b/content/developer/tutorials/web.rst index ffc5cc4e33..dd24bcd983 100644 --- a/content/developer/tutorials/web.rst +++ b/content/developer/tutorials/web.rst @@ -613,7 +613,7 @@ with the template modified to: .. code-block:: xml -
Hello
+
Hello
will result in: @@ -631,7 +631,7 @@ essentially be that set up by :func:`~odoo.Widget.init`): .. code-block:: xml -
Hello
+
Hello
:: @@ -683,7 +683,7 @@ The ``t-esc`` directive can be used to output text: .. code-block:: xml -
Hello
+
Hello
It takes a Javascript expression which is evaluated, the result of the expression is then HTML-escaped and inserted in the document. Since it's an @@ -692,13 +692,13 @@ complex expression like a computation: .. code-block:: xml -
+
or method calls: .. code-block:: xml -
+
Outputting HTML ~~~~~~~~~~~~~~~ @@ -753,7 +753,7 @@ bind to each item during iteration.
- Hello + Hello
@@ -886,7 +886,7 @@ Exercise - +
@@ -1602,7 +1602,7 @@ Exercises
-

+

@@ -1744,7 +1744,7 @@ attributes are:
-

+

From dafbda8194972a9456dff70cd38c97fa40d23fb5 Mon Sep 17 00:00:00 2001 From: theRealThagomizer <96515928+theRealThagomizer@users.noreply.github.com> Date: Thu, 2 Oct 2025 17:01:11 +0000 Subject: [PATCH 41/52] [FIX] Journla typo Fixed a typo in US payroll localization page around journal/journla closes odoo/documentation#14766 X-original-commit: 2f96b091afff3a780dea5a1b3b37540bc6f588a9 Signed-off-by: Thomas Jude Cavazos (thjud) --- .../hr/payroll/payroll_localizations/united_states.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/applications/hr/payroll/payroll_localizations/united_states.rst b/content/applications/hr/payroll/payroll_localizations/united_states.rst index d7389b34e7..c94dea12a8 100644 --- a/content/applications/hr/payroll/payroll_localizations/united_states.rst +++ b/content/applications/hr/payroll/payroll_localizations/united_states.rst @@ -515,7 +515,7 @@ If everything seems correct on the journal entry draft, post the journal entries Register Payments ----------------- -After the :ref:`journla entries ` are validated, Odoo can generate payments. +After the :ref:`journal entries ` are validated, Odoo can generate payments. .. important:: To generate payments from payslips,employee's **must** have a *trusted* bank account. If the From e16ca062fe35fb80a07901780bec0ef8f3e7b8dd Mon Sep 17 00:00:00 2001 From: mcsi-odoo Date: Tue, 26 Aug 2025 15:39:18 +0000 Subject: [PATCH 42/52] [ADD] dashboards: consult, build, customize, configure dashboards task-4969391 closes odoo/documentation#14757 X-original-commit: f0aa642f4962435999ea849de6ef2a49dec2bfcb Signed-off-by: Xavier Platteau (xpl) Signed-off-by: Siobhan McGonigle (mcsi) --- content/applications/productivity.rst | 1 + .../applications/productivity/dashboards.rst | 281 ++++++++++++++++++ .../build_and_customize_dashboards.rst | 223 ++++++++++++++ .../list-deleted.png | Bin 0 -> 10908 bytes .../productivity/dashboards/my_dashboard.rst | 70 +++++ .../dashboards/my_dashboard/add-view.png | Bin 0 -> 17836 bytes .../dashboards/my_dashboard/column-limits.png | Bin 0 -> 928 bytes .../dashboards/sales-dashboard.png | Bin 0 -> 62683 bytes .../applications/productivity/spreadsheet.rst | 58 ++-- .../spreadsheet/global_filters.rst | 2 + 10 files changed, 618 insertions(+), 17 deletions(-) create mode 100644 content/applications/productivity/dashboards.rst create mode 100644 content/applications/productivity/dashboards/build_and_customize_dashboards.rst create mode 100644 content/applications/productivity/dashboards/build_and_customize_dashboards/list-deleted.png create mode 100644 content/applications/productivity/dashboards/my_dashboard.rst create mode 100644 content/applications/productivity/dashboards/my_dashboard/add-view.png create mode 100644 content/applications/productivity/dashboards/my_dashboard/column-limits.png create mode 100644 content/applications/productivity/dashboards/sales-dashboard.png diff --git a/content/applications/productivity.rst b/content/applications/productivity.rst index c93354bc84..60c9e3d682 100644 --- a/content/applications/productivity.rst +++ b/content/applications/productivity.rst @@ -10,6 +10,7 @@ Productivity productivity/documents productivity/sign productivity/spreadsheet + productivity/dashboards productivity/knowledge productivity/calendar productivity/appointments diff --git a/content/applications/productivity/dashboards.rst b/content/applications/productivity/dashboards.rst new file mode 100644 index 0000000000..693defac45 --- /dev/null +++ b/content/applications/productivity/dashboards.rst @@ -0,0 +1,281 @@ +:show-content: + +========== +Dashboards +========== + +.. toctree:: + :titlesonly: + + dashboards/build_and_customize_dashboards + dashboards/my_dashboard + +**Odoo Dashboards** allows you to consult, customize, and build interactive dashboards that display +real-time data from your Odoo database in an easy-to-understand way. By centralizing data from +various Odoo sources in a single location, dashboards provide an overview of key business metrics +that can help you monitor business performance and make informed decisions. + +:doc:`Odoo spreadsheets <../../applications/productivity/spreadsheet>` serve as the foundation for +dashboards, with tables and charts used to structure and visualize dynamic Odoo data. :ref:`Data +sources ` connect a dashboard's underlying spreadsheet to your +database, ensuring the most recent data is retrieved every time the dashboard is opened or +refreshed. + +With Odoo Dashboards, users can, depending on their :ref:`access rights +`: + +- :ref:`consult dashboards `, including :ref:`standard, + pre-configured dashboards ` +- :ref:`interact with dashboards ` using filters and by + accessing underlying data +- :ref:`share a snapshot of a dashboard ` with internal users who do + not have the appropriate access rights or with external users +- :doc:`build custom dashboards + <../../applications/productivity/dashboards/build_and_customize_dashboards>` using Odoo + Spreadsheet +- :ref:`customize dashboards ` to modify what data is + shown, the layout, or the filters available +- :ref:`manage access rights ` to dashboards +- centralize frequently consulted Odoo views on a personal + :doc:`../../applications/productivity/dashboards/my_dashboard` page + +.. tip:: + - Once a spreadsheet has been converted into a dashboard, it can only be accessed via the + Dashboards app. + - Unlike other Odoo dashboards, :guilabel:`My Dashboard` is not based on Odoo Spreadsheet, but + rather on :doc:`Odoo views <../studio/views>`. + +.. _dashboards/consult-dashboards: + +Consult dashboards +================== + +On the main Dashboards page, the left panel lists all :ref:`dashboards a user has access to +`, grouped by section. Clicking on a dashboard name opens that +dashboard in the main part of the page. + +.. tip:: + Clicking the :icon:`fa-angle-double-left` :guilabel:`(double chevron)` icon at the top of the + left panel collapses the panel, maximizing the space available for dashboards. + +.. _dashboards/consult-dashboards/standard: + +Standard dashboards +------------------- + +Depending on which apps are installed, a series of standard dashboards is available by default. + +These pre-configured dashboards have been designed to provide the most relevant insights +for the topic in question. Data on specific aspects of the topic is presented in tables and charts, +while dashboard-specific filters allow users to tailor the view to their needs. + +.. example:: + Within the :guilabel:`Sales` section in the Dashboards app, the :guilabel:`Sales` dashboard gives + an overview of the number of quotations and orders, the revenue, and the average order value, as + well as a chart showing monthly sales. It also includes tables listing top quotations and sales + orders, top-performing products and salespeople, and top countries served. + + A series of pre-configured global filters, available via the search bar above the dashboard, + allows the entire dashboard to be filtered by, e.g., product or sales team. A default value of + `Last 90 days` in the period filter means data from the previous 90 days is automatically + retrieved every time the dashboard is opened or refreshed. + + .. image:: dashboards/sales-dashboard.png + :alt: Overview of Sales dashboard + +Standard dashboards can be :ref:`customized ` by a user +with the appropriate :ref:`access rights `. +For example, dashboard elements like tables and charts, or global filters can be added, edited, or +removed. + +.. important:: + When customizing a standard dashboard, it is highly recommended to :ref:`duplicate the dashboard + ` and make any changes on the + duplicated version. Standard dashboards are reinstalled at each Odoo version upgrade, meaning any + customizations on the original version are lost. + +.. _dashboards/use-dashboards/interact: + +Interact with dashboards +------------------------ + +In addition to consulting a dashboard for a high-level overview of key business data, it is also +possible to interact with the dashboard for a more detailed analysis: + +- **Filter data**: Most standard dashboards have one or more :doc:`global filters + `, shown as dropdown menus, at the top of the dashboard. These filters + allow all the data on the dashboard to be filtered at the same time, for example, to show data + only for a specific period of time, or for one or more salespeople or customers. + +- **Open underlying database records**: To access database records referenced by a dashboard, click + on the relevant value in a table or on a data point on a chart. Doing so opens either the + individual record, or, in the case of charts or tables displaying consolidated data, a list of the + referenced records. + +- **Open underlying database views**: To access the view from which the data for a specific chart + or table is retrieved, click on the title of the chart or table. Doing so opens the corresponding + list view, pivot view or graph view. + +.. tip:: + To return to a dashboard after drilling down to underlying records or views, click the + :guilabel:`Dashboards` breadcrumb at the upper left of the page. + +.. _dashboards/configuration: + +Configuration +============= + +.. note:: + Only a user with the appropriate :ref:`access rights ` can configure or + modify settings for dashboards and dashboard sections. + +To manage dashboards and dashboard sections, go to :menuselection:`Configuration --> Dashboards`. +The following actions are possible at the level of dashboard sections: + +- **Change the order of dashboard sections** by using the :icon:`oi-draggable` :guilabel:`(drag + handle)` icon to move a section to a new position. + +- **Duplicate a dashboard section** by selecting the relevant section name, clicking the + :icon:`fa-cog` :guilabel:`Actions` button, and then :icon:`fa-clone` :guilabel:`Duplicate`. The + dashboards within the section are not duplicated. + +- **Delete a dashboard section** by selecting the relevant section name, clicking the :icon:`fa-cog` + :guilabel:`Actions` button then :icon:`fa-trash-o` :guilabel:`Delete`. + + .. tip:: + Standard, pre-installed dashboard sections cannot be deleted; custom dashboard sections, on + the other hand, can be deleted. + +- **Create a new dashboard section** by clicking :guilabel:`New`, then entering the section name. + When creating a new section, it is possible to add a dashboard to the new section + directly by clicking :guilabel:`Add a spreadsheet`. + +Clicking on an individual dashboard section lists all dashboards within that section. The following +actions are possible: + +- **Change the order of a dashboard within its section** by using the :icon:`oi-draggable` + :guilabel:`(drag handle)` icon to move the dashboard to a new position. + +- **Edit the name of a dashboard section or dashboard** by clicking the name and modifying it. + +- **Add or remove user groups** to :ref:`control access to the dashboard + `. + +- **Select a company** if, in a :doc:`multi-company + <../../applications/general/companies/multi_company>` database, the dashboard should only be + visible to users of one company. If this field is left blank, the dashboard is visible to all + users with the appropriate access rights, regardless of which company is currently selected in the + database. + +- **Unpublish a dashboard** by disabling the :guilabel:`Is Published` toggle. + +- **Edit the underlying spreadsheet** of a dashboard by clicking :icon:`fa-pencil` :guilabel:`Edit` + on the line of the relevant dashboard. + + .. important:: + When customizing a standard dashboard, it is highly recommended to :ref:`duplicate the + dashboard ` and make any changes + on the underlying spreadsheet of the duplicated version. Standard dashboards are reinstalled at + each Odoo version upgrade, meaning any customizations on the original version are lost. + +- **Delete a dashboard** by clicking the :icon:`fa-trash` :guilabel:`(trash)` icon. + + .. tip:: + A standard dashboard that is deleted is reinstalled at the next Odoo version upgrade. + +- **Add a new dashboard to the section** by clicking :guilabel:`Add a spreadsheet`. Two options + exist: + + - To convert an existing spreadsheet into a dashboard and add it to the new section, select the + relevant spreadsheet, then click :guilabel:`Confirm`. Back in the section overview, update the + :guilabel:`Group` and :guilabel:`Company` fields if needed. + + - To start creating a dashboard from scratch, select :guilabel:`Blank spreadsheet`. To return to + the section overview, click the name of the section at the top left of the page. Update the + :guilabel:`Group` and :guilabel:`Company` fields if needed. + + .. note:: + After a spreadsheet has been converted into a dashboard, it can only be :ref:`accessed and + edited via the Dashboards app `. + + .. tip:: + - A newly created dashboard is by default accessible to users belonging to the default internal + :ref:`user group `. Edit this if needed via the configuration page of + the relevant dashboard section. + - It is also possible to :ref:`convert a spreadsheet into a dashboard + ` and add it to a dashboard section + starting from the spreadsheet in the Documents app. + +.. _dashboards/access-and-sharing: + +Access rights and sharing +========================= + +.. _dashboards/access-and-sharing/viewing: + +Consulting dashboards +--------------------- + +The *right to view and interact with a dashboard* is based on :ref:`user groups +`, and is managed in the :ref:`Configuration settings +` of the Dashboards app. Only users who are part +of a group that has been granted access to a specific dashboard see that dashboard in the left-hand +panel on the main Dashboards page. Users with `Dashboard / Admin` access rights can view all +dashboards. + +However, the *visibility of dynamic Odoo data within a dashboard* is handled separately. This is +based on a user's :ref:`access rights ` to the model from which the +data has been retrieved, and takes into account any record rules that may restrict access. + +.. important:: + User permissions are taken into account when a user opens a dashboard, with the dashboard only + being populated with data the user is authorized to see. This means that a user could in theory + be able to view a dashboard but, due to a lack of appropriate permissions, not be able to see the + Odoo data the dashboard's creator intended to be displayed. + + Therefore, it is crucial to take user permissions into consideration when granting dashboard + access to groups. + +.. example:: + Granting the user group `Sales / User: Own Documents Only` access to the :guilabel:`Sales` + dashboard would serve little purpose. While users belonging to that group would be able to view + and interact with the dashboard, they would only see data related to their own sales, rendering + the overall dashboard misleading. + +.. _dashboards/access-and-sharing/manage-view-access: + +Manage access rights to view dashboards +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To manage users' rights to view and interact with a dashboard: + +#. In the Dashboards app, go to :menuselection:`Configuration --> Dashboards`. +#. From the list of dashboard sections, open the relevant section. +#. On the line of the relevant dashboard, in the :guilabel:`Group` column: + + - add a user group by clicking the field until a dropdown with user groups appears, then + selecting the appropriate user group. In the dropdown, click :guilabel:`Search More` to access + the full list of user groups; + - remove a user group by clicking the relevant group name, then clicking :icon:`fa-times` + :guilabel:`(Delete)`. + +.. _dashboards/access-and-sharing/customize-configure-build: + +Building, customizing and configuring dashboards +------------------------------------------------ + +Only users with `Dashboards / Admin` access rights can :ref:`customize dashboards +` or :ref:`configure dashboard settings +`. To :ref:`build a dashboard from scratch +`, a user must have both `Dashboards / Admin` and, at minimum +for the Documents app, `Documents / User` access rights. + +.. _dashboards/access-and-sharing/sharing: + +Share dashboard snapshot +------------------------ + +To share a frozen version of a dashboard with an internal user who does not have the appropriate +access or with an external party, click :icon:`fa-share-alt` :guilabel:`Share` at the top-right of +the page then click the :icon:`fa-clone` :guilabel:`(copy)` icon to copy a shareable link to your +clipboard. diff --git a/content/applications/productivity/dashboards/build_and_customize_dashboards.rst b/content/applications/productivity/dashboards/build_and_customize_dashboards.rst new file mode 100644 index 0000000000..a8fc987be2 --- /dev/null +++ b/content/applications/productivity/dashboards/build_and_customize_dashboards.rst @@ -0,0 +1,223 @@ +============================== +Build and customize dashboards +============================== + +In addition to consulting :ref:`standard dashboards `, users +with the appropriate :ref:`access rights ` +can :ref:`build custom dashboards from scratch ` or +:ref:`customize existing dashboards ` to respond to +specific business needs. + +.. _build_and_customize_dashboards/build: + +Build a dashboard +================= + +In its most simple terms, building a dashboard involves :doc:`inserting Odoo data into a spreadsheet +<../../../applications/productivity/spreadsheet/insert>` then :ref:`converting that spreadsheet into +a dashboard `. + +However, to build a dashboard that delivers relevant and valuable insights, it is important to +consider the process in terms of three key stages: :ref:`preparation +`, :ref:`data insertion and manipulation +`, and :ref:`data visualization +`. + +.. _build_and_customize_dashboards/build-preparation: + +Preparation +----------- + +This stage involves: + +- defining the purpose of the dashboard, in other words, the business questions it needs to answer, + and deciding what data would answer those questions; +- determining where to find the relevant Odoo data and deciding which :doc:`type of view + <../../../applications/studio/views>` (i.e., list, pivot table, or chart) is most suited for the + data analysis needed; +- preparing the Odoo data by refining the views to focus on the most relevant information, e.g., by + using :doc:`search filters <../../../applications/essentials/search>`, by making only certain list + fields visible, or by deciding which dimensions and measures a pivot table should use; +- sourcing any other information needed to support the dashboard. + +.. _build_and_customize_dashboards/build-insertion-manipulation: + +Data insertion and manipulation +------------------------------- + +This stage involves: + +- :doc:`inserting the prepared lists, pivot tables or charts + <../../../applications/productivity/spreadsheet/insert>` into the spreadsheet you will use to + build your dashboard; +- manipulating the data, if needed, to be able to draw the necessary insights. This may involve + performing calculations or creating custom metrics using :doc:`standard or Odoo-specific functions + and formulas <../../../applications/productivity/spreadsheet/functions>`, referencing data from + various sources within the spreadsheet, or :doc:`converting static pivot tables to dynamic pivot + tables <../../../applications/productivity/spreadsheet/dynamic_pivot_tables>`. + +.. _build_and_customize_dashboards/build-visualization: + +Data visualization +------------------ + +This stage involves: + +- presenting the data on at least the first sheet of your spreadsheet (i.e., the sheet that will + serve as the front end of your dashboard) in a clear, visual, and meaningful way so it is easy to + interpret. Concretely, this means deciding on the layout and order of elements such as tables and + charts, as well as using tools and techniques to guide the user, such as clear and descriptive + headings, text formatting and colors, carefully chosen chart types, and conditional formatting to + highlight specific data visually; +- :ref:`inserting clickable links `, if relevant, to provide + access to Odoo menu items, URLs, or other sheets within the same spreadsheet if these should also + be accessible from the front end of your dashboard; +- :doc:`creating global filters <../../../applications/productivity/spreadsheet/global_filters>` to + allow users to tailor the view to their needs; +- :ref:`converting the spreadsheet into a dashboard + `, determining whether to add the dashboard + to an existing or new dashboard section, and :ref:`managing access rights to the dashboard + `. + +.. tip:: + - Use standard dashboards as inspiration for how to best present and visualize data. For example, + for charts, :ref:`open the underlying spreadsheet + ` of a standard dashboard, hover + over a chart and click the :icon:`fa-bars` :guilabel:`(menu)` icon, then + :icon:`fa-pencil-square-o` :guilabel:`Edit` to see the chart properties on the right side of + the screen. + - The possibility to link to other sheets within the same spreadsheet allows the creation of a + multi-page dashboard, with users able to navigate between pages thanks to clickable links. + Global filters apply across all pages of a dashboard. + +.. seealso:: + `Odoo Tutorial: Dashboard from scratch + `_ + +.. _build_and_customize_dashboards/customize: + +Customize a dashboard +===================== + +Dashboards are customized by editing the dashboard's underlying spreadsheet. + +.. important:: + When customizing a :ref:`standard dashboard `, it is + highly recommended to :ref:`duplicate the dashboard + ` and make any changes on + the underlying spreadsheet of the duplicated version. Standard dashboards are reinstalled at + each Odoo version upgrade, meaning any customizations on the original version are lost. + +.. _build_and_customize_dashboards/customize/open-spreadsheet: + +Open the underlying spreadsheet +------------------------------- + +To open a dashboard's underlying spreadsheet: + +#. In the Dashboards app, go to :menuselection:`Configuration --> Dashboards`. +#. Open the relevant dashboard section, then, on the line of the relevant dashboard, click + :icon:`fa-pencil` :guilabel:`Edit`. + +.. tip:: + - Users who do not have the appropriate :ref:`access rights + ` to customize a dashboard can still + access a read-only version of the dashboard's underlying spreadsheet. + - To temporarily unpublish a dashboard while you make changes, disable :guilabel:`Is Published` + *before* editing the dashboard, making note to republish it when the customization has been + finalized. + - With :ref:`developer mode ` activated, click on the :icon:`fa-pencil` + :guilabel:`(Edit)` icon beside the name of a dashboard in the left panel to open its underlying + spreadsheet. + +The spreadsheet that opens typically consists of at least two sheets: + +- **The first sheet** always serves as the front end of your dashboard, and contains the tables + and charts used to structure and visualize the data. + +- **The second and any subsequent sheets** typically contain data used for the calculation of key + metrics shown on the first sheet. + +.. note:: + The :ref:`data sources ` that maintain the connection between + the spreadsheet and the relevant models in your database can be viewed by clicking + :menuselection:`Data` on the spreadsheet's menu bar. These data sources are identified by + their respective :icon:`oi-view-pivot` :guilabel:`(pivot table)`, :icon:`oi-view-list` + :guilabel:`(list)` or :icon:`fa-bar-chart` :guilabel:`(chart)` icon, followed by their ID and + name, e.g., :icon:`oi-view-pivot` *(#1) Sales Analysis by Product*. + + For :ref:`standard dashboards `, while the data sources + are still active and visible in the :menuselection:`Data` menu, the corresponding lists and pivot + tables have been removed from the spreadsheet for better performance and a neater appearance. + +.. _build_and_customize_dashboards/customize/duplicate-dashboard: + +Duplicate a dashboard +~~~~~~~~~~~~~~~~~~~~~ + +To duplicate a dashboard: + +#. In the Dashboards app, go to :menuselection:`Configuration --> Dashboards`. +#. Open the relevant dashboard section, then, on the line of the dashboard you want to duplicate, + click :icon:`fa-pencil` :guilabel:`Edit`. +#. In the spreadsheet that opens, click :menuselection:`File -->` :icon:`os-copy-file` + :menuselection:`Make a copy`. +#. Rename the duplicated dashboard by clicking the name of the spreadsheet at the top left of the + screen and editing as needed. + +.. tip:: + - To return to the overview of the dashboard section, click the name of the original dashboard at + the top left of the page, then the name of the dashboard section. + - After duplicating a dashboard, delete the original dashboard by clicking the :icon:`fa-trash` + :guilabel:`(trash)` icon or rename it by clicking on the name then editing it. + +.. _dashboards/customize-dashboard/edit-spreadsheet: + +Add, edit, or remove dashboard elements +--------------------------------------- + +Dashboards can be customized in various ways, such as by: + +- adding new tables and charts based on previously inserted or :ref:`newly inserted Odoo data + `. This requires a similar approach + to :ref:`building a dashboard from scratch `; +- :doc:`adding new global filters <../../../applications/productivity/spreadsheet/global_filters>` + or editing or deleting existing ones; +- :ref:`adding or editing clickable links ` to Odoo menus, URLs, + or to other sheets within the same spreadsheet. + +.. tip:: + Dashboard elements that are no longer needed can be deleted from the spreadsheet. If, after + deleting a dashboard element, a :ref:`data source ` is no longer + being used in the spreadsheet, this is indicated by a :icon:`fa-exclamation-triangle` + :guilabel:`(warning)` icon in the :guilabel:`Data` menu. + + .. image:: build_and_customize_dashboards/list-deleted.png + :alt: Warning to indicate data source no longer used in spreadsheet + +.. _dashboards/customize-dashboard/edit-spreadsheet-new-odoo-data: + +Insert new Odoo data +-------------------- + +Inserting new Odoo data into a dashboard's underlying spreadsheet requires starting from the +relevant Odoo view. To do so: + +#. With the relevant list view, pivot view or graph view open in your database, proceed as follows: + + - For a list view, click the :icon:`fa-cog` :guilabel:`(Actions)` icon beside the name of the + view, then :guilabel:`Spreadsheet -->` :icon:`oi-view-list` :menuselection:`Insert list in + spreadsheet`. + - For a pivot or graph view, click :guilabel:`Insert in Spreadsheet` at the top left of the view. + +#. In the window that opens, edit the name if needed. For a list, edit the number of records, i.e., + rows to be inserted, if needed. +#. Click the :guilabel:`Dashboards` tab then select in which dashboard the list, pivot table, or + chart should be inserted. + +A list or pivot table is inserted into a new sheet in the dashboard's underlying spreadsheet; a +chart is inserted on the first sheet of the spreadsheet. + +.. seealso:: + :doc:`Inserting Odoo data into a spreadsheet + <../../../applications/productivity/spreadsheet/insert>` diff --git a/content/applications/productivity/dashboards/build_and_customize_dashboards/list-deleted.png b/content/applications/productivity/dashboards/build_and_customize_dashboards/list-deleted.png new file mode 100644 index 0000000000000000000000000000000000000000..95799cbf39ca866e975e68ba203fd11f3a414dd6 GIT binary patch literal 10908 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 you consult +most regularly, making it possible to see critical tasks at a glance without having to first +navigate through multiple apps. Unlike other Odoo dashboards, My Dashboard is not based on **Odoo +Spreadsheet**. + +Views inserted in My Dashboard are fully dynamic and retain many features of the source view, e.g., +sorting of lists, changing the measures used for a pivot table or cohort view, changing the chart +type, or clicking on a value or data point to view the underlying record(s). + +.. tip:: + It is not possible to change the domain, i.e., the filtering or grouping, of a view that has been + added to My Dashboard. To change the domain, make the necessary changes in the original view, + then re-insert the view in My Dashboard and delete the originally inserted view. + +Add views +========= + +Most Odoo views can be added to My Dashboard, including: + +- :ref:`multiple record views ` like list, kanban, and map +- :ref:`timeline views ` like calendar, cohort, and gantt +- :ref:`reporting views ` like pivot and graph + +To add a view to My Dashboard: + +#. With the relevant view open in your database, click the :icon:`fa-cog` :guilabel:`(Actions)` icon + beside the name of the view, then :menuselection:`Dashboard`. +#. Under :guilabel:`Add to my Dashboard`, rename the view if desired, then click :guilabel:`Add`. + + .. image:: my_dashboard/add-view.png + :alt: Adding a view to My Dashboard + :scale: 80% + +#. Refresh the page. + +The added view is now visible as a widget in My Dashboard in the Dashboards app. + +.. tip:: + If added views are not showing in My Dashboard, refresh the browser page. + +Customize layout +================ + +When at least one view has been added to My Dashboard, the page can be customized as follows: + +- **Change the layout of the page**: Click :guilabel:`Change Layout` in the top-right corner and + select the desired layout. + + .. tip:: + For multi-column layouts, the column limits are identified by :icon:`fa-caret-left` + :guilabel:`(left caret)` and :icon:`fa-caret-right` :guilabel:`(right caret)` icons at the + bottom of the page. If needed, scroll to the bottom of the page to see the column limits. + + .. image:: my_dashboard/column-limits.png + :alt: Column limits visible at bottom of page + +- **Collapse and expand widgets**: By default, an inserted widget is shown fully expanded. To + collapse, or minimize, a widget, and show only the title, click the :icon:`fa-window-minimize` + :guilabel:`(minimize)` icon at the top right of the widget. To expand a widget, click the + :icon:`fa-window-maximize` :guilabel:`(maximize)` icon. +- **Move widgets**: Drag and drop widgets to the desired location in the same column or a different + column. +- **Remove widgets**: To remove a widget from the page, click the :icon:`fa-times` + :guilabel:`(remove)` icon. + + diff --git a/content/applications/productivity/dashboards/my_dashboard/add-view.png b/content/applications/productivity/dashboards/my_dashboard/add-view.png new file mode 100644 index 0000000000000000000000000000000000000000..f44e8dfe0ba79517b0999b720c8aa63df2621781 GIT binary patch literal 17836 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. On a dashboard, charts and data tables are used to + display dynamic Odoo data and provide an overview of key business metrics. + + :ref:`Standard, pre-configured dashboards + ` can be :ref:`customized + ` by editing the dashboard's underlying spreadsheet via + Dashboards. :ref:`Custom dashboards + ` can also be created from scratch, starting from an Odoo + spreadsheet; any subsequent :ref:`modifications ` are + performed via Dashboards. .. _spreadsheet/create-new: @@ -126,16 +130,9 @@ spreadsheet via the :guilabel:`File` menu: - :icon:`fa-print` :guilabel:`Print`: prints a copy of the spreadsheet on a connected printer. - :icon:`os-cog` :guilabel:`Settings`: allows you to view and change the :ref:`locale ` of the current spreadsheet. -- :icon:`os-add-to-dashboard` :guilabel:`Add to dashboard`: allows you to turn the current - spreadsheet into a new dashboard that is accessible via Odoo Dashboards. The following fields must - be completed: :guilabel:`Dashboard Name`, the :guilabel:`Dashboard Section` in which the new - dashboard will be saved, and :guilabel:`Access Groups` to determine which user groups can access - the dashboard. - - .. note:: - When a spreadsheet is converted into a dashboard, the original spreadsheet is deleted from Odoo - Spreadsheet. However, it is still possible to edit the dashboards's underlying spreadsheet via - Odoo Dashboards. +- :icon:`os-add-to-dashboard` :guilabel:`Add to dashboard`: :ref:`converts + ` the current spreadsheet into an Odoo + dashboard. .. _spreadsheet/manage-spreadsheets/version-history: @@ -202,3 +199,30 @@ right of the spreadsheet. To change the locale, select the appropriate locale fr If no :icon:`fa-globe` :guilabel:`(globe)` icon is shown, this means the spreadsheet's locale is the same as that of your user profile. + +.. _spreadsheet/manage-spreadsheets/convert-to-dashboard: + +Convert a spreadsheet into a dashboard +-------------------------------------- + +A user with the appropriate :ref:`access rights ` can convert an Odoo +spreadsheet into a dashboard that is then accessible via +:doc:`Odoo Dashboards <../../../applications/productivity/dashboards>`. To do so: + +#. Click :menuselection:`File -->` :icon:`os-add-to-dashboard` :menuselection:`Add to dashboard` + from the menu bar. +#. Enter the :guilabel:`Dashboard Name`. +#. Select the relevant :guilabel:`Dashboard Section` from the dropdown or, to create a new dashboard + section, type the name of the new section, then click :guilabel:`Create`. +#. If necessary, modify the :guilabel:`Access Groups` to determine which :ref:`user groups + ` can access the dashboard. +#. Click :guilabel:`Create`. + +.. tip:: + - By default, the first tab of the spreadsheet serves as the front end of the dashboard. + - It is also possible to convert a spreadsheet to a dashboard from within the :ref:`Dashboard + configuration settings `, by directly adding the spreadsheet to + an existing or new dashboard section. + - After a spreadsheet has been converted to a dashboard, it is deleted from Odoo Documents. Any + subsequent :ref:`modifications ` need to be made via + Odoo Dashboards. diff --git a/content/applications/productivity/spreadsheet/global_filters.rst b/content/applications/productivity/spreadsheet/global_filters.rst index 1b675a28e4..734ebfbcba 100644 --- a/content/applications/productivity/spreadsheet/global_filters.rst +++ b/content/applications/productivity/spreadsheet/global_filters.rst @@ -270,6 +270,8 @@ With the :guilabel:`Filter properties` pane open: .. image:: global_filters/field-matching-checkbox.png :alt: A yes/no filter with the Active field set as matching field +.. _spreadsheet/global-filters/manage: + Manage and use global filters ============================= From ba3f6e4521bb0bd52a5da8889e96a8527bae164d Mon Sep 17 00:00:00 2001 From: therealthagomizer Date: Fri, 3 Oct 2025 20:07:05 +0000 Subject: [PATCH 43/52] [IMP] Subscriptions: Align to Period start improvement closes odoo/documentation#14781 X-original-commit: 5d6b746f9a049ef2abb4482ea21820b88c77690c Signed-off-by: Thomas Jude Cavazos (thjud) --- content/applications/sales/subscriptions.rst | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/content/applications/sales/subscriptions.rst b/content/applications/sales/subscriptions.rst index ca0b6c8e9f..109ef5929f 100644 --- a/content/applications/sales/subscriptions.rst +++ b/content/applications/sales/subscriptions.rst @@ -91,8 +91,18 @@ configuration fields: Closing` value is set to `15` :guilabel:`Days`, then the subscription will close on the 16th of that month if payment is not received. -- :guilabel:`Align to Period Start`: optionally force new and recurring subscription renewal dates - under this plan to the first day of what is defined in the :guilabel:`Billing Period`. +- :guilabel:`Align to Period Start`: sets new and recurring subscription plans to bill on the first + day of the next :guilabel:`Billing Period`. When a subscription plan is purchased in the middle + of a billing period, the invoice shows a reduced cost. + + .. example:: + On the 15th of July, a customer purchases a monthly subscription for a streaming service. + Selecting :guilabel:`Align to Period Start` for this recurring plan ensures that all + subscriptions are billed on the 1st of each month. Their subscription begins as soon as + payment is confirmed. The quotation shows the full cost of the subscription for July 1 - 31, + but the invoice shows an adjusted cost for July 15 - 31. On the 1st of August, the customer is + charged the full price for the month's subscription. + - :guilabel:`Company`: optional assignment, if the database has :doc:`Multi-company <../general/companies/multi_company>` functionality enabled. Assigning this value will make the recurring plan available for that company's location, specifically. From 206f6c74da7d73d22cd1706d46b645b4ce2c8f1e Mon Sep 17 00:00:00 2001 From: jero-odoo Date: Thu, 25 Sep 2025 19:50:35 +0000 Subject: [PATCH 44/52] [ADD] Inventory: Just In Time logic closes odoo/documentation#14775 X-original-commit: 41b30c9a1981e6b6a5914fd80a9965f6a871a6d9 Signed-off-by: Jessica Rogers (jero) --- .../warehouses_storage/replenishment.rst | 12 +- .../replenishment/just_in_time.rst | 84 ++++++++++++++ .../just_in_time/replenishment-info.png | Bin 0 -> 13501 bytes .../replenishment/lead_times.rst | 4 +- .../replenishment/reordering_rules.rst | 109 ++---------------- .../reordering_rules/five-forecast.png | Bin 26404 -> 0 bytes .../reordering_rules/replenishment-info.png | Bin 11318 -> 0 bytes .../reordering_rules/zero-forecast.png | Bin 30335 -> 0 bytes .../replenishment/report.rst | 4 +- 9 files changed, 108 insertions(+), 105 deletions(-) create mode 100644 content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time.rst create mode 100644 content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time/replenishment-info.png delete mode 100644 content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/five-forecast.png delete mode 100644 content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/replenishment-info.png delete mode 100644 content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/zero-forecast.png diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst index eb59cb8564..afb1ec2cf1 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment.rst @@ -27,6 +27,13 @@ manufacturing order (MO), with the best choice depending on the business process Automatically suggest or generate POs or MOs when stock falls below a minimum level. + .. card:: Just in time logic + :target: replenishment/just_in_time + :tag: Recommended + :large: + + Avoid overstocking by placing order precisely to meet deadlines. + .. card:: MTO :target: replenishment/mto :tag: Beginner-friendly @@ -67,8 +74,8 @@ Key points include: - :ref:`Manual reordering rules `: Generate suggestions in the replenishment report for user review, allowing adjustments and batch orders while meeting deadlines. -- :ref:`Just-in-time logic `: A strategy to replenish - only what is needed to prevent overstocking. +- :doc:`Just in time logic `: A strategy to replenish only what is + needed to prevent overstocking. .. seealso:: - :doc:`replenishment/reordering_rules` @@ -119,6 +126,7 @@ disrupts its manual replenishment method. replenishment/mto replenishment/reordering_rules + replenishment/just_in_time replenishment/report replenishment/lead_times replenishment/resupply_warehouses diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time.rst new file mode 100644 index 0000000000..33bb3e3ccf --- /dev/null +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time.rst @@ -0,0 +1,84 @@ +================== +Just in time logic +================== + +.. |SO| replace:: :abbr:`SO (Sales Order)` +.. |SOs| replace:: :abbr:`SOs (Sales Orders)` + +*Just-in-time logic* in Odoo minimizes storage costs by placing orders precisely to meet deadlines. +This is achieved using the :ref:`forecasted date `, +which determines when replenishment is necessary to avoid overstocking. For example, for a product +with a 5-day total lead time and a sales order delivery date in 10 days, Odoo waits 5 days to place +the order, ensuring it arrives just in time for delivery. + +The forecasted date is the **earliest possible date** to receive a product if the replenishment +process starts immediately. It is calculated by summing the lead times linked to the replenishment +process, such as :ref:`vendor lead times ` and +:ref:`purchasing delays ` for purchases, or +:ref:`manufacturing lead times ` for production. This works +with both automatic and manual reordering rules. + +.. tip:: + If utilizing just-in-time logic feels risky, consider adding buffer time or :doc:`adjusting lead + times ` for more flexibility. While lead times and just-in-time logic provide + additional control, reordering rules work perfectly fine without them. Keeping delivery dates on + |SOs| as their *creation date* ensures purchases are immediately triggered when needed. + +.. _inventory/warehouses_storage/forecasted-date: + +Forecasted date and to order quantity +===================================== + +The *forecasted date* is the earliest receipt date for a product, if it is ordered right now. It is +calculated by summing the lead times linked to the product's replenishment process. The total of +these lead times, added to the current date, determines when Odoo checks for demanded stock. + +To view the forecasted date go to :menuselection:`Inventory app --> Operations --> Replenishment` to +access the :doc:`replenishment report `, then click the :icon:`fa-info-circle` +:guilabel:`(info)` icon for the desired reordering rule. The :guilabel:`Replenishment Information` +pop-up window displays the :guilabel:`Forecasted Date` and various lead times. + +The just-in-time logic ensures replenishment occurs only when required to meet forecasted demand, +reducing the risk of overstocking. + +.. note:: + Just-in-time logic determines the exact timing of replenishment. If you want to extend this logic + to also consider near-future demand beyond the forecast date, see :ref:`Visibility Days + ` + +If the forecasted quantity falls below the minimum on the forecasted date, replenishment is +triggered immediately to prevent shortages. If the quantity falls below the minimum after the +forecasted date, replenishment is deferred. + +The :guilabel:`To Order` quantity is defined as the total demand on the forecasted date. + +By scheduling purchase orders according to combined lead times, Odoo minimizes inventory while +ensuring that future demand is met on time. + +.. example:: + A manual reordering rule is set up with no minimum or maximum quantities. + + - Vendor lead time is 4 days, and the days to purchase is 2 days. + - Today's date is October 2. + - These add up to 6 days, making the forecasted date, October 8. + + A confirmed |SO| for 5 units has a delivery date of October 8th (6 days from today). This demand + will appear on the replenishment report today, in the :guilabel:`To Order` field. + + However, if the delivery date were later than October 8th, it would not yet appear on the report. + Odoo only displays quantities to replenish when they fall within the forecasted date window, + ensuring orders are placed precisely when needed. + + .. image:: just_in_time/replenishment-info.png + :alt: Show forecasted date in Odoo. + +.. important:: + |SOs| scheduled after the :guilabel:`Forecasted Date` are not included in the :guilabel:`Forecast` + quantities of a reordering rule. However, they do appear in the forecasted report, since it + reflects the long-term forecasted quantity. To access the forecasted report, click + :icon:`fa-area-chart` :guilabel:`(area chart)` icon on the replenishment report. + +.. seealso:: + - :doc:`Reordering Rules ` + - :doc:`Replenishment Report ` + - :doc:`Lead Times ` diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time/replenishment-info.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/just_in_time/replenishment-info.png new file mode 100644 index 0000000000000000000000000000000000000000..aabb252da3e964c15268b399ba562bc8295fec7c GIT binary patch literal 13501 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 literal 0 HcmV?d00001 diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/lead_times.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/lead_times.rst index d5cd5d35e7..42911a6e3e 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/lead_times.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/lead_times.rst @@ -168,8 +168,8 @@ confirm a request for quotation (RFQ) and when to expect the goods. - Arrival date of the products. Calculated by *Order Deadline* + *Vendor Lead Time* In addition, Odoo has global security lead times, which are buffers that widen the -:ref:`just-in-time ` (JIT) forecast window. The security -lead times affect **only** replenishment methods that use :doc:`pull rules +:doc:`just-in-time ` (JIT) forecast window. The security lead times affect **only** +replenishment methods that use :doc:`pull rules <../../shipping_receiving/daily_operations/use_routes>`—for example :doc:`reordering rules ` or :doc:`make to order (MTO) `. They do not change the interval between *Order Deadline* and *Expected Arrival*. diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst index 941afcb2a4..70ba3edcfc 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules.rst @@ -35,7 +35,7 @@ To set up reordering rules for the first time, refer to: To understand and optimize replenishment using advanced features, see: -- :ref:`Just-in-time logic ` +- :doc:`Just in time logic ` - :ref:`Visibility days ` - :ref:`Horizon days ` @@ -127,8 +127,8 @@ rule line item: .. note:: To learn how the :guilabel:`On Hand`, :guilabel:`Forecast`, and :guilabel:`To Order` fields are - calculated using on-hand quantities and future demand, see the :ref:`Just-in-time logic - ` section. + calculated using on-hand quantities and future demand, see :doc:`Just in time logic + ` For advanced usage, learn about the following reordering rule fields: @@ -386,102 +386,8 @@ advanced configurations of reordering rules. Consider the following: five products' reordering rules. This ensures future demands for these products are managed separately and assigned to different |RFQs| (the usual behavior). -.. _inventory/warehouses_storage/just-in-time: - -Just-in-time logic -================== - -*Just-in-time logic* in Odoo minimizes storage costs by placing orders precisely to meet deadlines. -This is achieved using the :ref:`forecasted date `, -which determines when replenishment is necessary to avoid overstocking. - -The forecasted date is the **earliest possible date** to receive a product if the replenishment -process starts immediately. It is calculated by summing the lead times linked to the replenishment -process, such as :ref:`vendor lead times ` and -:ref:`purchasing delays ` for purchases, or -:ref:`manufacturing lead times ` for production. Both -automatic and manual reordering rules work this way. - -.. example:: - For a product with a 5-day total lead time and a sales order delivery date in 10 days, Odoo waits - 5 days to place the order, ensuring it arrives just in time for delivery. - -Important considerations: - -- **If this feels risky**, consider adding buffer time or :doc:`adjusting lead times ` - for more flexibility. -- While lead times and just-in-time logic provide additional control, **reordering rules work - perfectly fine without them**. Keeping delivery dates on sales orders as their *creation date* - ensures purchases are immediately triggered when needed - -.. _inventory/warehouses_storage/forecasted-date: - -Forecasted date and To Order quantity -------------------------------------- - -The *forecasted date* is the earliest receipt date for a product, if it is ordered right now. It is -calculated by summing the lead times linked to the product's replenishment process. The total of -these lead times, added to the current date, determines when Odoo checks for demanded stock. - -To view the forecasted date go to the replenishment report and click the :icon:`fa-info-circle` -:guilabel:`(info)` icon for the desired reordering rule. The :guilabel:`Replenishment Information` -pop-up window displays the :guilabel:`Forecasted Date` and various lead times. - -.. example:: - A manual reordering rule is set up with no minimum or maximum quantities. - - - Vendor lead time is 4 days, the purchase security lead time is 1 day, and the days to purchase - is 2 days. - - Today's date is November 26. - - These add up to 7 days, making the forecasted date, December 3rd. - - A confirmed |SO| for 5 units has a delivery date of December 3rd (7 days from today). This demand - will appear on the replenishment report today, in the **To Order** field. - - However, if the delivery date were later than December 3rd, it would not yet appear on the - report. Odoo only displays quantities to replenish when they fall within the forecasted date - window, ensuring orders are placed precisely when needed. - - .. image:: reordering_rules/replenishment-info.png - :alt: Show forecasted date in Odoo. - -The *just-in-time* logic ensures replenishment happens only when it's necessary for the forecasted -date's demand, helping avoid overstocking. - -For example: - -- If the forecasted quantity drops below the minimum **on** the forecasted date, replenishment must - begin immediately to avoid shortages. -- If the quantity drops below the minimum **after** the forecasted date, replenishment can wait. - -The **To Order** quantity is the total demand on the forecasted date. - -By timing purchase orders based on the combined lead times, Odoo optimizes stock levels, keeping -inventory minimal while ensuring future requirements are ordered at the last possible -moment—strategic procrastination without the stress! - -Common confusion about forecasted quantities --------------------------------------------- - -|SOs| due **after** the :guilabel:`Forecasted Date` are not accounted for in the -:guilabel:`Forecast` quantities of the reordering rule. - -They are, however, accounted for on the forecasted report that is opened by clicking the -:icon:`fa-area-chart` :guilabel:`(graph)` icon on the replenishment report, as this one represents -the **long-term forecasted quantity**. - -.. example:: - - .. figure:: reordering_rules/zero-forecast.png - :alt: Forecast and To Order quantities is zero. - - Continuing the above example, when the sales order's deadline is adjusted to December 4th, the - :guilabel:`Forecast` and :guilabel:`To Order` quantities are zero. - - .. figure:: reordering_rules/five-forecast.png - :alt: Show forecasted report. - - Opening the :guilabel:`Forecasted Report` shows the :guilabel:`Forecasted` units is `5.00`. +.. seealso:: + :doc:`Just-in-time logic ` .. _inventory/warehouses_storage/visibility-days: @@ -493,6 +399,11 @@ planned replenishment. Odoo checks if forecasted stock on the forecasted date wi minimum in the reordering rule. **Only if** it is time to reorder, visibility days check additional future demand by the specified number of days. +.. note:: + Visibility days extend the standard just-in-time replenishment logic by looking beyond the + immediate forecasted date. To fully understand how Odoo determines when replenishment is + triggered, refer to the :doc:`Just-in-time logic ` + This feature helps consolidate orders by grouping immediate and near-future needs, reducing transport costs and enabling supplier discounts for larger orders. diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/five-forecast.png b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/reordering_rules/five-forecast.png deleted file mode 100644 index c21f2287c0e86ce15d37af5281fb47e3da1a975d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26404 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 Rh5yMYY4ILK)_azm(fH(K!mp6 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%0DhT(=~nwzM%8G#@f7VS}$|(?miIY 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 MQc0p(%rNNx0I(V+Pyhe` diff --git a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.rst b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.rst index d0c3d7c351..eb20181b92 100644 --- a/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.rst +++ b/content/applications/inventory_and_mrp/inventory/warehouses_storage/replenishment/report.rst @@ -119,8 +119,8 @@ In each line of the replenishment report, clicking the :icon:`fa-info-circle` :g icon opens the :guilabel:`Replenishment Information` pop-up window, which displays the *lead times* and *forecasted date*. -For detailed information on how to use this feature for replenishment, go to the :ref:`Just in time -logic ` section. +For detailed information on how to use this feature for replenishment, go to the :doc:`just-in-time +` section. Select a warehouse ------------------ From 764dc9178431288bc849f7a50923ca647a3891d8 Mon Sep 17 00:00:00 2001 From: mial-odoo <87338985+mial-odoo@users.noreply.github.com> Date: Wed, 17 Sep 2025 16:37:52 +0000 Subject: [PATCH 45/52] [IMP] l10n_mx: update refactored functions in Odoo 19 closes odoo/documentation#14777 X-original-commit: 5f3a21046a41e1258cde32ec62deec9e32a58449 Signed-off-by: Zachary Straub (zst) --- .../finance/fiscal_localizations/mexico.rst | 231 +++++++++++------- .../mexico/mx-delivery-guide-vehicle.png | Bin 25922 -> 25138 bytes .../mexico/mx-landing-configuration.png | Bin 28584 -> 81109 bytes .../mexico/mx-landing-invoice.png | Bin 29024 -> 41532 bytes 4 files changed, 142 insertions(+), 89 deletions(-) diff --git a/content/applications/finance/fiscal_localizations/mexico.rst b/content/applications/finance/fiscal_localizations/mexico.rst index bfe99e2b50..f0a183b0a6 100644 --- a/content/applications/finance/fiscal_localizations/mexico.rst +++ b/content/applications/finance/fiscal_localizations/mexico.rst @@ -38,7 +38,7 @@ The following modules are automatically installed with the Mexican localization: - Includes all the technical and functional requirements to generate and validate :doc:`electronics documents <../accounting/customer_invoices/electronic_invoicing>` — based on the technical documentation published by the |SAT|. This allows you to send invoices (with - or without addedums) and payment complements to the government. + or without addendums) and payment complements to the government. * - :guilabel:`Odoo Mexican Localization Reports` - `l10n_mx_reports` - Adapts reports for Mexico's electronic accounting: chart of accounts, trial balance, and @@ -67,7 +67,8 @@ if meeting a specific requirement for the business. * - :guilabel:`Mexico - Electronic Delivery Guide` - `l10n_mx_edi_stock` - Lets you create a *Carta Porte*: A bill of lading that proves to the government you are - sending goods between A & B with a signed electronic document. + sending goods between A & B with a signed electronic document. It will also install the + :doc:`Fleet <../../hr/fleet>` app. * - :guilabel:`Odoo Mexico Localization for Stock/Landing` - `l10n_mx_edi_landing` - Allows managing customs numbers related to landed costs in electronic documents. @@ -83,14 +84,6 @@ if meeting a specific requirement for the business. - `l10n_mx_edi_website_sale` - Adds extra fields to the :doc:`eCommerce <../../websites/ecommerce>` module to comply with the Mexican electronic invoicing requirements - * - :guilabel:`Employees - Mexico` - - `l10n_mx_hr` - - Adds extra fields to the :doc:`Employees <../../hr/employees>` module to comply with local - information for employees. - * - :guilabel:`Mexico - Payroll with Accounting` - - `l10n_mx_hr_payroll_account` - - Adds the required rules and parameters to manage local payroll calculation with the - :doc:`Payroll <../../hr/payroll>` app. .. _l10n/mx/video-tutorials: @@ -298,8 +291,8 @@ IEPS breakdown ~~~~~~~~~~~~~~ By default Odoo hides the |IEPS| in the invoices so that the subtotal on which the VAT is calculated -includes the amount of |IEPS|, this is to ensure that Fiscal Regimes that don't require it, don't -recieve it. +includes the amount of |IEPS|, this is to ensure that Fiscal Regimes that do not require it, do not +receive it. It is possible to make the |IEPS| visible in the XML by selecting the :guilabel:`IEPS Breakdown` checkbox inside each contact on the :guilabel:`Sales & Purchase` tab. @@ -498,17 +491,26 @@ Credit notes While an invoice is a document type "I" (Ingreso), a credit note is a document type "E" (Egreso). -The only addition to the :doc:`standard flow for credit notes +An addition to the :doc:`standard flow for credit notes <../accounting/customer_invoices/credit_notes>` is that, as a requirement of the |SAT|, there has to be a relation between a credit note and an invoice through the fiscal folio. Because of this requirement, the field :guilabel:`CFDI Origin` adds this relation with a `01|`, -followed by the fiscal folio of the original invoice. +followed by the fiscal folio of the original :abbr:`UUID (universally unique identifier)`. .. tip:: For the :guilabel:`CFDI Origin` field to be automatically added, use the :guilabel:`Add Credit Note` button from the invoice, instead of creating it manually. +Generally credit notes reverse the main sales account defined in the journal, but it is also +possible to globally assign an account to all credit notes. To do so, go to +:menuselection:`Accounting --> Configuration --> Settings` and set the :guilabel:`Credit notes` +account under the :guilabel:`Default Accounts` section. + +.. note:: + On the default configuration, the credit notes account is set as :guilabel:`402.01.01 Returns, + discounts or bonuses over sales and/or services at the general rate`. + .. _l10n/mx/vendor-bills: Vendor bills @@ -521,9 +523,10 @@ bill **Must be in draft state** for the update to happen. .. tip:: When clicking :guilabel:`Update SAT`, the :guilabel:`SAT status` field on the invoice will - confirm if the XML file is **Validated** in the |SAT|, this is also true for vendor bills. + confirm if the XML file is **Validated** by the |SAT|, this is also true for vendor bills. -See also :doc:`../accounting/vendor_bills` +.. seealso:: + :doc:`../accounting/vendor_bills` .. _l10n/mx/payments: @@ -694,7 +697,7 @@ tab. - The invoice is labeled as *No Cancelable* in the `SAT Website `_. due to the fact that it has a valid related document: Either another invoice linked with the - :guilabel:`CFDI Origin` field or a Payment Complemement. If so, you need to cancel any other + :guilabel:`CFDI Origin` field or a Payment Complement. If so, you need to cancel any other related document first. - The cancellation request is still being processed by the |SAT|. If so, wait a few minutes and try again. @@ -815,8 +818,8 @@ product `Discounts`, make sure that it has a valid :guilabel:`Tax` (usually :gui `16%`). After this, create and sign the invoice via |CFDI|, and add the `Discounts` product at the bottom. -In the XML the discount should be subtracted from the first invoice line available, Odoo will try to -subtract from each line the total amount in order until all the discount has been applied. +In the XML, Odoo will distribute the discount between the lines evenly, while any math differences +will be added in a rounding product. .. tip:: A `Discount` and `UNSPSC Product Category` for each product variant related to :guilabel:`Gift @@ -829,11 +832,11 @@ Down payments A common practice in Mexico is the usage of :doc:`down payments <../../sales/sales/invoicing/down_payment>`. It's usage primarily consists of cases where you -receive a payment for a good or service where either the product or the price (or both) hasn't been -determinated at the moment. +receive a payment for a good or service where either the product or the price (or both) has not been +fully determined. -The |SAT| allows two diferent ways to handle this process: both of them involve linking all invoices -to each other with the :guilabel:`CFDI Origin` field. +The |SAT| allows two different ways to handle this process: both of them involve linking all +invoices to each other with the :guilabel:`CFDI Origin` field. .. note:: For this process, the :doc:`Sales <../../sales>` app must be installed. @@ -912,11 +915,11 @@ Addendas and complements can be included in the XML. To add one, go to :menusele injected. Additional fields beyond standard Odoo may be required. .. warning:: - This section might require techincal knowledge as well as technical debt, it is recommended to - ask your account manager for the best technical assistance. + This section might require technical knowledge and may risk adding technical debt; it is + recommended to ask your account manager for the best technical advice. Once the desired nodes are created, they can be selected on each contact to make them appear on -every invoice addressed to that contact. By default all the selected nodes will be added +every invoice addressed to that contact. By default, all the selected nodes will be added automatically on every invoice. It is also possible to just select the nodes as needed on every invoice by selecting the @@ -1348,13 +1351,14 @@ and creating global invoices. Point of sale flow ------------------ -Other than the standard :doc:`Point of Sale configuration -<../../sales/point_of_sale/configuration>`, the only requirement for the Mexican localization is the -additional fact that each payment method needs to be configured with a correct :guilabel:`Payment -Way`. +On top of the standard :doc:`Point of Sale configuration <../../sales/point_of_sale/configuration>`, +the Mexican localization requires each payment method to be configured with a correct +:guilabel:`Payment Way` as well as a :guilabel:`Re-invoicing account` to handle the accounting for +invoices with the invoicing portal. .. tip:: - By default Odoo creates preconfigured payment methods for cash, credit card, and debit card. + By default, Odoo creates pre-configured payment methods for cash, credit card, and debit card and + assigns the :guilabel:`402.04.01 Re-invoicing` account as default for re-invoicing. While selling on the **Point of Sale**, click the :guilabel:`Customer` button to either create or select a customer. Here it is possible to review customer invoicing information (such as the |RFC| @@ -1407,6 +1411,10 @@ Customers who scan this QR code or follow the URL will access to a menu where th fiscal information, including the *Usage* and *Fiscal Regime* once they enter the five digit code that is also provided on the receipt. +On the journal entries of the session, the previously selected **Re-invoicing account** will be used +to handle reversals of the sales entries when invoices are requested as well as be used as a sales +account for the new invoices. + .. seealso:: :doc:`../../sales/point_of_sale/receipts_invoices` @@ -1521,8 +1529,8 @@ goods. According to the `Annex 20 `_ of CFDI 4.0, in documents where the invoiced goods come from a first-hand import operation, the -:guilabel:`Customs Number` field, needs to be added to all lines of products involved with the -operation. +:guilabel:`Customs Number` field needs to be added to all lines of products involved with the +operation, as does the date of the document. .. note:: To do so, the :guilabel:`Odoo Mexico Localization for Stock/Landing` `l10n_mx_edi_landing` module @@ -1542,23 +1550,34 @@ In order to track the correct customs number for a specific invoice, Odoo uses : :menuselection:`Inventory --> Configuration --> Settings`, and in the :guilabel:`Valuation` section, make sure that :guilabel:`Landed Costs` is activated. -Begin by creating a **service-type** product called, `Pedimento`. In the :guilabel:`Purchase` tab, -activate :guilabel:`Is a Landed Cost`, and select a :guilabel:`Default Split Method`. +.. Tip:: + It is recommended to add a :guilabel:`Default Journal` to automatically fill the mandatory + :guilabel:`Journal` field on landed costs even though landed costs that only add customs numbers + without adding :guilabel:`Additional Costs` do not create journal entries. + +Configure the **goods-type** products that hold the customs numbers. To do so, create the products +and complete these three requirements: -Then, configure the **goods-type** products that hold the customs numbers. To do so, create the -products, and make sure the :guilabel:`Product Category` has the following configuration: +- :guilabel:`Tracking` **must** be set to either :guilabel:`By Lots` or :guilabel:`By Unique Serial + Number` but **not** :guilabel:`By Quantity`. +- :guilabel:`Invoicing Policy` **must** be set to :guilabel:`Delivered quantities`. +- :doc:`Valuation by lots/serial numbers + <../../inventory_and_mrp/inventory/product_management/inventory_valuation/valuation_by_lots>` + **must** be enabled. + +This will make the field :guilabel:`Customs invoicing` available on the :guilabel:`Accounting` tab. +Enable the field to use customs numbers with this product. + +It is important to make sure the product has a :guilabel:`Product Category` and has the following +configuration: - :guilabel:`Costing Method`: Either :guilabel:`FIFO` or :guilabel:`AVCO` -- :guilabel:`Inventory Valuation`: :guilabel:`Automated` -- :guilabel:`Stock Valuation Account`: :guilabel:`115.01.01 Inventory` -- :guilabel:`Stock Journal`: :guilabel:`Inventory Valuation` -- :guilabel:`Stock Input Account`: :guilabel:`115.05.01 Goods in transit` -- :guilabel:`Stock Output Account`: :guilabel:`115.05.01 Goods in transit` +- :guilabel:`Inventory Valuation`: Either :guilabel:`Periodic` or :guilabel:`Perpetual` .. note:: - Setting the :guilabel:`Inventory Valuation` to :guilabel:`Automated` requires first enabling the - feature. Go to :menuselection:`Accounting --> Configuration --> Settings`, and in the - :guilabel:`Stock Valuation` section, enable :guilabel:`Automatic Accounting`. + The feature works regardless of whether the :doc:`inventory valuation + <../../inventory_and_mrp/inventory/product_management/inventory_valuation/using_inventory_valuation>` + is set to either :guilabel:`Periodic (at closing)` or :guilabel:`Perpetual (at invoicing)`. .. image:: mexico/mx-landing-configuration.png :alt: Storable products general configuration. @@ -1574,28 +1593,40 @@ After configuring the product, follow the standard :doc:`purchase flow Create a purchase order from :menuselection:`Purchase --> Orders --> Purchase Order`. Then, confirm the order to display a :guilabel:`Receipt` smart button. Click on the :guilabel:`Receipt` smart -button and :guilabel:`Validate` the receipt. +button, add the lots or serial numbers and :guilabel:`Validate`. Go to :menuselection:`Inventory --> Operations --> Landed Costs`, and create a new record. In the -:guilabel:`Transfer`, add the receipt that was just validated, add the :guilabel:`Customs number` -and in the :guilabel:`Additional Costs` tab, add the :guilabel:`Pedimento` product. +:guilabel:`Transfer`, add the receipt that was just validated, and add the :guilabel:`Customs +number`. -Optionally, it is possible to add a cost amount. After this, :guilabel:`Validate` the landed cost. -Once :guilabel:`Posted`, all products related to that receipt have the customs number assigned. +.. tip:: + While it is possible to add costs related to the customs number at this stage of the process, it + is highly recommended to create a landed cost from a vendor bill from your customs agent. Learn + more about :doc:`Landed Costs here + <../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs>`. .. warning:: - The :guilabel:`Pedimento Number` field is not editable once it is set, so be careful when - associating the correct number with the transfer(s). + The :guilabel:`Customs number` field is not editable once it is set, and cannot be repeated, + however it is possible to fix the number on the lot or serial number later by selecting a + different landed cost. .. image:: mexico/mx-landing-inventory.png :alt: Customs number on a landed costs Inventory record. +The customs number assigned to a specific lot or serial number can be found on the its registry on +:menuselection:`Inventory --> Products --> Lots/Serial Numbers`. The :guilabel:`L10N Mx Edi Landed +Cost` field can be edited at any time to fix any mistakes that could have occurred when registering +the landed cost. Editing the :guilabel:`L10N Mx Edi Landed Cost` field automatically updates the +:guilabel:`Customs number` and the name of the lot or serial number. + Next, create a sales order and confirm it. Click on the :guilabel:`Delivery` smart button that -appears, and :guilabel:`Validate` the delivery order. +appears, and carefully review the assigned lots/serial numbers to make sure they are the desired +values, after that :guilabel:`Validate` the delivery order. Finally, :ref:`create an invoice from the sales order `, and confirm it. -The invoice line related to the product has a customs number on it. This number matches the customs -number added in the landed cost record created earlier. +The invoice lines are created according to the distribution of the delivery order, in cases where +more than one customs number were selected, Odoo will split the invoice lines by quantity and +customs numbers. .. image:: mexico/mx-landing-invoice.png :alt: Customs number on confirmed sales order product. @@ -1605,8 +1636,8 @@ number added in the landed cost record created earlier. Delivery guide -------------- -A `Carta Porte `_ is a bill of -lading: a document that states the type, quantity, and destination of goods being carried. +A `Carta Porte `_ is a bill +of lading: a document that states the type, quantity, and destination of goods being carried. On July 17th, 2024, version 3.1 of this |CFDI| was implemented for all transportation providers, intermediaries, and owners of goods. Odoo is able to generate a document type "T" (Traslado), which, @@ -1618,11 +1649,15 @@ are treated as *Dangerous Hazards*. In order to print the PDF, the delivery order must be signed by the government and then it can be printed using the :guilabel:`Print Carta Porte` button on the delivery order. -The PDF file contains a QR code to verify the CCP code for the authorities. +.. tip:: + The PDF file contains a QR code to verify the CCP code for the authorities. In order to transport goods between warehouses, the logistic route must contain a **Delivery** type -of operation, see :doc:`Inter-warehouse replenishment -<../../inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses>` +of operation. + +.. seealso:: + :doc:`Inter-warehouse replenishment + <../../inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses>` .. note:: In order to use this feature, the :guilabel:`Mexico - Electronic Delivery Guide` @@ -1649,8 +1684,8 @@ shipments or delivery orders `_. - :guilabel:`Federal Transport` is used when the :guilabel:`Distance to Destination` exceeds 30 km. -Other than the standard requirements of regular invoicing (the |RFC| of the customer, the UNSPSC -code, etc.), if you are using *No Federal Highways*, no external configuration is needed. +For No Federal Highways, no other configuration is required beyond the standard requirements of +regular invoicing (the |RFC| of the customer, the UNSPSC code, etc.). For *Federal Transport*, several configurations have to be added to contacts, vehicle setups, and products. Those configurations are then included in the XML and PDF files. @@ -1664,29 +1699,36 @@ with the `Official SAT Catalog for Carta Porte `_. .. tip:: - The field, :guilabel:`Locality`, is optional for both addresses. + The :guilabel:`Locality` field is optional for both addresses. .. important:: The origin address used for the delivery guide is set in :menuselection:`Inventory --> Configuration --> Warehouses`. While this is set as the company address by default, you can change it to your correct warehouse address. -Another addition to this feature is the :guilabel:`Vehicle Setups` menu found in -:menuselection:`Inventory --> Settings --> Vehicle Setups`. This menu lets you add all the -information related to the vehicle used for the delivery order. +This feature requires the use of :doc:`Fleet <../../hr/fleet/new_vehicle>` to manage vehicles. The +vehicle setup is managed directly on the vehicle, and all the required fields are only visible after +checking the :guilabel:`L10N Mx Is Freight Vehicle` field. -All fields are mandatory to create a correct delivery guide. +Checking the :guilabel:`L10N Mx Is Freight Vehicle` field displays the :guilabel:`MX Parameters` tab +where the mandatory fields are required to create a correct delivery guide. Additionally the vehicle +**must** contain a :guilabel:`License Plate`, a :guilabel:`Model Year`, and a :guilabel:`Driver`. .. tip:: - The fields, :guilabel:`Vehicle Plate Number` and :guilabel:`Number Plate`, must contain between 5 + The :guilabel:`Vehicle Plate Number` and :guilabel:`Number Plate` fields must contain between 5 and 7 characters. -In the :guilabel:`Intermediaries` section, add the operator of the vehicle. The only mandatory -fields for this contact are the :guilabel:`VAT` and :guilabel:`Operator Licence`. +The main driver of the vehicle is set directly on the :guilabel:`Driver` field, and it is possible +to add more vehicle operators in the :guilabel:`Intermediaries` section. The only mandatory fields +for driver contacts are the :guilabel:`VAT` and :guilabel:`Operator License`. .. image:: mexico/mx-delivery-guide-vehicle.png :alt: Delivery guide vehicle configuration. +.. tip:: + If the vehicle is rented or more intermediaries are required, it is possible to add them in the + :guilabel:`Intermediaries` field. + Products ******** @@ -1695,18 +1737,19 @@ this, there are two extra configurations for products involved in delivery guide - The :guilabel:`Product Type` must be set as :guilabel:`Storable Product` for stock movements to be created. -- In the :guilabel:`Inventory` tab, the field :guilabel:`Weight` must be more than `0`. +- In the :guilabel:`Inventory` tab, the :guilabel:`Weight` field must be more than `0`. .. warning:: - Creating a delivery guide of a product with the value `0` will trigger an error. As the - :guilabel:`Weight` has been already stored in the delivery order, it is needed to return the - products and create the delivery order (and delivery guide) again with the correct amounts. + Creating a delivery guide of a product with the :guilabel:`Weight` set to `0` will trigger an + error. As the :guilabel:`Weight` is immediately stored in the delivery order, it is then + necessary to return the products and recreate the delivery order (and delivery guide) with the + correct values. Sales and inventory flow ~~~~~~~~~~~~~~~~~~~~~~~~ -To create a delivery guide, first, first create and confirm a sales order from :menuselection:`Sales ---> Sales Order`. Click the :guilabel:`Delivery` smart button that is generated, and +To create a delivery guide, first create and confirm a sales order from :menuselection:`Sales --> +Sales Order`. Click the :guilabel:`Delivery` smart button that is generated, and :guilabel:`Validate` the transfer. After the status is set to :guilabel:`Done`, you can edit the transfer, and select the @@ -1717,17 +1760,27 @@ click :guilabel:`Generate Delivery Guide`. The resulting XML can be found in the .. note:: Other than the :guilabel:`UNSPSC` on all products, delivery guides that use :guilabel:`No Federal - Highways` do not require any special configuration to be sent to the government. + Highways` do not require any special configuration to be sent to the government, as they are a + type "T" CFDI with no delivery guide complement. + +If using the :guilabel:`Federal Transport` :guilabel:`Transport Type`, the :guilabel:`Vehicle Setup` +is displayed to be selected. +The :guilabel:`Gross vehicle weight` is taken from the :guilabel:`Vehicle setup` configuration where +it is possible to add additional :guilabel:`Extra weight` to account for the drivers and luggage. -If using the :guilabel:`Federal Transport` :guilabel:`Transport Type`, the tab :guilabel:`MX EDI` -appears. There, enter a value in :guilabel:`Distance to Destination (KM)` greater than `0`, and -select the :guilabel:`Vehicle Setup` used for this delivery. +.. note:: + Odoo will calculate the :guilabel:`Gross vehicle weight` with the following formula: -Finally, add a :guilabel:`Gross Vehicle Weight` and click :guilabel:`Generate Delivery Guide`. + .. math:: + Gross vehicle weight = Vehicle weight + (Weight + Extra Weight) / 1000 -.. tip:: - Delivery Guides can also be created from :guilabel:`Receipts`, either from the Inventory app or - by the standard flow of the Purchase app. +Every delivery requires a value in :guilabel:`Distance to Destination (KM)` greater than `0`. +Finally, enter the :guilabel:`Delivery Date` and click :guilabel:`Generate Delivery Guide`. + +.. note:: + By default the :guilabel:`Scheduled Date` is filled and represents the time at which the shipment + leaves the warehouse and the :guilabel:`Delivery Date` is the time that the shipment is expected + to arrive at its destination. These values are declared in both the XML and PDF. Dangerous hazards ***************** @@ -1749,8 +1802,8 @@ First, select the product from :menuselection:`Inventory --> Products --> Produc hazard (for example *01010101*). If it is not dangerous, enter `0` in the :guilabel:`Hazardous Material Designation Code` field. -In :menuselection:`Inventory --> Settings --> Vehicle Setup`, complete the :guilabel:`Environment -Insurer` and :guilabel:`Environment Insurance Policy` well. After this, continue with the regular +In :guilabel:`MX Parameters`, complete the :guilabel:`Environment +Insurer` and :guilabel:`Environment Insurance Policy` as well. After this, continue with the regular process to create a delivery guide. Imports and Exports @@ -1774,9 +1827,9 @@ fields: - :guilabel:`Customs Document Identification` Then, when creating a :guilabel:`Delivery Guide` for a receipt where the :guilabel:`Customs Document -Type` is :guilabel:`Pedimento`, two new fields appear: :guilabel:`Pedimento Number` and +Type` is :guilabel:`Customs number`, two new fields appear: :guilabel:`Customs Number` and :guilabel:`Importer`. .. tip:: - The field :guilabel:`Pedimento Number` should follow the pattern `xx xx xxxx xxxxxxx`. For - example, `15 48 3009 0001235` with **Two** spaces between text. + The field :guilabel:`Customs Number` should follow the pattern `xx xx xxxx xxxxxxx`. For example, + `15 48 3009 0001235` with **Two** spaces between text. diff --git a/content/applications/finance/fiscal_localizations/mexico/mx-delivery-guide-vehicle.png b/content/applications/finance/fiscal_localizations/mexico/mx-delivery-guide-vehicle.png index 33bd604483486c037cf43b9683d1be390a2ebefa..b625b4201df8255157e575c06c91286035460978 100644 GIT binary patch literal 25138 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%0A+sJ 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 Dtn;Lk literal 28584 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 R>-qnwEibJiRV85x{a>?_he7}V diff --git a/content/applications/finance/fiscal_localizations/mexico/mx-landing-invoice.png b/content/applications/finance/fiscal_localizations/mexico/mx-landing-invoice.png index ec85ec9add5bbc479b0a15ae6863116bf2e2c66b..e2416e3aa615dbe335e7ca7fe2abe54635564d6f 100644 GIT binary patch literal 41532 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 literal 29024 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 Date: Fri, 3 Oct 2025 10:00:17 +0000 Subject: [PATCH 46/52] [REM] core: profiler SyncCollector closes odoo/documentation#14774 Related: odoo/odoo#229936 Related: odoo/upgrade#8548 Signed-off-by: Krzysztof Magusiak (krma) --- .../reference/backend/performance.rst | 26 +++---------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/content/developer/reference/backend/performance.rst b/content/developer/reference/backend/performance.rst index 17c10f2424..36599a2d00 100644 --- a/content/developer/reference/backend/performance.rst +++ b/content/developer/reference/backend/performance.rst @@ -160,8 +160,7 @@ can access from the top menu. .. important:: Even though the profiler has been designed to be as light as possible, it can still impact - performance, especially when using the :ref:`Sync collector - `. Keep that in mind when analyzing speedscope results. + performance. Keep that in mind when analyzing speedscope results. .. _performance/profiling/collectors: @@ -175,7 +174,7 @@ individually enabled from the user interface through their dedicated toggle butt :ref:`developer mode tools `, or from Python code through their key or class. -There are currently four collectors available in Odoo: +There are currently three collectors available in Odoo: .. list-table:: :header-rows: 1 @@ -196,10 +195,6 @@ There are currently four collectors available in Odoo: - :guilabel:`Record qweb` - `qweb` - `QwebCollector` - * - :ref:`Sync collector ` - - No - - `traces_sync` - - `SyncCollector` By default, the profiler enables the SQL and the Periodic collectors. Both when it is enabled from the user interface or Python code. @@ -252,26 +247,13 @@ It is mainly useful for optimizing views. .. autoclass:: QwebCollector -.. _performance/profiling/collectors/sync: - -Sync collector -~~~~~~~~~~~~~~ - -This collector saves the stack for every function's call and return and runs on the same thread, -which greatly impacts performance. - -It can be useful to debug and understand complex flows, and follow their execution in the code. It -is however not recommended for performance analysis because the overhead is high. - -.. autoclass:: SyncCollector - .. _performance/profiling/pitfalls: Performance pitfalls -------------------- -- Be careful with randomness. Multiple executions may lead to different results. E.g., a garbage - collector being triggered during execution. +- Be careful with randomness. Multiple executions may lead to different results. E.g., other + processes or threads running on the system during the profiling. - Be careful with blocking calls. In some cases, external `c_call` may take some time before releasing the GIL, thus leading to unexpected long frames with the :ref:`Periodic collector `. This should be detected by the profiler and give a From 56fed38004df92806e999ae261b096a6eaa197d2 Mon Sep 17 00:00:00 2001 From: therealthagomizer Date: Mon, 6 Oct 2025 17:41:11 +0000 Subject: [PATCH 47/52] [IMP] Subscriptions: updated Billing Period language and others closes odoo/documentation#14789 X-original-commit: eb793729d5d1d7e2f2842c03816dc973e061e466 Signed-off-by: Thomas Jude Cavazos (thjud) Co-authored-by: Felicia Kuan --- content/applications/sales/subscriptions.rst | 21 ++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/content/applications/sales/subscriptions.rst b/content/applications/sales/subscriptions.rst index 109ef5929f..07aa991bbb 100644 --- a/content/applications/sales/subscriptions.rst +++ b/content/applications/sales/subscriptions.rst @@ -80,9 +80,9 @@ After giving the recurring plan a suitable :guilabel:`Name` (e.g. `Monthly`, `Bi `Quarterly`, etc.), proceed to the form's :guilabel:`DETAILS` section to fill out the following configuration fields: -- :guilabel:`Billing Period`: determines the recurrence period of the recurring plan. Set the - numerical value in the text field and contextualize the quantity with a unit of time in the - corresponding drop-down menu, in :guilabel:`Weeks`, :guilabel:`Months`, or :guilabel:`Years`. +- :guilabel:`Billing Period`: determines the frequency with which the subscription is billed. Set + the unit of time (:guilabel:`Weeks`, :guilabel:`Months`, or :guilabel:`Years`) in the drop-down + menu and the numerical value in the corresponding text field. - :guilabel:`Automatic Closing`: a numerical value, in days, where the subscription is set to close automatically if payment is not made. @@ -92,16 +92,17 @@ configuration fields: that month if payment is not received. - :guilabel:`Align to Period Start`: sets new and recurring subscription plans to bill on the first - day of the next :guilabel:`Billing Period`. When a subscription plan is purchased in the middle - of a billing period, the invoice shows a reduced cost. + day of the next :guilabel:`Billing Period`. When a subscription plan is purchased in the middle of + a billing period, the invoice shows a reduced cost. Setting a custom period start dates (such as + the 5th of each month) requires custom development and is not available by default. .. example:: On the 15th of July, a customer purchases a monthly subscription for a streaming service. - Selecting :guilabel:`Align to Period Start` for this recurring plan ensures that all - subscriptions are billed on the 1st of each month. Their subscription begins as soon as - payment is confirmed. The quotation shows the full cost of the subscription for July 1 - 31, - but the invoice shows an adjusted cost for July 15 - 31. On the 1st of August, the customer is - charged the full price for the month's subscription. + Selecting :guilabel:`Align to Period Start` for this recurring plan configures this + subscription to bill on the 1st of each month. The subscription begins as soon as payment is + confirmed. The quotation shows the full cost of the subscription for July 1 - 31, but the + invoice shows an adjusted cost for July 15 - 31. On the 1st of August, the customer is charged + the full price for the month's subscription. - :guilabel:`Company`: optional assignment, if the database has :doc:`Multi-company <../general/companies/multi_company>` functionality enabled. Assigning this value will make the From 3b64f543342d02bd9d3a653be32f39ac78dd48bc Mon Sep 17 00:00:00 2001 From: Arnaud Sibille Date: Mon, 26 May 2025 16:59:20 +0200 Subject: [PATCH 48/52] [REM] account: remove filter_analytic PR https://github.com/odoo/odoo/pull/223331 remove the field `filter_analytic` on `account.report`. task-4819486 closes odoo/documentation#14341 Related: odoo/odoo#223331 Related: odoo/enterprise#92598 Related: odoo/upgrade#8242 Signed-off-by: Arnaud Sibille (arsi) --- .../reference/standard_modules/account/account_report.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/content/developer/reference/standard_modules/account/account_report.rst b/content/developer/reference/standard_modules/account/account_report.rst index b6f6cd37b1..efb2701932 100644 --- a/content/developer/reference/standard_modules/account/account_report.rst +++ b/content/developer/reference/standard_modules/account/account_report.rst @@ -23,7 +23,6 @@ Report .. autofield:: filter_period_comparison .. autofield:: filter_growth_comparison .. autofield:: filter_journals - .. autofield:: filter_analytic .. autofield:: filter_hierarchy .. autofield:: filter_account_type .. autofield:: filter_partner From 3cf3613058daf52ee95e78e35a0518519b3e1966 Mon Sep 17 00:00:00 2001 From: mcsi-odoo Date: Fri, 18 Apr 2025 12:07:39 +0000 Subject: [PATCH 49/52] [IMP] studio: updating automation rules and webhooks Task-4672373 closes odoo/documentation#14047 X-original-commit: a96ab21104ae4e329fa22b4622846416acbe17f9 Signed-off-by: Audrey Vandromme (auva) Signed-off-by: Siobhan McGonigle (mcsi) --- content/administration/odoo_online.rst | 2 + content/applications/studio.rst | 20 +- .../applications/studio/automated_actions.rst | 580 ++++++++++++------ .../add-followers-action.png | Bin 0 -> 13362 bytes .../automated_actions/automation-rule-ex.png | Bin 14274 -> 0 bytes .../before-update-domain.png | Bin 18779 -> 20169 bytes .../create-activity-action.png | Bin 5420 -> 15683 bytes .../automated_actions/duplicate-record.png | Bin 0 -> 13846 bytes .../automated_actions/multi-actions.png | Bin 0 -> 12465 bytes .../automated_actions/on-save-on-creation.png | Bin 0 -> 12793 bytes .../timing-conditions-trigger.png | Bin 7037 -> 0 bytes .../trigger-delay-scheduled-action.png | Bin 0 -> 3543 bytes .../trigger-timing-conditions.png | Bin 0 -> 13901 bytes .../update-record-action.png | Bin 12392 -> 0 bytes .../automated_actions/update-record-ai.png | Bin 0 -> 20158 bytes .../update-record-compute.png | Bin 7674 -> 11120 bytes .../update-record-sequence.png | Bin 0 -> 24345 bytes .../automated_actions/update-record-tags.png | Bin 0 -> 11380 bytes .../values-updated-trigger.png | Bin 2215 -> 0 bytes .../webhook-update-record.png | Bin 0 -> 31459 bytes .../studio/automated_actions/webhooks.rst | 444 +++++++------- 21 files changed, 637 insertions(+), 409 deletions(-) create mode 100644 content/applications/studio/automated_actions/add-followers-action.png delete mode 100644 content/applications/studio/automated_actions/automation-rule-ex.png create mode 100644 content/applications/studio/automated_actions/duplicate-record.png create mode 100644 content/applications/studio/automated_actions/multi-actions.png create mode 100644 content/applications/studio/automated_actions/on-save-on-creation.png delete mode 100644 content/applications/studio/automated_actions/timing-conditions-trigger.png create mode 100644 content/applications/studio/automated_actions/trigger-delay-scheduled-action.png create mode 100644 content/applications/studio/automated_actions/trigger-timing-conditions.png delete mode 100644 content/applications/studio/automated_actions/update-record-action.png create mode 100644 content/applications/studio/automated_actions/update-record-ai.png create mode 100644 content/applications/studio/automated_actions/update-record-sequence.png create mode 100644 content/applications/studio/automated_actions/update-record-tags.png delete mode 100644 content/applications/studio/automated_actions/values-updated-trigger.png create mode 100644 content/applications/studio/automated_actions/webhook-update-record.png diff --git a/content/administration/odoo_online.rst b/content/administration/odoo_online.rst index c0a7814b72..7057b7be7a 100644 --- a/content/administration/odoo_online.rst +++ b/content/administration/odoo_online.rst @@ -14,6 +14,8 @@ Odoo Online databases are accessed using any web browser and do not require a lo To quickly try out Odoo, shared `demo `_ instances are available. No registration is required, but each instance only lives for a few hours. +.. _odoo_online/database-management: + Database management =================== diff --git a/content/applications/studio.rst b/content/applications/studio.rst index e6248779d0..66621659f5 100644 --- a/content/applications/studio.rst +++ b/content/applications/studio.rst @@ -15,8 +15,8 @@ Studio studio/pdf_reports studio/approval_rules -**Studio** is a toolbox used to customize Odoo without coding knowledge. For example, in any app, -add or modify: +**Odoo Studio** is a toolbox used to customize Odoo without coding knowledge. For example, in any +app, add or modify: - :doc:`Fields ` - :doc:`Views ` @@ -31,10 +31,22 @@ Learn how to :doc:`build an app from scratch `. .. _studio/access: -To access Studio, navigate to the app and model you want to modify, then click the :icon:`oi-studio` -(:guilabel:`Toggle Studio`) icon, or vice versa. +To access **Studio**, navigate to the app and model you want to modify, then click the +:icon:`oi-studio` (:guilabel:`Toggle Studio`) icon. Alternatively, with any app open, click the +:icon:`oi-studio` (:guilabel:`Toggle Studio`) icon and navigate to the relevant app and model. To close **Studio**, click :guilabel:`Close` in the upper-right corner. +.. warning:: + Installing **Studio** in an Odoo database on the *Standard* pricing plan automatically triggers + an upsell to the *Custom* pricing plan. + + - **For yearly or multi-year contracts**: An upsell order is created with a 30-day limit. + - **For monthly contracts**: The subscription automatically switches to the *Custom* plan and + the new rate is applied when the next bill is generated. + + For more information, refer to `Odoo's pricing page `_ or + contact your account manager. + .. seealso:: `Odoo Tutorials: Studio `_ diff --git a/content/applications/studio/automated_actions.rst b/content/applications/studio/automated_actions.rst index 196713b861..db3505ebdf 100644 --- a/content/applications/studio/automated_actions.rst +++ b/content/applications/studio/automated_actions.rst @@ -4,34 +4,50 @@ Automation rules ================ -Automation rules are used to trigger automatic changes based on user actions (e.g., apply a -modification when a field is set to a specific value), email events, time conditions (e.g., archive -a record 7 days after its last update), or external events. +Automation rules allow the execution of one or more predefined actions in response to a specific +trigger, e.g., create an activity when a field is set to a specific value, or archive a record 7 +days after its last update. -To create an automation rule with Studio, proceed as follows: +When creating an automation rule, it is possible to :ref:`add conditions that must be met +` for the automation rule to run, e.g., the opportunity must be +assigned to a specific salesperson, or the state of the record must not be :guilabel:`Draft`. + +To create an automation rule with **Odoo Studio**: #. :ref:`Open Studio ` and click :guilabel:`Automations`, then :guilabel:`New`. -#. Select the :ref:`studio/automated-actions/trigger` and, if necessary, fill in the fields that - appear on the screen based on the chosen trigger. -#. Click :guilabel:`Add an action`, then select the :guilabel:`Type` of - :ref:`action ` and fill in the fields that appear on the screen - based on your selected action. -#. Click :guilabel:`Save & Close` or :guilabel:`Save & New`. +#. Give the automation rule a clear, meaningful name that identifies its purpose. +#. Select the :ref:`Trigger ` and, if necessary, fill in the + fields that appear on the screen based on the chosen trigger. +#. Click :guilabel:`Add an action` in the :guilabel:`Actions To Do` tab. + + .. tip:: + If no explicit name is entered, the name of the action will be automatically generated based + on the action you define; the name can be updated at any time. + +#. Select the :guilabel:`Type` of :ref:`action ` and complete the + relevant fields based on the chosen action. +#. Click :guilabel:`Save & Close` or, to define additional actions, :guilabel:`Save & New`. .. example:: - .. image:: automated_actions/automation-rule-ex.png - :alt: Example of an automated action on the Subscription model + To ensure follow-up on less satisfied clients, this automation rule creates an activity 3 months + after a sales order is created for clients with a satisfaction percentage lower than 30%. + + .. image:: automated_actions/trigger-timing-conditions.png + :alt: Example of an automation rule on the Subscription model + :scale: 90% .. tip:: - - To modify the :doc:`model ` of the automation rule, switch models before - clicking :guilabel:`Automations` in Studio, or :ref:`activate the developer mode + - Use the :guilabel:`Notes` tab to document the purpose and functioning of automation rules. This + makes rules easier to maintain and facilitates collaboration between users. + - To modify the :doc:`model ` targeted by the automation rule, switch models + before clicking :guilabel:`Automations` in Studio, or :ref:`activate developer mode `, create or edit an automation rule, and select the :guilabel:`Model` in the :guilabel:`Automation Rules` form. - - You can also create automation rules from any kanban stage by clicking the gear icon - (:guilabel:`⚙` ) next to the kanban stage name, then selecting :guilabel:`Automations`. In this - case, the :guilabel:`Trigger` is set to :guilabel:`Stage is set to` by default, but you can - change it if necessary. + - Automation rules can be created from any kanban stage by clicking the :icon:`fa-cog` + :guilabel:`(Settings)` icon that appears when hovering over the kanban stage name, then + selecting :guilabel:`Automations`. In this case, the :guilabel:`Trigger` is set to + :guilabel:`Stage is set to` by default, but it can be changed if necessary. .. image:: automated_actions/automations-kanban.png :alt: Create automations from a kanban stage @@ -41,102 +57,146 @@ To create an automation rule with Studio, proceed as follows: Trigger ======= -The :guilabel:`Trigger` is used to define when the automation rule should be applied. The available -triggers depend on the :doc:`model `. Five trigger categories are available -overall: +The :guilabel:`Trigger` is used to define what kind of event needs to occur for the automation rule +to run. The available triggers depend on the :doc:`model `. Five trigger +categories are available overall: + +- :ref:`studio/automated-actions/trigger-values-updated` +- :ref:`studio/automated-actions/trigger-email-events` +- :ref:`studio/automated-actions/trigger-timing-conditions` +- :ref:`studio/automated-actions/trigger-custom` +- :ref:`studio/automated-actions/trigger-external` + +.. _studio/automated-actions/conditions: -- :ref:`studio/automated-actions/trigger/values-updated` -- :ref:`studio/automated-actions/trigger/email-events` -- :ref:`studio/automated-actions/trigger/values-timing-conditions` -- :ref:`studio/automated-actions/trigger/custom` -- :ref:`studio/automated-actions/trigger/external` +Adding conditions +----------------- + +Domain filters allow you to determine the records an automation rule should target or exclude. +Efficient filtering enhances overall performance as it avoids unnecessary processing on records that +are not impacted by the rule. .. tip:: - You can also define a :guilabel:`Before Update Domain` to specify the conditions that must be met - *before* the automation rule is triggered. In contrast, the conditions defined using the - :ref:`Extra Conditions ` and - :ref:`Apply on ` filters are checked *during* the - execution of the automation rule. + :ref:`Activate developer mode ` before creating an automation rule to have the + most flexibility in adding domain filters. + +Depending on the trigger chosen, it is possible to define one or more conditions a record must meet +*before* and/or *after* a trigger occurs. + +- The :guilabel:`Before Update Domain` defines the conditions a record must meet *before* the + trigger event occurs, e.g., the record must have `Type = Customer Invoice` and `Status = Posted`. + + With developer mode activated, click :guilabel:`Edit Domain`, if available, then + :guilabel:`New Rule`. + +- The :guilabel:`Apply on` domain defines the conditions a record must meet *after* the trigger + event occurs, e.g., the customer invoice must have `Payment Status = Partially Paid`. - To define a :guilabel:`Before Update Domain`, :ref:`activate the developer mode - `, create or edit an automation rule, click :guilabel:`Edit Domain`, then click - :guilabel:`New Rule`. + With developer mode activated, click :guilabel:`Edit Domain` then :guilabel:`New Rule`. - For example, if you want the automated action to happen when an email address is set on a - contact that did not have an address before (in contrast to modifying their existing address), - define the :guilabel:`Before Update Domain` to :guilabel:`Email is not set`, and the - :guilabel:`Apply on` domain to :guilabel:`Email is set`. + .. tip:: + If developer mode is not activated, to define an :guilabel:`Apply on` domain, click + :icon:`fa-plus` :guilabel:`Add condition`. Complete or delete the suggested condition. To add a + condition, click :guilabel:`New Rule`. + +When a :ref:`trigger ` occurs, e.g., the payment status of a +posted customer invoice is updated, the automation rule checks the defined conditions and only +executes the :ref:`action ` if the record matches those conditions. + +.. example:: + If the automated action should be executed when an email address is set for the first time (in + contrast to modifying an email address) on an existing contact that is an individual rather than + a company, use `Email is not set` and `Is a Company is not set` as the :guilabel:`Before Update + Domain` and `Email is set` as the :guilabel:`Apply on` domain. .. image:: automated_actions/before-update-domain.png :alt: Example of a trigger with a Before Update Domain + :scale: 80% -.. _studio/automated-actions/trigger/values-updated: +.. note:: + The :guilabel:`Before Update Domain` is not checked upon the creation of a record. + +.. _studio/automated-actions/trigger-values-updated: Values Updated -------------- -The triggers available in this category depend on the model and are based on common field changes, -such as adding a specific tag (e.g., to a task) or setting the :guilabel:`User` field. Select the -trigger, then select a value if required. +Trigger automated actions when specific changes happen in the database. The triggers available in +this category depend on the model and are based on common changes, such as adding a specific tag +(e.g., to a task) or setting a field's value (e.g., setting the :guilabel:`User` field). -.. image:: automated_actions/values-updated-trigger.png - :alt: Example of a Values Updated trigger +Select the trigger, then select a value if required. -.. _studio/automated-actions/trigger/email-events: +.. _studio/automated-actions/trigger-email-events: Email Events ------------ Trigger automated actions upon receiving or sending emails. -.. _studio/automated-actions/trigger/values-timing-conditions: +.. _studio/automated-actions/trigger-timing-conditions: Timing Conditions ----------------- -Trigger automated actions based on a date field. The following triggers are available: +Trigger automated actions at a point in time relative to a date field or to the creation or update +of a record. The following triggers are available: -- :guilabel:`Based on date field`: Select the field to be used next to the :guilabel:`Delay` field. -- :guilabel:`After creation`: The action is triggered when a record is created and saved. -- :guilabel:`After last update`: The action is triggered when an existing record is edited and - saved. +- :guilabel:`Based on date field`: The action is triggered a defined period of time before or after + the date of the selected date field. +- :guilabel:`After creation`: The action is triggered a defined period of time after a record is + created and saved. +- :guilabel:`After last update`: The action is triggered a defined period of time after an existing + record is edited and saved. You can then define: -- a :guilabel:`Delay`: Specify the number of minutes, hours, days, or months. To trigger the action - before the trigger date, specify a negative number. If you selected the :guilabel:`Based on date - field` trigger, you must also select the date field to be used to determine the delay. -- :guilabel:`Extra Conditions`: Click :guilabel:`Add condition`, then specify the conditions to be - met to trigger the automation rule. Click :guilabel:`New Rule` to add another condition. +- a :guilabel:`Delay`: Specify the number of :guilabel:`Minutes`, :guilabel:`Hours`, + :guilabel:`Days`, or :guilabel:`Months` after which the action should be triggered. If you + selected the :guilabel:`Based on date field` trigger, the action can be triggered + :guilabel:`After` or :guilabel:`Before` the selected date field. -The action is triggered when the delay is reached and the conditions are met. + .. note:: + By default, the scheduler checks for time-triggered automation rules every 240 minutes, or 4 + hours. This frequency is generally sufficient for delays such as 3 months after the order date + or 7 days after the last update. -.. example:: - If you want to send a reminder email 30 minutes before the start of a calendar event, select the - :guilabel:`Start (Calendar Event)` under :guilabel:`Trigger Date` and set the :guilabel:`Delay` - to **-30** :guilabel:`Minutes`. + For delays of less than the equivalent of 2400 minutes, or 40 hours, the system recalculates + the frequency of this check to ensure that more granular delays, e.g., 1 hour before the event + start date and time, or 30 minutes after creation, can be respected as closely as possible. - .. image:: automated_actions/timing-conditions-trigger.png - :alt: Example of a Based on date field trigger + To view or manually edit the frequency of the scheduler for a time-triggered automation rule, + with :ref:`developer mode activated `, click :guilabel:`Scheduled action`. -.. note:: - By default, the scheduler checks for trigger dates every 4 hours, meaning lower granularity in - time-based automations may not always be honored. + .. image:: automated_actions/trigger-delay-scheduled-action.png + :alt: Direct link to scheduled action for automations + + In the :guilabel:`Automation Rules: check and execute` scheduled action that opens, update the + value of the :guilabel:`Execute Every` field, if desired. Clicking :guilabel:`Run Manually` + triggers the scheduled action to run immediately. To return to the automation rule setup, click + the automation rule name in the breadcrumbs. + +- :guilabel:`Extra Conditions`: Click :guilabel:`Add condition`, then specify the conditions to be + met for the automation rule to run. Click :guilabel:`New Rule` to add another condition. + +The action is executed when the delay is reached and the conditions are met. -.. _studio/automated-actions/trigger/custom: +.. _studio/automated-actions/trigger-custom: Custom ------ Trigger automated actions: -- :guilabel:`On save`: When the record is saved; -- :guilabel:`On deletion`: When a record is deleted; -- :guilabel:`On UI change`: When a field's value is changed on the :ref:`Form view - `, even before saving the record. +- :guilabel:`On create`: when a record is saved for the first time. +- :guilabel:`On create and edit`: when a record is saved for the first time and any subsequent time. +- :guilabel:`On deletion`: when a record is deleted. +- :guilabel:`On UI change`: when a field's value is changed on the :ref:`Form view + `, even before the record is saved. -For the :guilabel:`On save` and :guilabel:`On UI change` triggers, you **must** then select the -field(s) to be used to trigger the automation rule in the :guilabel:`When updating` field. +For the :guilabel:`On create and edit` and :guilabel:`On UI change` triggers, you **must** then +select the field(s) to be used to trigger the automation rule in the :guilabel:`When updating` +field. .. warning:: If no field is selected in the :guilabel:`When updating` field, the automated action may be @@ -146,137 +206,267 @@ Optionally, you can also define additional conditions to be met to trigger the a the :guilabel:`Apply on` field. .. note:: - The :guilabel:`On UI change` trigger can only be used with the - :ref:`studio/automated-actions/action/python-code` action and only works when a modification is - made manually. The action is not executed if the field is changed through another automation - rule. + The :guilabel:`On UI change` trigger can only be used with the :ref:`Execute Code + ` action and only works when a modification is made + manually. The action is not executed if the field is changed through another automation rule. -.. _studio/automated-actions/trigger/external: +.. _studio/automated-actions/trigger-external: External -------- -Trigger automated actions based on an external event using a webhook. A webhook is a method of -communication between two systems where the source system sends an HTTP(S) request to a destination -system based on a specific event. It usually includes a data payload containing information about -the event that occurred. +Trigger automated actions based on a specific event in an external system or application using a +:doc:`webhook `. -To configure the :guilabel:`On webhook` trigger, copy the :guilabel:`URL` generated by Odoo into the -destination system (i.e., the system receiving the request). Then, in the :guilabel:`Target Record` -field, enter the code to run to define the record(s) to be updated using the automation rule. +After the webhook is configured in Odoo, where the webhook's URL is generated and the target record +defined, it needs to be implemented in the external system. .. warning:: - The URL must be treated as **confidential**; sharing it online or without caution could - potentially expose your system to malicious parties. Click the :guilabel:`Rotate Secret` button - to change the URL's secret if necessary. + It is *highly recommended* to consult with a developer, solution architect, or another technical + role when deciding to use webhooks and throughout the implementation process. If not properly + configured, webhooks may disrupt the Odoo database and can take time to revert. + +.. image:: automated_actions/webhook-update-record.png + :alt: Example of a Based on date field trigger + :scale: 80% .. note:: - - The code defined by default in the :guilabel:`Target Record` field works for webhooks coming - from another Odoo database. It is used to determine the record(s) to be updated using the - information in the payload. - - If you wish to use the webhook's content for a purpose other than to find the record(s) (e.g., - *create* a record), your only option is to use an :ref:`studio/automated-actions/action/python-code` - action. In this case, the :guilabel:`Target record` field must contain any valid code, but its - result doesn't have any effect on the automated action itself. - - The webhook content is available in the server action context as a `payload` variable (i.e., a - dictionary that contains the GET parameters or POST JSON body of the incoming request). - -You can also choose to :guilabel:`Log Calls` to record the payloads received, e.g., to make sure the -data sent by the source system matches the expected format and content. This also helps identify -and diagnose any issues that may arise. To access the logs, click the :guilabel:`Logs` smart -button at the top of the :guilabel:`Automation rules` form. + It is also possible to set up an automated action that :ref:`sends data to a external system's + webhook ` when an event occurs in your Odoo database. .. seealso:: - :doc:`automated_actions/webhooks` + :doc:`Webhook documentation ` .. _studio/automated-actions/action: Actions ======= -Once you have defined the automation rule's :ref:`trigger `, click -:guilabel:`Add an action` to define the action to be executed. +Once you have defined the automation rule's :ref:`trigger `, +click :guilabel:`Add an action` in the :guilabel:`Actions To Do` tab to define the action(s) to be +executed. .. tip:: - You can define multiple actions for the same trigger/automation rule. The actions are executed - in the order they are defined. This means, for example, that if you define an - :guilabel:`Update record` action and then a :guilabel:`Send email` action, the email uses the - updated values. However, if the :guilabel:`Send email` action is defined before the - :guilabel:`Update record` action, the email uses the values set *before* the update action is - run. + You can define multiple actions for the same automation rule. By default, actions are executed in + the order in which they were defined. + + This means, for example, that if you define an :guilabel:`Update record` action and then a + :guilabel:`Send email` action where the email references the field that was updated, the email + uses the updated values. However, if the :guilabel:`Send email` action is defined before the + :guilabel:`Update record` action, the email uses the values set *before* the record is updated. + + To change the order of defined actions, click the :icon:`oi-draggable` :guilabel:`(drag handle)` + icon beside an action and drag it to the desired position. -.. _studio/automated-actions/action/update-record: +.. _studio/automated-actions/action-update-record: Update Record ------------- -This action allows to update one of the record's (related) fields. Click the :guilabel:`Update` -field and, in the list that opens, select or search for the field to be updated; click the right -arrow next to the field name to access the list of related fields if needed. +This action is used to update one of the record's (related) fields. The following options are +available: + +- :guilabel:`Update`: updates the selected field with the specified value. +- :guilabel:`Update with AI`: updates the selected field dynamically based on the AI prompt + provided. This option requires the **Odoo AI** app to be installed. +- :guilabel:`Sequence`: update the selected field with a defined sequence. +- :guilabel:`Compute`: updates the selected field dynamically using Python code. + +To define the action: + +#. With the :guilabel:`Update`, :guilabel:`Update with AI`, :guilabel:`Sequence` or + :guilabel:`Compute` option selected, as relevant, select or search for the field to be updated or + computed. If needed, click the :icon:`oi-chevron-right` :guilabel:`(right arrow)` next to the + field name to access the list of related fields. +#. Provide the relevant information based on the option selected. -If you selected a :ref:`many2many field `, choose whether -the field must be updated by :guilabel:`Adding`, :guilabel:`Removing`, or :guilabel:`Setting it to` -the selected value or by :guilabel:`Clearing it`. +Update +~~~~~~ + +Select or enter the updated value for the field. + +If a :ref:`many2many field ` is being updated, choose +whether the field must be updated by :guilabel:`Adding`, :guilabel:`Removing`, or :guilabel:`Setting +it to` the selected value or by :guilabel:`Clearing it`. .. example:: If you want the automated action to remove a tag from the customer record, set the - :guilabel:`Update` field to :guilabel:`Customer > Tags`, select :guilabel:`By Removing`, then - select the tag. + :guilabel:`Update` field to :guilabel:`Customer > Tags`, select :guilabel:`by Removing`, then + select the tag to be removed. - .. image:: automated_actions/update-record-action.png + .. image:: automated_actions/update-record-tags.png :alt: Example of an Update Record action + :scale: 80% -.. tip:: - Alternatively, you can also set a record's field dynamically using Python code. To do so, select - :guilabel:`Compute` instead of :guilabel:`Update`, then enter the code to be used for computing - the field's value. For example, if you want the automation rule to compute a custom - :ref:`datetime field ` when a task's priority is set to - `High` (by starring the task), you can define the trigger :guilabel:`Priority is set to` to - `High` and define the :guilabel:`Update Record` action as follows: +Update with AI +~~~~~~~~~~~~~~ + +Enter a prompt to instruct Odoo AI how to update the field. Type `/` to open the :guilabel:`AI +prompt tools`; use :guilabel:`Field Selector` to tell Odoo AI which related fields to check for +context, and :guilabel:`Records Selector` to provide possible values for the updated field. + +.. example:: + If you want the automation rule to update the :guilabel:`Assignees` field of a newly created + task based on the employees' expertise, you can write a prompt to instruct Odoo AI to check + the :guilabel:`Display Name` field of the task for the context, then to assign the most suitable + employee. + + .. image:: automated_actions/update-record-ai.png + :alt: Example of updating a record using AI + :scale: 80% + +Sequence +~~~~~~~~ + +Select an existing sequence or, to create a new sequence: + +#. Click :guilabel:`Search more`, then click :guilabel:`New`. +#. In the window that opens, enter the :guilabel:`Name` of the sequence. +#. Configure the sequence, adding a :guilabel:`Prefix` and/or :guilabel:`Suffix` as desired. + + .. tip:: + Use dynamic placeholders like :guilabel:`Current Year with Century: %(year)s` in the + :guilabel:`Prefix` and/or :guilabel:`Suffix` to create sequences with elements like current + year, month, etc. Possible placeholders are shows at the bottom of the window. + +#. Click :guilabel:`Save`. + +.. example:: + If you want the automated action to create a sequential customer reference each time a new + customer is created, set the :guilabel:`Sequence` field to :guilabel:`Reference`, then, in the + dropdown, click :guilabel:`Search more`. Click :guilabel:`New` to create a new sequence. + + In the example, each new customer receives a sequential reference with the prefix ` + + .. image:: automated_actions/update-record-sequence.png + :alt: Example of an Update Record action using a sequence + :scale: 80% + +Compute +~~~~~~~ + +Enter the code to be used for computing the field's value. + +.. example:: + If you want the automation rule to compute a custom :ref:`datetime field + `, :guilabel:`Escalated on`, when a task's priority is set + to `Very high` (three stars), you can define the trigger :guilabel:`Priority is set to` to `Very + High` and define the :guilabel:`Update Record` action as follows: .. image:: automated_actions/update-record-compute.png :alt: Compute a custom datetime field using a Python expression + :scale: 80% + +.. _studio/automated-actions/action-create-record: + +Create Record and Duplicate Record +---------------------------------- + +These actions are used to create a new or duplicated record on any model. + +To define the action: + +#. With :guilabel:`Create Record` or :guilabel:`Duplicate Record` selected as the :guilabel:`Type` + of action, as relevant, select the required model in the :guilabel:`Record to Create` field; the + field contains the current model by default. +#. Specify a :guilabel:`Name` for the record, or, if the action duplicates a record, indicate the + record being duplicated in the :guilabel:`Duplicate from` field. +#. If the new or duplicated record is being created on another model, select a field in the + :guilabel:`Link Field` field to link the record that triggered the creation of the new or + duplicated record. + +.. tip:: + The :guilabel:`Link Field` dropdown menu only contains :ref:`one2many fields + ` existing on the current model that are linked to a + :ref:`many2one field ` on the target model. + +.. example:: + If you want the automation rule to duplicate a project, e.g. a project template with predefined + tasks, when an opportunity is set to `Won`, add a custom `Related opportunity` :ref:`many2one + field ` field on the *Project* model and a custom + `Related project` :ref:`one2many field ` field on the + *Lead* model, then provide the following details about the record being duplicated: + + .. image:: automated_actions/duplicate-record.png + :alt: Duplicate a record in a different model + :scale: 80% + +.. tip:: + You can create another automation rule with :ref:`studio/automated-actions/action-update-record` + actions to update the fields of the new or duplicated record if necessary. For example, you can + use a :guilabel:`Create Record` action to create a new project task and then assign it to a + specific user using an :guilabel:`Update Record` action. + +.. _studio/automated-actions/action-create-activity: Create Activity --------------- -This action is used to schedule a new activity linked to the record. Select an :guilabel:`Activity -Type`, enter a :guilabel:`Title` and description, then specify when you want the activity to be -scheduled in the :guilabel:`Due Date In` field, and select a :guilabel:`User type`: +This action is used to schedule a new activity linked to the record. -- To always assign the activity to the same user, select :guilabel:`Specific User` and add the user - in the :guilabel:`Responsible` field; -- To target a user linked to the record dynamically, select :guilabel:`Dynamic User (based on - record)` and change the :guilabel:`User Field` if necessary. +To define the action: + +#. With :guilabel:`Create Activity` selected as the :guilabel:`Type` of action, select the + appropriate :guilabel:`Activity Type` from the dropdown menu. +#. Enter a :guilabel:`Title`. +#. Indicate by when the activity should be completed by specifying a number of :guilabel:`Days`, + :guilabel:`Weeks`, or :guilabel:`Months` in the :guilabel:`Due Date In` field. +#. Select a :guilabel:`User type`: + + - To always assign the activity to the same user, select :guilabel:`Specific User`, then add the + user in the :guilabel:`Responsible` field. + - To target a user linked to the record dynamically, select :guilabel:`Dynamic User (based on + record)`. If needed, change the :guilabel:`User Field` by clicking on the placeholder field + name then selecting or searching for the user field in the list that appears. Clicking the + :icon:`oi-chevron-right` :guilabel:`(right arrow)` next to the field name allows you to access + related fields if needed. +#. Optionally, add a :guilabel:`Note` to provide more information about the activity. .. example:: - After a lead is turned into an opportunity, you want the automated action to set up a call for - the user responsible for the lead. To do so, set the :guilabel:`Activity Type` to - :guilabel:`Call` and the :guilabel:`User Type` to :guilabel:`Dynamic User (based on record)`. + After a proposition is sent to a opportunity with a high expected revenue, you want to create an + activity for the salesperson's team leader to call the potential client to increase the chances + of closing the deal. + + To do so, set the :guilabel:`Activity Type` to :guilabel:`Call` and the :guilabel:`User Type` to + :guilabel:`Dynamic User (based on record)`. Click on the placeholder field and select + :guilabel:`Sales Team`, then click the :icon:`oi-chevron-right` :guilabel:`(right arrow)` and + select :guilabel:`Team Leader`. .. image:: automated_actions/create-activity-action.png :alt: Example of a Create Activity action + :scale: 80% + +.. _studio/automated-actions/action-send-email-sms: Send Email and Send SMS ----------------------- These actions are used to send an email or a text message to a contact linked to a specific record. -To do so, select or create an :guilabel:`Email Template` or an :guilabel:`SMS Template`, then, in -the :guilabel:`Send Email As` or :guilabel:`Send SMS As` field, choose how you want to send the -email or text message: - -- :guilabel:`Email`: to send the message as an email to the recipients of the :guilabel:`Email - Template`. -- :guilabel:`Message`: to post the message on the record and notify the record's followers. -- :guilabel:`Note`: to send the message as an internal note visible to internal users in the - chatter. -- :guilabel:`SMS (without note)`: to send the message as a text message to the recipients of the - :guilabel:`SMS template`. -- :guilabel:`SMS (with note)`: to send the message as a text message to the recipients of the - :guilabel:`SMS template` and post it as an internal note in the chatter. -- :guilabel:`Note only`: to only post the message as an internal note in the chatter. - -.. _studio/automated-actions/action/send-whatsapp: + +To define the action: + +#. With :guilabel:`Send Email` or :guilabel:`Send SMS` selected as the :guilabel:`Type` of action, + as relevant, select or create an :guilabel:`Email Template` or :guilabel:`SMS Template`. +#. In the :guilabel:`Send Email As` or :guilabel:`Send SMS As` field, choose how you want to send the + email or text message. + + For an email, select: + + - :guilabel:`Email`: to send the message as an email to the recipients of the :guilabel:`Email + Template`. + - :guilabel:`Message`: to post the message on the record and notify the record's followers. + - :guilabel:`Note`: to send the message as an internal note visible to internal users in the + chatter. + + For a text message, select: + + - :guilabel:`SMS (without note)`: to send the message as a text message to the recipients of the + :guilabel:`SMS template`. + - :guilabel:`SMS (with note)`: to send the message as a text message to the recipients of the + :guilabel:`SMS template` and post it as an internal note in the chatter. + - :guilabel:`Note only`: to only post the message as an internal note in the chatter. + +.. _studio/automated-actions/action-send-whatsapp: Send WhatsApp ------------- @@ -286,41 +476,48 @@ Send WhatsApp :ref:`WhatsApp templates ` must be created. This action is used to send a WhatsApp message to a contact linked to a specific record. -To do so, select the appropriate :guilabel:`WhatsApp Template` from the drop-down menu. -.. _studio/automated-actions/action/add-followers: +With :guilabel:`Send WhatsApp` selected as the :guilabel:`Type` of action, select the appropriate +:guilabel:`WhatsApp Template` from the dropdown menu. + +.. _studio/automated-actions/action-add-remove-followers: Add Followers and Remove Followers ---------------------------------- -Use these actions to (un)subscribe existing contacts to/from the record. +This action is used to subscribe/unsubscribe existing contacts as followers of the record. -Create Record -------------- +With :guilabel:`Add Followers` or :guilabel:`Remove Followers` selected as the :guilabel:`Type` of +action, as relevant, select a :guilabel:`Followers Type`: -This action is used to create a new record on any model. +- To always add/remove the same contact(s), select :guilabel:`Specific Followers` then select the + contact(s) from the dropdown menu. Multiple contacts can be added/removed. -Select the required model in the :guilabel:`Record to Create` field; it contains the current model -by default. Specify a :guilabel:`Name` for the record, and then, if you want to create the record on -another model, select a field in the :guilabel:`Link Field` field to link the record that -triggered the creation of the new record. +- To add/remove a contact linked to the record dynamically, select :guilabel:`Dynamic Followers`. If + needed, change the :guilabel:`Followers Field` by clicking on the placeholder field name then + selecting or searching for the partner field in the list that appears. Clicking the + :icon:`oi-chevron-right` :guilabel:`(right arrow)` next to the field name allows you to access + related fields if needed. -.. note:: - The dropdown list related to the :guilabel:`Link Field` field only contains :ref:`one2many fields - ` existing on the current model that are linked to a - :ref:`many2one field ` on the target model. +.. example:: + To keep customers informed of progress on a project, this automated action adds the relevant + customer as a follower when a project task is set to `In progress`. -.. tip:: - You can create another automation rule with :ref:`studio/automated-actions/action/update-record` - actions to update the fields of the new record if necessary. For example, you can use a - :guilabel:`Create Record` action to create a new project task and then assign it to a specific - user using an :guilabel:`Update Record` action. + .. image:: automated_actions/add-followers-action.png + :alt: Adding the customer as a follower when project task set to in progress + :scale: 80% -.. _studio/automated-actions/action/python-code: +.. _studio/automated-actions/action-execute-code: Execute Code ------------ +.. important:: + For automation rules that require the execution of :ref:`custom code + `, note that maintenance of custom code is not + included in the *Standard* or *Custom* pricing plans and incurs :ref:`additional fees + `. + This action is used to execute Python code. You can write your code into the :guilabel:`Code` tab using the following variables: @@ -341,25 +538,44 @@ using the following variables: .. tip:: The available variables are described both in the :guilabel:`Code` and :guilabel:`Help` tabs. +.. seealso:: + :doc:`Odoo's ORM capabilities <../../developer/reference/backend/orm>` + .. _studio/automated-actions/action-webhook: Send Webhook Notification ------------------------- -This action allows to send a POST request with the values of the :guilabel:`Fields` to the URL -specified in the :guilabel:`URL` field. +This action is used to send a `POST` API request with the values of the selected :guilabel:`Fields` +to the webhook URL specified in the :guilabel:`URL` field. The :guilabel:`Sample Payload` provides a preview of the data included in the request using a random record's data or dummy data if no record is available. -.. _studio/automated-actions/action/several-actions: +.. note:: + It is also possible to set up an automated action that :doc:`uses a webhook to receive data from + an external system ` when a predefined event occurs in that system. + +.. _studio/automated-actions/action-existing-actions: + +Multi Actions +------------- + +This action is used to trigger multiple actions (linked to the current model) at the same time. + +To define the actions: + +#. With :guilabel:`Multi Actions` selected as the :guilabel:`Type` of action, click :guilabel:`Add + an action`. +#. In the :guilabel:`Add: Child Actions` pop-up: -Execute Existing Actions ------------------------- + - select one or more existing actions and click :guilabel:`Select`; or + - click :guilabel:`New`, define the action to be executed, then click :guilabel:`Save & Close` + or, to create additional actions, :guilabel:`Save & New` . +#. Repeat as many times as needed. -The action is used to trigger multiple actions (linked to the current model) at the same time. To do -so, click on :guilabel:`Add a line`, then, in the :guilabel:`Add: Child Actions` pop-up, select an -existing action or click :guilabel:`New` to create a new one. +.. image:: automated_actions/multi-actions.png + :alt: Define multiple actions to be executed .. toctree:: :titlesonly: diff --git a/content/applications/studio/automated_actions/add-followers-action.png b/content/applications/studio/automated_actions/add-followers-action.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e33c60136ad97a1ddb2d6e6044a2df0ca29d8e GIT binary patch literal 13362 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 sMqQme7X%PS4VcyGu>Myu50?!m}ANijL_W%F@ diff --git a/content/applications/studio/automated_actions/before-update-domain.png b/content/applications/studio/automated_actions/before-update-domain.png index a775c61598cf719726264694dfe0fe6e463aef7f..fad4436e2b297ee94cc4b04448c363d3c87b132a 100644 GIT binary patch literal 20169 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 diff --git a/content/applications/studio/automated_actions/create-activity-action.png b/content/applications/studio/automated_actions/create-activity-action.png index cc6e2f42d01e9e902b16237119607cd2460701b5..90c1e4f59db9f4fbdadec2ef1b772efa09fcd2f1 100644 GIT binary patch literal 15683 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 literal 5420 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 G6!c%ud}W*f diff --git a/content/applications/studio/automated_actions/duplicate-record.png b/content/applications/studio/automated_actions/duplicate-record.png new file mode 100644 index 0000000000000000000000000000000000000000..ebe9bb320d176039081fbf3c43888d0a84dada27 GIT binary patch literal 13846 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%0DXX0c1%X5qeG|5Sl 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 literal 0 HcmV?d00001 diff --git a/content/applications/studio/automated_actions/timing-conditions-trigger.png b/content/applications/studio/automated_actions/timing-conditions-trigger.png deleted file mode 100644 index 41ca2575d040cc0b33dbd135200db90b85865039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7037 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 D-_Pog literal 0 HcmV?d00001 diff --git a/content/applications/studio/automated_actions/trigger-timing-conditions.png b/content/applications/studio/automated_actions/trigger-timing-conditions.png new file mode 100644 index 0000000000000000000000000000000000000000..eb8cb0cc22ded773603f1a3456ef54e061dca4d4 GIT binary patch literal 13901 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 KRf&EN_`d+=BDEj@ literal 0 HcmV?d00001 diff --git a/content/applications/studio/automated_actions/update-record-action.png b/content/applications/studio/automated_actions/update-record-action.png deleted file mode 100644 index 1915eef21931db99f05164aebe05af6e22aed799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12392 zcmb7qWmH^Evn~=yuq1dOc!D#y1b26rL4pSx+}+*X0|W>%I1KLY1c$+01`TeP_dVae zzs_3sobDfcx76y|wX3STtDbNr1xXB4LR2_7I1FhiF%>vCL?9d-JpDVw*B(*>i#0en z#&CR8T>Hz;vh?{hJ0 z1GU>fB&VO0x+o4TsHn;0)9^7dDjB}q2vR?G#alKg)p0u34l1`cI)QY&h;Mw(s2^eT zDz&%VDu4HGxC3I+)<)L!2i;aE@7kZ6ik=gHUd-k6-{9vuTL_{g%u^a5L5nZ&wofyY zw4Z~`E;Wqr&Y^3l*lVtoMVPu zM~I)>OkI|kQ0yGE-qv<2sPs)Z=k7MvH)HX| zH0u~2J;lQINlhOBGx;;_cvG*pN+MUo&88GQq|s{1zKxT_}qE9@5_ z_yeca0~7EM(8e3*bOE86D-*R_X6fY_{pGaZaTi0m83}MyVs)I5nQ~-JA#u~qSrfO* z`}_XQ?PrB{BBrnuSH9(=6{^8ct{Ceq0_qo zr5|$C=eee`2-Nge+|Fu?U|jRw*gG|Nv$*5VMu>Sw6Y&dPRiLIL?PIOs-Cs!wB(dB| z(OBTQr4gi(HG!!_$VHo}#qS%dXptm8%S3Ic2YJXrl20ycto~A*FxZ`>YO<8W*s5!r zQ7Re4lR2WZ6fzF)G9}Wiqw;z2@OX9ukKp%k?YPj-`tIg z&X1_A4+5qn9}3b_&#XibG=<~4c|+3}Q^v#K0%Z;$!5}X9KxWqa%Af~Hp1y9}Y2oE0J%hY4hfg?&ma5mbR`jd8FWDC$_R~0Y zGC!gY_Woi_KVCzzk)fWnbc{;xgugx`i5!h?3@DCQ)VIr>tRxD&7+YSk*ZG|={wZ<_ z3H!`#(gX`#EL)RCA)I5D*I}xr*;LR%28N5HZd=yNc?gvWUuae_)%5zD_$)L@eW~CY z(3~k2^*P3?M501^v9UhVe=;b*vW7o%S7;dPs~bc#3$cO5J_{+f>T^O6ALrGaWixtO zW)`~scX=#?=^4E$CmZt+T?5=nQkkxwj`SE>D^MqdfJgmwyYK2cmlkrBU&0F-)gweD zeN>NZ%zojmxsSGUVQya;nD7Y=%uhN{oW!SlqVzO38P{gMvh zkvh*ib`u61H-|4&3oH1UW^)x`IN6pAL=i+J2}9zWM^y{teX)M&rewlHdp3#|a2uD7u^P6@m}X_$w$;pyZ0eyx{* zB*`QVq2S;E6zN*;G%XaA&Mv3m_u<}wB0O^(E#m|a$ct38(6-`nl&eGNu$QN4n$mo=;pzK~(6pyIG+yRV7!Xm%0AlpJ>?_ky_4{BF+ z^mFNiUp~x5!9rM2O;}28>Hrq6FWG`neWdwJQe@D$edwUyGGyM5`}eirkDL?>o!9KfEhx*ta}p6}=O=SoW5Ak@!;)oiuv9+@9-D zw#uuXq^T&syF0Mi6n5PlS~Gpx_bW6lE$`(SRsfQ%@=(zgky!oZ*c+-lKD7{{WcdV} zGSpO&6Oyo34sppF^Y4F}ySNna=?p7avzN7N57TouRxaFnuJ4`o4T-kV*Nm(m1f_N= zN$O>_AI1PRib%VS#g%L|^ZWZ#G5ZqBs9%5YpAu%Dj6G9hoy>DRjG~?OeJu>9 zmQVYpcaDyZoz&%bFXrdw<{^%jDaE5BDZWlRSyn3IuEB$b5?Y5BkE8uv5QVKXYGB{~5VKuj<;|y;l>;vKfW6_#)a}>|`Gl~GRx9`!S zbw0)nV=;7Hw)L0YI#fsq)#+44csPy@efw6RUtvD7$U>=E?LlX6IWRS);QZd8f@Ydv zAe~}9RnUp=rRwnS;o?!$wBQ3@%V#;}uE3zq6|$#0i|BAG$8OuPXj@1kKKSKB4#u zIP*4F#eOjTqQZYq&n9_qHz7;Kz*Z2+dsj1`y6&86w8z% z*$#sgic-XmBPZvL-%`cIn9eh13yw^OmgHI`OzmkOA_jEspG|) zcQ&K+DcsiaJ~4p^5OXA@er2lDZ^CwU#fq+J`br?a@-%)LMtmUO1LtR7OO=E;AG9)zphy{A zHeI{+1iJdcJM$J#qZ==RBEI>6K%S|I5?g1uQD5f(2jZbMCQ~3Q+5-QtG}^?7v>^9H zQJ}!DO~jzxl;1O)^zli=mf4P$Me*g&&FTX&76nEjQg(GAHO?}~BtVzL$>Fy80dR28S4I0r z^Z&I2q<@;7fd81qzxMD?^ZzsHQxAv$4(^Np``6po|F$qoxScNc?7f}DfD_AHdp2Ay zaGdCfje#S(KmP3=qwxA1t?+!-`-=c4x>@$n+O3G3xYt&gn_mp~X{jyAqGfp{ZgJ;% zd05!CQ6s+$?o+-l&&ubHJn!0Lq=6%ZjG2ox)7P=AWo8(t24>wL|XcpH9`>P z(>jomL`C`>3v7xvrxTG`7cvLPsWUd;#Oeb(Lk=1)!oHZo-@o-6gf3NEo%rGvAF@NP zPZrX>1ONaSo6`q4%;v%eiyWp))mdoBG8=pfi)z^S9f z=D^|p3?0!gY~@e#W#!RtV6Z`CsKdeX;Sq)JI}rRwmfDfT5BoD5vAUPrAWltCX|lEWwH zANpIZYgwTn^mvlK?8txXrL}Y zBNF7bLD&p*{lam00_g;ww%*4LjE#h>g7#{{F8^|2()A7SvjtudCO2I_2$oi|aIBH8 z5pQV0!-pKrjV028G1GAugq&8EJkFvTlD!4(6~2n5d9#`hmx-7v%8!y>*uiA=KOd+~ zXS~baY$0e8c8~6FeHI=f+~FvK@?>yXnHVD>-y(y&PwNZ+?)8pBnJtMF1n^AcwM%j; z7p8fzy-YvPJTzt{cykJX3%8pFnyr8lSr;{}s!XzrrO8vn0b{ z1k=rm)!)U(7|Ai_A0gckD>~KQGt#P9a};yMF)gdoW)I=t3)n8Vh>Q(#j`YlZYBmO5 zy`a8I%W1Uhk(&^Qc4wp!a$_5ul~SH5p<0^vrYF%eKW{E=53Z75zCDy)y8jl#wD7Pvs>2VqH_*OFcwBBK^Kg&gjebt=;&zPp~T-~*j z(QY4qDLkLm1%18ySnu`BG*p3tZ8fobd^=ISDY6BCKvqEotu9yYToB5UMrYr9r^rG# zPLJ31I=jem@d;B#v8dyV@}lI zWm4*4b5Ikv(kwHmEU9ASJbm&tZ*z|-F{6OTUR7Jb`h)MjFye@)Y-kATsYaU1=gJ0k zP8y>hZ@(VnT#PG8CNk6#?&0EoxMr!)EAI%0r&ZxRRiuNm)vkdF@GTmaOLz4$7PWZ8 z$D=u(hP>i>i$SXfI!)ABz!Yt@lqg+TP*5aBq1Sver;lj+P_s7|vF1(~0aEzgFijbV zl3rXL;v5oQx%=@72WA=2GiW)fYjmtFmvnJ}!YBY!qtj8m`q7d22v8 zV?*OLQ(AwGH$(>>*pjpk-`Q$(cY^He8ss?yj1|q=t;gc%gA{sKf{WB?q#8+Ij%8*0eu-2 zf9XJ@rLsV|1?Wj3p}Z_sn8(u40oV#W7q(CGGnO@yOH#KsNBlxwo93K9M8#7>VgH?j z;0?K)6bX7_hdtIHR*F58IF32pl)N|exW+`3OUSS5F2X6=oP?CU03L@IAC4m36pA`%*P z&T#lC38&SB4?s%3*55b%^fjx?i(d2-?gEy8`$YslXvFM&lv}y1Y$99IuQ}AT%>;@E zrR+xmVAfAagxR~@c2=F-gMdK7P9KEjep8GY!O#7@YK=0e>w#SQ?MQtlyZr35ZAWq%Q%>c6 z)>CZHYZ0Doof1571p)HNR$Gx4=xD_#`)gi4a`MkGtXDIMoSFnKO;zh%+l~F z0Sf`|(`d3>#K(+D)>N`Z=&yUIY4^^XzOP^3K0Vu(gd$k?Kn^cZ!jW3=ascM_oEIQGC11TKjCds%g#8vLWRL5hfX*ekid z=lR{V%{bMCG@+zvyqn{|eE^pUF&|i;gHtIBO};$VE+aS{hpCXizzn510(D=s+{^0E zDQRf1-e--F&(qy>VF1wjPevtoj9h!fW-R+^=gOAVOgr0eFfzk3;$5&ZweXkkxwq{P zPl?8h9X%y9Pq*h=v2N|jz_d1Aat>1jMqIHBNMpd@!u^k+!b$7Z;S$oddaL=$!IZvh zQy)ZhV0xmRMKa}0UE9{LE|splBtv?L-7ptS#Ci&QQeHju-pKl@L4zF)OoX^zfY*4? z#kjk$dBSX+Y%9rx5iD$N2#?+=R=duiy0CFWeaIOehga0U3dk5^N{F%4w(k-RhIMa2iP==igKML3rbD5eb`Ip|0n ze>@+<4)|*GOS2{U;>O3`-So5VyU!wFgl40?-G^Lf4~)y^3ug|9%|f^w+sJY{;f)JA z1_Kx^Ll4m2Y%x9#^l<>_KKV!}87VFbNntOYe^#+~icXnbf9K`F@ zgub%fqQzj6;P0MCU>MIlrI9eB6bkr_LtE$!aanGIPaT^U6?50jb$VM#+ z%a=s~f?ZeoOK7Y_C=UiQHODx(NUF6{2m+qjKjk4;rC4X|WQZYlhMmx9^O-HIg>ue3 znRctI_yymnjr9#f(5K_>;|f|e7|LZp!n`*NY4RW;{NMQ@-F_9lDQhD?IX0|3b0@a+Vr)p|`?idki=eZhzZRkfClQ``=b8`h|o&zBc=| zi>zYTE{z1f+%woT{RFiazO}f(qiRmsgT&Raqw^XP5HpWbJOYPS<(E`E#eefM9FuUf zdWOc#dquBwmz|&F`ccPrpo|wwSH)-~CTMQ?eE5LLCscL#C6tC&%_ZiPwf}3wKlPWC zwY0T#{6fM)0t;0&u4ukvicjCO)|XVbR=R4+*NUt6+LaNq$a42MdTJN$pq+Twk_{N% zm_G5IIL{q~7@##Iu!m?SRK=c`l2ubu;x%mAr|jZIAdY^Pd?QcBYwLlwP}2Z|iQ^Iy zyo>*>k=t#2nHf>>nzCdNQ9Y+|Zf&Eqp1nK!x>>NQMV><_BQW|K6yWuiu!lZ*S|H>D z8|@zCq@XvY7cUxm{!JDP|E`y3EkgcI>FN8!0_)5~$ai`vj`-vzoDF3~KEhWQ%dvrS zU!nEEt-D%$CO@{p-2MB^MphUmi$wU4|)V8p1Dg3Gp`D(z!<03ctI z4XI{N&gQB%0B||LYbj595&Dzj&+k?-!0;k>xPt$nYzdJMdP677arY@|W@aYE8+GE6 z`n{rUV{Gpa)b>677R#KBU3_BQsV zV?rfQOD@!Z)FR-Or8-9U!VXVX^TIVQ*rrKJ9hLQjZ6_SPJP2<)E#Rh{z3EUXHhK)p z{q4XpwjZEtMcPWF8_(hCV|vEmp51BC9MDaD0)q0~I}FK^Qra4~LwU_sM@sN0#Ql@`H`b8arAJ{0oKbT-$@dSZ2Y~ zKO-73HkKd1?s&0V!^*B6G|zLBYRGb_MnXlZ3XAc^a?TzGaL32P^_egJe6&_ZV}ECT z^$=6x!(pbo%V4k}pkgH?E}t5R_iiuku)G zorR|Sp{^=4A!a>uA2FvT!Pkt!H@F@b zEE?jC-I}m)3*t-A6UO9mWuWgVJ1`1paRv*&MkN{Q+zPCnGwK$l2goI+V!}f)H{Tz` z#r$SY`H0iUBYqapefFKlm=FI&=xkA~5IT;ij(Lz*h|b zyU`S^+`D}8c^FJ36?~feENxrsL5EB26EX)x3oLfL&^YUny*t7IfuHstce=T*kzH6n z9c{Dm6@)gh?BkiPj`vY-;6YJs{G(mXXoDxv2#2|?D|y}0D8bCn*YE~fERfZ4l?q72 z!ZdwMaT}qNmGaJG*AR=%$j%-IC zyX|}fqX-)HsfG_1h%X9kSoQf&b1znxU2GISI-^4HX4wkTfRQq4Nr#+IR2zAcjNkSYe*dI z^89r?@`C6WO4hhE_#Kh{utBjMJx}w<72*r4|HZ}x&2%BtDiL1~TWhp11hrw5YsdF3 zWPR@MiFw*8P{QpYfASK|{4A$9IMLE(;fN-??eS_tQL*hMjHNNy(^=94X~*72it~i} zjUC#}A;N2*3+~^bSLbWY>-Fmp;?aCUmvrlJ_+r;xeaFRR;kP}CX1Y(yk^d8<`(Ho! zY)3Q6i*#895I&ZG!r8i8OHzoujIFi|h;P|DrzIAB9dq0vK{nz%UJ2_K1>g$0UyG(A zqfN6XHT)#@!YuEauSs8@-*eog=6>Ds=g+NJcJO8wYQzL zGHes~bvlF%`*6gw*jklPqbWuaBhf9gt%6|V9fWFA!`SBfp~BxlaUQTGNW4MmS~iO~ z7j1cUfzp`lrJAV$8Y-Ku`py-)xvJA%)LMdLk0Cg9jk zKS0v7BvVZ!nS5N$qbmsw93x9bE31DS8T^`YzIcy+Ky&5J zBbcaGev|`az+9%<$D7@_v#T_vcODp}=dt|$rHse+@>Vc0;nITNis3h>&21L$qZV#u zVyGG52)UcJ8|tu1tLeLz`h!`6>iE=_975tj>RiN$#;d6>U_bFG^`NbVX^7bnLim}z z<{dnwS$5o$G&`^LYWerWioM0dgYD#H;rXgRy~TqbKAW=<&>(s#SBWyE;_vky4bGGS zQ4;+qI8>j5LlJstjBvHfX$__9VDeJ<5e3{_kZ2nu9BuDv7tx0@{_>QGNdXg z!b7$9=D;fTqPg1 zbyP{(*(w~@PjDs0DBvmZtE`>E!VgNWEN`=FC#IeHFSANYMdUJRCI7Kz1RBhxeR;c9GP`nB`efO13#AviH#vGq0knJMI_Ycm+@$G|%(YMGF&+S6(dVtQ zVQQr@6!7H;IiEEFYBchc2dcjtesOML+Q*aEQpjqwO|Jrq?giyHcKd>|jd395+jDs| zo2&0YDA8S!O@F|g1{hW(L!B#Fea858895t{-NTgcyK?RYgRz_D#+2vv4{`ZUN%94< z8%Z1@6XXX0gnswVDRID8)+3%cHQtqN31kX~Hc{?FPRB<#kPg#KSAIa7i-A@vZlH+C|4H`wjC~ z4YOA@+Lgucor>`fx>scOl^*2HTn@Cd zO;9qiJ!JMHF!8klX`!g&C`eC%zVjJKg}|A0mK7|h=nZRt>4;RD$o zP?Bo9(;J9c^ug^guSnHHMl0g%-wob}3k&I7lMUG;7@w{9O3}yahv8ZMhOWF5rkq9~ zMdnK*Cu}g!xz)APqsFt-b2e8gc{%QM>92VM&>>J)rFnL4e%l#bjp1sg1ZIXDw`b_h z@Y#DiG>x1djR76gVQ4{3vo5mqrbMRFWU}fkUr(|%qB~2~D(z`juu@cPd9i7RYwOaR znIU{-SUmSkMG6cjJuCSvO13xY!J(_a{RJHLVO=rLpXr@NQc5IN)`Uxvk)fsqdCD!% zb>Xgvh6I>(tL?vbc)Q2jGxy}W+RRiF$F+ofP1I0wtoGDC171BPE$m9VaYuh@GcloK zGjppb3h{p2QKkQY#Qq3Gt3Q9TmTx(X*#pH|Yx*9I9$i5K3A*P_Gt*_u;XE`?qXGFEKx&5F@iUWW0YA#e6THQD6F4t`Rr#8~n73 z)grX9-kR}nGg)lnT^KgA4a8_SjJpI41pl8?$Los!b?C6O(tX~%r^15rG;EXOgR2#b;HM0(Ci_ZrfR^Wnu6(%*a9CXS|N z1@5fB5Poh`1BGF*CJ95%i%36dWI@5&y~PyM2HtHo^!}+>1MczeUvs?jGUALbm0bxtljga{u*(rj-+oDHO0TD-4k4!+_b~GFn1rUgt$b>(g+Ni!l=bz_sM#+P`?Es0V=Ey#z{o~P zS;kGgyRXxRU-e4_LdI!q_wXJ9u4E52W>$r*s#chMR9c_}Q1!7lYkc+(l-og_g93RM zjxz6(W_O5;&GHW!)J<&V=HTy z{}yj9A4J=364T5fBC&0XMab2@d~4r>y_3UEZPHSiUF9+Z<-zuPIIAavBD_QZ`4q3~ zsG5Jo;D7Pdh~MN+m1Ax5Fe_qg9Ld@=F3qFhJvPW|L(hr%FzX=l^iT#N8MoNfh_q6M z{16S?4XPI^43{m?wit?E9S1C*ueT#M0~vUk-R^H(e<(C2X0TrvO7c@%3&KJC;@hI! zOnLUQ{`7YCM+t2TYyBkd44~FNU!8^6Y0>O_z$cKb-y^}xwsJjf86hW+tGHpU86#hF*owV0^2dr>@RTG`**Km1}1C_?tJw z!`+wR9v}4SQO8x9?G>%b1u9IN}P4~@wX zA2aORH_b?mN@!Nqb)^sLs~KF)vE7xQ{OO71O(khE>Zxsp18s1-!M#ER{QiLp{6Ba0 zFL22ccoFJLtzY_e%0sl|k d@|nTjhjj%f2QxG;&_DiPT3kV_LgahE{{e*YfTsWe diff --git a/content/applications/studio/automated_actions/update-record-ai.png b/content/applications/studio/automated_actions/update-record-ai.png new file mode 100644 index 0000000000000000000000000000000000000000..b6ef3797c13548d7e51622bad14011350c8d7ff5 GIT binary patch literal 20158 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 diff --git a/content/applications/studio/automated_actions/update-record-sequence.png b/content/applications/studio/automated_actions/update-record-sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..4839ea56982ec7ac3e7ffe8e8e9e306a3dcf78b2 GIT binary patch literal 24345 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 literal 0 HcmV?d00001 diff --git a/content/applications/studio/automated_actions/update-record-tags.png b/content/applications/studio/automated_actions/update-record-tags.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e6c62868a3257b1e356c29b8c7ce2b52c767ee GIT binary patch literal 11380 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 literal 0 HcmV?d00001 diff --git a/content/applications/studio/automated_actions/values-updated-trigger.png b/content/applications/studio/automated_actions/values-updated-trigger.png deleted file mode 100644 index 39758f7057be829b44dfcb58d691cbe6ea4769d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2215 zcmV;Y2w3-tP)E}hgF>1aJTVxM^i>bV^>FWt@Ho?&zZ7xR>aQK|M%N?z4=B* zQUBYeh*eVMsdYYs$6;1kHcD&}A6TkzSE1SeXGvNA_~ZZcz5nB~I9PpAOH$0mzf@9L zlimM^yX1?_|2|lna7SWENOg#?%vpf0-`?f_?YZ*TumA1ai^}%2jCx+I@_mPm*s_#$ zV_Q#ak=NVcKSx~EtA%@hen4E2c)aod*`CPE$-KqQ(((Vw{QuOKXHi98aaTjfzQZ6H zC%>AA#=p1}B|tAqh(1PhLUOP#D=+Kz|Dbhc*4E0+>i)&g-Fc$YH%nvQ;_W_AljF4$t5gj^`xz?TG|NraGM-fvh z(BGhK*2AwxL~%ZV$GqI*?8%@vT%gw2)@*Zs?7NAQm!MH>d1Oau%Yj8(qvjwqOq+<6 zt8P(eq1PZlZKZ&IyVUeoa+Jcv$9`yF*Ui7Xq=fmpg#YBnSBb&jwwHLb=385CWRlGM z-L`nB$KuS#Zm8YG;QU@AC$hucQD~!RaA`M0du?!Z$JXp+R!Y9Nzu5EtR7Gm5z1_cNgg2^knf=UlG<;c_rY=^B}6N*!p9oix184C_re!nds-msrGe z2E=q-^KpSFclLOT3E;B&bJ3opYhbwcz9^@(0bt9Vf<5~g^oTwe>+{SOr+i-x1BxA} z_&h1G{MDW|so8sd9=q6QMbgBTmPjmryhs{z$14zSXC8=|BZ`LPMF(Q;RN2!b`dmEO z!Jcx-VzEqNjR!|u!k`1cD48&H7Fln!Mx)4|dq$g3nc%@S^8xm&Ch;?@kysXsJBbv_ zVx3cm@Wb(DLCoP;bp-DfU!Y*uPVJLsQ>LpQ%ED zJ6Hre9x4R;@&)99)k){B%6v;Odc7>5vQrzjJKCgNoaMsHcdqxf?-r}b)?B(c``5go ziCvP3b{Zu1E98<8tG|@o-R=td6${}lo3qH{1~iG z4wC>(c{8w2DM;&711qCtmMSzGgS^H({LpTao}j``2aJrF=r^y?=aEyP!fp)8!gZbN>=WTh&%kWmJh+w3j!6Czhdm=T9rhF777l~h^5fi>0#tUt+<%4y}B&d9~joN{0sxQ}wNkeohs!L-@LVrfHe zBtQmoU;FMtOo&Ar-PqCeEb-oimK@pZTA6QR(o<-(q7<~Mv=jh*+22X`yf*R^t#@$h z5vwQ#8*6&Hf=!^vR!(RivRH`7E~_P86!-zDf1<7cwOe&no=U{p?p@)WU735$$?=1f zkH{HYDFHHI8;L{KXTPNo`%6>Y4@8B6BP-&%T1;Vqqm6UGr)X|S7Y7i7485D1GK$gW z<*eGxOBqB(O3nDTq0fv(-2%$%w5`_F73(h+Lq%Q?qxF`xB3pJVdZrt}>O;OOs;kti z?XId31CLyIP{t`mZMNZBf9`vNEwLPK$1yta%aUny1S!NO$XMd*#7u1W;FN|I6AcVU z_&x({i(G}rh(RY}IZ_|gZgGaE-2%TX4-R)m18SgH!ZVk<#S(dmBT>7B-h0%+rKnl^ zMC>@GB3pizhlcQ*uJJ>vS*UKMYjFNbdsC9-^^NyPuhJ)fx-I pU@#aA27|$1Fc=I5gTXw7{0A0Co&x3pgQNfe002ovPDHLkV1ikRg@OP8 diff --git a/content/applications/studio/automated_actions/webhook-update-record.png b/content/applications/studio/automated_actions/webhook-update-record.png new file mode 100644 index 0000000000000000000000000000000000000000..13cb528c06fcd7500fac6ea87599f979075b5652 GIT binary patch literal 31459 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 literal 0 HcmV?d00001 diff --git a/content/applications/studio/automated_actions/webhooks.rst b/content/applications/studio/automated_actions/webhooks.rst index bd16143347..0032354306 100644 --- a/content/applications/studio/automated_actions/webhooks.rst +++ b/content/applications/studio/automated_actions/webhooks.rst @@ -7,280 +7,278 @@ Webhooks role when deciding to use webhooks and throughout the implementation process. If not properly configured, webhooks may disrupt the Odoo database and can take time to revert. -Webhooks, which can be created in **Studio**, are automation rules triggered by external events via -user-defined HTTP callbacks. When an external system sends data to an Odoo webhook's URL (the -"trigger") with a data file (the "payload"), Odoo responds with a predefined action in the database. +Webhooks, which can be created in **Odoo Studio**, allow you to automate an action in your Odoo +database when a specific event occurs in another, external system. -Unlike scheduled actions or manual API calls, webhooks enable real-time communication and -automation. For example, if a sales order is confirmed in an external POS system, a webhook can -instantly update Odoo's inventory, ensuring system synchronization. +In practice, this works as follows: when the event occurs in the external system, a data file (the +"payload") is sent to the Odoo webhook's URL via a `POST` API request, and a predefined action is +performed in your Odoo database. -.. note:: - This article covers creating a webhook that *takes in* data from an external source. However, - an automated action that :ref:`sends an API call to an external webhook - ` can also be created. - -Create a webhook in Studio -========================== +Unlike scheduled actions, which run at predefined intervals, or manual API requests, which need to +be explicitly invoked, webhooks enable real-time, event-driven communication and automation. For +example, you can set up a webhook to have your Odoo inventory data updated automatically when a +sales order is confirmed in an external point-of-sale system. -Webhooks are configured in **Studio**, and their setup is split between their :ref:`trigger -` and their :ref:`actions `. +Setting up a webhook in Odoo requires no coding when connecting two Odoo databases, but +:ref:`testing a webhook ` requires an external tool. +:ref:`Custom target records or actions ` may require programming +skills. -.. tip:: - - Setting up a webhook in Odoo requires no coding when connecting Odoo databases, but testing - requires an external tool like `Postman `_. :ref:`Custom target - records or actions ` may require programming skills. - - :ref:`Activate developer mode ` to modify the model targeted by the webhook - (e.g., sales orders or contact information) and to find the model's technical name (which may be - required for proper payload configuration). - -.. _studio/webhooks/webhook_trigger: +.. note:: + This article covers creating a webhook that *receives* data from an external source. However, + it is also possible to create an automated action that :ref:`sends data to an external webhook + ` when a change occurs in your Odoo database. -Set the webhook's trigger -------------------------- +.. _studio/webhooks/create-webhook: -To create a webhook with **Studio**, :ref:`open Studio `, click :guilabel:`Webhooks`, -then :guilabel:`New`. From here, name the webhook, modify the webhook's model (the kind of database -entry to be targeted) if needed, and toggle whether calls made to the webhook URL should be logged -(which would track the webhook's call history for troubleshooting). +Create a webhook in Odoo +======================== -The webhook's URL is automatically generated. This is the URL that should be used for testing the -webhook and connecting it to the external system that will send updates to the database. +.. important:: + Before implementing a webhook in a live database, configure and test it using a :ref:`duplicate + database ` to ensure the webhook performs as intended. -.. danger:: - The webhook's URL is **confidential** and should be treated with care. Sharing it online or - without caution can provide unintended access to the Odoo database. Click :guilabel:`Rotate - Secret` to change the URL if needed. +.. tip:: + :ref:`Activating developer mode ` before creating up a webhook gives greater + flexibility in selecting the :doc:`model <../models_modules_apps>` the automation rule + targets. It also allows you to find the technical name of the model and fields, which may be + needed to configure the payload. -Finally, if the system sending the webhook is not Odoo, adjust the :guilabel:`Target Record` actions -to look for the JSON record that is included in the API call's payload when the call is made to the -webhook's URL. If the system sending the webhook is an Odoo database, then make sure that the `id` -and `model` appear in the payload. + To find a model's technical name, with developer mode activated, hover over the model name and + then click :icon:`fa-arrow-right` :guilabel:`(Internal link)`. The technical name can be found in + the :guilabel:`Model` field. For example, a sales order webhook uses the *Sales + Order* model, but the technical name `sale.order` is used in the payload. -.. tip:: - Although the :guilabel:`Model` is set in Odoo, it is the model's technical name that must be - included in the payload. Hover over the model name, then click the :icon:`fa-arrow-right` - :guilabel:`(Internal link)` icon to find this technical name in the :guilabel:`Model` field. For - example, a sales order webhook uses the *Sales Order* model, but the technical name `sale.order` - is used in the payload. +To create a webhook in **Studio**, proceed as follows: -.. note:: - When creating a record in the Odoo database, the target record's default format should not be - used. Instead, use `model.browse(i)` or `model.search(i)`. +#. :ref:`Open Studio ` and click :guilabel:`Webhooks`, then :guilabel:`New`. +#. Give the webhook a clear, meaningful name that identifies its purpose. +#. If needed, and provided developer mode is activated, select the appropriate :guilabel:`Model` + from the dropdown. If developer mode is not activated, the automation rule targets the current + model by default. -.. _studio/webhooks/webhook_action: +#. The webhook's URL is automatically generated, but can be changed if needed by clicking + :guilabel:`Rotate Secret`. This is the URL that should be used when implementing the webhook in + the external system that will send updates to the database. -Set the webhook's action ------------------------- + .. warning:: + The URL is **confidential** and should be treated with care. Sharing it online or without + caution can provide unintended access to the Odoo database. If the URL is updated after the + initial implementation, make sure to update it in the external system. -To set a webhook's action while configuring a webhook, click :guilabel:`Add an action` under the -:guilabel:`Actions To Do` tab. Click the action's :guilabel:`Type` and set the fields as needed. +#. If desired, enable :guilabel:`Log Calls` to track the history of API requests made to the + webhook's URL, e.g., for troubleshooting purposes. -.. _studio/webhooks/test_webhook: +#. If the system sending the webhook is not Odoo, adjust the :guilabel:`Target Record` code to look + for the JSON record included in the payload when the API request is made to the webhook's URL. If + the system sending the webhook is an Odoo database, ensure that the `id` and `model` appear in + the payload. -Test the webhook ----------------- + If the webhook is used to create records in the Odoo database, use `model.browse(i)` or + `model.search(i)` instead of the default :guilabel:`Target Record` format. -.. note:: - Testing the webhook requires the webhook to be set up, a test payload to send to the webhook, and - an external tool or system to send the payload through a `POST` API request. Consider using a - tool like `Postman `_ so less technical skills are required. +#. Click :guilabel:`Add an action` in the :guilabel:`Actions To Do` tab to define the :ref:`actions + ` to be executed. +#. Before implementing the webhook in the external system, :ref:`test + ` it to ensure it works as intended. -If a message saying `200 OK` or `status: ok` gets returned during testing, then the webhook is -functioning properly on Odoo's side. From here, implementation can begin with the other tool to -automatically send those webhook calls into Odoo using the webhook's URL. +.. tip:: + - Webhooks can also be created via the :guilabel:`Automations` menu in **Studio** by selecting + the trigger :guilabel:`On webhook`. + - To access the history of API requests if :guilabel:`Log Calls` has been enabled, click the + :guilabel:`Logs` smart button at the top of the :guilabel:`Automation rules` form. + - If the purpose of the webhook is anything other than to update an existing record, e.g., to + create a new record, the :guilabel:`Execute Code` action must be chosen. -If any other responses are returned, the number sent in the response helps to identify the problem. -For example, a `500 Internal Server Error` means that Odoo could not interpret the call properly. If -this gets returned, ensure the fields found in the JSON file are properly mapped in the webhook's -configuration and in the system sending the test call. Turning on call logging in the webhook's -configuration provides error logs if the webhook is not functioning as intended. +.. _studio/webhooks/test-webhook: -Implement the webhook ---------------------- +Test a webhook +============== -Once the webhook is fully configured, begin connecting it to the system that sends data to the Odoo -database through this webhook. Make sure that the API calls are sent to the webhook's URL when -setting that system up. +Testing a webhook requires a test payload and an external tool or system, like +`Postman `_, to send the payload via a `POST` API request. This section +presents the steps to test a webhook in Postman. -.. _studio/webhooks/webhook_examples: +.. tip:: + - See the :ref:`webhook use cases section ` for step-by-step + explanations of how to test webhooks using test payloads. + - To get specific help with testing a webhook with Postman, contact their support team. -Webhook use cases -================= +#. In Postman, create a new HTTP request and set its method to :guilabel:`POST`. +#. Copy the webhook's URL from your Odoo database using the :icon:`fa-link` :guilabel:`(link)` icon + and paste it into the URL field in Postman. +#. Click the :guilabel:`Body` tab and select :guilabel:`raw`. +#. Set the file type to :guilabel:`JSON`, then copy the code from the test payload and paste it into + the code editor. +#. Click :guilabel:`Send`. -Below are two examples of how to use webhooks in Odoo. These webhooks require external tools (which -are listed with the example). +.. _studio/webhooks/test-webhook-response: -.. warning:: - Consult with a developer, solution architect, or another technical role when deciding to - implement webhooks. If not properly configured, webhooks may disrupt the Odoo database and can - take time to revert. +In the :guilabel:`Response` viewer at the bottom of the screen in Postman, details, including a HTTP +response code, indicate whether or not the webhook is functioning correctly. -Update a sales order's currency -------------------------------- +- A `200 OK` or `status: ok` message indicates that the webhook is functioning properly on Odoo's + side. From here, implementation can begin with the other system to automatically send the API + requests to the Odoo webhook's URL. -This webhook updates a sales order in the **Sales** app to USD. It useful for subsidiaries outside -the United States with a mother company located inside the United States or during mergers when -consolidating data into one Odoo database. - -Set the webhook's trigger -~~~~~~~~~~~~~~~~~~~~~~~~~ - -To set up this webhook, open the **Sales** app. Then, :ref:`set the trigger -` so the :guilabel:`Model` is set to `Sales Order`. Also, set -the :guilabel:`Target Record` to `model.env[payload.get('model')].browse(int(payload.get('id')))`. -This is broken down below. - -- **model**: what gets updated in Odoo (in this case, sales orders). This matches the - :guilabel:`Model` set earlier. -- **env**: where the action takes place. In this case, it is Odoo. -- **payload**: what is sent to the webhook's URL. This contains the information that updates - the sales order. -- **get('model')**: tells the webhook what database record to look at. In this case, the - webhook retrieves (`get`) the data tied to a specific `model`. In this example, this is the - Sales Order model. -- **browse**: tells the webhook to look in the `model` (Sales Order) set by the payload for what to - update. -- **int**: turns the target into an `integer` (a whole number). This is important in case some - words (a `string`) or a decimal number is included in the payload's target record. -- **get('id')**: identifies the sales order number that is being updated in Odoo. - -Set the webhook's action -~~~~~~~~~~~~~~~~~~~~~~~~ - -After setting the trigger, set the webhook's action by clicking :guilabel:`Add an action`. For the -:guilabel:`Type`, click :guilabel:`Update Record`. Then, select `Update`, choose the field -`Currency`, and select `USD` to have the currency field updated to USD. Finally, click -:guilabel:`Save & Close`. - -Webhook setup summary -~~~~~~~~~~~~~~~~~~~~~ - -To summarize what is set up, the webhook targets sales orders, identified by their sales order -number, and updates their currency to `USD` when a POST request is sent to the webhook's URL that -includes that sales order number (which is identified by the payload's `id` record). +- If any other response is returned, the number associated with it helps to identify the problem. + For example, a `500 Internal Server Error` message means that Odoo could not interpret the call + properly. In this case, ensure the fields found in the JSON file are properly mapped in the + webhook's configuration and in the system sending the test call. -Test the webhook -~~~~~~~~~~~~~~~~ +.. tip:: + Turning on call logging in the webhook's configuration in Odoo provides error logs if the webhook + is not functioning as intended. -Test the webhook's setup to make sure everything is correct. This process uses a tool called -`Postman `_ to send the simulated trigger. +Implement a webhook in an external system +========================================= -This section walks through the steps to test this webhook in Postman, but does not offer help if -there's an issue within that tool. To get specific help with Postman, contact their support team. +When the webhook has been successfully created in Odoo and tested, implement it in the system that +sends data to the Odoo database, making sure the `POST` API requests are sent to the webhook's URL. -Once Postman is open, create a new :guilabel:`HTTP` request and set its method to :guilabel:`POST`. -Next, copy the webhook's URL that is being tested and paste it into the URL field in Postman. After -that, click the :guilabel:`Body` tab and select the :guilabel:`raw` option. Set the file type to -:guilabel:`JSON`, then copy this code and paste it into the file. +.. _studio/webhooks/webhook-examples: -.. code-block:: json +Webhook use cases +================= - { - "model": "sale.order", - "id": "SALES ORDER NUMBER" - } +Below are two examples of how to use webhooks in Odoo. A test payload is provided for each example, +and can be found in the section on testing the webhook. `Postman `_ is +used to send the test payload. -From here, choose a sales order to test the webhook on. If it is not possible to test in a live -Odoo database, consider creating a demo database with a sample sales order and the webhook that was -configured. Replace `SALES ORDER NUMBER` with the sales order's number without the `S` or any zeros -before the number. For example, a sales order with the number `S00007` should be entered as `7` in -Postman. Finally, click :guilabel:`Send` in Postman. +Update a sales order's currency +------------------------------- -If a message saying `200 OK` or `status: ok` gets returned, then the webhook is functioning properly -on Odoo's side. The test sales order's currency is updated. From here, implementation can begin with -the other tool to automatically send those webhook calls into Odoo using the webhook's URL. +This webhook updates a sales order in the **Sales** app to `USD` when the external system sends a +`POST` API request to the webhook's URL that includes that sales order number (which is identified +by the payload's `id` record). -If any other responses are returned, the number associated with them helps to identify the problem. -For example, a `500 Internal Server Error` means that Odoo could not interpret the call properly. If -this gets returned, ensure the `model` and `id` fields are properly mapped in the webhook's -configuration and in Postman. +This could be useful for subsidiaries outside the United States with a mother company located inside +the United States or during mergers when consolidating data into one Odoo database. -.. _studio/webhooks/webhook-example: +Create the webhook +~~~~~~~~~~~~~~~~~~ -Create a new contact --------------------- +To create this webhook, proceed as follows: -This webhook uses custom code to create a new contact in an Odoo database. This could be helpful for -automatically creating new vendors or customers. +#. Open the **Sales** app, then :ref:`open Studio ` and click :guilabel:`Webhooks`. + The *Sales Order* model is selected by default. +#. Click :guilabel:`New`. The :guilabel:`Trigger` is set to :guilabel:`On webhook` by default. +#. Set the :guilabel:`Target Record` to + `model.env[payload.get('_model')].browse(int(payload.get('_id')))`, where: -Set the webhook's trigger -~~~~~~~~~~~~~~~~~~~~~~~~~ + - `payload.get('_model')` retrieves the value associated with the `model` key in the payload, + i.e., `sale.order`, which is the technical name of the *Sales Order* model. + - `payload.get('_id')` retrieves the value associated with the `id` key in the payload, i.e., + the number of the target sales order in your Odoo database with the `S` and leading + zeros removed. + - `int` converts the retrieved id to an integer (i.e., a whole number) because the method + `browse()` can only be used with an integer. -To set up this webhook, open the **Contacts** app. Then, :ref:`set the trigger -` so the :guilabel:`Model` is set to `Contact`. Also, set the -:guilabel:`Target Record` to `model.browse([2])`. This is broken down below. +#. Click :guilabel:`Add an action`. +#. In the :guilabel:`Type` section, click :guilabel:`Update Record`. +#. In the :guilabel:`Action details` section, select :guilabel:`Update`, choose the field + :guilabel:`Currency`, and select :guilabel:`USD`. +#. Click :guilabel:`Save & Close`. -- **model**: what gets updated in Odoo (in this case, a contact). This matches the :guilabel:`Model` - set earlier. -- **browse**: tells the webhook to look in the `model` (the contacts) set by the payload for - what to create. +Test the webhook +~~~~~~~~~~~~~~~~ -Set the webhook's action -~~~~~~~~~~~~~~~~~~~~~~~~ +To test this webhook, proceed as follows: -After setting the trigger, set the webhook's action by clicking :guilabel:`Add an action`. For the -:guilabel:`Type`, click :guilabel:`Execute Code`, then set the :guilabel:`code` to the sample code -below. Finally, click :guilabel:`Save & Close`. +#. With `Postman `_ open, create a new HTTP request and set its method to + :guilabel:`POST`. +#. Copy the URL of the Odoo webhook using the :icon:`fa-link` :guilabel:`(link)` icon and paste it + into the URL field in Postman. +#. Click the :guilabel:`Body` tab and select :guilabel:`raw`. +#. Set the file type to :guilabel:`JSON`, then copy this code, i.e., the payload, and paste it into + the code editor: -.. code-block:: python + .. code-block:: json - # variables to retrieve and hold data from the payload - contact_name = payload.get('name') - contact_email = payload.get('email') - contact_phone = payload.get('phone') + { + "_model": "sale.order", + "_id": "SALES ORDER NUMBER" + } - # a Python function to turn the variables into a contact in Odoo - if contact_name and contact_email: - new_partner = env['res.partner'].create({ - 'name': contact_name, - 'email': contact_email, - 'phone': contact_phone, - 'company_type':'person', - 'customer_rank': 1, - }) - # an error message for missing required data in the payload - else: - raise ValueError("Missing required fields: 'name' and 'email'") +#. In your Odoo database, choose a sales order to test the webhook on. In the pasted code, replace + `SALES ORDER NUMBER` with the sales order's number without the `S` or any zeros before the + number. For example, a sales order with the number `S00007` should be entered as `7` in Postman. +#. Click :guilabel:`Send`. +#. Consult the :ref:`Response viewer ` in Postman to + determine whether or not the webhook is functioning properly. If a message other than `200 OK` or + `status: ok` is returned, the number associated with the message helps to identify the problem. +.. _studio/webhooks/webhook-example: -Webhook setup summary -~~~~~~~~~~~~~~~~~~~~~ +Create a new contact +-------------------- -To summarize what is set up, the webhook creates a contact when an API call is sent to the webhook's -URL that includes the contact's information. +This webhook uses custom code to create a new contact in an Odoo database when the external system +sends a `POST` API request to the webhook's URL that includes the contact's information. This could +be helpful for automatically creating new vendors or customers. + +Create the webhook +~~~~~~~~~~~~~~~~~~ + +To create this webhook, proceed as follows: + +#. Open the **Contacts** app, then :ref:`open Studio ` and click :guilabel:`Webhooks`. + The *Contact* model is selected by default. +#. Click :guilabel:`New`. The :guilabel:`Trigger` is set to :guilabel:`On webhook` by default. +#. Set the :guilabel:`Target Record` to `model.browse([2])`. This is essentially a placeholder as + the code in the automated action tells the webhook what needs to be retrieved from the payload + and in which model the record needs to be created. +#. Click :guilabel:`Add an action`. +#. In the :guilabel:`Type` section, click :guilabel:`Execute Code`. +#. Copy this code and paste it into the code editor in the :guilabel:`Code` tab of the + :guilabel:`Action details` section: + + .. code-block:: python + + # variables to retrieve and hold data from the payload + contact_name = payload.get('name') + contact_email = payload.get('email') + contact_phone = payload.get('phone') + + # a Python function to turn the variables into a contact in Odoo + if contact_name and contact_email: + new_partner = env['res.partner'].create({ + 'name': contact_name, + 'email': contact_email, + 'phone': contact_phone, + 'company_type':'person', + 'customer_rank': 1, + }) + # an error message for missing required data in the payload + else: + raise ValueError("Missing required fields: 'name' and 'email'") + +#. Click :guilabel:`Save & Close`. Test the webhook ~~~~~~~~~~~~~~~~ -Test the webhook's setup to make sure everything is correct. This process uses a tool called -`Postman `_ to send the simulated trigger. - -This section walks through the steps to test this webhook in Postman, but does not offer help if -there's an issue within that tool. To get specific help with Postman, contact their support team. - -Once Postman is open, create a new request, and set its method to :guilabel:`POST`. Next, copy the -webhook's URL that is being tested and paste it into the URL field in Postman. After that, click the -:guilabel:`Body` tab and click :guilabel:`raw`. Set the file type to :guilabel:`JSON`, then copy -this code and paste it into the file. - -.. code-block:: json - - { - "name": "CONTACT NAME", - "email": "CONTACTEMAIL@EMAIL.COM", - "phone": "CONTACT PHONE NUMBER" - } - -Replace the fields above with a new contact's information in Postman, and then click -:guilabel:`Send`. - -If a message saying `200 OK` or `status: ok` gets returned, then the webhook is functioning properly -on Odoo's side. The new test contact appears in the **Contacts** app. From here, implementation can -begin with the other tool to automatically send those webhook calls into Odoo using the webhook's -URL. - -If any other responses are returned, the number associated with them helps to identify the problem. -For example, a `500 Internal Server Error` means that Odoo could not interpret the call properly. If -this gets returned, ensure the fields found in the JSON file are properly mapped in the webhook's -configuration and in Postman. +To test this webhook, proceed as follows: + +#. In `Postman `_, create a new HTTP request and set its method to + :guilabel:`POST`. +#. Copy the URL of the Odoo webhook using the :icon:`fa-link` :guilabel:`(link)` icon and paste it + into the URL field in Postman. +#. Click the :guilabel:`Body` tab and select :guilabel:`raw`. +#. Set the file type to :guilabel:`JSON`, then copy this code, i.e., the payload, and paste it into + the code editor: + + .. code-block:: json + + { + "name": "CONTACT NAME", + "email": "CONTACTEMAIL@EMAIL.COM", + "phone": "CONTACT PHONE NUMBER" + } + +#. In the pasted code, replace the `CONTACT NAME`, `CONTACTEMAIL@EMAIL.COM`, and `CONTACT PHONE + NUMBER` with a new contact's information. +#. Click :guilabel:`Send`. +#. Consult the :ref:`Response viewer ` in Postman to + determine whether or not the webhook is functioning properly. If a message other than `200 OK` or + `status: ok` is returned, the number associated with the message helps to identify the problem. From 69b2562ec3fb4ac22cd1992c35da1cc1b3dc2aaa Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Thu, 2 Oct 2025 21:03:33 +0000 Subject: [PATCH 50/52] [ADD] Payroll: Mexico localization closes odoo/documentation#14804 X-original-commit: 4bb9d34434b8fe4a6be116d3e3766e41349cc09c Signed-off-by: Lara Martini (larm) --- .../hr/payroll/payroll_localizations.rst | 3 +- .../payroll/payroll_localizations/mexico.rst | 545 ++++++++++++++++++ .../mexico/check-payslips.png | Bin 0 -> 14984 bytes .../mexico/create-draft-entry.png | Bin 0 -> 12544 bytes .../mexico/holiday-rules.png | Bin 0 -> 12055 bytes .../mexico/infonavit.png | Bin 0 -> 14637 bytes .../mexico/mexico-work-entries.png | Bin 0 -> 22270 bytes .../mexico/mx-rules-top-half.png | Bin 0 -> 18736 bytes .../payroll_localizations/mexico/paid.png | Bin 0 -> 14787 bytes .../mexico/payroll-tab.png | Bin 0 -> 42171 bytes .../payroll_localizations/mexico/personal.png | Bin 0 -> 32547 bytes .../mexico/post-entries.png | Bin 0 -> 12995 bytes .../mexico/structure-types.png | Bin 0 -> 15597 bytes 13 files changed, 547 insertions(+), 1 deletion(-) create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico.rst create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/check-payslips.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/create-draft-entry.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/holiday-rules.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/infonavit.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/mexico-work-entries.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/mx-rules-top-half.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/paid.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/payroll-tab.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/personal.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/post-entries.png create mode 100644 content/applications/hr/payroll/payroll_localizations/mexico/structure-types.png diff --git a/content/applications/hr/payroll/payroll_localizations.rst b/content/applications/hr/payroll/payroll_localizations.rst index 4e7ff96b57..5500eadfee 100644 --- a/content/applications/hr/payroll/payroll_localizations.rst +++ b/content/applications/hr/payroll/payroll_localizations.rst @@ -82,7 +82,7 @@ Payroll localization modules are available for the countries listed below. - Lithuania - Luxembourg - Malaysia -- Mexico +- :doc:`Mexico ` - Morocco - Netherlands - Pakistan @@ -103,6 +103,7 @@ Payroll localization modules are available for the countries listed below. payroll_localizations/egypt payroll_localizations/hong_kong payroll_localizations/jordan + payroll_localizations/mexico payroll_localizations/united_arab_emirates payroll_localizations/united_states payroll_localizations/employment_hero diff --git a/content/applications/hr/payroll/payroll_localizations/mexico.rst b/content/applications/hr/payroll/payroll_localizations/mexico.rst new file mode 100644 index 0000000000..6808ac65b2 --- /dev/null +++ b/content/applications/hr/payroll/payroll_localizations/mexico.rst @@ -0,0 +1,545 @@ +====== +Mexico +====== + +.. |PAC| replace:: :abbr:`PAC (Proveedor Autorizado de Certificación / Authorized Certification + Provider)` +.. |RFC| replace:: :abbr:`RFC (Registro Federal de Contribuyentes)` +.. |CFDI| replace:: :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` +.. |IMSS| replace:: :abbr:`IMSS (Instituto Mexicano del Seguro Social)` + +The Mexico payroll localization covers salary computations for employees, including employee and +employer payroll taxes. + +Before configuring the Mexico localization, review the general :doc:`payroll documentation +<../../payroll>`, which covers basic configurations and settings applicable to all localizations. + +.. _payroll/mexico_apps: + +Apps & modules +============== + +:ref:`Install ` the following modules to get all the features of the Mexico payroll +localization: + +.. list-table:: + :header-rows: 1 + + * - Name + - Technical name + - Dependencies + - Description + * - :guilabel:`Mexico - Payroll` + - `l10n_mx_hr_payroll` + - - hr_payroll + - hr_work_entry_holidays + - hr_payroll_holidays + - Adds the required fields to manage employee payroll and time off data. + * - :guilabel:`Mexico - Payroll CFDI` + - `l10n_mx_hr_payroll_account_edi` + - - l10n_mx_hr_payroll_account + - l10n_mx_edi + - Adds the ability to sign |CFDI| payroll documents with the government. + * - :guilabel:`Mexico - Payroll with Accounting` + - `l10n_mx_hr_payroll_account` + - - hr_payroll_account + - l10n_mx + - l10n_mx_hr_payroll + - l10n_mx_edi + - Adds the required rules and parameters to manage local payroll calculations. + +.. tip:: + Installing the :guilabel:`Mexico - Payroll CFDI` module automatically installs both the + :guilabel:`Mexico - Payroll` and :guilabel:`Mexico - Payroll with Accounting` modules. + +.. seealso:: + :doc:`Configure the Mexico fiscal localization <../../../finance/fiscal_localizations/mexico>` + +Company configurations +====================== + +First, the company must be configured. Navigate to :menuselection:`Settings app --> Users & +Companies --> Companies`. From the list, select the desired company, and configure the following +fields: + +- :guilabel:`Company Name`: Enter the business name in this field. +- :guilabel:`Address`: Complete the full address, including the :guilabel:`City`, :guilabel:`State`, + :guilabel:`Zip Code`, and :guilabel:`Country`. + + .. important:: + The state selected in the company's address is associated as the *work address* by default for + the employee, and the one used to calculate payroll taxes. + +- :guilabel:`RFC`: Enter the company's :abbr:`RFC (Registro Federal de Contribuyentes, or Federal + Taxpayer Registry)` number. +- :guilabel:`Company ID` : This field is not used in the Mexico localization, and should remain + blank. +- :guilabel:`Currency`: By default, :abbr:`MXN (Mexican pesos)` is selected. If not, select + :guilabel:`MXN` from the drop-down menu. +- :guilabel:`Phone`: Enter the company phone number. +- :guilabel:`Email`: Enter the email used for general contact information. + +.. warning:: + Ensure the information is accurate, as it is used when calculating various taxes. + +Employees +========= + +Every employee being paid must have their employee profiles configured for the Mexico payroll +localization. Additional fields are present after configuring the database for Mexico. + +To update an employee form, open the :menuselection:`Employees` app and click on the desired +employee record. On the employee form, configure the required fields in the related tabs. + +Work tab +-------- + +Enter the :guilabel:`Work Address` for the employee in the :guilabel:`Location` section of the +:guilabel:`Work` tab. + +.. important:: + The state selected in this address determines which salary rules Odoo applies when calculating + taxes. + +Personal tab +------------ + +Ensure the employee has a minimum of one :ref:`trusted bank account ` +listed in the :guilabel:`Bank Accounts` field in the :guilabel:`Private Contact` section. + +These accounts are used to pay the employee. Payroll **cannot** be processed for employees without a +*trusted* :ref:`bank account `. If no trusted bank account is set, a +warning appears on the **Payroll** dashboard and an error occurs when attempting to run payroll. + +Ensure the :guilabel:`Legal Name` and :guilabel:`Gender` fields are populated and configured in the +:guilabel:`Personal Information` section. + +Ensure the following fields are properly populated in the :guilabel:`Citizenship` section: + +- :guilabel:`Nationality (Country)`: The employee's country of citizenship. +- :guilabel:`SSN No (Social Security Number)`: A personal 11-digit :abbr:`NSS (Número de Seguridad + Social)` number. +- :guilabel:`RFC (Registro Federal de Contribuyentes)`: A personal 13-digit alphanumeric tax + identification number. +- :guilabel:`CURP (Clave Única de Registro de Población)`: A personal 18-character alphanumeric + code. + +.. image:: mexico/personal.png + :alt: Where all personal information is located on the employee profile. + +Payroll tab +----------- + +Contract overview section +~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section holds information that drives salary calculations. Ensure the following fields are +configured: + +- :guilabel:`Contract`: The time period the contract is valid for. If the second field is left + blank, the contract runs indefinitely. +- :guilabel:`Wage Type`: Select how the employee is paid. + + - Select :guilabel:`Fixed Wage` for salaried employees who receive the same amount each pay + period. + - Select :guilabel:`Hourly Wage` for employees paid based on hours worked. + + .. tip:: + Set a default :guilabel:`Wage Type` in the salary :ref:`Structure Type + ` to configure employees in bulk. If needed, the default can be + overridden on individual employee records if exceptions are needed. + +- :guilabel:`Wage`: Enter the amount and frequency the employee is paid. +- :guilabel:`Contract Type`: Determines how the employee is paid and classified, such as + :guilabel:`Indefinite Term Employment Contract`, :guilabel:`Hourly Wage Employment`, + :guilabel:`Seasonal Employment Contract`. + + .. important:: + The :guilabel:`Contract Type` field is visible on payslips. + +- :guilabel:`Pay Category`: Select :guilabel:`Mexico: Employee.` for this field. This defines when + the employee is paid, their default working schedule, and the work entry type it applies to. +- :guilabel:`Regime Type`: Select the correct regime type (Régimen de Contratación) for the + employee. The selected regime type determines the employee's benefits, taxes, and social security + contributions. + +Schedule section +~~~~~~~~~~~~~~~~ + +- :guilabel:`Work Entry Source`: Select :guilabel:`Working Schedule`, which creates :doc:`work + entries <../work_entries>` based on the employee's assigned :ref:`working schedule + ` (e.g., 40 hours per week). + + .. note:: + The Mexico payroll localization is currently not able to create work entries from the + **Attendances** or **Planning** apps. + +- :guilabel:`Extra Hours`: Tick the checkbox to allow the **Attendances** app to add any extra work + entries logged by the employee. +- :guilabel:`Working Hours`: Using the drop-down menu, select the default work schedule. This is + particularly important for employees available to receive overtime pay (typically hourly + employees, not salaried). + +Options section +~~~~~~~~~~~~~~~ + +Enter the :guilabel:`Holiday Bonus Rate` percentage given annually ot the employee in the +corresponding field. The percentage is calculated from the employee's base salary. + +If the employee is contributing to a :guilabel:`Savings Fund`, enter the monthly amount to be +contributed. The employer typically matches this amount, and the money is placed in a savings +account that is accessible once a year to the employee. + +Vouchers section +~~~~~~~~~~~~~~~~ + +Some companies may offer extra benefits in the form of vouchers, which are paid to employees for +food and transportation costs. If the company provides these benefits, configure the following +fields: + +- :guilabel:`Payment Period`: Using the drop-down menu, select how often the vouchers are paid out. + The default options are either :guilabel:`Last Day of the Month`, if employees are paid at the end + of the month, or :guilabel:`In the period`, if the vouchers are broken up and evenly distributed + according to the payment schedule, such as weekly or bi-weekly. +- :guilabel:`Meal Vouchers`: Enter the monthly amount paid to the employee towards food expenses. +- :guilabel:`Transport Vouchers`: Enter the monthly amount paid to the employee towards + transportation, such as bus fare or parking fees. +- :guilabel:`Gasoline Vouchers`: Enter the monthly amount paid to the employee for their vehicle's + gas. + +.. note:: + The monetary amount for the vouchers is the *monthly amount* given to employees. If the + :guilabel:`Payment Period` is set to :guilabel:`In the period`, Odoo calculates the voucher + amount for each pay period. + + For example, if an employee is paid weekly, and their :guilabel:`Meal Voucher` is set to $100, + the employee receives $25 in every weekly paycheck. + +.. image:: mexico/payroll-tab.png + :alt: The payroll tab of an employee form, filled out for Mexico. + +Infonavit / Fonacot tab +----------------------- + +Infonavit section +~~~~~~~~~~~~~~~~~ + +:abbr:`INFONAVIT (Instituto del Fondo Nacional de la Vivienda para los Trabajadores)` is a +government institution that assists employees with affordable mortgage credits, which can be used to +buy, build, or remodel a home, or pay off an existing mortgage. + +Add an Infonavit credit +*********************** + +To create an :abbr:`INFONAVIT (Instituto del Fondo Nacional de la Vivienda para los Trabajadores)` +credit, click :guilabel:`Add a line`, and a :guilabel:`Create an Infonavit Credit` pop-up window +loads. + +By default, the :guilabel:`Status` field is populated with :guilabel:`In Progress`. This indicates +the credit is active. + +Next, select the :guilabel:`Type` of credit, either a :guilabel:`Fixed Monetary Fee`, a +:guilabel:`Percentage`, or a :guilabel:`Discount Factor`. After this field is configured, a +corresponding field appears on the form. + +Enter the :guilabel:`Monthly Insurance` to be paid directly to the debt. If any additional funds are +contributed by the employee, enter the additional amount in the :guilabel:`Extra Fixed Monthly +Contribution` field. + +The last field corresponds to the :guilabel:`Type` selected. Enter the :guilabel:`Fixed Monetary +Fee`, :guilabel:`Percentage`, or :guilabel:`Discount Factor` in the field. + +Once all fields are configured, click the :guilabel:`Save & Close` button, and the credit is added +to the :abbr:`INFONAVIT (Instituto del Fondo Nacional de la Vivienda para los Trabajadores)` +section. + +.. image:: mexico/infonavit.png + :alt: The INFONAVIT section filled out for an employee. + +.. important:: + Once :abbr:`INFONAVIT (Instituto del Fondo Nacional de la Vivienda para los Trabajadores)` + credits are fully paid, the payroll officer **must** change the :guilabel:`Status` of each + completed line item to :guilabel:`Closed`. + + If the payroll officer does **not** change the status, money will continue to be contributed to + the employee's account in all subsequent paychecks. + +Fonacot section +~~~~~~~~~~~~~~~ + +:abbr:`FONACOT (Fondo Nacional para el Consumo de los Trabajadores)` is a Mexican government program +that provides employees with low-cost loans for various needs, such as home improvements, education, +or emergencies. + +The :abbr:`FONACOT (Fondo Nacional para el Consumo de los Trabajadores)` section is where employee +repayments are configured. + +Add a Fonacot credit +******************** + +To add a line to the :abbr:`FONACOT (Fondo Nacional para el Consumo de los Trabajadores)` section, +click :guilabel:`Add a line`, and a blank line loads. The :guilabel:`Status` is set to :guilabel:`In +Progress`, by default. + +Enter the monthly payment amount in the :guilabel:`Import` field. If the employee wishes to make any +additional payments each month, enter the value in the :guilabel:`Extra Monthly Contribution` field. + +.. important:: + Once :abbr:`FONACOT (Fondo Nacional para el Consumo de los Trabajadores)` loans are paid off, the + payroll officer **must** change the :guilabel:`Status` of each completed line item to + :guilabel:`Closed`. + + If the payroll officer does **not** change the status, money will continue to be taken out of the + employee's account in all subsequent paychecks. + +Payroll configuration +===================== + +Several sections within the **Payroll** app installs a *salary structure*, *structure type*, +*rules*, and *rule parameters* specific to Mexico. + +Prior to running payroll, the :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` must also be +configured. + +CFDI configuration +------------------ + +The :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` is a **required** electronic tax receipt +that acts as a digital invoice. The :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` **must** +be certified by a :abbr:`PAC (Authorized Certification Provider)` *before* being submitted to the +Mexican Tax Administration (:abbr:`SAT (Servicio de Administración Tributaria)`). + +This document serves as proof of income, expenses, and payroll, and requires both a :abbr:`UUID +(Universally Unique Identifier)` and a digital signature, to comply with Mexican tax laws. + +First, navigate to :menuselection:`Payroll app --> Configuration --> Settings`, and scroll to the +:guilabel:`CFDI` section. + +Enter the :guilabel:`Employer IMSS ID` in the corresponding field, and select the appropriate +:guilabel:`Risk Type` using the drop-down menu. If no risk is associated with the company, select +:guilabel:`Does Not Apply`. + +.. note:: + Mexico assigns different :guilabel:`Risk Types` based on several factors, including information + cross-referenced from previously submitted employee and employer. Consult the company's payroll + officer to determine the correct risk type. + +Salary structures & structure types +----------------------------------- + +When the **l10n_mx_hr_payroll** module is :ref:`installed `, a new +:guilabel:`Salary Structure` gets installed, :guilabel:`Mexico: Employee`. This structure includes +two :guilabel:`Structure Types`, a :guilabel:`Mexico: Regular Pay`, and a :guilabel:`Mexico: +Christmas Bonus`. + +The :guilabel:`Salary Structure` contains all the individual :ref:`salary rules +` for each :guilabel:`Structure Type`, which informs the **Payroll** app how +to calculate employee payslips. + +.. image:: mexico/structure-types.png + :alt: The Mexico salary structures in the salary structures list. + +.. _payroll/mexico_rules: + +Salary rules +------------ + +To view the salary rules that inform the salary structure what to do, navigate to +:menuselection:`Payroll app --> Configuration --> Structures` and expand the :guilabel:`Mexico: +Employee` group to reveal the two available structure types. Click :guilabel:`Mexico: Regular Pay` +to view the detailed regular pay salary rules. + +.. image:: mexico/mx-rules-top-half.png + :alt: The top portion of the US salary rules. + +Each rule defines how pay is calculated, taking into account factors such as bonuses, allowances, +vouchers, and taxes. + +Rule parameters +--------------- + +Some calculations require specific rates associated with them, such as bonuses and holidays. *Rule +Parameters* are capable of listing a value, either a percentage or a fixed amount, to reference in +the salary rules. + +Most rules pull information stored in the parameters module to get the rate of the rule (a +percentage) and the cap (a dollar amount). + +To view rule parameters, navigate to :menuselection:`Payroll app --> Configuration --> Rule +Parameters`. Here, all rule parameters are displayed with their linked :guilabel:`Salary Rules`, +which can be accessed. Review the parameters associated with a rule by looking for the +:guilabel:`Name` of the rule, and make any edits as needed. + +In Mexico, all companies are **required** to configure the following rule parameters: + +- :guilabel:`Mexico: Risk Bonus Rate` (Prima de Riesgo del IMSS): The :guilabel:`Risk Bonus Rate` is + referred to as the *Occupational Risk Premium (Prima de Riesgo de Trabajo)*. This is the amount + the company must contribution to the :abbr:`IMSS (Instituto Mexicano del Seguro Social)`, aka the + *Mexican Social Security Institute*. This amount is based on the company's *accident rate*, which + is calculated using multiple factors, including the number of accidents the company has reported, + and the general level of risk the type of company works with. The rate is determined by the + :abbr:`IMSS (Instituto Mexicano del Seguro Social)` for each company, therefore this rate **must** + be updated when configuring the Mexico payroll localization. +- :guilabel:`Mexico: Christmas Bonus` (Días de Aguinaldo): In Mexico, an annual Christmas bonus is + given to all employees. The bonus must be for a minimum of 15 days of pay. Companies that provide + a higher bonus **must** modify this value. In Odoo, all employees of a company recieve the same + amout of paid days for their Chirstmas bonus. +- :guilabel:`Mexico: Holiday Table` (Tabla de vacaciones): This rule outlines the number of vacation + days an employee is allocated, based on their years of service. This **must** be modified, if + needed, to reflect the company's paid vacation policy. + +.. example:: + The :guilabel:`Mexico: Risk Bonus Rate` of a company is different from the one added by default + in Odoo. To update this, navigate to :menuselection:`Payroll app --> Configuration --> Rule + Parameters`, then, filter the results by :guilabel:`Mexico: Risk Bonus Rate`, and edit the + :guilabel:`Parameter Value`. + +.. important:: + Odoo adds updated rule parameters for the current calendar year. It is **not** recommended to + edit rule parameters (other than the four that must be reviewed and updated, listed above) + **unless a national or state parameter has changed**, and is different from the rule parameters + created by Odoo. Check with all local and national regulations *before* making any changes to + rule parameters. + +.. _payroll/run_mexico: + +Run Mexico payroll +================== + +Before running payroll, the payroll officer must validate employee :doc:`work entries +<../work_entries>` to confirm pay accuracy and catch errors. This includes checking that all time +off is approved and any overtime is appropriate. + +Work entries sync based on the employee's :doc:`contract <../contracts>` configuration. Odoo pulls +from the assigned working schedule, attendance records, planning schedule, and approved time off. + +Any :ref:`discrepencies or conflicts ` must be resolved, then the work entries +can be :ref:`regenerated `. + +Once everything is correct, draft payslips can be :ref:`created individually ` or +in :doc:`batches <../batches>`, referred to in the **Payroll** app as *Pay Runs*. + +.. image:: mexico/mexico-work-entries.png + :alt: The work entries for a pay run, with some time off entered in the work entries. + +.. note:: + To cut down on the payroll officer's time, it is typical to process payslips in batches, either + by wage type (fixed salary vs hourly), pay schedule (weekly, bi-weekly, monthly, etc.), + department (direct cost vs. administration), or any other grouping that best suits the company. + +The process of running payroll includes different actions that need to be executed to ensure that +the amount withheld for funds and government institutions is correct, the amount that the employee +receives as their net salary is correct, and the computation of hours worked reflects the employee's +actual hours worked, among others. + +When running a payroll batch, check that the period, company, and employees included are correct +*before* starting to analyze or validate the data. + +Once the payslips are drafted, review them for accuracy. Check the :guilabel:`Worked Days` and +:guilabel:`Salary Inputs` tabs, and ensure the listed worked time is correct, as well as any other +inputs. Add any missing inputs, such as commissions, bonuses, and :abbr:`ISR (Impuesto Sobre la +Renta)` adjustments that are missing. + +Next, check the various totals (gross pay, vouchers, IMSS contributions, :abbr:`CEAV (Cesantía en +Edad Avanzada y Vejez)`, taxes, and gross pay), then click :guilabel:`Compute Sheet` to update the +salary calculations, if there were edits. If everything is correct, click :guilabel:`Validate`. + +.. image:: mexico/check-payslips.png + :alt: The worked days tab of a payslip. + +Accounting check +---------------- + +The accounting process when running payroll has two components: :ref:`creating journal entries +`, and :ref:`registering payments `. + +.. _payroll/journal-mx: + +Journal entry creation +~~~~~~~~~~~~~~~~~~~~~~ + +After payslips are confirmed and validated, journal entries are posted either individually, or in a +batch. The journal entry is created first as a draft. + +.. important:: + It must be decided if journal entries are done individually or in batches *before* running + payroll. + +.. image:: mexico/create-draft-entry.png + :alt: All payslips in a draft state. + +Twenty-two accounts from the Mexico :abbr:`CoA (Chart of Accounts)` are included with the payroll +localization: + +- :guilabel:`110.01.01 Employment subsidy to apply` +- :guilabel:`210.02.01 Provision for vacation to pay` +- :guilabel:`211.01.01 Provision for employer IMSS to pay` +- :guilabel:`211.02.01 Provision for SAR to pay` +- :guilabel:`216.01.01 Withholding or income tax for wages and salaries` +- :guilabel:`216.11.01 IMSS withholding tax` +- :guilabel:`601.01.01 Wages and salaries` +- :guilabel:`601.07.01 Holiday Bonus` +- :guilabel:`601.15.01 Pantry` +- :guilabel:`601.19.01 Savings fund` +- :guilabel:`601.26.01 IMSS quota` +- :guilabel:`601.27.01 Contributions to infonavit` +- :guilabel:`601.28.01 Contributions to the SAR` +- :guilabel:`201.01.02 Employee Reimbursement` +- :guilabel:`205.06.02 Other Various Short-Term Credits (Fonacot)` +- :guilabel:`210.03.01 Provision for bonus to pay` +- :guilabel:`210.04.01 Provision for savings fund to pay` +- :guilabel:`211.03.01 Provision for infonavit to pay` +- :guilabel:`601.12.01 Bonus` +- :guilabel:`601.16.02 Transport (gasoline vouchers)` +- :guilabel:`601.16.01 Transport (support)` +- :guilabel:`601.74.01 Commissions on sales` + +.. note:: + The :abbr:`CoA (Chart of Accounts)` configuration is done by default when a company is located in + Mexico. The account codes and names can be edited to suit the company's needs. If there is no + :abbr:`CoA (Chart of Accounts)` account associated with a salary rule (used in a salary + structure), Odoo uses the account `Salary Expenses` to create the journal entry, regardless of + the nature of the move. + +If everything seems correct on the journal entry draft, post the journal entries. + +.. image:: mexico/post-entries.png + :alt: Journal entries posted. + +.. _payroll/register-mx: + +Register Payments +----------------- + +After the :ref:`journal entries ` are validated, Odoo can generate payments. + +.. important:: + To generate payments from payslips,employee's **must** have a *trusted* bank account. If the + employee's bank account is *not* marked as `trusted`, CFDI files **cannot** be generated through + Odoo. + +.. image:: mexico/paid.png + :alt: Payslips with a status of paid. + +Generate CFDI XML files +----------------------- + +After payslips have bee processed and paid, a :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` +XML file must be generated, which is then electronically submitted to Mexico's :abbr:`SAT (Servicio +de Administración Tributaria)`. + +To create the :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` file, open the individual +payslip, and click the :guilabel:`Generate CFDI` button. + +Once the file has been created and sent, a record is stored in the chatter. + +Close Payroll +------------- + +If there are no errors, payroll is completed for the pay period. + +Run Christmas bonus payroll +=========================== + +To run the annual Christmas bonus, follow the same workflow for :ref:`regular Mexico payroll +`, using the :guilabel:`Mexico: Christmas Bonus` salary structure. diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/check-payslips.png b/content/applications/hr/payroll/payroll_localizations/mexico/check-payslips.png new file mode 100644 index 0000000000000000000000000000000000000000..c106abb3e0adf799a85506d74767616f26964d93 GIT binary patch literal 14984 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/holiday-rules.png b/content/applications/hr/payroll/payroll_localizations/mexico/holiday-rules.png new file mode 100644 index 0000000000000000000000000000000000000000..729052d49e1796dc071c8807f1291aa87125bb78 GIT binary patch literal 12055 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/infonavit.png b/content/applications/hr/payroll/payroll_localizations/mexico/infonavit.png new file mode 100644 index 0000000000000000000000000000000000000000..4cdcf9cf7d07bb4287b5a4cedf9afb22c0cc6b2b GIT binary patch literal 14637 zcmch;bx<5I7cUB>r9g{2MT!=8Dekt5F7963-CK&wVvD;h?(S0D-L1I0Eq?ob_pf_r z?wkAGAMZ>i$vMg7BfBCJx%Gy5x zoRXZX$LHIvp4Zn4F=3U~uKt(nk^XeA z?+T%?+l%{?adpeIyW=%s44(D&l(D}T8?9mL>be1m!`eT5Ts(pfpI#gCuuT*j@}j5A4V>by$YIM5Njh1-MGE6cD<;n zf%9i$mju|`n=CU`VEak5kzS#n)h`Vr213KChQ7XoN2~ARBdLZ~9`z3|uLEF1Iy9#1 z^#-73_TjdR|tTuo1}Apj_LEZmltsG2+pO4q+gAPf2$i0&gz(K>Y;w`kss016AW?BN(GC1eU6Mf-dhc< z$XYsBpUBA6S-O~69?%-z4%)nqP{=5ah*L^V>R4S%>ny{`sCKRxIo~@z3u5YmgZm06 zDJ77Ys-?pN+sUJo2Lmri_s#Ljvs(C1mwThGK164Q!YYqYmXPy{; z8zDCniZ%+BuEh6@ROTYLnOVq423Id+f6TT#VongzOT?>5?v0V;)(Am*hykhVe zi%Ukm$}3L*Sh6;-*H3lsamT#6J2K_oNK0A5y`AFH`N8GlD2LN#)Yh~6FE9S2m4r|L zFrlF!3A+Ev|1a6YFNHX7?yR{tbC@VJFJg4IA%vs)#()Lubx(U9WMP`LteYu z=UELC15Vf16}#E0cyF}5g<8PyW3KUxw%r0qGVi`SK-_!>2%uBeAM|p3+?*Uw;_fC{ zO7hKBz0z{N)+*OM)Bs3xoE2E}YhJV1$|ABS(0Ly@_UYx(b~fB@CrR1FDj*#`ocPEC zE{{9y?Z85gK5YC_5vvT))#aPLy#_llKEFqe_IUzm?E2Y$LR|0EuJtOxx_#TzFTuFV z>TIH@l5&${*IHYzoXQmczE`lgJT&#=erJ-g z}w`pz9^K5qIH4HCV=EzcWIq001kygtQF#~0cUXZtm<{{U#KBlv@- zM9=TR=xmeS#DsOv0wt6-=|2iqKzR`@w!T<#7JsTjA89Z3io4%(@!rU5zxh65sH8MW zlSQkCKSy?k01cs!Du^W}nfM5BemoJ0MK4-B9F*}DQq|xkD(mHm6jPm$u6%;3 zh0y09Vn==Jg{h*M5vdzbvjQL@O*vm?zXt}C5q~k;+V7&)6tzsIlsd_nh74mZ!d)^E zWF~Bf8X3LwBiM!QxqaDSK zHG&lz2$3UpVGY#>nB>hHvC0g25;YZUGlqly{B39nDJ4LO=;4FGFBrPo`$Ur?Iq8%u zX>Ck6={%I(f*w_^HqJ=b)oiP^%^ee)_|}7@mc)5jO9Em=$ynWF4`Xc*O@?j9LJ(6M zVkV46mp=eD$r)K7^l#6cSb4`^;D?+QWmQl{q+F?K4-vT33xCt@931dN7Wm)T6x{XR zi4)+?s}7gXu%Z68i9DX)RB?4-oKB^o{Rl+aHWuK`%UAiy4&9nD4jb_e#X` zRJXCwCdAU$gVey-Nj#v@4wbncz`wO8bvVPW@bn#2&rayDJaJwX&uhJS+olTbmJ`a3 zV0NthNv&FY7;k2=>lZPv^gd5x+h*Dp5|$U#;xscr5s*`XY&^%<(ot+2(L#sKP+qJv zTaW0p*S#<4UKF6qmI;E>!tEvs+VL{<8yqi5#z^stUznFSi|bGd2aeb|nj(II~b z-qm9mvV#igiMQAp7ZWWnmCy^QMF3U-*cu@F%vJjm0UZ(HB+`;{L&6J z>6is+`J9XE-yS-EmZ#w}IAm)q0gZ6bxPGj-L4GoSXNb;^Cnmwb_5mVhzZGTsM_N3%5T2JU{C649V|eZgDyb zs({pCusce&)mms-q#yP_PX4_ka!!l zGOx-?NC{%F9TLJI+#r#_JZ-P_++%5BG>2?o6BsN%XiTeCS6DIbv^yi+≤a{i)!M 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/mexico-work-entries.png b/content/applications/hr/payroll/payroll_localizations/mexico/mexico-work-entries.png new file mode 100644 index 0000000000000000000000000000000000000000..006b27b9e75f20e6af3189234aa4d1dda37f9911 GIT binary patch literal 22270 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/mx-rules-top-half.png b/content/applications/hr/payroll/payroll_localizations/mexico/mx-rules-top-half.png new file mode 100644 index 0000000000000000000000000000000000000000..b835bd1883d8f156bf2b9d49efb4455623998293 GIT binary patch literal 18736 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 z ze1np}hIlJw-q6<&CGk{88Id3C8Jn1H$iTBOI6axE`0kawKB^l_s-C$%VbbA}6wM0Yn;VkCqX=QqWQ?><52;Ti%};($>S04=&J>nt zXW4~se9U!?Z|qOsIGCNwdzF%ZA?)+&q>Y}vkBbCy3-SS-f!L@f48urwmo;i#xm8YC z2m07@pvy<$mL#U8rXO$@@Vp6HR~_{mmypU%eL4aGGX1&$D-*8R)Xzu^%wjBEU}E0Y zGLh4Tv()XnkgfAc$krxngO_LbSeM=%Fk|_}N-;m4j7`RpRK8P%0D~Ch= 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/paid.png b/content/applications/hr/payroll/payroll_localizations/mexico/paid.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c068952b66e38ddcea9a2cd8633c8bb14a8bb0 GIT binary patch literal 14787 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 H!+`$*Wsj$7 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/payroll-tab.png b/content/applications/hr/payroll/payroll_localizations/mexico/payroll-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..bb266e4c03b57e891749287045b95085a4f99376 GIT binary patch literal 42171 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 bM@%5{0q_kcw!}&PfAv(5QI;;3G!Fh>YLa2m literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/personal.png b/content/applications/hr/payroll/payroll_localizations/mexico/personal.png new file mode 100644 index 0000000000000000000000000000000000000000..c0ccc44afa27a08898d2e8fa44f3ae20af393445 GIT binary patch literal 32547 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/post-entries.png b/content/applications/hr/payroll/payroll_localizations/mexico/post-entries.png new file mode 100644 index 0000000000000000000000000000000000000000..dd400ee9d96b0aad08cf3eac7d6688c638819dd1 GIT binary patch literal 12995 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 literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payroll_localizations/mexico/structure-types.png b/content/applications/hr/payroll/payroll_localizations/mexico/structure-types.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1bea3a1c5bff4916bb171d4aa82c8e6d4ed29b GIT binary patch literal 15597 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 literal 0 HcmV?d00001 From 5458e22dd69ca7fc26badc8ae9f8d8f34f64a1e1 Mon Sep 17 00:00:00 2001 From: "Audrey (auva)" Date: Fri, 1 Aug 2025 15:02:52 +0000 Subject: [PATCH 51/52] [IMP] payment_providers/razorpay: connect button task-4922616 closes odoo/documentation#14814 X-original-commit: 5b1f9db6391e26c66e8954f83460afe8a5b19b1c Signed-off-by: Audrey Vandromme (auva) --- .../finance/payment_providers/razorpay.rst | 90 +++++++++++++------ 1 file changed, 61 insertions(+), 29 deletions(-) diff --git a/content/applications/finance/payment_providers/razorpay.rst b/content/applications/finance/payment_providers/razorpay.rst index dc3e055635..db12717620 100644 --- a/content/applications/finance/payment_providers/razorpay.rst +++ b/content/applications/finance/payment_providers/razorpay.rst @@ -2,53 +2,85 @@ Razorpay ======== -`Razorpay `_ is an online payments provider established in India and -covering more than 100 payment methods. +`Razorpay `_ is an online payments provider established in India that +supports more than 100 payment methods. + +.. _payment_providers/razorpay/oauth-connection: + +Create a Razorpay account with Odoo (Indian companies only) +=========================================================== + +.. note:: + - This method is only available for Indian companies. + - This flow does not support the :ref:`test mode `. + +#. :ref:`Navigate to the Razorpay payment provider ` and + click :guilabel:`Connect`. +#. Go through the account creation process and enter the verification codes when prompted. + + .. tip:: + If you already have a Razorpay account, enter your Razorpay credentials, select the account + you want to link to your Odoo database (if applicable), then click :guilabel:`Continue`. + +#. At the end of the process, click :guilabel:`Authorize`. If all required information + has been submitted, you are then redirected to Odoo, and the payment provider is + :guilabel:`Enabled`. + +.. _payment_providers/razorpay/manual-connection: + +Manual credentials and webhook input +==================================== .. _payment_providers/razorpay/configure_dashboard: -Configuration on Razorpay Dashboard -=================================== +Razorpay configuration +---------------------- -#. Log into `Razorpay Dashboard `_ and go to - :menuselection:`Settings --> API Keys`. Generate the new keys and copy the values of the - :guilabel:`Key Id` and :guilabel:`Secret Key` fields and save them for later. -#. | Go to :menuselection:`Settings --> Webhooks`, click on :guilabel:`Create New Webhook`, - and enter your Odoo database URL followed by `/payment/razorpay/webhook` in - the :guilabel:`Webhook URL` text field. +#. `Create a Razorpay account `_ if necessary and log into the + `Razorpay Dashboard `_. +#. Go to the :guilabel:`Payments` tab at the top of the page. +#. Toggle the :guilabel:`Test Mode` switch in the left menu to try the integration without + charging customers. Toggle it off once you are ready to accept real payments. +#. Click :guilabel:`Account & Settings` in the left menu, then, under :guilabel:`Website and app + settings`, select `API Keys `_. +#. Copy the values of the :guilabel:`Key Id` and :guilabel:`Secret Key` fields and save them for + later. +#. Click :guilabel:`Account & Settings` in the left menu, then, under :guilabel:`Website and app + settings`, select `Webhooks `_. +#. | Click :guilabel:`Add New Webhook`, then enter your Odoo database URL followed by + `/payment/razorpay/webhook` in the :guilabel:`Webhook URL` field. | For example: `https://example.odoo.com/payment/razorpay/webhook`. #. Fill the :guilabel:`Secret` field with a password of your choice and save it for later. -#. Make sure the :guilabel:`payment.authorized`, :guilabel:`payment.captured`, - :guilabel:`payment.failed`, :guilabel:`refund.failed` and :guilabel:`refund.processed` - checkboxes are ticked. -#. Click on :guilabel:`Create Webhook` to finalize the configuration. +#. Enable the following events: :guilabel:`payment.authorized`, :guilabel:`payment.captured`, + :guilabel:`payment.failed`, :guilabel:`refund.failed`, and :guilabel:`refund.processed`. +#. Click :guilabel:`Create Webhook` to finalize the configuration. .. _payment_providers/razorpay/recurring_payments: .. important:: - The :guilabel:`Recurring payments` feature must - be activated if you want to make recurring payments. - Send a request to the `Razorpay Support team `_ to - enable recurring payments. + The `Recurring payments `_ feature must + be activated to accept recurring payments. To enable this feature, submit a request to the + `Razorpay Support team `_. .. _payment_providers/razorpay/configure_odoo: -Configuration on Odoo -===================== +Odoo configuration +------------------ -#. :ref:`Navigate to the payment provider Razorpay ` and change its - state to :guilabel:`Enabled`. +#. Activate :ref:`developer mode `. +#. :ref:`Navigate to the Razorpay payment provider `. #. In the :guilabel:`Credentials` tab, fill the :guilabel:`Key Id`, :guilabel:`Key Secret`, and - :guilabel:`Webhook Secret` with the values you saved at the step + :guilabel:`Webhook Secret` with the values you saved during :ref:`payment_providers/razorpay/configure_dashboard`. -#. Configure the rest of the options to your liking. +#. Configure the remaining options as needed. +#. Set the :guilabel:`State` field to :guilabel:`Enabled` (or :guilabel:`Test Mode` if you are + trying Razorpay as a :ref:`test `). .. important:: - If you configure Odoo to capture amounts manually: + If you configure Odoo to :ref:`capture amounts manually `: - - Be aware that the **manual voiding** of a transaction is not supported by Razorpay. - - After **five days**, if the transaction hasn't been captured yet, it'll automatically be - **voided**. + - **Manual voiding** of a transaction is not supported by Razorpay. + - Transactions that remain uncaptured for more than **five days** are automatically **voided**. .. seealso:: - - :doc:`../payment_providers` + :doc:`../payment_providers` From 074be9ec01222b309de10e3a0b01feab3c513f37 Mon Sep 17 00:00:00 2001 From: Odoo's Mergebot Date: Thu, 9 Oct 2025 12:11:54 +0000 Subject: [PATCH 52/52] force rebuild uniquifier: 3Fx2FqkvwjjSeE8J For-Commit-Id: 5458e22dd69ca7fc26badc8ae9f8d8f34f64a1e1

dw}A$aKW*t$@r8wa|Fx6x5^nWZMD?pGH^b;Jqf^mWFCH?coRsVTUumZ5GmhppodO z(>m)Oow;&m$l|8-gKufP*I9IwT7(@^!4CW>sxV9Uw?6lgX~uq!GbgW^BtoJN2QL(j zi6Wi6JOZ-3pHG`6>2=#GJ139S`gA2y0*gQjTGp`eO%>m|`|n#p7v7;s6gs5Y)9o^v zHZ7=PdWqld>2P(sXOV&5|8N{Q_*<%W>iA3fQyTu16&ua5dAlmMrFP}>SQ9D?FMoQW zKCwSMyc-t&@UrA}_}iL=mTz}sT{VrbiBaYM8%wtp;3&kaC*W#OLPr7fLkAqrf*q78 zjrBI0-D^?4dDm$(l`j!P_kGRrY0sQ)d?+rK3ih{4KP8P~RG~o=({5^?*^`uF{)9r8 z&-1TsQArx6=q2|SA+aB9ZmKzT-_yn!-lWx{0f(Zdu08)v7L=MTq;A?cSN&mh=i&YN z1(9d*PZO-cz8!6A4YDK$X}_Nxmmr0On5(luf5WcIS()!A3vvuSo9yc^@S&~GC8m>V zE1mKzR$DAd-XH2qC!m82uj`tEFJx|x12!U-#_9Xvv_4p=%)#mB%9s$kV`dz=l@^P% zq>qK=;p;R}ju{LnSI_J6b@NXfcobmIc3O5Fhb28neTbddBn$UNBN*SI#dvd;!h|1s zTv{rBhb=DI$c-B=emS0i&)zR|mBy!TwjHUd8Vpg?U(}VD<#O29Y@7}(0|Lmhz0W^D zQydVj;y#{4PW>a0)V8i_1t*0rtM@UH;YVrXwEB8ns8&ZgeI)N8Sgv(jdm!Aw-o#{S z|A!Ra=3J&*`DXxaZ8N6^v*s!bQnWu9h^o%+&I_t%A?fA#FOv(8`=?J4)ezH?`oe=~py0j+?U{62N&blU$!Bb^ zJj>eh`6d~)sGvUjg*(T;2{vFrcz%0N+>K77N;TW$U~{^+G%tg`V@kU7mHnzghg4Kj~Q^Y&9s``Te0ZUC;=Wfpmr8OnL= zX;{6}>-@6Jc3;17)~;s&A?=Bd%Tks%)qLscW)>fz!kN7PW+bG(4AX>(AN)4>lzpsh+<$&6Q+p$Mnei4QT%jLnw;7u z7X5^zyh{M)%>Y_xRl%1~%0%kz&c)rJu5iBE1|_6f@%!U_g()6*k%ySP!u`_1?$3+; zA+ClkcAF;*BD23rUB4t6w>LM&Ar4tD|55&RTLw3aw|?F62MA;+{L4+?V>2J1`x55v zAj?gL@^2Of>D6EqQS^R25zOx_^l^`t5#*J=go4W#5X2H4pmEiA@t%3z;%dLsglf@p zyWU}r{g3gXud7AN5h@�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 bO56Vrl`=BZsZ73k00000NkvXXu0mjf<$m7t diff --git a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/new-lot-number.png b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/new-lot-number.png index 08c88d4ae123dde43eb16982ff0b3cd6ef266c7b..e6374ce8816b7d5fb73fa7a83ee20076f1a72b64 100644 GIT binary patch literal 9473 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 T>O5EfM?+3ZS+Y*tB;@}9sJ?j`fox-K||{8 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 diff --git a/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/tracking-product-form.png b/content/applications/inventory_and_mrp/inventory/product_management/product_tracking/lots/tracking-product-form.png index 586dfb84fb63b6de6faa91b99418e122bc88bbce..880e4d35b4df17d587f4aca2031844af964cbb01 100644 GIT binary patch literal 13482 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 bGoWz@Yb@n*Ztug-M;JDW> literal 4486 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%0DF<)|R~0G+F7^whDi^mM1@QHU-Y z{z`Y6r-XN~oAjnv-|>;jYSMyY;s8N>KH;Zf#=&2erR!W*%{5I<&OTheo45!wwM$)Z zc9V_OlIFI2YK0~S2fSLH4j&8{lz`8%D9#UE6(3&a{s1j6EhcQz?|MtAe^F!kPrdq& b=HeYfC9hChqFTiw`^T!OrmI?`ViWN{3hwC; From 1a6794ddab66bab33911093308097494abd2eea8 Mon Sep 17 00:00:00 2001 From: Julien Castiaux Date: Mon, 18 Aug 2025 13:38:39 +0000 Subject: [PATCH 17/52] [IMP] developer/api/external_api: new JSON-2 API closes odoo/documentation#14570 X-original-commit: bd516548e7dc4abea7e432d2630a36a9b8edebae Signed-off-by: Julien Castiaux (juc) --- content/administration/odoo_online.rst | 64 +- content/developer/howtos.rst | 6 - content/developer/howtos/web_services.rst | 148 -- content/developer/reference.rst | 1 + content/developer/reference/external_api.rst | 1810 ++++------------- .../external_api/account-security2.png | Bin 0 -> 25333 bytes .../reference/external_api/new-api-key.png | Bin 0 -> 25424 bytes .../reference/external_api/preferences2.png | Bin 0 -> 14629 bytes .../developer/reference/external_rpc_api.rst | 1467 +++++++++++++ 9 files changed, 1935 insertions(+), 1561 deletions(-) delete mode 100644 content/developer/howtos/web_services.rst create mode 100644 content/developer/reference/external_api/account-security2.png create mode 100644 content/developer/reference/external_api/new-api-key.png create mode 100644 content/developer/reference/external_api/preferences2.png create mode 100644 content/developer/reference/external_rpc_api.rst diff --git a/content/administration/odoo_online.rst b/content/administration/odoo_online.rst index 5d16c073ce..c0a7814b72 100644 --- a/content/administration/odoo_online.rst +++ b/content/administration/odoo_online.rst @@ -160,49 +160,21 @@ Web Services ============ In order to programmatically retrieve the list of the databases displayed in the -`database manager `_, call the method `list` of the model -`odoo.database` via a :doc:`Web Service ` call. - -Inspired from the examples provided in the :doc:`Web Services ` -section, this is how to retrieve this list with the library ``xmlrpc.client``:: - - import xmlrpc.client - - USER = 'user@domain.tld' - APIKEY = 'your_apikey' - - root = 'https://www.odoo.com/xmlrpc/' - uid = xmlrpc.client.ServerProxy(root + 'common').login('openerp', USER, APIKEY) - sock = xmlrpc.client.ServerProxy(root + 'object') - databases_list = sock.execute('openerp', uid, APIKEY, 'odoo.database', 'list') - -And here is the equivalent example with JSON-RPC:: - - import json - import random - import urllib.request - - USER = 'user@domain.tld' - APIKEY = 'your_apikey' - - def json_rpc(url, method, params): - data = { - 'jsonrpc': '2.0', - 'method': method, - 'params': params, - 'id': random.randint(0, 1000000000), - } - req = urllib.request.Request(url=url, data=json.dumps(data).encode(), headers={ - "Content-Type": "application/json", - }) - reply = json.loads(urllib.request.urlopen(req).read().decode('UTF-8')) - if reply.get('error'): - raise Exception(reply['error']) - return reply['result'] - - def call(url, service, method, *args): - return json_rpc(url, 'call', {'service': service, 'method': method, 'args': args}) - - url = 'https://www.odoo.com/jsonrpc' - uid = call(url, 'common', 'login', 'openerp', USER, APIKEY) - databases_list = call(url, 'object', 'execute', 'openerp', uid, APIKEY, 'odoo.database', 'list') +`database manager `_, call the method ``list`` of the model +``odoo.database`` via an :doc:`external JSON-2 API ` call. + +.. example:: + .. code:: python + + import requests + + APIKEY = "your_apikey" + + requests.post( + "https://www.odoo.com/json/2/odoo.database/list", + headers={ + "Authorization": f"bearer {APIKEY}", + "X-Odoo-Database": "openerp", + } + json={}, + ) diff --git a/content/developer/howtos.rst b/content/developer/howtos.rst index f9a14f24e3..eed9af1718 100644 --- a/content/developer/howtos.rst +++ b/content/developer/howtos.rst @@ -14,7 +14,6 @@ How-to guides howtos/frontend_owl_components howtos/website_themes - howtos/web_services howtos/company howtos/create_reports howtos/accounting_localization @@ -69,11 +68,6 @@ Server-side development .. cards:: - .. card:: Web services - :target: howtos/web_services - - Learn more about Odoo's web services. - .. card:: Multi-company guidelines :target: howtos/company diff --git a/content/developer/howtos/web_services.rst b/content/developer/howtos/web_services.rst deleted file mode 100644 index 14f8deae33..0000000000 --- a/content/developer/howtos/web_services.rst +++ /dev/null @@ -1,148 +0,0 @@ -============ -Web Services -============ - -The web-service module offers a common interface for all web services: - -- XML-RPC -- JSON-RPC - -Business objects can also be accessed via the distributed object -mechanism. They can all be modified via the client interface with contextual -views. - -Odoo is accessible through XML-RPC/JSON-RPC interfaces, for which libraries -exist in many languages. - -XML-RPC Library ---------------- - -The following example is a Python 3 program that interacts with an Odoo -server with the library ``xmlrpc.client``:: - - import xmlrpc.client - - root = 'http://%s:%d/xmlrpc/' % (HOST, PORT) - - uid = xmlrpc.client.ServerProxy(root + 'common').login(DB, USER, PASS) - print("Logged in as %s (uid: %d)" % (USER, uid)) - - # Create a new note - sock = xmlrpc.client.ServerProxy(root + 'object') - args = { - 'color' : 8, - 'memo' : 'This is a note', - 'create_uid': uid, - } - note_id = sock.execute(DB, uid, PASS, 'note.note', 'create', args) - -.. exercise:: Add a new service to the client - - Write a Python program able to send XML-RPC requests to a PC running - Odoo (yours, or your instructor's). This program should display all - the sessions, and their corresponding number of seats. It should also - create a new session for one of the courses. - - .. only:: solutions - - .. code-block:: python - - import functools - import xmlrpc.client - HOST = 'localhost' - PORT = 8069 - DB = 'openacademy' - USER = 'admin' - PASS = 'admin' - ROOT = 'http://%s:%d/xmlrpc/' % (HOST,PORT) - - # 1. Login - uid = xmlrpc.client.ServerProxy(ROOT + 'common').login(DB,USER,PASS) - print("Logged in as %s (uid:%d)" % (USER,uid)) - - call = functools.partial( - xmlrpc.client.ServerProxy(ROOT + 'object').execute, - DB, uid, PASS) - - # 2. Read the sessions - sessions = call('openacademy.session','search_read', [], ['name','seats']) - for session in sessions: - print("Session %s (%s seats)" % (session['name'], session['seats'])) - # 3.create a new session - session_id = call('openacademy.session', 'create', { - 'name' : 'My session', - 'course_id' : 2, - }) - - Instead of using a hard-coded course id, the code can look up a course - by name:: - - # 3.create a new session for the "Functional" course - course_id = call('openacademy.course', 'search', [('name','ilike','Functional')])[0] - session_id = call('openacademy.session', 'create', { - 'name' : 'My session', - 'course_id' : course_id, - }) - -.. seealso:: - - :doc:`../reference/external_api`: The in-depth tutorial on XML-RPC, with examples spanning multiple programming languages. - -JSON-RPC Library ----------------- - -The following example is a Python 3 program that interacts with an Odoo server -with the standard Python libraries ``urllib.request`` and ``json``. This -example assumes the **Productivity** app (``note``) is installed:: - - import json - import random - import urllib.request - - HOST = 'localhost' - PORT = 8069 - DB = 'openacademy' - USER = 'admin' - PASS = 'admin' - - def json_rpc(url, method, params): - data = { - "jsonrpc": "2.0", - "method": method, - "params": params, - "id": random.randint(0, 1000000000), - } - req = urllib.request.Request(url=url, data=json.dumps(data).encode(), headers={ - "Content-Type":"application/json", - }) - reply = json.loads(urllib.request.urlopen(req).read().decode('UTF-8')) - if reply.get("error"): - raise Exception(reply["error"]) - return reply["result"] - - def call(url, service, method, *args): - return json_rpc(url, "call", {"service": service, "method": method, "args": args}) - - # log in the given database - url = "http://%s:%s/jsonrpc" % (HOST, PORT) - uid = call(url, "common", "login", DB, USER, PASS) - - # create a new note - args = { - 'color': 8, - 'memo': 'This is another note', - 'create_uid': uid, - } - note_id = call(url, "object", "execute", DB, uid, PASS, 'note.note', 'create', args) - -Examples can be easily adapted from XML-RPC to JSON-RPC. - -.. note:: - - There are a number of high-level APIs in various languages to access Odoo - systems without *explicitly* going through XML-RPC or JSON-RPC, such as: - - * https://github.com/akretion/ooor - * https://github.com/OCA/odoorpc - * https://github.com/nicolas-van/openerp-client-lib - * http://pythonhosted.org/OdooRPC - * https://github.com/abhishek-jaiswal/php-openerp-lib diff --git a/content/developer/reference.rst b/content/developer/reference.rst index af531f28ca..65345865b9 100644 --- a/content/developer/reference.rst +++ b/content/developer/reference.rst @@ -17,4 +17,5 @@ Reference reference/cli reference/upgrades reference/external_api + reference/external_rpc_api reference/extract_api diff --git a/content/developer/reference/external_api.rst b/content/developer/reference/external_api.rst index ba37db0cec..9d520f3bf9 100644 --- a/content/developer/reference/external_api.rst +++ b/content/developer/reference/external_api.rst @@ -1,16 +1,16 @@ -============ -External API -============ +=================== +External JSON-2 API +=================== -Odoo is usually extended internally via modules, but many of its features and -all of its data are also available from the outside for external analysis or -integration with various tools. Part of the :ref:`reference/orm/model` API is -easily available over XML-RPC_ and accessible from a variety of languages. +.. versionadded:: 19.0 -.. important:: - Starting with PHP8, the XML-RPC extension may not be available by default. - Check out the `manual `_ - for the installation steps. +Odoo is usually extended internally via modules, but many of its features and all of its data are +also available externally for analysis or integration with various other softwares. Part of the +:ref:`reference/orm/model` API is easily available over HTTP via the ``/json/2`` endpoint. + +.. tip:: + The actual models, fields and methods available are specific to every database and can be + consulted on their ``/doc`` page. .. note:: Access to data via the external API is only available on *Custom* Odoo pricing plans. Access to @@ -18,1445 +18,533 @@ easily available over XML-RPC_ and accessible from a variety of languages. visit the `Odoo pricing page `_ or reach out to your Customer Success Manager. -.. seealso:: - - :doc:`Tutorial on web services <../howtos/web_services>` - -Connection -========== - -Configuration -------------- - -If you already have an Odoo server installed, you can just use its parameters. - -.. important:: - - For Odoo Online instances (.odoo.com), users are created without a - *local* password (as a person you are logged in via the Odoo Online - authentication system, not by the instance itself). To use XML-RPC on Odoo - Online instances, you will need to set a password on the user account you - want to use: - - * Log in your instance with an administrator account. - * Go to :menuselection:`Settings --> Users & Companies --> Users`. - * Click on the user you want to use for XML-RPC access. - * Click on :guilabel:`Action` and select :guilabel:`Change Password`. - * Set a :guilabel:`New Password` value then click :guilabel:`Change Password`. - - The *server url* is the instance's domain (e.g. - *https://mycompany.odoo.com*), the *database name* is the name of the - instance (e.g. *mycompany*). The *username* is the configured user's login - as shown by the *Change Password* screen. - -.. tabs:: - - .. code-tab:: python - - url = - db = - username = 'admin' - password = - - .. code-tab:: ruby - - url = - db = - username = "admin" - password = - - .. code-tab:: php - - $url = ; - $db = ; - $username = "admin"; - $password = ; - - .. code-tab:: java - - final String url = , - db = , - username = "admin", - password = ; - - .. code-tab:: go - - var ( - url = - db = - username = "admin" - password = - ) - -.. _api/external_api/keys: - -API Keys -~~~~~~~~ - -.. versionadded:: 14.0 - -Odoo has support for **api keys** and (depending on modules or settings) may -**require** these keys to perform webservice operations. - -The way to use API Keys in your scripts is to simply replace your **password** -by the key. The login remains in-use. You should store the API Key as carefully -as the password as they essentially provide the same access to your user -account (although they can not be used to log-in via the interface). - -In order to add a key to your account, simply go to your -:guilabel:`Preferences` (or :guilabel:`My Profile`): - -.. image:: external_api/preferences.png - :align: center - -then open the :guilabel:`Account Security` tab, and click -:guilabel:`New API Key`: - -.. image:: external_api/account-security.png - :align: center - -Input a description for the key, **this description should be as clear and -complete as possible**: it is the only way you will have to identify your keys -later and know whether you should remove them or keep them around. - -Click :guilabel:`Generate Key`, then copy the key provided. **Store this key -carefully**: it is equivalent to your password, and just like your password -the system will not be able to retrieve or show the key again later on. If you lose -this key, you will have to create a new one (and probably delete the one you -lost). - -Once you have keys configured on your account, they will appear above the -:guilabel:`New API Key` button, and you will be able to delete them: - -.. image:: external_api/delete-key.png - :align: center - -**A deleted API key can not be undeleted or re-set**. You will have to generate -a new key and update all the places where you used the old one. - -Test database -~~~~~~~~~~~~~ - -To make exploration simpler, you can also ask https://demo.odoo.com for a test -database: - -.. tabs:: - - .. code-tab:: python - - import xmlrpc.client - info = xmlrpc.client.ServerProxy('https://demo.odoo.com/start').start() - url, db, username, password = info['host'], info['database'], info['user'], info['password'] - - .. code-tab:: ruby - - require "xmlrpc/client" - info = XMLRPC::Client.new2('https://demo.odoo.com/start').call('start') - url, db, username, password = info['host'], info['database'], info['user'], info['password'] - - .. group-tab:: PHP - - .. code-block:: php - - require_once('ripcord.php'); - $info = ripcord::client('https://demo.odoo.com/start')->start(); - list($url, $db, $username, $password) = array($info['host'], $info['database'], $info['user'], $info['password']); - - .. note:: - These examples use the `Ripcord `_ - library, which provides a simple XML-RPC API. Ripcord requires that - `XML-RPC support be enabled - `_ in your PHP - installation. - - Since calls are performed over - `HTTPS `_, it also requires that - the `OpenSSL extension - `_ be enabled. - - .. group-tab:: Java - - .. code-block:: java - - final XmlRpcClient client = new XmlRpcClient(); - - final XmlRpcClientConfigImpl start_config = new XmlRpcClientConfigImpl(); - start_config.setServerURL(new URL("https://demo.odoo.com/start")); - final Map info = (Map)client.execute( - start_config, "start", emptyList()); - - final String url = info.get("host"), - db = info.get("database"), - username = info.get("user"), - password = info.get("password"); - - .. note:: - These examples use the `Apache XML-RPC library `_. - - The examples do not include imports as these imports couldn't be - pasted in the code. - - .. group-tab:: Go - - .. code-block:: go +API +=== - client, err := xmlrpc.NewClient("https://demo.odoo.com/start", nil) - if err != nil { - log.Fatal(err) - } - info := map[string]string{} - client.Call("start", nil, &info) - url = info["host"].(string) - db = info["database"].(string) - username = info["user"].(string) - password = info["password"].(string) +.. _reference/external_api/request: - .. note:: - These examples use the `github.com/kolo/xmlrpc library `_. +Request +------- - The examples do not include imports as these imports couldn't be - pasted in the code. +Post a JSON object at the ``/json/2//`` URL. -Logging in ----------- +**HTTP Headers** -Odoo requires users of the API to be authenticated before they can query most -data. +:Host: Required, the hostname of the server. +:Autorization: Required, ``bearer`` followed by an :ref:`API key `. +:Content-Type: Required, ``application/json``, a charset is recommended. +:X-Odoo-Database: Optional, the name of the database to connect to. +:User-Agent: Recommended, the name of your software. -The ``xmlrpc/2/common`` endpoint provides meta-calls which don't require -authentication, such as the authentication itself or fetching version -information. To verify if the connection information is correct before trying -to authenticate, the simplest call is to ask for the server's version. The -authentication itself is done through the ``authenticate`` function and -returns a user identifier (``uid``) used in authenticated calls instead of -the login. +**URL Path** -.. tabs:: - - .. code-tab:: python - - common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url)) - common.version() - - .. code-tab:: ruby - - common = XMLRPC::Client.new2("#{url}/xmlrpc/2/common") - common.call('version') - - .. code-tab:: php - - $common = ripcord::client("$url/xmlrpc/2/common"); - $common->version(); - - .. code-tab:: java - - final XmlRpcClientConfigImpl common_config = new XmlRpcClientConfigImpl(); - common_config.setServerURL(new URL(String.format("%s/xmlrpc/2/common", url))); - client.execute(common_config, "version", emptyList()); - - .. code-tab:: go - - client, err := xmlrpc.NewClient(fmt.Sprintf("%s/xmlrpc/2/common", url), nil) - if err != nil { - log.Fatal(err) - } - common := map[string]any{} - if err := client.Call("version", nil, &common); err != nil { - log.Fatal(err) - } - -Result: - -.. code-block:: json - - { - "server_version": "13.0", - "server_version_info": [13, 0, 0, "final", 0], - "server_serie": "13.0", - "protocol_version": 1, - } - - -.. tabs:: - - .. code-tab:: python - - uid = common.authenticate(db, username, password, {}) - - .. code-tab:: ruby - - uid = common.call('authenticate', db, username, password, {}) - - .. code-tab:: php - - $uid = $common->authenticate($db, $username, $password, array()); - - .. code-tab:: java - - int uid = (int)client.execute(common_config, "authenticate", asList(db, username, password, emptyMap())); - - .. code-tab:: go - - var uid int64 - if err := client.Call("authenticate", []any{ - db, username, password, - map[string]any{}, - }, &uid); err != nil { - log.Fatal(err) - } +:model: Required, the technical model name. +:method: Required, the method to execute. -.. _api/external_api/calling_methods: +**Body JSON object** -Calling methods -=============== - -The second endpoint is ``xmlrpc/2/object``. It is used to call methods of odoo -models via the ``execute_kw`` RPC function. - -Each call to ``execute_kw`` takes the following parameters: - -* the database to use, a string -* the user id (retrieved through ``authenticate``), an integer -* the user's password, a string -* the model name, a string -* the method name, a string -* an array/list of parameters passed by position -* a mapping/dict of parameters to pass by keyword (optional) +:ids: An array of record ids on which to execute the method. Empty or omitted when calling an + ``@api.model``-decorated method. +:context: Optional, an object of additional values. e.g. ``{"lang": "en_US"}``. +:*param*: As many time as needed, the method's parameters. .. example:: - - For instance, to search for records in the ``res.partner`` model, we can call - ``name_search`` with ``name`` passed by position and ``limit`` passed by - keyword (in order to get maximum 10 results): - - .. tabs:: - - .. code-tab:: python - - models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url)) - models.execute_kw(db, uid, password, 'res.partner', 'name_search', ['foo'], {'limit': 10}) - - .. code-tab:: ruby - - models = XMLRPC::Client.new2("#{url}/xmlrpc/2/object").proxy - models.execute_kw(db, uid, password, 'res.partner', 'name_search', ['foo'], {limit: 10}) - - .. code-tab:: php - - $models = ripcord::client("$url/xmlrpc/2/object"); - $models->execute_kw($db, $uid, $password, 'res.partner', 'name_search', array('foo'), array('limit' => 10)); - - .. code-tab:: java - - final XmlRpcClient models = new XmlRpcClient() {{ - setConfig(new XmlRpcClientConfigImpl() {{ - setServerURL(new URL(String.format("%s/xmlrpc/2/object", url))); - }}); - }}; - models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "name_search", - asList("foo"), - new HashMap() {{ put("limit", 10); }} - )); - - .. code-tab:: go - - models, err := xmlrpc.NewClient(fmt.Sprintf("%s/xmlrpc/2/object", url), nil) - if err != nil { - log.Fatal(err) - } - var result bool - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "name_search", - []string{"foo"}, - map[string]bool{"limit": 10}, - }, &result); err != nil { - log.Fatal(err) - } - - Result: - - .. code-block:: json - - true - -List records ------------- - -Records can be listed and filtered via :meth:`~odoo.models.Model.search`. - -:meth:`~odoo.models.Model.search` takes a mandatory -:ref:`domain ` filter (possibly empty), and returns the -database identifiers of all records matching the filter. + .. code:: http + + POST /json/2/res.partner/search_read HTTP/1.1 + Host: mycompany.example.com + X-Odoo-Database: mycompany + Authorization: bearer 6578616d706c65206a736f6e20617069206b6579 + Content-Type: application/json; charset=utf-8 + User-Agent: mysoftware python-requests/2.25.1 + + { + "context": { + "lang": "en_US" + }, + "domain": [ + ["name", "ilike", "%deco%"], + ["is_company", "=", true] + ], + "fields": ["name"] + } + +.. _reference/external_api/response: + +Response +-------- + +In case of **success**, a **200** status with the JSON-serialized return value of the called method +in the body. .. example:: + .. code:: http - To list customer companies, for instance: - - .. tabs:: - - .. code-tab:: python - - models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', True]]]) - - .. code-tab:: ruby - - models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', true]]]) - - .. code-tab:: php - - $models->execute_kw($db, $uid, $password, 'res.partner', 'search', array(array(array('is_company', '=', true)))); - - .. code-tab:: java + HTTP/1.1 200 OK + Content-Type: application/json; charset=utf-8 - asList((Object[])models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "search", - asList(asList( - asList("is_company", "=", true))) - ))); - - .. code-tab:: go - - var records []int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "search", - []any{[]any{ - []any{"is_company", "=", true}, - }}, - }, &records); err != nil { - log.Fatal(err) - } - - Result: - - .. code-block:: json - - [7, 18, 12, 14, 17, 19, 8, 31, 26, 16, 13, 20, 30, 22, 29, 15, 23, 28, 74] - -Pagination -~~~~~~~~~~ - -By default a search will return the ids of all records matching the -condition, which may be a huge number. ``offset`` and ``limit`` parameters are -available to only retrieve a subset of all matched records. - -.. example:: - - .. tabs:: - - .. code-tab:: python - - models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', True]]], {'offset': 10, 'limit': 5}) - - .. code-tab:: ruby - - models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', true]]], {offset: 10, limit: 5}) - - .. code-tab:: php - - $models->execute_kw($db, $uid, $password, 'res.partner', 'search', array(array(array('is_company', '=', true))), array('offset'=>10, 'limit'=>5)); - - .. code-tab:: java - - asList((Object[])models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "search", - asList(asList( - asList("is_company", "=", true))), - new HashMap() {{ put("offset", 10); put("limit", 5); }} - ))); - - .. code-tab:: go - - var records []int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "search", - []any{[]any{ - []any{"is_company", "=", true}, - }}, - map[string]int64{"offset": 10, "limit": 5}, - }, &records); err != nil { - log.Fatal(err) - } - - Result: - - .. code-block:: json - - [13, 20, 30, 22, 29] - -Count records -------------- - -Rather than retrieve a possibly gigantic list of records and count them, -:meth:`~odoo.models.Model.search_count` can be used to retrieve -only the number of records matching the query. It takes the same -:ref:`domain ` filter as -:meth:`~odoo.models.Model.search` and no other parameter. - -.. example:: - - .. tabs:: - - .. code-tab:: python - - models.execute_kw(db, uid, password, 'res.partner', 'search_count', [[['is_company', '=', True]]]) - - .. code-tab:: ruby - - models.execute_kw(db, uid, password, 'res.partner', 'search_count', [[['is_company', '=', true]]]) - - .. code-tab:: php - - $models->execute_kw($db, $uid, $password, 'res.partner', 'search_count', array(array(array('is_company', '=', true)))); - - .. code-tab:: java - - (Integer)models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "search_count", - asList(asList( - asList("is_company", "=", true))) - )); - - .. code-tab:: go - - var counter int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "search_count", - []any{[]any{ - []any{"is_company", "=", true}, - }}, - }, &counter); err != nil { - log.Fatal(err) - } - - Result: - - .. code-block:: json - - 19 - -.. note:: - Calling ``search`` then ``search_count`` (or the other way around) may not - yield coherent results if other users are using the server: stored data - could have changed between the calls. + [ + {"id": 25, "name": "Deco Addict"} + ] -Read records ------------- +In case of **error**, a **4xx**/**5xx** status with a JSON-serialized error object in the body. -Record data are accessible via the :meth:`~odoo.models.Model.read` method, -which takes a list of ids (as returned by -:meth:`~odoo.models.Model.search`), and optionally a list of fields to -fetch. By default, it fetches all the fields the current user can read, -which tends to be a huge amount. +:name: The fully qualified name of the Python exception that occured. +:message: The exception message, usually the same as `arguments[0]`. +:arguments: All the exception arguments. +:context: The context used by the request. +:debug: The exception traceback, for debugging purpose. .. example:: .. tabs:: - .. code-tab:: python - - ids = models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', True]]], {'limit': 1}) - [record] = models.execute_kw(db, uid, password, 'res.partner', 'read', [ids]) - # count the number of fields fetched by default - len(record) - - .. code-tab:: ruby - - ids = models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', true]]], {limit: 1}) - record = models.execute_kw(db, uid, password, 'res.partner', 'read', [ids]).first - # count the number of fields fetched by default - record.length - - .. code-tab:: php - - $ids = $models->execute_kw($db, $uid, $password, 'res.partner', 'search', array(array(array('is_company', '=', true))), array('limit'=>1)); - $records = $models->execute_kw($db, $uid, $password, 'res.partner', 'read', array($ids)); - // count the number of fields fetched by default - count($records[0]); - - .. code-tab:: java - - final List ids = asList((Object[])models.execute( - "execute_kw", asList( - db, uid, password, - "res.partner", "search", - asList(asList( - asList("is_company", "=", true))), - new HashMap() {{ put("limit", 1); }}))); - final Map record = (Map)((Object[])models.execute( - "execute_kw", asList( - db, uid, password, - "res.partner", "read", - asList(ids) - ) - ))[0]; - // count the number of fields fetched by default - record.size(); - - .. code-tab:: go - - var ids []int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "search", - []any{[]any{ - []any{"is_company", "=", true}, - }}, - map[string]int64{"limit": 1}, - }, &ids); err != nil { - log.Fatal(err) - } - var records []any - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "read", - ids, - }, &records); err != nil { - log.Fatal(err) - } - // count the number of fields fetched by default - count := len(records) - - Result: - - .. code-block:: json - - 121 - - Conversely, picking only three fields deemed interesting. + .. tab:: HTTP + .. code:: http + + HTTP/1.1 401 Unauthorized + Content-Type: application/json; charset=utf-8 + + { + "name": "werkzeug.exceptions.Unauthorized", + "message": "Invalid apikey", + "arguments": ["Invalid apikey", 401], + "context": {}, + "debug": "Traceback (most recent call last):\n File \"/opt/Odoo/community/odoo/http.py\", line 2212, in _transactioning\n return service_model.retrying(func, env=self.env)\n File \"/opt/Odoo/community/odoo/service/model.py\", line 176, in retrying\n result = func()\n File \"/opt/Odoo/community/odoo/http.py\", line 2177, in _serve_ir_http\n self.registry['ir.http']._authenticate(rule.endpoint)\n File \"/opt/Odoo/community/odoo/addons/base/models/ir_http.py\", line 274, in _authenticate\n cls._authenticate_explicit(auth)\n File \"/opt/Odoo/community/odoo/addons/base/models/ir_http.py\", line 283, in _authenticate_explicit\n getattr(cls, f'_auth_method_{auth}')()\n File \"/opt/Odoo/community/odoo/addons/base/models/ir_http.py\", line 240, in _auth_method_bearer\n raise werkzeug.exceptions.Unauthorized(\nwerkzeug.exceptions.Unauthorized: 401 Unauthorized: Invalid apikey\n" + } + + .. tab:: Debug + .. code:: + + Traceback (most recent call last): + File "/opt/Odoo/community/odoo/http.py", line 2212, in _transactioning + return service_model.retrying(func, env=self.env) + File "/opt/Odoo/community/odoo/service/model.py", line 176, in retrying + result = func() + File "/opt/Odoo/community/odoo/http.py", line 2177, in _serve_ir_http + self.registry['ir.http']._authenticate(rule.endpoint) + File "/opt/Odoo/community/odoo/addons/base/models/ir_http.py", line 274, in _authenticate + cls._authenticate_explicit(auth) + File "/opt/Odoo/community/odoo/addons/base/models/ir_http.py", line 283, in _authenticate_explicit + getattr(cls, f'_auth_method_{auth}')() + File "/opt/Odoo/community/odoo/addons/base/models/ir_http.py", line 240, in _auth_method_bearer + raise werkzeug.exceptions.Unauthorized( + werkzeug.exceptions.Unauthorized: 401 Unauthorized: Invalid apikey - .. tabs:: - - .. code-tab:: python - - models.execute_kw(db, uid, password, 'res.partner', 'read', [ids], {'fields': ['name', 'country_id', 'comment']}) - - .. code-tab:: ruby - - models.execute_kw(db, uid, password, 'res.partner', 'read', [ids], {fields: %w(name country_id comment)}) - - .. code-tab:: php - - $models->execute_kw($db, $uid, $password, 'res.partner', 'read', array($ids), array('fields'=>array('name', 'country_id', 'comment'))); - - .. code-tab:: java - - asList((Object[])models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "read", - asList(ids), - new HashMap() {{ - put("fields", asList("name", "country_id", "comment")); - }} - ))); - - .. code-tab:: go +Configuration +============= - var recordFields []map[string]any - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "read", - ids, - map[string][]string{ - "fields": {"name", "country_id", "comment"}, - }, - }, &recordFields); err != nil { - log.Fatal(err) - } +.. _reference/external_api/api_key: - Result: +API Key +------- - .. code-block:: json +An API key must be set in the ``Authorization`` request header, as a bearer token. - [{"comment": false, "country_id": [21, "Belgium"], "id": 7, "name": "Agrolait"}] +Create a new API key for a user via :menuselection:`Preferences --> Account Security --> +New API Key`. -.. note:: - Even if the ``id`` field is not requested, it is always returned. +.. have the three images appear next to each other +.. list-table:: -List record fields ------------------- + * - .. image:: external_api/preferences2.png + :align: center -:meth:`~odoo.models.Model.fields_get` can be used to inspect -a model's fields and check which ones seem to be of interest. + - .. image:: external_api/account-security2.png + :align: center -Because it returns a large amount of meta-information (it is also used by client -programs) it should be filtered before printing, the most interesting items -for a human user are ``string`` (the field's label), ``help`` (a help text if -available) and ``type`` (to know which values to expect, or to send when -updating a record). + - .. image:: external_api/new-api-key.png + :align: center -.. example:: - - .. tabs:: +Both a description and a duration are needed to create a new API key. The description makes it +possible to identify the key, and to determine later whether the key is still in use or should be +removed. The duration determines the lifetime of the key, after which the key becomes invalid. It is +recommended to set a short duration (typically one day) for interactive usage. For security reasons, +it is not possible to create keys that last for more than three months. This means that long lasting +keys must be rotated at least once every three months. - .. code-tab:: python +The :guilabel:`Generate Key` button creates a strong 160-bits random key. The key value is displayed +only once during creation and cannot be retrieved later. Copy the key immediately and store it +securely. If the key is compromised or lost, delete it immediately and generate a new one. - models.execute_kw(db, uid, password, 'res.partner', 'fields_get', [], {'attributes': ['string', 'help', 'type']}) +Please refer to `OWASP's Secrets Management Cheat Sheet +`_ +for further guidance on the management of API keys. - .. code-tab:: ruby +.. _reference/external_api/access_rights: - models.execute_kw(db, uid, password, 'res.partner', 'fields_get', [], {attributes: %w(string help type)}) - - .. code-tab:: php - - $models->execute_kw($db, $uid, $password, 'res.partner', 'fields_get', array(), array('attributes' => array('string', 'help', 'type'))); - - .. code-tab:: java +Access Rights +------------- - (Map>)models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "fields_get", - emptyList(), - new HashMap() {{ - put("attributes", asList("string", "help", "type")); - }} - )); +The JSON-2 API uses the standard :ref:`security models of Odoo `. All operations +are validated against the access rights, record rules and field accesses of the user. - .. code-tab:: go +For **interactive usage**, such as discovering the API or running one-time scripts, it is fine to +use a **personal account**. - recordFields := map[string]string{} - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "fields_get", - []any{}, - map[string][]string{ - "attributes": {"string", "help", "type"}, - }, - }, &recordFields); err != nil { - log.Fatal(err) - } +For **extended automated usage**, such as an integration with another software, it is recommended to +create and use **dedicated bot users**. Using dedicated bot users has several benefits: - Result: +* The minimum required permissions can be granted to the bot, limiting the impact if the API key + gets compromised. +* The password can be set empty to disable login/password authentication, limiting the likelihood + of the account getting compromised. +* The :ref:`reference/fields/automatic/log_access` use the bot account. No user is impersonalized. - .. code-block:: json +.. _reference/external_api/database: - { - "ean13": { - "type": "char", - "help": "BarCode", - "string": "EAN13" - }, - "property_account_position_id": { - "type": "many2one", - "help": "The fiscal position will determine taxes and accounts used for the partner.", - "string": "Fiscal Position" - }, - "signup_valid": { - "type": "boolean", - "help": "", - "string": "Signup Token is Valid" - }, - "date_localization": { - "type": "date", - "help": "", - "string": "Geo Localization Date" - }, - "ref_company_ids": { - "type": "one2many", - "help": "", - "string": "Companies that refers to partner" - }, - "sale_order_count": { - "type": "integer", - "help": "", - "string": "# of Sales Order" - }, - "purchase_order_count": { - "type": "integer", - "help": "", - "string": "# of Purchase Order" - }, +Database +-------- -Search and read ---------------- +Depending on the deployment, the ``Host`` and/or ``X-Odoo-Database`` request headers might be +required. The ``Host`` header is required by HTTP/1.1 and is needed on servers where Odoo is +installed next to other web applications, so that a web-server/reverse-proxy is able to route the +request to the Odoo server. The ``X-Odoo-Database`` header is required when a single Odoo server +hosts multiple databases and the :ref:`dbfilter` wasn't configured to use the ``Host`` header. -Because it is a very common task, Odoo provides a -:meth:`~odoo.models.Model.search_read` shortcut which, as its name suggests, is -equivalent to a :meth:`~odoo.models.Model.search` followed by a -:meth:`~odoo.models.Model.read`, but avoids having to perform two requests -and keep ids around. +Most HTTP client libraries automatically set the ``Host`` header using the connection URL. -Its arguments are similar to :meth:`~odoo.models.Model.search`'s, but it -can also take a list of ``fields`` (like :meth:`~odoo.models.Model.read`, -if that list is not provided it will fetch all fields of matched records). +.. _reference/external_api/transaction: -.. example:: +Transaction +=========== - .. tabs:: +All calls to the JSON-2 endpoint run in their own SQL transaction. The transaction is committed in +case of success and is discarded in case of error. Using the JSON-2 API, it is not possible to chain +multiple calls inside a single transaction. It means that one must be cautious when making multiple +consecutive calls, as the database might be modified by other concurrent transactions. This is +especially dangerous when performing operations related to reservations, payments, and such. - .. code-tab:: python +The solution is to always call a single method that performs all the related operations in a single +transaction. This way, the data is guaranteed to stay consistent: either everything is done +(success, commit), or nothing is done (error, rollback). - models.execute_kw(db, uid, password, 'res.partner', 'search_read', [[['is_company', '=', True]]], {'fields': ['name', 'country_id', 'comment'], 'limit': 5}) +In the ORM, the ``search_read`` method is an example of a single method that performs multiple +operations (``search`` then ``read``) in a single transaction. If a concurrent request removes one +of the records ``search`` retrieves, then there is a risk that subsequent calls to ``read`` fail for +a missing record error. Such a problem cannot occur in ``search_read``, as the system guarantees +proper isolation between transactions. - .. code-tab:: ruby +In business models, those methods are often prefixed by ``action_``, such as +``sale.order``'s ``action_confirm`` method, which verifies that a sales order is valid before +confirming it. - models.execute_kw(db, uid, password, 'res.partner', 'search_read', [[['is_company', '=', true]]], {fields: %w(name country_id comment), limit: 5}) +When no method exists for a set of related operations, a new one can be created in a dedicated +module. - .. code-tab:: php +.. seealso:: + - :doc:`Tutorial to create a module <../tutorials/server_framework_101>` + - PostgreSQL - Transaction Isolation - `Repeatable Read + `_ - $models->execute_kw($db, $uid, $password, 'res.partner', 'search_read', array(array(array('is_company', '=', true))), array('fields'=>array('name', 'country_id', 'comment'), 'limit'=>5)); +.. _reference/external_api/code_example: - .. code-tab:: java +Code Example +============ - asList((Object[])models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "search_read", - asList(asList( - asList("is_company", "=", true))), - new HashMap() {{ - put("fields", asList("name", "country_id", "comment")); - put("limit", 5); - }} - ))); +The following examples showcase how to execute two of the :ref:`common ORM methods +` on a dummy database ``mycompany`` hosted on the dummy website +``https://mycompany.example.com``. Its :ref:`dynamic documentation +` would be available at https://mycompany.example.com/doc. - .. code-tab:: go +.. tabs:: - var recordFields []map[string]any - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "search_read", - []any{[]any{ - []any{"is_company", "=", true}, - }}, - map[string]any{ - "fields": []string{"name", "country_id", "comment"}, - "limit": 5, - }, - }, &recordFields); err != nil { - log.Fatal(err) - } + .. code-tab:: python - Result: + import requests - .. code-block:: json + BASE_URL = "https://mycompany.example.com/json/2" + API_KEY = ... # get it from a secure location + headers = { + "Authorization": f"bearer {API_KEY}", + "X-Odoo-Database": "mycompany", + "User-Agent": "mysoftware " + requests.utils.default_user_agent(), + } - [ - { - "comment": false, - "country_id": [ 21, "Belgium" ], - "id": 7, - "name": "Agrolait" - }, - { - "comment": false, - "country_id": [ 76, "France" ], - "id": 18, - "name": "Axelor" + res_search = requests.post( + f"{BASE_URL}/res.partner/search", + headers=headers, + json={ + "context": {"lang": "en_US"}, + "domain": [ + ("name", "ilike", "%deco%"), + ("is_company", "=", True), + ], }, - { - "comment": false, - "country_id": [ 233, "United Kingdom" ], - "id": 12, - "name": "Bank Wealthy and sons" - }, - { - "comment": false, - "country_id": [ 105, "India" ], - "id": 14, - "name": "Best Designers" - }, - { - "comment": false, - "country_id": [ 76, "France" ], - "id": 17, - "name": "Camptocamp" + ) + res_search.raise_for_status() + ids = res_search.json() + + res_read = requests.post( + f"{BASE_URL}/res.partner/read", + headers=headers, + json={ + "ids": ids, + "context": {"lang": "en_US"}, + "fields": ["name"], + } + ) + res_read.raise_for_status() + names = res_read.json() + print(names) + + .. code-tab:: javascript + + (async () => { + const BASE_URL = "https://mycompany.example.com/json/2"; + const API_KEY = ; // get it from a secure location + const headers = { + "Content-Type": "application/json", + "Authorization": "bearer " + API_KEY, + "X-Odoo-Database": DATABASE, } - ] - -Create records --------------- - -Records of a model are created using :meth:`~odoo.models.Model.create`. The -method creates a single record and returns its database identifier. - -:meth:`~odoo.models.Model.create` takes a mapping of fields to values, used -to initialize the record. For any field which has a default value and is not -set through the mapping argument, the default value will be used. - -.. example:: - - .. tabs:: - - .. code-tab:: python - id = models.execute_kw(db, uid, password, 'res.partner', 'create', [{'name': "New Partner"}]) + const reqSearch = { + method: "POST", + headers: headers, + body: { + context: {lang: "en_US"}, + domain: [ + ["name", "ilike", "%deco%"], + ["is_company", "=", true], + ], + }, + }; + const resSearch = await fetch(BASE_URL + "/res.partner/search_read", reqSearch); + if (!response.ok) throw new Error(resSearch.json()); + const ids = await resSearch.json(); + + const reqRead = { + method: "POST", + headers: headers, + body: { + ids: ids, + context: {lang: "en_US"}, + fields: ["name"], + }, + }; + const resRead = await fetch(BASE_URL + "/res.partner/search_read", reqRead); + if (!response.ok) throw new Error(resRead.json()); + const names = await resRead.json(); + console.log(names); + })(); + + .. code-tab:: bash + + set -eu + + DATABASE=mycompany + BASE_URL=https://$DATABASE.odoo.com/json/2 + API_KEY= + + ids=$(curl $BASE_URL/res.partner/search \ + -X POST \ + --oauth2-bearer $API_KEY \ + -H "X-Odoo-Database: $DATABASE" \ + -H "Content-Type: application/json" \ + -d '{"context": {"lang": "en_US"}, "domain": [["name", "ilike", "%deco%"], ["is_company", "=", true]]}' \ + --silent \ + --fail + ) + curl $BASE_URL/res.partner/read \ + -X POST \ + --oauth2-bearer $API_KEY \ + -H "X-Odoo-Database: $DATABASE" \ + -H "Content-Type: application/json" \ + -d "{\"ids\": $ids, \"context\": {\"lang\": \"en_US\"}, \"fields\": [\"name\"]}" \ + --silent \ + --fail-with-body + +The above example is equivalent to running:: + + Model = self.env["res.partner"].with_context({"lang": "en_US"}) + records = Model.search([("name", "ilike", "%deco%"), ("is_company", "=", True)]) + return json.dumps(records.ids) + +Then, in a new transaction:: + + records = self.env["res.partner"].with_context({"lang": "en_US"}).browse(ids) + names = records.read(["name"]) + return json.dumps(names) + +.. _reference/external_api/dynamic_doc: + +Dynamic Documentation +===================== + +Under construction + +.. _reference/external_api/migration: + +Migrating from XML-RPC / JSON-RPC +================================= + +Both the XML-RPC and JSON-RPC APIs at endpoints ``/xmlrpc``, ``/xmlrpc/2`` and ``/jsonrpc`` are +scheduled for removal in Odoo 20 (fall 2026). Both RPC APIs expose the three same services: common, +db (database) and object. All three services are deprecated. - .. code-tab:: ruby +.. note:: - id = models.execute_kw(db, uid, password, 'res.partner', 'create', [{name: "New Partner"}]) + The other controllers ``@route(type='jsonrpc')`` (known until Odoo 18 as ``type='json'``) are not + subject to this deprecation notice. - .. code-tab:: php +Common service +-------------- - $id = $models->execute_kw($db, $uid, $password, 'res.partner', 'create', array(array('name'=>"New Partner"))); +The common service defines 3 fonctions: - .. code-tab:: java +1. ``version()`` +2. ``login(db, login, password)`` +3. ``authenticate(db, login, password, user_agent_env)`` - final Integer id = (Integer)models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "create", - asList(new HashMap() {{ put("name", "New Partner"); }}) - )); +The version function is replaced by the ``/web/version`` endpoint. - .. code-tab:: go +.. code:: http - var id int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "create", - []map[string]string{ - {"name": "New Partner"}, - }, - }, &id); err != nil { - log.Fatal(err) - } + GET /web/version HTTP/1.1 - Result: +.. code:: http - .. code-block:: json + HTTP/1.1 200 OK + Content-Type: application/json - 78 + {"version_info": [19, 0, 0, "final", 0, ""], "version": "19.0"} -.. warning:: - While most value types are what would expect (integer for - :class:`~odoo.fields.Integer`, string for :class:`~odoo.fields.Char` - or :class:`~odoo.fields.Text`), +The two ``login`` and ``authenticate`` functions return the user ID corresponding to the user after +a successful login. The user ID and password are necessary for subsequent RPC calls to the *object* +service. The JSON-2 API uses a different authentication scheme where neither the user ID nor the +password are used. It is still possible to retrieve the user's own ID by sending a JSON-2 request to +``res.users/context_get`` with no ID (the current user is extracted from the API key). - - :class:`~odoo.fields.Date`, :class:`~odoo.fields.Datetime` and - :class:`~odoo.fields.Binary` fields use string values - - :class:`~odoo.fields.One2many` and :class:`~odoo.fields.Many2many` - use a special command protocol detailed in :meth:`the documentation to - the write method `. +Database service +---------------- -Update records +.. seealso:: + :ref:`db_manager_security` + +The db service defines 13 fonctions: + +#. ``create_database(master_pwd, db_name, demo, lang, user_password, login, country_code, phone)`` +#. ``duplicate_database(master_pwd, db_original_name, db_name, neutralize_database)`` +#. ``drop(master_pwd, db_name)`` +#. ``dump(master_pwd, db_name, format)`` +#. ``restore(master_pwd, db_name, data, copy)`` +#. ``change_admin_password(master_pwd, new_password)`` +#. ``rename(master_pwd, old_name, new_name)`` +#. ``migrate_databases(master_pwd, databases)`` +#. ``db_exist(db_name)`` +#. ``list()`` +#. ``list_lang()`` +#. ``list_countries(master_pwd)`` +#. ``server_version()`` + +Many of those function are accessible via the ``/web/database`` controllers. Those controllers +work hand-in-hand with the HTML form at ``/web/database/manager`` and are accessible via HTTP. + +The following controllers use the verb ``POST`` and content-type +``application/x-www-form-urlencoded``. + +#. ``/web/database/create`` takes inputs ``master_pwd``, ``name``, ``login``, ``password``, + ``demo``, ``lang``, and ``phone``. +#. ``/web/database/duplicate`` takes inputs ``master_pwd``, ``name``, ``new_name``, and + ``neutralize_database`` (not neutralized by default). +#. ``/web/database/drop`` takes inputs ``master_pwd`` and ``name``. +#. ``/web/database/backup`` takes inputs ``master_pwd``, ``name``, and ``backup_format`` (zip by + default), and returns the backup in the http response. +#. ``/web/database/change_password`` takes inputs ``master_pwd`` and ``master_pwd_new``. + +The following controller uses the verb ``POST`` and content-type ``multipart/form-data``. + +* ``/web/database/restore`` takes inputs ``master_pwd``, ``name``, ``copy`` (not copied by + default) and ``neutralize`` (not neutralized by default), it takes a file input ``backup_file``. + +The following controller uses the verb ``POST`` and content-type ``application/json-rpc``. + +* ``/web/database/list`` takes an empty JSON object as input, and returns the database list under + the JSON response's ``result`` entry. + +The remaining function are: ``server_version``, which exists under ``/web/version``, ``list_lang``, +and ``list_countries``, which exist via JSON-2 on the ``res.lang`` and ``res.country`` models, and +``migrate_databases``, which as non-programmable API at the moment. + +Object service -------------- -Records can be updated using :meth:`~odoo.models.Model.write`. It takes -a list of records to update and a mapping of updated fields to values similar -to :meth:`~odoo.models.Model.create`. - -Multiple records can be updated simultaneously, but they will all get the same -values for the fields being set. It is not possible to perform -"computed" updates (where the value being set depends on an existing value of -a record). +The object service defines 2 fonctions: -.. example:: +#. ``execute(db, uid, passwd, model, method, *args)`` +#. ``execute_kw(db, uid, passwd, model, method, args, kw={})`` - .. tabs:: +They both give for access to all public model methods, including the generic ORM ones. - .. code-tab:: python - - models.execute_kw(db, uid, password, 'res.partner', 'write', [[id], {'name': "Newer partner"}]) - # get record name after having changed it - models.execute_kw(db, uid, password, 'res.partner', 'read', [[id], ['display_name']]) - - .. code-tab:: ruby - - models.execute_kw(db, uid, password, 'res.partner', 'write', [[id], {name: "Newer partner"}]) - # get record name after having changed it - models.execute_kw(db, uid, password, 'res.partner', 'read', [[id], ['display_name']]) - - .. code-tab:: php - - $models->execute_kw($db, $uid, $password, 'res.partner', 'write', array(array($id), array('name'=>"Newer partner"))); - // get record name after having changed it - $models->execute_kw($db, $uid, $password, - 'res.partner', 'read', array(array($id), array('display_name'))); - - .. code-tab:: java - - models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "write", - asList( - asList(id), - new HashMap() {{ put("name", "Newer Partner"); }} - ) - )); - // get record name after having changed it - asList((Object[])models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "read", - asList(asList(id), asList("display_name")) - ))); - - .. code-tab:: go - - var result bool - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "write", - []any{ - []int64{id}, - map[string]string{"name": "Newer partner"}, - }, - }, &result); err != nil { - log.Fatal(err) - } - // get record name after having changed it - var record []any - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "name_get", - []any{ - []int64{id}, - }, - }, &record); err != nil { - log.Fatal(err) - } - - Result: - - .. code-block:: json - - [[78, "Newer partner"]] - -Delete records --------------- +Both functions are stateless. It means that the database, user ID and user password are to be +provided for each call. The model, method and arguments must be provided, too. The ``execute`` +function takes as many extra positional arguments as necessary. The ``execute_kw`` function takes an +``args`` list of positional arguments and an optional ``kw`` dict of keyword arguments. -Records can be deleted in bulk by providing their ids to -:meth:`~odoo.models.Model.unlink`. +The records IDs are extracted from the first ``args``. When the called method is decorated with +``@api.model``, no record ID is extracted, and ``args`` is left as-is. It is only possible to give a +context with ``execute_kw``, as it is extracted from the keyword argument named ``context``. .. example:: - - .. tabs:: - - .. code-tab:: python - - models.execute_kw(db, uid, password, 'res.partner', 'unlink', [[id]]) - # check if the deleted record is still in the database - models.execute_kw(db, uid, password, 'res.partner', 'search', [[['id', '=', id]]]) - - .. code-tab:: ruby - - models.execute_kw(db, uid, password, 'res.partner', 'unlink', [[id]]) - # check if the deleted record is still in the database - models.execute_kw(db, uid, password, 'res.partner', 'search', [[['id', '=', id]]]) - - .. code-tab:: php - - $models->execute_kw($db, $uid, $password, 'res.partner', 'unlink', array(array($id))); - // check if the deleted record is still in the database - $models->execute_kw( - $db, $uid, $password, 'res.partner', 'search', array(array(array('id', '=', $id))) - ); - - .. code-tab:: java - - models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "unlink", - asList(asList(id)))); - // check if the deleted record is still in the database - asList((Object[])models.execute("execute_kw", asList( - db, uid, password, - "res.partner", "search", - asList(asList(asList("id", "=", 78))) - ))); - - .. code-tab:: go - - var result bool - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "unlink", - []any{ - []int64{id}, - }, - }, &result); err != nil { - log.Fatal(err) - } - // check if the deleted record is still in the database - var record []any - if err := models.Call("execute_kw", []any{ - db, uid, password, - "res.partner", "search", - []any{[]any{ - []any{"id", "=", id}, - }}, - }, &record); err != nil { - log.Fatal(err) - } - - Result: - - .. code-block:: json - - [] - -Inspection and introspection ----------------------------- - -While we previously used :meth:`~odoo.models.Model.fields_get` to query a -model and have been using an arbitrary model from the start, Odoo stores -most model metadata inside a few meta-models which allow both querying the -system and altering models and fields (with some limitations) on the fly over -XML-RPC. - -.. _reference/webservice/inspection/models: - -``ir.model`` -~~~~~~~~~~~~ - -Provides information about Odoo models via its various fields. - -``name`` - a human-readable description of the model -``model`` - the name of each model in the system -``state`` - whether the model was generated in Python code (``base``) or by creating - an ``ir.model`` record (``manual``) -``field_id`` - list of the model's fields through a :class:`~odoo.fields.One2many` to - :ref:`reference/webservice/inspection/fields` -``view_ids`` - :class:`~odoo.fields.One2many` to the :doc:`../reference/user_interface/view_architectures` - defined for the model -``access_ids`` - :class:`~odoo.fields.One2many` relation to the - :ref:`reference/security/acl` set on the model - -``ir.model`` can be used to - -- Query the system for installed models (as a precondition to operations - on the model or to explore the system's content). -- Get information about a specific model (generally by listing the fields - associated with it). -- Create new models dynamically over RPC. - -.. important:: - * Custom model names must start with ``x_``. - * The ``state`` must be provided and set to ``manual``, otherwise the model will - not be loaded. - * It is not possible to add new *methods* to a custom model, only fields. + To run the following: + + .. code:: python + + (env['res.partner'] + .with_user(2) # admin + .with_context(lang='en_US') + .browse([1, 2, 3]) + .read(['name'], load=None) + ) + + Using XML-RPC (JSON-RPC would be similar): + + .. code:: python + + from xmlrpc.client import ServerProxy + object = ServerProxy(...) + ids = [1, 2, 3] + fields = ['name'] + load = None + + object.execute("database", 2, "admin", "res.partner", "read", ids, fields, load) + object.execute("database", 2, "admin", "res.partner", "search", [ + ids, + fields, + ], { + "context": {"lang": "en_US"}, + "load": load, + }) + +The JSON-2 API replaces the object service with a few differences. The database must only be +provided (via the ``X-Odoo-Database`` HTTP header) on systems where there are multiple databases +available for a same domain. The login/password authentication scheme is replaced by an API key (via +the ``Authorization: bearer`` HTTP header). The ``model`` and ``method`` are placed in the URL. The +request body is a JSON object with all the methods arguments, plus ``ids`` and ``context``. All +the arguments are named; there is no way in JSON-2 to call a function with positional arguments. .. example:: + Using JSON-2: - A custom model will initially contain only the "built-in" fields available - on all models: + .. code:: python - .. tabs:: + import requests - .. code-tab:: python - - models.execute_kw(db, uid, password, 'ir.model', 'create', [{ - 'name': "Custom Model", - 'model': "x_custom_model", - 'state': 'manual', - }]) - models.execute_kw(db, uid, password, 'x_custom_model', 'fields_get', [], {'attributes': ['string', 'help', 'type']}) - - .. code-tab:: php - - $models->execute_kw($db, $uid, $password, 'ir.model', 'create', array(array( - 'name' => "Custom Model", - 'model' => 'x_custom_model', - 'state' => 'manual' - ))); - $models->execute_kw($db, $uid, $password, 'x_custom_model', 'fields_get', array(), array('attributes' => array('string', 'help', 'type'))); - - .. code-tab:: ruby - - models.execute_kw(db, uid, password, 'ir.model', 'create', [{ - name: "Custom Model", - model: 'x_custom_model', - state: 'manual' - }]) - fields = models.execute_kw(db, uid, password, 'x_custom_model', 'fields_get', [], {attributes: %w(string help type)}) - - .. code-tab:: java - - models.execute( - "execute_kw", asList( - db, uid, password, - "ir.model", "create", - asList(new HashMap() {{ - put("name", "Custom Model"); - put("model", "x_custom_model"); - put("state", "manual"); - }}) - )); - final Object fields = models.execute( - "execute_kw", asList( - db, uid, password, - "x_custom_model", "fields_get", - emptyList(), - new HashMap () {{ - put("attributes", asList( - "string", - "help", - "type")); - }} - )); - - .. code-tab:: go - - var id int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "ir.model", "create", - []map[string]string{ - { - "name": "Custom Model", - "model": "x_custom_model", - "state": "manual", - }, - }, - }, &id); err != nil { - log.Fatal(err) - } - recordFields := map[string]string{} - if err := models.Call("execute_kw", []any{ - db, uid, password, - "x_custom_model", "fields_get", - []any{}, - map[string][]string{ - "attributes": {"string", "help", "type"}, - }, - }, &recordFields); err != nil { - log.Fatal(err) - } - - Result: - - .. code-block:: json - - { - "create_uid": { - "type": "many2one", - "string": "Created by" - }, - "create_date": { - "type": "datetime", - "string": "Created on" - }, - "__last_update": { - "type": "datetime", - "string": "Last Modified on" - }, - "write_uid": { - "type": "many2one", - "string": "Last Updated by" - }, - "write_date": { - "type": "datetime", - "string": "Last Updated on" + DATABSE = ... + DOMAIN = ... + API_KEY = "6578616d706c65206a736f6e20617069206b6579" + + requests.post( + f"https://{DOMAIN}/json/2/res.partner/read", + headers={ + # "X-Odoo-Database": DATABASE, # only when DOMAIN isn't enough + "Authorization": f"bearer {API_KEY}", }, - "display_name": { - "type": "char", - "string": "Display Name" + json={ + "ids": [1, 2, 3], + "context": {"lang": "en_US"}, + "fields": ["name"], + "load": None, }, - "id": { - "type": "integer", - "string": "Id" - } - } - -.. _reference/webservice/inspection/fields: - -``ir.model.fields`` -~~~~~~~~~~~~~~~~~~~ - -Provides information about the fields of Odoo models and allows adding -custom fields without using Python code. - -``model_id`` - :class:`~odoo.fields.Many2one` to - :ref:`reference/webservice/inspection/models` to which the field belongs -``name`` - the field's technical name (used in ``read`` or ``write``) -``field_description`` - the field's user-readable label (e.g. ``string`` in ``fields_get``) -``ttype`` - the :ref:`type ` of field to create -``state`` - whether the field was created via Python code (``base``) or via - ``ir.model.fields`` (``manual``) -``required``, ``readonly``, ``translate`` - enables the corresponding flag on the field -``groups`` - :ref:`field-level access control `, a - :class:`~odoo.fields.Many2many` to ``res.groups`` -``selection``, ``size``, ``on_delete``, ``relation``, ``relation_field``, ``domain`` - type-specific properties and customizations, see :ref:`the fields - documentation ` for details - -.. important:: - - Like custom models, only new fields created with ``state="manual"`` are activated as actual - fields on the model. - - Computed fields can not be added via ``ir.model.fields``, some field meta-information - (defaults, onchange) can not be set either. - -.. example:: - - .. tabs:: - - .. code-tab:: python - - id = models.execute_kw(db, uid, password, 'ir.model', 'create', [{ - 'name': "Custom Model", - 'model': "x_custom", - 'state': 'manual', - }]) - models.execute_kw(db, uid, password, 'ir.model.fields', 'create', [{ - 'model_id': id, - 'name': 'x_name', - 'ttype': 'char', - 'state': 'manual', - 'required': True, - }]) - record_id = models.execute_kw(db, uid, password, 'x_custom', 'create', [{'x_name': "test record"}]) - models.execute_kw(db, uid, password, 'x_custom', 'read', [[record_id]]) - - .. code-tab:: php - - $id = $models->execute_kw($db, $uid, $password, 'ir.model', 'create', array(array( - 'name' => "Custom Model", - 'model' => 'x_custom', - 'state' => 'manual' - ))); - $models->execute_kw($db, $uid, $password, 'ir.model.fields', 'create', array(array( - 'model_id' => $id, - 'name' => 'x_name', - 'ttype' => 'char', - 'state' => 'manual', - 'required' => true - ))); - $record_id = $models->execute_kw($db, $uid, $password, 'x_custom', 'create', array(array('x_name' => "test record"))); - $models->execute_kw($db, $uid, $password, 'x_custom', 'read', array(array($record_id))); - - .. code-tab:: ruby - - id = models.execute_kw(db, uid, password, 'ir.model', 'create', [{ - name: "Custom Model", - model: "x_custom", - state: 'manual' - }]) - models.execute_kw(db, uid, password, 'ir.model.fields', 'create', [{ - model_id: id, - name: "x_name", - ttype: "char", - state: "manual", - required: true - }]) - record_id = models.execute_kw(db, uid, password, 'x_custom', 'create', [{x_name: "test record"}]) - models.execute_kw(db, uid, password, 'x_custom', 'read', [[record_id]]) - - .. code-tab:: java - - final Integer id = (Integer)models.execute( - "execute_kw", asList( - db, uid, password, - "ir.model", "create", - asList(new HashMap() {{ - put("name", "Custom Model"); - put("model", "x_custom"); - put("state", "manual"); - }}) - )); - models.execute( - "execute_kw", asList( - db, uid, password, - "ir.model.fields", "create", - asList(new HashMap() {{ - put("model_id", id); - put("name", "x_name"); - put("ttype", "char"); - put("state", "manual"); - put("required", true); - }}) - )); - final Integer record_id = (Integer)models.execute( - "execute_kw", asList( - db, uid, password, - "x_custom", "create", - asList(new HashMap() {{ - put("x_name", "test record"); - }}) - )); - - client.execute( - "execute_kw", asList( - db, uid, password, - "x_custom", "read", - asList(asList(record_id)) - )); - - .. code-tab:: go - - var id int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "ir.model", "create", - []map[string]string{ - { - "name": "Custom Model", - "model": "x_custom", - "state": "manual", - }, - }, - }, &id); err != nil { - log.Fatal(err) - } - var fieldId int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "ir.model.fields", "create", - []map[string]any{ - { - "model_id": id, - "name": "x_name", - "ttype": "char", - "state": "manual", - "required": true, - }, - }, - }, &fieldId); err != nil { - log.Fatal(err) - } - var recordId int64 - if err := models.Call("execute_kw", []any{ - db, uid, password, - "x_custom", "create", - []map[string]string{ - {"x_name": "test record"}, - }, - }, &recordId); err != nil { - log.Fatal(err) - } - var recordFields []map[string]any - if err := models.Call("execute_kw", []any{ - db, uid, password, - "x_custom", "read", - [][]int64{{recordId}}, - }, recordFields); err != nil { - log.Fatal(err) - } - - Result: - - .. code-block:: json - - [ - { - "create_uid": [1, "Administrator"], - "x_name": "test record", - "__last_update": "2014-11-12 16:32:13", - "write_uid": [1, "Administrator"], - "write_date": "2014-11-12 16:32:13", - "create_date": "2014-11-12 16:32:13", - "id": 1, - "display_name": "test record" - } - ] - -.. _PostgreSQL: https://www.postgresql.org -.. _XML-RPC: https://en.wikipedia.org/wiki/XML-RPC -.. _base64: https://en.wikipedia.org/wiki/Base64 + ).json() diff --git a/content/developer/reference/external_api/account-security2.png b/content/developer/reference/external_api/account-security2.png new file mode 100644 index 0000000000000000000000000000000000000000..e7333bc2d92956501fd5aba41eceafa0c419c2be GIT binary patch literal 25333 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 literal 0 HcmV?d00001 diff --git a/content/developer/reference/external_api/new-api-key.png b/content/developer/reference/external_api/new-api-key.png new file mode 100644 index 0000000000000000000000000000000000000000..cb77f6db6f7310d7e2c880f2149aad428404d3d1 GIT binary patch literal 25424 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 ZaZ44PU19rDz`_ +for the installation steps. + +Access to data via the external API is only available on *Custom* Odoo pricing plans. Access to +the external API is not available on *One App Free* or *Standard* plans. For more information +visit the `Odoo pricing page `_ or reach out to your Customer +Success Manager. + +Connection +========== + +Configuration +------------- + +If you already have an Odoo server installed, you can just use its parameters. + +.. important:: + + For Odoo Online instances (.odoo.com), users are created without a + *local* password (as a person you are logged in via the Odoo Online + authentication system, not by the instance itself). To use XML-RPC on Odoo + Online instances, you will need to set a password on the user account you + want to use: + + * Log in your instance with an administrator account. + * Go to :menuselection:`Settings --> Users & Companies --> Users`. + * Click on the user you want to use for XML-RPC access. + * Click on :guilabel:`Action` and select :guilabel:`Change Password`. + * Set a :guilabel:`New Password` value then click :guilabel:`Change Password`. + + The *server url* is the instance's domain (e.g. + *https://mycompany.odoo.com*), the *database name* is the name of the + instance (e.g. *mycompany*). The *username* is the configured user's login + as shown by the *Change Password* screen. + +.. tabs:: + + .. code-tab:: python + + url = + db = + username = 'admin' + password = + + .. code-tab:: ruby + + url = + db = + username = "admin" + password = + + .. code-tab:: php + + $url = ; + $db = ; + $username = "admin"; + $password = ; + + .. code-tab:: java + + final String url = , + db = , + username = "admin", + password = ; + + .. code-tab:: go + + var ( + url = + db = + username = "admin" + password = + ) + +.. _api/external_api/keys: + +API Keys +~~~~~~~~ + +.. versionadded:: 14.0 + +Odoo has support for **api keys** and (depending on modules or settings) may +**require** these keys to perform webservice operations. + +The way to use API Keys in your scripts is to simply replace your **password** +by the key. The login remains in-use. You should store the API Key as carefully +as the password as they essentially provide the same access to your user +account (although they can not be used to log-in via the interface). + +In order to add a key to your account, simply go to your +:guilabel:`Preferences` (or :guilabel:`My Profile`): + +.. image:: external_api/preferences.png + :align: center + +then open the :guilabel:`Account Security` tab, and click +:guilabel:`New API Key`: + +.. image:: external_api/account-security.png + :align: center + +Input a description for the key, **this description should be as clear and +complete as possible**: it is the only way you will have to identify your keys +later and know whether you should remove them or keep them around. + +Click :guilabel:`Generate Key`, then copy the key provided. **Store this key +carefully**: it is equivalent to your password, and just like your password +the system will not be able to retrieve or show the key again later on. If you lose +this key, you will have to create a new one (and probably delete the one you +lost). + +Once you have keys configured on your account, they will appear above the +:guilabel:`New API Key` button, and you will be able to delete them: + +.. image:: external_api/delete-key.png + :align: center + +**A deleted API key can not be undeleted or re-set**. You will have to generate +a new key and update all the places where you used the old one. + +Test database +~~~~~~~~~~~~~ + +To make exploration simpler, you can also ask https://demo.odoo.com for a test +database: + +.. tabs:: + + .. code-tab:: python + + import xmlrpc.client + info = xmlrpc.client.ServerProxy('https://demo.odoo.com/start').start() + url, db, username, password = info['host'], info['database'], info['user'], info['password'] + + .. code-tab:: ruby + + require "xmlrpc/client" + info = XMLRPC::Client.new2('https://demo.odoo.com/start').call('start') + url, db, username, password = info['host'], info['database'], info['user'], info['password'] + + .. group-tab:: PHP + + .. code-block:: php + + require_once('ripcord.php'); + $info = ripcord::client('https://demo.odoo.com/start')->start(); + list($url, $db, $username, $password) = array($info['host'], $info['database'], $info['user'], $info['password']); + + .. note:: + These examples use the `Ripcord `_ + library, which provides a simple XML-RPC API. Ripcord requires that + `XML-RPC support be enabled + `_ in your PHP + installation. + + Since calls are performed over + `HTTPS `_, it also requires that + the `OpenSSL extension + `_ be enabled. + + .. group-tab:: Java + + .. code-block:: java + + final XmlRpcClient client = new XmlRpcClient(); + + final XmlRpcClientConfigImpl start_config = new XmlRpcClientConfigImpl(); + start_config.setServerURL(new URL("https://demo.odoo.com/start")); + final Map info = (Map)client.execute( + start_config, "start", emptyList()); + + final String url = info.get("host"), + db = info.get("database"), + username = info.get("user"), + password = info.get("password"); + + .. note:: + These examples use the `Apache XML-RPC library `_. + + The examples do not include imports as these imports couldn't be + pasted in the code. + + .. group-tab:: Go + + .. code-block:: go + + client, err := xmlrpc.NewClient("https://demo.odoo.com/start", nil) + if err != nil { + log.Fatal(err) + } + info := map[string]string{} + client.Call("start", nil, &info) + url = info["host"].(string) + db = info["database"].(string) + username = info["user"].(string) + password = info["password"].(string) + + .. note:: + These examples use the `github.com/kolo/xmlrpc library `_. + + The examples do not include imports as these imports couldn't be + pasted in the code. + +Logging in +---------- + +Odoo requires users of the API to be authenticated before they can query most +data. + +The ``xmlrpc/2/common`` endpoint provides meta-calls which don't require +authentication, such as the authentication itself or fetching version +information. To verify if the connection information is correct before trying +to authenticate, the simplest call is to ask for the server's version. The +authentication itself is done through the ``authenticate`` function and +returns a user identifier (``uid``) used in authenticated calls instead of +the login. + +.. tabs:: + + .. code-tab:: python + + common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url)) + common.version() + + .. code-tab:: ruby + + common = XMLRPC::Client.new2("#{url}/xmlrpc/2/common") + common.call('version') + + .. code-tab:: php + + $common = ripcord::client("$url/xmlrpc/2/common"); + $common->version(); + + .. code-tab:: java + + final XmlRpcClientConfigImpl common_config = new XmlRpcClientConfigImpl(); + common_config.setServerURL(new URL(String.format("%s/xmlrpc/2/common", url))); + client.execute(common_config, "version", emptyList()); + + .. code-tab:: go + + client, err := xmlrpc.NewClient(fmt.Sprintf("%s/xmlrpc/2/common", url), nil) + if err != nil { + log.Fatal(err) + } + common := map[string]any{} + if err := client.Call("version", nil, &common); err != nil { + log.Fatal(err) + } + +Result: + +.. code-block:: json + + { + "server_version": "13.0", + "server_version_info": [13, 0, 0, "final", 0], + "server_serie": "13.0", + "protocol_version": 1, + } + + +.. tabs:: + + .. code-tab:: python + + uid = common.authenticate(db, username, password, {}) + + .. code-tab:: ruby + + uid = common.call('authenticate', db, username, password, {}) + + .. code-tab:: php + + $uid = $common->authenticate($db, $username, $password, array()); + + .. code-tab:: java + + int uid = (int)client.execute(common_config, "authenticate", asList(db, username, password, emptyMap())); + + .. code-tab:: go + + var uid int64 + if err := client.Call("authenticate", []any{ + db, username, password, + map[string]any{}, + }, &uid); err != nil { + log.Fatal(err) + } + +.. _api/external_api/calling_methods: + +Calling methods +=============== + +The second endpoint is ``xmlrpc/2/object``. It is used to call methods of odoo +models via the ``execute_kw`` RPC function. + +Each call to ``execute_kw`` takes the following parameters: + +* the database to use, a string +* the user id (retrieved through ``authenticate``), an integer +* the user's password, a string +* the model name, a string +* the method name, a string +* an array/list of parameters passed by position +* a mapping/dict of parameters to pass by keyword (optional) + +.. example:: + + For instance, to search for records in the ``res.partner`` model, we can call + ``name_search`` with ``name`` passed by position and ``limit`` passed by + keyword (in order to get maximum 10 results): + + .. tabs:: + + .. code-tab:: python + + models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url)) + models.execute_kw(db, uid, password, 'res.partner', 'name_search', ['foo'], {'limit': 10}) + + .. code-tab:: ruby + + models = XMLRPC::Client.new2("#{url}/xmlrpc/2/object").proxy + models.execute_kw(db, uid, password, 'res.partner', 'name_search', ['foo'], {limit: 10}) + + .. code-tab:: php + + $models = ripcord::client("$url/xmlrpc/2/object"); + $models->execute_kw($db, $uid, $password, 'res.partner', 'name_search', array('foo'), array('limit' => 10)); + + .. code-tab:: java + + final XmlRpcClient models = new XmlRpcClient() {{ + setConfig(new XmlRpcClientConfigImpl() {{ + setServerURL(new URL(String.format("%s/xmlrpc/2/object", url))); + }}); + }}; + models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "name_search", + asList("foo"), + new HashMap() {{ put("limit", 10); }} + )); + + .. code-tab:: go + + models, err := xmlrpc.NewClient(fmt.Sprintf("%s/xmlrpc/2/object", url), nil) + if err != nil { + log.Fatal(err) + } + var result bool + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "name_search", + []string{"foo"}, + map[string]bool{"limit": 10}, + }, &result); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + true + +List records +------------ + +Records can be listed and filtered via :meth:`~odoo.models.Model.search`. + +:meth:`~odoo.models.Model.search` takes a mandatory +:ref:`domain ` filter (possibly empty), and returns the +database identifiers of all records matching the filter. + +.. example:: + + To list customer companies, for instance: + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', True]]]) + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', true]]]) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'res.partner', 'search', array(array(array('is_company', '=', true)))); + + .. code-tab:: java + + asList((Object[])models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "search", + asList(asList( + asList("is_company", "=", true))) + ))); + + .. code-tab:: go + + var records []int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "search", + []any{[]any{ + []any{"is_company", "=", true}, + }}, + }, &records); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + [7, 18, 12, 14, 17, 19, 8, 31, 26, 16, 13, 20, 30, 22, 29, 15, 23, 28, 74] + +Pagination +~~~~~~~~~~ + +By default a search will return the ids of all records matching the +condition, which may be a huge number. ``offset`` and ``limit`` parameters are +available to only retrieve a subset of all matched records. + +.. example:: + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', True]]], {'offset': 10, 'limit': 5}) + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', true]]], {offset: 10, limit: 5}) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'res.partner', 'search', array(array(array('is_company', '=', true))), array('offset'=>10, 'limit'=>5)); + + .. code-tab:: java + + asList((Object[])models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "search", + asList(asList( + asList("is_company", "=", true))), + new HashMap() {{ put("offset", 10); put("limit", 5); }} + ))); + + .. code-tab:: go + + var records []int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "search", + []any{[]any{ + []any{"is_company", "=", true}, + }}, + map[string]int64{"offset": 10, "limit": 5}, + }, &records); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + [13, 20, 30, 22, 29] + +Count records +------------- + +Rather than retrieve a possibly gigantic list of records and count them, +:meth:`~odoo.models.Model.search_count` can be used to retrieve +only the number of records matching the query. It takes the same +:ref:`domain ` filter as +:meth:`~odoo.models.Model.search` and no other parameter. + +.. example:: + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'res.partner', 'search_count', [[['is_company', '=', True]]]) + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'res.partner', 'search_count', [[['is_company', '=', true]]]) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'res.partner', 'search_count', array(array(array('is_company', '=', true)))); + + .. code-tab:: java + + (Integer)models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "search_count", + asList(asList( + asList("is_company", "=", true))) + )); + + .. code-tab:: go + + var counter int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "search_count", + []any{[]any{ + []any{"is_company", "=", true}, + }}, + }, &counter); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + 19 + +.. note:: + Calling ``search`` then ``search_count`` (or the other way around) may not + yield coherent results if other users are using the server: stored data + could have changed between the calls. + +Read records +------------ + +Record data are accessible via the :meth:`~odoo.models.Model.read` method, +which takes a list of ids (as returned by +:meth:`~odoo.models.Model.search`), and optionally a list of fields to +fetch. By default, it fetches all the fields the current user can read, +which tends to be a huge amount. + +.. example:: + + .. tabs:: + + .. code-tab:: python + + ids = models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', True]]], {'limit': 1}) + [record] = models.execute_kw(db, uid, password, 'res.partner', 'read', [ids]) + # count the number of fields fetched by default + len(record) + + .. code-tab:: ruby + + ids = models.execute_kw(db, uid, password, 'res.partner', 'search', [[['is_company', '=', true]]], {limit: 1}) + record = models.execute_kw(db, uid, password, 'res.partner', 'read', [ids]).first + # count the number of fields fetched by default + record.length + + .. code-tab:: php + + $ids = $models->execute_kw($db, $uid, $password, 'res.partner', 'search', array(array(array('is_company', '=', true))), array('limit'=>1)); + $records = $models->execute_kw($db, $uid, $password, 'res.partner', 'read', array($ids)); + // count the number of fields fetched by default + count($records[0]); + + .. code-tab:: java + + final List ids = asList((Object[])models.execute( + "execute_kw", asList( + db, uid, password, + "res.partner", "search", + asList(asList( + asList("is_company", "=", true))), + new HashMap() {{ put("limit", 1); }}))); + final Map record = (Map)((Object[])models.execute( + "execute_kw", asList( + db, uid, password, + "res.partner", "read", + asList(ids) + ) + ))[0]; + // count the number of fields fetched by default + record.size(); + + .. code-tab:: go + + var ids []int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "search", + []any{[]any{ + []any{"is_company", "=", true}, + }}, + map[string]int64{"limit": 1}, + }, &ids); err != nil { + log.Fatal(err) + } + var records []any + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "read", + ids, + }, &records); err != nil { + log.Fatal(err) + } + // count the number of fields fetched by default + count := len(records) + + Result: + + .. code-block:: json + + 121 + + Conversely, picking only three fields deemed interesting. + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'res.partner', 'read', [ids], {'fields': ['name', 'country_id', 'comment']}) + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'res.partner', 'read', [ids], {fields: %w(name country_id comment)}) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'res.partner', 'read', array($ids), array('fields'=>array('name', 'country_id', 'comment'))); + + .. code-tab:: java + + asList((Object[])models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "read", + asList(ids), + new HashMap() {{ + put("fields", asList("name", "country_id", "comment")); + }} + ))); + + .. code-tab:: go + + var recordFields []map[string]any + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "read", + ids, + map[string][]string{ + "fields": {"name", "country_id", "comment"}, + }, + }, &recordFields); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + [{"comment": false, "country_id": [21, "Belgium"], "id": 7, "name": "Agrolait"}] + +.. note:: + Even if the ``id`` field is not requested, it is always returned. + +List record fields +------------------ + +:meth:`~odoo.models.Model.fields_get` can be used to inspect +a model's fields and check which ones seem to be of interest. + +Because it returns a large amount of meta-information (it is also used by client +programs) it should be filtered before printing, the most interesting items +for a human user are ``string`` (the field's label), ``help`` (a help text if +available) and ``type`` (to know which values to expect, or to send when +updating a record). + +.. example:: + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'res.partner', 'fields_get', [], {'attributes': ['string', 'help', 'type']}) + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'res.partner', 'fields_get', [], {attributes: %w(string help type)}) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'res.partner', 'fields_get', array(), array('attributes' => array('string', 'help', 'type'))); + + .. code-tab:: java + + (Map>)models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "fields_get", + emptyList(), + new HashMap() {{ + put("attributes", asList("string", "help", "type")); + }} + )); + + .. code-tab:: go + + recordFields := map[string]string{} + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "fields_get", + []any{}, + map[string][]string{ + "attributes": {"string", "help", "type"}, + }, + }, &recordFields); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + { + "ean13": { + "type": "char", + "help": "BarCode", + "string": "EAN13" + }, + "property_account_position_id": { + "type": "many2one", + "help": "The fiscal position will determine taxes and accounts used for the partner.", + "string": "Fiscal Position" + }, + "signup_valid": { + "type": "boolean", + "help": "", + "string": "Signup Token is Valid" + }, + "date_localization": { + "type": "date", + "help": "", + "string": "Geo Localization Date" + }, + "ref_company_ids": { + "type": "one2many", + "help": "", + "string": "Companies that refers to partner" + }, + "sale_order_count": { + "type": "integer", + "help": "", + "string": "# of Sales Order" + }, + "purchase_order_count": { + "type": "integer", + "help": "", + "string": "# of Purchase Order" + }, + +Search and read +--------------- + +Because it is a very common task, Odoo provides a +:meth:`~odoo.models.Model.search_read` shortcut which, as its name suggests, is +equivalent to a :meth:`~odoo.models.Model.search` followed by a +:meth:`~odoo.models.Model.read`, but avoids having to perform two requests +and keep ids around. + +Its arguments are similar to :meth:`~odoo.models.Model.search`'s, but it +can also take a list of ``fields`` (like :meth:`~odoo.models.Model.read`, +if that list is not provided it will fetch all fields of matched records). + +.. example:: + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'res.partner', 'search_read', [[['is_company', '=', True]]], {'fields': ['name', 'country_id', 'comment'], 'limit': 5}) + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'res.partner', 'search_read', [[['is_company', '=', true]]], {fields: %w(name country_id comment), limit: 5}) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'res.partner', 'search_read', array(array(array('is_company', '=', true))), array('fields'=>array('name', 'country_id', 'comment'), 'limit'=>5)); + + .. code-tab:: java + + asList((Object[])models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "search_read", + asList(asList( + asList("is_company", "=", true))), + new HashMap() {{ + put("fields", asList("name", "country_id", "comment")); + put("limit", 5); + }} + ))); + + .. code-tab:: go + + var recordFields []map[string]any + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "search_read", + []any{[]any{ + []any{"is_company", "=", true}, + }}, + map[string]any{ + "fields": []string{"name", "country_id", "comment"}, + "limit": 5, + }, + }, &recordFields); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + [ + { + "comment": false, + "country_id": [ 21, "Belgium" ], + "id": 7, + "name": "Agrolait" + }, + { + "comment": false, + "country_id": [ 76, "France" ], + "id": 18, + "name": "Axelor" + }, + { + "comment": false, + "country_id": [ 233, "United Kingdom" ], + "id": 12, + "name": "Bank Wealthy and sons" + }, + { + "comment": false, + "country_id": [ 105, "India" ], + "id": 14, + "name": "Best Designers" + }, + { + "comment": false, + "country_id": [ 76, "France" ], + "id": 17, + "name": "Camptocamp" + } + ] + +Create records +-------------- + +Records of a model are created using :meth:`~odoo.models.Model.create`. The +method creates a single record and returns its database identifier. + +:meth:`~odoo.models.Model.create` takes a mapping of fields to values, used +to initialize the record. For any field which has a default value and is not +set through the mapping argument, the default value will be used. + +.. example:: + + .. tabs:: + + .. code-tab:: python + + id = models.execute_kw(db, uid, password, 'res.partner', 'create', [{'name': "New Partner"}]) + + .. code-tab:: ruby + + id = models.execute_kw(db, uid, password, 'res.partner', 'create', [{name: "New Partner"}]) + + .. code-tab:: php + + $id = $models->execute_kw($db, $uid, $password, 'res.partner', 'create', array(array('name'=>"New Partner"))); + + .. code-tab:: java + + final Integer id = (Integer)models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "create", + asList(new HashMap() {{ put("name", "New Partner"); }}) + )); + + .. code-tab:: go + + var id int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "create", + []map[string]string{ + {"name": "New Partner"}, + }, + }, &id); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + 78 + +.. warning:: + While most value types are what would expect (integer for + :class:`~odoo.fields.Integer`, string for :class:`~odoo.fields.Char` + or :class:`~odoo.fields.Text`), + + - :class:`~odoo.fields.Date`, :class:`~odoo.fields.Datetime` and + :class:`~odoo.fields.Binary` fields use string values + - :class:`~odoo.fields.One2many` and :class:`~odoo.fields.Many2many` + use a special command protocol detailed in :meth:`the documentation to + the write method `. + +Update records +-------------- + +Records can be updated using :meth:`~odoo.models.Model.write`. It takes +a list of records to update and a mapping of updated fields to values similar +to :meth:`~odoo.models.Model.create`. + +Multiple records can be updated simultaneously, but they will all get the same +values for the fields being set. It is not possible to perform +"computed" updates (where the value being set depends on an existing value of +a record). + +.. example:: + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'res.partner', 'write', [[id], {'name': "Newer partner"}]) + # get record name after having changed it + models.execute_kw(db, uid, password, 'res.partner', 'read', [[id], ['display_name']]) + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'res.partner', 'write', [[id], {name: "Newer partner"}]) + # get record name after having changed it + models.execute_kw(db, uid, password, 'res.partner', 'read', [[id], ['display_name']]) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'res.partner', 'write', array(array($id), array('name'=>"Newer partner"))); + // get record name after having changed it + $models->execute_kw($db, $uid, $password, + 'res.partner', 'read', array(array($id), array('display_name'))); + + .. code-tab:: java + + models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "write", + asList( + asList(id), + new HashMap() {{ put("name", "Newer Partner"); }} + ) + )); + // get record name after having changed it + asList((Object[])models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "read", + asList(asList(id), asList("display_name")) + ))); + + .. code-tab:: go + + var result bool + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "write", + []any{ + []int64{id}, + map[string]string{"name": "Newer partner"}, + }, + }, &result); err != nil { + log.Fatal(err) + } + // get record name after having changed it + var record []any + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "name_get", + []any{ + []int64{id}, + }, + }, &record); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + [[78, "Newer partner"]] + +Delete records +-------------- + +Records can be deleted in bulk by providing their ids to +:meth:`~odoo.models.Model.unlink`. + +.. example:: + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'res.partner', 'unlink', [[id]]) + # check if the deleted record is still in the database + models.execute_kw(db, uid, password, 'res.partner', 'search', [[['id', '=', id]]]) + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'res.partner', 'unlink', [[id]]) + # check if the deleted record is still in the database + models.execute_kw(db, uid, password, 'res.partner', 'search', [[['id', '=', id]]]) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'res.partner', 'unlink', array(array($id))); + // check if the deleted record is still in the database + $models->execute_kw( + $db, $uid, $password, 'res.partner', 'search', array(array(array('id', '=', $id))) + ); + + .. code-tab:: java + + models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "unlink", + asList(asList(id)))); + // check if the deleted record is still in the database + asList((Object[])models.execute("execute_kw", asList( + db, uid, password, + "res.partner", "search", + asList(asList(asList("id", "=", 78))) + ))); + + .. code-tab:: go + + var result bool + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "unlink", + []any{ + []int64{id}, + }, + }, &result); err != nil { + log.Fatal(err) + } + // check if the deleted record is still in the database + var record []any + if err := models.Call("execute_kw", []any{ + db, uid, password, + "res.partner", "search", + []any{[]any{ + []any{"id", "=", id}, + }}, + }, &record); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + [] + +Inspection and introspection +---------------------------- + +While we previously used :meth:`~odoo.models.Model.fields_get` to query a +model and have been using an arbitrary model from the start, Odoo stores +most model metadata inside a few meta-models which allow both querying the +system and altering models and fields (with some limitations) on the fly over +XML-RPC. + +.. _reference/webservice/inspection/models: + +``ir.model`` +~~~~~~~~~~~~ + +Provides information about Odoo models via its various fields. + +``name`` + a human-readable description of the model +``model`` + the name of each model in the system +``state`` + whether the model was generated in Python code (``base``) or by creating + an ``ir.model`` record (``manual``) +``field_id`` + list of the model's fields through a :class:`~odoo.fields.One2many` to + :ref:`reference/webservice/inspection/fields` +``view_ids`` + :class:`~odoo.fields.One2many` to the :doc:`../reference/user_interface/view_architectures` + defined for the model +``access_ids`` + :class:`~odoo.fields.One2many` relation to the + :ref:`reference/security/acl` set on the model + +``ir.model`` can be used to + +- Query the system for installed models (as a precondition to operations + on the model or to explore the system's content). +- Get information about a specific model (generally by listing the fields + associated with it). +- Create new models dynamically over RPC. + +.. important:: + * Custom model names must start with ``x_``. + * The ``state`` must be provided and set to ``manual``, otherwise the model will + not be loaded. + * It is not possible to add new *methods* to a custom model, only fields. + +.. example:: + + A custom model will initially contain only the "built-in" fields available + on all models: + + .. tabs:: + + .. code-tab:: python + + models.execute_kw(db, uid, password, 'ir.model', 'create', [{ + 'name': "Custom Model", + 'model': "x_custom_model", + 'state': 'manual', + }]) + models.execute_kw(db, uid, password, 'x_custom_model', 'fields_get', [], {'attributes': ['string', 'help', 'type']}) + + .. code-tab:: php + + $models->execute_kw($db, $uid, $password, 'ir.model', 'create', array(array( + 'name' => "Custom Model", + 'model' => 'x_custom_model', + 'state' => 'manual' + ))); + $models->execute_kw($db, $uid, $password, 'x_custom_model', 'fields_get', array(), array('attributes' => array('string', 'help', 'type'))); + + .. code-tab:: ruby + + models.execute_kw(db, uid, password, 'ir.model', 'create', [{ + name: "Custom Model", + model: 'x_custom_model', + state: 'manual' + }]) + fields = models.execute_kw(db, uid, password, 'x_custom_model', 'fields_get', [], {attributes: %w(string help type)}) + + .. code-tab:: java + + models.execute( + "execute_kw", asList( + db, uid, password, + "ir.model", "create", + asList(new HashMap() {{ + put("name", "Custom Model"); + put("model", "x_custom_model"); + put("state", "manual"); + }}) + )); + final Object fields = models.execute( + "execute_kw", asList( + db, uid, password, + "x_custom_model", "fields_get", + emptyList(), + new HashMap () {{ + put("attributes", asList( + "string", + "help", + "type")); + }} + )); + + .. code-tab:: go + + var id int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "ir.model", "create", + []map[string]string{ + { + "name": "Custom Model", + "model": "x_custom_model", + "state": "manual", + }, + }, + }, &id); err != nil { + log.Fatal(err) + } + recordFields := map[string]string{} + if err := models.Call("execute_kw", []any{ + db, uid, password, + "x_custom_model", "fields_get", + []any{}, + map[string][]string{ + "attributes": {"string", "help", "type"}, + }, + }, &recordFields); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + { + "create_uid": { + "type": "many2one", + "string": "Created by" + }, + "create_date": { + "type": "datetime", + "string": "Created on" + }, + "__last_update": { + "type": "datetime", + "string": "Last Modified on" + }, + "write_uid": { + "type": "many2one", + "string": "Last Updated by" + }, + "write_date": { + "type": "datetime", + "string": "Last Updated on" + }, + "display_name": { + "type": "char", + "string": "Display Name" + }, + "id": { + "type": "integer", + "string": "Id" + } + } + +.. _reference/webservice/inspection/fields: + +``ir.model.fields`` +~~~~~~~~~~~~~~~~~~~ + +Provides information about the fields of Odoo models and allows adding +custom fields without using Python code. + +``model_id`` + :class:`~odoo.fields.Many2one` to + :ref:`reference/webservice/inspection/models` to which the field belongs +``name`` + the field's technical name (used in ``read`` or ``write``) +``field_description`` + the field's user-readable label (e.g. ``string`` in ``fields_get``) +``ttype`` + the :ref:`type ` of field to create +``state`` + whether the field was created via Python code (``base``) or via + ``ir.model.fields`` (``manual``) +``required``, ``readonly``, ``translate`` + enables the corresponding flag on the field +``groups`` + :ref:`field-level access control `, a + :class:`~odoo.fields.Many2many` to ``res.groups`` +``selection``, ``size``, ``on_delete``, ``relation``, ``relation_field``, ``domain`` + type-specific properties and customizations, see :ref:`the fields + documentation ` for details + +.. important:: + - Like custom models, only new fields created with ``state="manual"`` are activated as actual + fields on the model. + - Computed fields can not be added via ``ir.model.fields``, some field meta-information + (defaults, onchange) can not be set either. + +.. example:: + + .. tabs:: + + .. code-tab:: python + + id = models.execute_kw(db, uid, password, 'ir.model', 'create', [{ + 'name': "Custom Model", + 'model': "x_custom", + 'state': 'manual', + }]) + models.execute_kw(db, uid, password, 'ir.model.fields', 'create', [{ + 'model_id': id, + 'name': 'x_name', + 'ttype': 'char', + 'state': 'manual', + 'required': True, + }]) + record_id = models.execute_kw(db, uid, password, 'x_custom', 'create', [{'x_name': "test record"}]) + models.execute_kw(db, uid, password, 'x_custom', 'read', [[record_id]]) + + .. code-tab:: php + + $id = $models->execute_kw($db, $uid, $password, 'ir.model', 'create', array(array( + 'name' => "Custom Model", + 'model' => 'x_custom', + 'state' => 'manual' + ))); + $models->execute_kw($db, $uid, $password, 'ir.model.fields', 'create', array(array( + 'model_id' => $id, + 'name' => 'x_name', + 'ttype' => 'char', + 'state' => 'manual', + 'required' => true + ))); + $record_id = $models->execute_kw($db, $uid, $password, 'x_custom', 'create', array(array('x_name' => "test record"))); + $models->execute_kw($db, $uid, $password, 'x_custom', 'read', array(array($record_id))); + + .. code-tab:: ruby + + id = models.execute_kw(db, uid, password, 'ir.model', 'create', [{ + name: "Custom Model", + model: "x_custom", + state: 'manual' + }]) + models.execute_kw(db, uid, password, 'ir.model.fields', 'create', [{ + model_id: id, + name: "x_name", + ttype: "char", + state: "manual", + required: true + }]) + record_id = models.execute_kw(db, uid, password, 'x_custom', 'create', [{x_name: "test record"}]) + models.execute_kw(db, uid, password, 'x_custom', 'read', [[record_id]]) + + .. code-tab:: java + + final Integer id = (Integer)models.execute( + "execute_kw", asList( + db, uid, password, + "ir.model", "create", + asList(new HashMap() {{ + put("name", "Custom Model"); + put("model", "x_custom"); + put("state", "manual"); + }}) + )); + models.execute( + "execute_kw", asList( + db, uid, password, + "ir.model.fields", "create", + asList(new HashMap() {{ + put("model_id", id); + put("name", "x_name"); + put("ttype", "char"); + put("state", "manual"); + put("required", true); + }}) + )); + final Integer record_id = (Integer)models.execute( + "execute_kw", asList( + db, uid, password, + "x_custom", "create", + asList(new HashMap() {{ + put("x_name", "test record"); + }}) + )); + + client.execute( + "execute_kw", asList( + db, uid, password, + "x_custom", "read", + asList(asList(record_id)) + )); + + .. code-tab:: go + + var id int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "ir.model", "create", + []map[string]string{ + { + "name": "Custom Model", + "model": "x_custom", + "state": "manual", + }, + }, + }, &id); err != nil { + log.Fatal(err) + } + var fieldId int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "ir.model.fields", "create", + []map[string]any{ + { + "model_id": id, + "name": "x_name", + "ttype": "char", + "state": "manual", + "required": true, + }, + }, + }, &fieldId); err != nil { + log.Fatal(err) + } + var recordId int64 + if err := models.Call("execute_kw", []any{ + db, uid, password, + "x_custom", "create", + []map[string]string{ + {"x_name": "test record"}, + }, + }, &recordId); err != nil { + log.Fatal(err) + } + var recordFields []map[string]any + if err := models.Call("execute_kw", []any{ + db, uid, password, + "x_custom", "read", + [][]int64{{recordId}}, + }, recordFields); err != nil { + log.Fatal(err) + } + + Result: + + .. code-block:: json + + [ + { + "create_uid": [1, "Administrator"], + "x_name": "test record", + "__last_update": "2014-11-12 16:32:13", + "write_uid": [1, "Administrator"], + "write_date": "2014-11-12 16:32:13", + "create_date": "2014-11-12 16:32:13", + "id": 1, + "display_name": "test record" + } + ] + +.. _PostgreSQL: https://www.postgresql.org +.. _XML-RPC: https://en.wikipedia.org/wiki/XML-RPC +.. _base64: https://en.wikipedia.org/wiki/Base64 From f83496a9bd7dba4c65990b3d61b47e9cab459a2a Mon Sep 17 00:00:00 2001 From: "Antoine Vandevenne (anv)" Date: Mon, 22 Sep 2025 06:29:15 +0000 Subject: [PATCH 18/52] [IMP] supported_versions: release 19.0 closes odoo/documentation#14632 X-original-commit: 2a2ca313701f2cf8777096d4529f3583785d2835 Signed-off-by: Antoine Vandevenne (anv) --- conf.py | 3 +- content/administration/supported_versions.rst | 42 +++++++------------ 2 files changed, 16 insertions(+), 29 deletions(-) diff --git a/conf.py b/conf.py index 2c1cb121ad..3fcad0e5ee 100644 --- a/conf.py +++ b/conf.py @@ -232,12 +232,11 @@ # option. If a provided version has no label, the version string is used as label. versions_names = { 'master': "Master", + '19.0': "Odoo 19", 'saas-18.4': "Odoo 18.4", 'saas-18.3': "Odoo 18.3", 'saas-18.2': "Odoo 18.2", - 'saas-18.1': "Odoo 18.1", '18.0': "Odoo 18", - 'saas-17.4': "Odoo 17.4", '17.0': "Odoo 17", '16.0': "Odoo 16", } diff --git a/content/administration/supported_versions.rst b/content/administration/supported_versions.rst index 3325f732e6..2ff7f19731 100644 --- a/content/administration/supported_versions.rst +++ b/content/administration/supported_versions.rst @@ -31,60 +31,48 @@ This matrix shows the support status of every version. - On-Premise - Release date - End of support - * - Odoo SaaS 18.4 + * - **Odoo 19.0** + - |green| - |green| + - |green| + - September 2025 + - September 2028 (planned) + * - Odoo SaaS 18.4 + - |red| - N/A - N/A - July 2025 - * - Odoo SaaS 18.3 - - |green| + - |red| - N/A - N/A - May 2025 - * - Odoo SaaS 18.2 - - |green| + - |red| - N/A - N/A - March 2025 - - * - Odoo SaaS 18.1 - - |green| - - N/A - - N/A - - January 2025 - - * - **Odoo 18.0** - |green| - |green| - |green| - October 2024 - - October 2027 (planned) - * - Odoo SaaS 17.4 - - |red| - - N/A - - N/A - - July 2024 - - October 2024 - * - Odoo SaaS 17.2 - - |red| - - N/A - - N/A - - April 2024 - - October 2024 + - September 2027 (planned) * - **Odoo 17.0** - |green| - |green| - |green| - November 2023 - - October 2026 (planned) + - September 2026 (planned) * - **Odoo 16.0** - - |green| - - |green| - - |green| + - |red| + - |red| + - |red| - October 2022 - - October 2025 (planned) + - September 2025 * - **Odoo 15.0** - |red| - |red| From 4615ad3796b3aa72dc4964c44befe02808475d44 Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Fri, 12 Sep 2025 22:13:02 +0000 Subject: [PATCH 19/52] [ADD] Payroll: Headcount report closes odoo/documentation#14624 X-original-commit: aaf815f5d902c001fcedac64b44c2f0aab2c1ef3 Signed-off-by: Lara Martini (larm) --- content/applications/hr/payroll.rst | 2 + content/applications/hr/payroll/headcount.rst | 53 ++++++++++++++++++ .../hr/payroll/headcount/new-headcount.png | Bin 0 -> 12529 bytes 3 files changed, 55 insertions(+) create mode 100644 content/applications/hr/payroll/headcount.rst create mode 100644 content/applications/hr/payroll/headcount/new-headcount.png diff --git a/content/applications/hr/payroll.rst b/content/applications/hr/payroll.rst index 4bd19d852c..72d9cb2a69 100644 --- a/content/applications/hr/payroll.rst +++ b/content/applications/hr/payroll.rst @@ -901,6 +901,7 @@ form. - :doc:`payroll/batches` - :doc:`payroll/commissions` - :doc:`payroll/reporting` + - :doc:`payroll/headcount` - :doc:`payroll/work_entry_analysis` - :doc:`payroll/payroll_localizations` @@ -915,5 +916,6 @@ form. payroll/batches payroll/commissions payroll/reporting + payroll/headcount payroll/work_entry_analysis payroll/payroll_localizations diff --git a/content/applications/hr/payroll/headcount.rst b/content/applications/hr/payroll/headcount.rst new file mode 100644 index 0000000000..8d9f0590ba --- /dev/null +++ b/content/applications/hr/payroll/headcount.rst @@ -0,0 +1,53 @@ +================ +Headcount report +================ + +The *Headcount report* in the **Payroll** app shows the number of employees on payroll and allows +headcount comparisons between different periods of time. + +Create a headcount report +========================= + +Create a headcount report to see the number of employees at a specific time or compare headcounts +across periods. + +To create a headcount report, navigate to :menuselection:`Payroll app --> Reporting --> Headcount` +and click :guilabel:`New`. + +- Report name: generated automatically as `Headcount for (Company Name) on the (YYYY-MM-DD)` and + **cannot** be modified. +- :guilabel:`Company`: populated automatically (works in both single and multi-company databases) +- :guilabel:`From`/:guilabel:`To` dates: defaults to current date (from) and blank (to). Adjust + these to define the period to analyze. + +.. image:: headcount/new-headcount.png + :alt: A headcount report form filled out for the third quarter of 2025. + +Next, click :guilabel:`Populate` to generate the report. + +At the top of the form, a :icon:`fa-people` :guilabel:`Employees` smart button appears. Clicking the +button displays the total number of employees for the selected period. + +View all headcount reports +========================== + +See how the company headcount has changed over time by viewing all headcount reports in a list view. + +To view all headcount reports, navigate to :menuselection:`Payroll app --> Reporting --> Headcount`. + +View employees in a headcount +----------------------------- + +TO get an overall view of employees and their salary impact on the company, view all employee +records of a specific headcount report. + +To view the employees of a specific headcount report, click the :icon:`fa-people` +:guilabel:`Employees` smart button at the top of a headcount report. + +All employees from the headcount appear in a list view, grouped by :guilabel:`Department`. + +- :guilabel:`Employee`: the employee's full name +- :guilabel:`Department`: the department their job position is in +- :guilabel:`Job Title`: their role +- :guilabel:`Employer Cost`: how much the company pays the employee each pay-period +- :guilabel:`Wage on Payroll`: the dollar amount on payroll reports diff --git a/content/applications/hr/payroll/headcount/new-headcount.png b/content/applications/hr/payroll/headcount/new-headcount.png new file mode 100644 index 0000000000000000000000000000000000000000..6907f4e1ddca15f31f570a1d62548c07daa3a6dc GIT binary patch literal 12529 zcmcI~g;N|n^es?mx40B{cemmN7PsOK-QrGh*To%*TXBcQ-4=I>ON&c!ciG4HW`2Lb zdv9K5GMUND%{@6uPVOW(;;XU@8Zr?w92^{)oGefc4h|6t2M3P`c=y)xLSdQp)_io7 z)pdr0L+}5u!Y4DM6T`v1gZrweAq9iMo}XV{VUMcnp#FhTm9IuUy@NP7^x@%&(sEk- zBB~UW-1r2{t!+K`4-ac=n`2|s#^3Gz1EUfWGb5sYfd~>Ob@i>V`xRwgJs9kon3R(MPAD!eotahimyrtWY2)>EZ*g%ID6Q$~1-Ad; zBd?&hyz*yjdsjtJ_4Vb&z{n=QpnQIQ`Q-FWOAGX{*XHUTw32PtcLtMIsTv=hJA=X2 zZ(&X@{u`UyM?K*Y!`EknagUqT*JJUHl}D`yu-B8`!s4p$DSs>=$HpRRUw|3n5?`Z) zX~hIX5`Si8=N3<0!%E8`z0e_Bdrv)5IxDfSGKQ_mGxtZwC%b$5lan(!OHX9*+O!z- zqFkOHO{c%|%d~aOMfjY*SPaf2S^9*;-7HrON0^9kSPKK_o)62#<@5iRd0FRe3G*9% z5le_x|N7NwNJ-g%2%BD4TB)G0LeVHJGpn#{`L1H)x!6qQdL{!Gl?!$`O9gLR@2s<1 zX|80|sAV6c8#Z5Mr713{wp-_W2ZQkgEmZ^!g;ksdgiY2mwb)6rI=uB#^;JBq%%u4p zG`y!adWy3x@_*4Ul@U}2 zcU^=ye9sDU-fa#U_m@haxS|wRIUKLFS62np)GkrZHaA5K zk;wbX@Co_?BVz%>$1!`s{#yy(N(3&F=iFxhWfXC3@6Wb^ly~!FprlL2q`m_# zW~cRF|KlZA_hPYO&4{Tj}ZFF}N$#V34(Eh zrC!8U1bJc1j?274f7nDdz=O&cJ&rWpUQO$=W*z)@p(Ym=%1TdC7qgdL3|eGb1)-7! zizRD{)??0Y4fi?h>DxjL_lw!4(th74U)5`#4}Ljg<`RP_GY~6MwnC0wdHKTin?&Lx z52iotEQ*qWQ-*{bjTNK@=I(Lmw`z|e7$h$_h{|Jbz6_dk zvs}+Dt7)_Ll&6D+z6D2Z6dn&4`w!@5SRnF(tAcMf_1618^8d7F!`q)qNs68xRP!6U z6&r(hwdwIYFoH=Fu^;eel}i!`ZmotfZ?SIGuCqY7zELs38EBtdd;5>%vv1NF_uAGw zDQxj`2o!rHvt2z{W?gU`Mo76S6oKFuS|x!8GplL2XUhQp7Ks%*i$|#??T79Qcnmo% z!w)3NdNjt4wr@jI-X1SLJnf1W^7S&vr9Umy6#4g!1VPvQ8Oo26G>o65-r@^VG|$ zglFEOwQseMDBN@cxj`$L3%MA)2kn|Fc%HQ&~yC&qhAU*+<=+P1mI{E&ohuAt={H|M9WE zgNXW-Dv#XIDOyX88nl`@KUYY!?)Hqc(~Jeu=$}}7zesU0^Iow^?lmC~NMI##k1W>4 z5idoi2Sue)^j>n7kR9`ra$jOWBD~Yvil+c}Xugg`=6AU|QCuR4UOI~WKvM-NM4ZMF zJEkSkx2>5ipj`1e6z&)`5Jbr=-C>N7Q$QcZms)%ztQ^r2uiYA_CViN|o!IN0`z1!8 z$qf$ma1Nyj&2ts~Zygn~2rj$~NnGOy6e)=Kq8C`_!BHJFzwIKIW$9Gw7y{=4x)4|~ zyIvq|>UBkxkrS9HPl#q4;T!>wh``3w^JSmqO$mac3&L*ePlyEHk%M{H x6hok8e zCKMB%7rPEz4MjV5T=m-|d{_!jB;={ihdkL_ke6xa6Xl;>)wm?nj9)oKc>wyyU3Tk> ziF8-jcM;^P%-XN|_3!hQU}wr@jJgyo-Ky=V?DO}LpBZ)ApA*_oL;|{38LFxc2HV!( zhe3W<`WJEk$l(xhd43VNZFouHrjcA6Hd+5i3M!abnNzntp1z-`GpR`3B;U2o1qgL_ zA%~5f42T*cKAr|sIMRON86R$M$e8`z{{W;nIKnfaI6i$~FtC@N(9^Lo9ui!2Fu4F4 z1L~VocXc=xMWaXLDvsKM`64dR6*G1BE!BTSUF$wT4PX4RJx_i&mOon)!)>KCQKausohjb#h< zuMbzzGYjlZE*^>c)uwrx82nJ~Ur;~ir+|{s>NEkU%R%-CUNU|h(X5Sasp!ow{DHz2 zCqF$?h;=YW{UnL=(?kYg*v^%@ zpvKi`AG|<1zi6g|74Lq*g;k^ZsJCex#36OG8GCA}aXhuC6Qz@(M)i1wa=fvVWGJW) zu{Hl0XOF*oHU*`XL7afXY;?DHHgC9=U0Th=#f7lR2w06P?H|-Xyt@@H0NoL6oE!d1 zam>szAmoXZWEgo7WJpIg(!9Z$AhU$+!>o#-kkP#%rC^W6*XwZhc)A`3c}DHnWDAf< zWi{AEq1i_|>aWnW*fP=q-jW*pfEt`*pAmu-vEt=fF}hI{NOQ^S`ga4v7Uzf$=o618 zgI@ozR_%H4^nOB&;sYosN-lcCVR_F%X1hsFut3GPPDCgRRN6m55=eV!5jTCp$55vKxqaaNPyP@WK7eevb=Adb2(p<^-y@5>mb#JMxV@)v4ru>jxN{MQ z)l?`vI@-lGI)n6Yx=h;4SOftXhXyAI{>izouDahr;I)y2L#$Oor;tmuL=EyJ3MS>h z?>d$xf%>Fpr#4t#S0r*VZB=94X1jTb)aMo#{blt1x(2giNL(XaSBtJ+`~daQkHe+4 zkN9*=qe$960aCa4RX@jAe|*o#MYthokhr2daqusF0~_=a!#~4gl3G#GyYo=UCsl-c z+>(8$_FIvmj??8tJRPg5v0oiZfg7-v7u>$hiS8Ywtp80}*jH5flQl$N6c1!}2#2E3%6q_efWbHx zZ<3*#$!byLQO!`d_?h~cN`~|>!>c7MZ!qRo@TE!s3SId~n&nlb_Jk8|orA!*o+R$tbFk172zYj(UxhO?oA+Gb{+?IE$bztvV0@6bRv# zS~$-M`Fl`N?ThX^^{vJ1BlklS(exV4l@1(if#j*HL>$d8RnncC7L zN&ATq1%pSVk`3b5QwOJCu}nUZ)I(QQbZ;!8WfC=bSbzAr%Q%c)4QzE#lQA`#(z#L* zRtx9sk4vX6JF9UH*6!`#q14@HzSR1H&ACC|Xg?e8P_VtJv9G_AJYktmznz8ozHa%z z`k9<++(5yRTQUw%il4FdjWE=O^^~irG)SZ72~`Z0vlo{@wM6vf9q9Lamp^`(DK*Ym z)+k-9|G<^ho#38^x1baW2L z6dh|BWJ}2QGswQu-2W$wsjr>=a0X>G&H5n5vY~o10txirG3GxEP;{pkAxax{VheZO zppLF7-`<2VTj5!d*yXbGIgY5|n6wHiJ6hltyV&3G>8;|*lJ$@ss&;?8L{Ubla?7qX zrP+F+&0CNt)nqn8vgbNGn#eB53bD0VZdWG5jLu`Zk76wlLSTQsT z>FoZB?|n0d2RSREvLj14@<6vjDZ>8LcL-M^9XW)#947x3UH^vFBz5r3Qkr1rry|-@ zRWJ0%@T4BM(sp zJ&63Lza-ODG5ru$+i4_pz{YjgDU8GttvE%0%uP)Eo5^f-8bWIg^^EEXR0TOgqpvHpu|nDWl8Hj-av zo7%%0v-j=-O>T_gqxte~ENZbY0i)KJw3nPt+z_TZ7!wuY08(^My~+TQ9F8gI1 zD$zy9f3~A=;4NswI>Nhi8kHxnrww#KuVNy$K zrYh;pMuwIWS_-8w`+$8nWb``6##~vanTg|G)H3}**-QJ=^k*9~`!;O~ct^#Ap}W*9 z{n5LOlz*^SYhNz}k{aRK_y(Y87q=h@?0m6;vDw=-Rn!GzWLY z#e$E>M`+!*GL-;`gYCyk%B4e1EIy-_D04qm;8HqLS3E0mO{2WUm{KeRCGF-Op$;Kl z;v(S=;j;~Fpzg_MQk&e?-BUu!`f>q4jSmlna4nj-&I*!)6nY3Z2|-_t*lYs*oILC* zvCRhrk~9Lv0{y1gsB|90iRhLbXKV<-yy<3tX_B5A7XD;*hUQt^$_owe))l{yK`Y@7 z4?j`aN?My6apJnoek(wY#B7>c$3I&VJi-0-;32t0ltzF<5nX__)n|%Z10Z(&L{1us z1kBdmM_JYwW9BS2a{}8*kW)son>*qeXdS1Y>MY|+_N{rv%N^9;Mdn4$?Nqr(hv@}y zRE`fUvq?VyRxuq1>pOOA0s~R$mPkEgoiYXHW7jvvRM@QdQ+Ok;hDNH4w&$^ zDj4-g2gwWk>Nj0TC8#o;S{{dU$m(dkCoZD-;7oR*@R5dOb=pOf5K3d$Yc4iHb2Se1ex#Akr^Z^7$wkSA{-K?mTU z^u{FreVDW(CmVhD)($ULC^w_qgq@zp*au|FKi_YLzKc)Bb^it%8MM9;=Shd8xicA8 z`=duhruo4ckW_{A$hd(_WE&G*b1kY=)r)4Rc7ZSIdePM^*}ff@j~={Q(=5}->k4=))(t7QT`3kkN<$(=Q1LJi_$aEPtn4x zM*&wX?8|z;s+e}lGNwK*y{8jUz7nN*57v-Ino8aw+hL;3E5&qo9XR@ci#hn%UGfgJ z-*#^v&CL~!j1}5YQjiY^8uraLo21@|0BCcG(wh#lVUz`=2ttwVQIwqcD5Q zw80ZXu_#6sMA5Kh9$6|TfWqaeg0r{|MW~@3?*WkQ+w?I`Hqih1lC(8`M=h!8cI=uW z9Mf$y?W?T6!?=fJnuX`c0)m6Y$rW};l3~AjUu-}MTng;fP7!h;{ZSZ1k}lAF#z0s`ZQFa2 zA&U;piKsAR32T+MhkLYc1ba&9MO~{*`*{&iaBk8I$ z7N+SXX)pnukB8kH8-cSGA$~ihH$(vM2X6k0P6TMID^@ROa%?MrTS4q)iyF0_Nqy6% zQCahL0Sn7jm-3F(6>K+CRQm}tbgCU}+ehb)7MI#W5xwSTL!p_lNa*8vh;vqQi7n~$ z<+8L_uE9le33I+A&9zk#v&L|AJhxsH5ybG{7C>4-p%LDTX=pv1Vg8Q5WrQXFYN4c&^QC06!wvf78`UCF87Ng_8E1iBOKCGU{GUk4G_B z$^%d)=n-7LO5B}=3kAomJq9qQj=^6o1DvozpO4a=zw>l^OA;(x4nnzT7OR$;SNmFL z8sqND<(1Z~@kXAB9Hj`VExC-rXO^&XL8$PULLFZCKIzeQfh2|sLC@V{KTv`!g=syy zBQ5{}dTM347180I)MLtZF(TXZ8`(11*Ni%N%KFOLd?sRB}0{ zoEr6F_RAuWgv2f5ZEgnJLbBC^yAPN5m`mlwU`Va{6nQx-%iX&H``yuwjsm&^#dVgI z6@%Q9l7`!d)5WwhGLj9o#9Nm@KxS|AQ{zVBV)t2WL&l$DGd(nr9P^d2R(s9&-;t$R z=l!1+ToW=Bn3c~Lh@*OIwQY*)XriH6L5X1z+;u*0WOR%vbl`=5$bL3>k`iTwZq3}8 zKdn5lvjpkpSCAe?$sIWmE3kVAvHL;QndoSwiRn{Go1OZi0Ir5(j+?i&cy(j@lSOpE zrHC#y@2Dct&muFOrdiKs;7uHw{(97GP@7*}8$s*ShCb!2-!b(LXD+*8F|x{sQtU%5 zox8v)@5yn4Emg^-6xZwt-IPq>o=$L8avn^_q%;&FWAwg|o#JTRe;hW2)3A6aS>ikq zdj^(`goa>_((5EF^UX%RSUff1ZA5bDm(Fb4?TKhQEG5g+GmaJREv(cZ&5J$kaVJ7& z$FF~nHRY7YLO$-$8lhAoOo`cWLKVWT%M#Yi#BasCJIYvE+ngPN5uRa}dOEwUxHWEO zSX!pm{YNU?>XDEyNvGwmw|VXPDCh(+-A$Ag*|~+%V;Qs}*0EvVG`R1~B*0drYY!y& zU@Lu%yu0h-;!ud^Bv5$FYG!ihV8HGmvh}R(UqFIy%M6b~f$c(z5Y!EV&_eY$T4ARr zGl{@INl=3-A;X558c~%ERmAr@dca$38Q9Tp6R4~8Ha7fa`TJk5=ClBlbG#&b!FEK@ zbC1*ycu^yb7>YW;s+k}Wll2?S1hc=GiWNH;oKWcuDd}hq)-Ks5z03Py1yI0ugc;IKeZtk(gXa3nOB}%Ace&Gx82}C?DQ3$Fi zlPXN=1E=C?4R%fxRH01D@ILyL7s|nE6jbB&o`nemkO?$`Hhxi|=Y%#;&Gq$=XC`Fz z+Ri3EY$mGa!U-#~U-_iXp9gX=>VSW{N$!a$Wg3C4xKW7t9J#tIWTNCcpAqXRI)6wK z;EtI5Iv?_x!tYn^ez9CXUup5N;V*hKQ90dB$F?pLWQa*f7gO@ll1wXJzB?uAx(T3y zN{7ZB#Lw0zI1lEr$d!NAF*bDm^qNaMYSnu-{%eQipJ)W!jp^8j@gUoh6h}NuN+plj zU^mq$7dsg&Q0b)p0TX zz&5>}K5PJDxk&_19J~(+l!{UGf|F_rQ%Ht}I<3Ucf|}m_lz~r*Zo4IC4X2DDQQIg& zai7)ybT^336~9EdTR6n^ZTiILs0V)Qbbr?I&_B4cCqY}N$=^JG0>%@ctr&@p%N)IH zW7RHOH?aE%e7X8w?Czop9;lpm(Wkdl33K6rqC)_-fx?a(c-8J)zi7}v7!EOYHnJ!TN(Mv zxvBcSCbB-lGBuJ#f?X})I|V8t5Yy8oK=>XrNfRsk-XOP}DtRGHFt>4@_334@HT8q% z%(!lAmod!o?CfDf>0_<$ zE>-k%YwvJjM_^G;t=8Q>`evJI7X)<81cbiA+=l#>n(%_wHKf%75%A)ubIljZH=J(Iiu2^9`{JLQda@ z6FO=KypB@0@}8XTiVSL#HEW;MpET^BE)sXgLKWlGI;(x2PwW$fROp}*v)Tg$7xl1m`}G;~7!3Q%}5XLN{uiAO6fXWf3TSYwB}Lv@555@*^&GB^E$AmI*_$?eyIH zDw5^+%R7o)15?4EVP^;6`QpR2M-xfoqy5~s90dYZe$)$>=^Hb2_!b{*@^q8mX z+8D0It=mx}J~}oifF00XRHP}AWpR<7kHPa!0X2e0Ey~o@ES90f-bz8F;+(1?qkJ5Y z(&^~%dixg7;ld&(hkLEFd_TmR50u&aR6o#$jl zU^DR)vY&1FD+AC7)WiO%tLniGXjrzcs+&!0ocxq*l zbpWS>a7Ya|-Uexr$kDmIHgp5aybNEdP$0$9hO1rESwsxlMEARCfys@}zc{?~VX%5D zakergI(e`$B>sKvljW5W_W~4dor3Cc)Zi>hJy;X;j@mZ36x#puL{r-KCXQn}V~5R| zUsBNho5SizN>7f5d_$4$#N=0(#M9em7sF-;3=*FIj=-m3D!X(8wCzk-MB%H3t`5T=PdB4BxeV(n713;o76O^jIY+lU6H?NB`k{ z1V<5r^8>$e6+6N0uR!^Lr>Nt(9FIta1*M7<#?zg{`fa*D4#ZSY;5cg%F+8;p!CMkd z)PK1Ew$a$>yC+&w?t~hNNqCk0k*twf`HZ+CRzH_bCUXgAAS?A@noq2R%*YWOJz+Y0 z`_}De;iILVih&(eo}KHsBVkmPEsQ#rg{MM0;qBWfl1AJugmYfP24 zP}@Edh0q_l<*U55;E@#WLQvTq!zQj=NG)$!q*@|3^Kja92{H;c=Ux>Qd1B(tkp<%C zL-lcXf)SL+wI^to#`_o!rOd;{GD22U>FR~eeg1E(imE2ufL~=$pd_lypK}Qs@Wej^Ny6{Y(4g76eTe{bxQn)7$nYuE`1x^i2@5&MWAlw>{2A) zosaatz_H2p3^$dvsGPu7Btnb=BYIjLh6kh3+*}-g^ z#+)ek^ft92=K9_+5gX9n7(Be>c;j*6T_hT7L3PKNziK-hHp8!B*Say-I%gy`^;1xH zw}0wC%56h>@(vHz8UvIl$b3!{Q;xt3wPJ+ZO6sj!1?8;km3LyS*WV5)vFH4p^_#xn zH^R!>@puo->T+GkD{;cSmgT_kQ^XEnG=-|4iwL1uwfriJHu@MN4tnJiF(}8oZ_gV% z%})o*4^O+(9}PQl)~USJGA*e@oXH{~5opWakDn3~+FEam`h_OYo&L37DOBe`qTXdS zUIronb^K#zl=jq?hvgPa_HaTBdRD3DLg3%UHh5hWq$a`pc)&@=a|2J3U|JZO?_gh#OXNynuv`19Q zk)G}X^wmF+69$l#hjaW@c@(~H_vcS}RM|tnGiQz)I8T88ryWwYe)|(c*U2bOTmyz7n`t2JM&t(6U-z|3jbQj-1$iv;*PGLSt z7Q%l09EW~rCLLNf;pw_-$eM%fxSk?H^`^J@_RUp1M^(;4t99N~ENq@88VStpK8gjt z$(;Y1mdB>{m-nR@ty4PNZgz3J)bdE;)||YW9Mh)oJz~otXpDM4hW=)X%O9&MwHI1x z10xj;O07t<2fr^D8L+Z!egvDRyo750Fc?pHQY)~jo;vUxQDwU1=9C$X7t;M?Apfti z<8W03tJvI5w;0^Oa3xsAgU)Qs***~%;w4L6AjKSQ zv`zl|SB+n<{UkgkQ1Xd19fg(X>4kdOonpr1E5CFm7sPGWl5wtJz47(>}>9)&k)iUZ>(I zQap}knycicV+;=H5#PHznG)yWbXtHJ$}@$uh>peE*^a*0ar@ytaT|&$;AU|l{MYC> zk*b-JW!FM+{bgKvK(@ja)&jQ3K2TFtSc|@1K{Eu)p}?7$iX@r-u5lC_{fn{&Xo2+2 zDLwS`bz+`DQhGN9_sv!H6%{S?Cak&Z^h29>mF;Ci1dcHHFWCc!IDWp=FR0@lN)14Ls2cmh3WVqL>i+=8?_1tuVSIrT~&kXn*&u&QiJc$%Kqf zTf(Qnd18;0n!}3QU8gMnDuzs>Wmzvhn=1Bll~V;#RrZ;fLZZh@m%<$L+t{tj=y3Q} z?T|8|#6_+%*{%_QvjzHoGjKkLvf}bEX7qBLerULXoNzL(KS}FL2*O{tDl@eG_Nq;v zshjFaB+b{TbHnw(RL7*ZGdVnOI|EaxG!mj2M>u#7( zs-2&G)2s}_utca*6=&$Nt5if8p*risE$ZUROP=V%4ZZZ#^CynCjn#AA@;pWwTaNoD zl(D3>Ef{}4TD)~!pPZxW#11FpZ0?G;nA2tdqZn@hZ9bV=!bs;v&CKgkBe}rniQhps z9AxKD-rW87r(H>=`((I|f@c}LZ1_AfHF&tQ(p-pYOgqm-EA!LA`tGZS$hlri}Ao zZ9z$uq&fQ}nr_XF`p{K$FZWZ`ceZb`#8+=gz)udMP`d8dp*$1qx<6m(PKiZ?*ojBv zb+uw{{&)$`YT8*$6ya>^o!?KIjfnz|Jt=UG^Eg|sTClvoouKnyYhFvY$G$$dEEf|^ z;?;OwuZcRFgcQ4{4NdxRn9PyIuS(L}SK(AU*#+L^u10XETv=30!rWS4)syD)Yx;b& zD4=B(dZvlZ`YtsQSna;o$-k-WNf-U_)y(lWnmU$?(Nx!pNmmvZT{p&iBT>~wOp>mEl z1@ue@5WCr}CJs=sEKRf8l+V1b5Opd_{ltqc|A(!)0QQk`&R%KTR+vA!*x}ploLK(z^R!$~CN-x}tnNqf@8O(^klR~%G?w`%L}kR1Zt8GKAr5CKeNx z*2aEIx~2tLVYw zBD>%VB4wA4RTf?uoE;i`b$xhhW&gPI6_-zp{aBn&OnFDGl}}8gX0LgaII(MQC3?gl zA9=OrK`(Qs^Y=_J*NFt9#h%o7PV-*VEJS|ZHSbH^`2a>f@_!I!U2NR^++=!h(49>J z_Z&{@WSWFY;ghXCdN;hLiY37uF8J6|Lv-uZX4#RHBi|kGCcSPJU;o6o@aoJuVJ~T- z+d4t9VH5czJH_=bUQ$yxWh%F|$I@+Jn{Yd{ysKR8kS?g^c!__EZ=JZ}Z;dr)W6yA# zkd@N!I1h(s$fS|T4tfbbL4?}zEplV0TEkEBQ-h|5)@5b#j}$0`e2s$yUQ9M3{@t7| zdksuo!hH)%X`&C$)U*HE?0DC&ppNGs#KXuVbn8yFH40?>cVlWe4qo)`N^8RNmC#4LmmiQL*zW}jrUFrY; literal 0 HcmV?d00001 From 68b0777e4239a69a4b95406d9726f849675a9d43 Mon Sep 17 00:00:00 2001 From: ASPhilemon <88459392+ASPhilemon@users.noreply.github.com> Date: Tue, 23 Sep 2025 10:30:53 +0000 Subject: [PATCH 20/52] [IMP] tutorials/module_data: improve phrasing closes odoo/documentation#14647 Forward-port-of: odoo/documentation#14593 Signed-off-by: Antoine Vandevenne (anv) --- content/developer/tutorials/define_module_data.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/developer/tutorials/define_module_data.rst b/content/developer/tutorials/define_module_data.rst index 5df93e9517..a9fd4d8451 100644 --- a/content/developer/tutorials/define_module_data.rst +++ b/content/developer/tutorials/define_module_data.rst @@ -31,8 +31,7 @@ more... Demo Data --------- -In additional to master data, which are requirements for a module to work properly, we also like -having data for demonstration purposes: +In addition to master data, which is required for a module to work properly, we can also provide data for demonstration purposes: * Help the sales representatives make their demos quickly. * Have a set of working data for developers to test new features and see how these new features look From 81418fa95706dfef1bdd69ef581181efacd107dc Mon Sep 17 00:00:00 2001 From: "Antoine Vandevenne (anv)" Date: Tue, 23 Sep 2025 06:30:14 +0000 Subject: [PATCH 21/52] [FIX] howtos/translations: fix typo in "wainting" closes odoo/documentation#14648 X-original-commit: a1a8ca93f32d55bfe9a196a5555e60685643dd80 Signed-off-by: Antoine Vandevenne (anv) --- content/developer/howtos/translations.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/developer/howtos/translations.rst b/content/developer/howtos/translations.rst index 0544ab66e5..fdddf39615 100644 --- a/content/developer/howtos/translations.rst +++ b/content/developer/howtos/translations.rst @@ -176,8 +176,8 @@ Blocks **Do** keep in one block, giving the full context to translators:: # good, allow to change position of the number in the translation - _("You have %s invoices wainting") % len(invoices) - _.str.sprintf(_t("You have %s invoices wainting"), invoices.length); + _("You have %s invoices waiting") % len(invoices) + _.str.sprintf(_t("You have %s invoices waiting"), invoices.length); # good, full sentence is understandable _("Reference of the document that generated " + \ From 1c4932e252d9a11c52da59dcd8f456a8e3ce780f Mon Sep 17 00:00:00 2001 From: "Antoine Vandevenne (anv)" Date: Tue, 23 Sep 2025 06:25:20 +0000 Subject: [PATCH 22/52] [IMP] contributing/git_guidelines: document [CLN] and [LINT] commit tags closes odoo/documentation#14657 X-original-commit: f1c74c3ed566bbe188aaebe2c56a0fb02dffe981 Signed-off-by: Antoine Vandevenne (anv) --- content/contributing/development/git_guidelines.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/contributing/development/git_guidelines.rst b/content/contributing/development/git_guidelines.rst index 9323555f14..c5a9f1a52b 100644 --- a/content/contributing/development/git_guidelines.rst +++ b/content/contributing/development/git_guidelines.rst @@ -66,6 +66,8 @@ Tags are used to prefix your commit. They should be one of the following - **[CLA]** for signing the Odoo Individual Contributor License; - **[I18N]** for changes in translation files; - **[PERF]** for performance patches; +- **[CLN]** for code cleanup; +- **[LINT]** for linting passes; After tag comes the modified module name. Use the technical name as functional name may change with time. If several modules are modified, list them or use From a9933b1c71f0094f8f0f855b3d252d05f9119e77 Mon Sep 17 00:00:00 2001 From: Fabrice Henrion Date: Tue, 23 Sep 2025 18:32:39 +0200 Subject: [PATCH 23/52] [IMP] typos closes odoo/documentation#14659 Signed-off-by: Zachary Straub (zst) --- content/applications/productivity/voip/didww.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/applications/productivity/voip/didww.rst b/content/applications/productivity/voip/didww.rst index d69b1d9a4d..87c05799e4 100644 --- a/content/applications/productivity/voip/didww.rst +++ b/content/applications/productivity/voip/didww.rst @@ -11,11 +11,11 @@ regions are supported by DIDWW's services. DIDWW setup =========== -After verifying country coverage and avaiabilty, create an account with `DIDWW +After verifying country coverage and availability, create an account with `DIDWW `_. Then navigate to the `DIDWW Dashboard `_. -To transfer existing numbers from an existing telephone network servicer provider, follow the steps +To transfer existing numbers from an existing telephone network service provider, follow the steps outlined on the `DIDWW website `_. Purchase new numbers @@ -51,7 +51,7 @@ Configure or add the following parameters: - :guilabel:`Allowed Codecs`: `OPUS`, `PCMU`, `PCMA`, `telephone-event`, `g722`, `g729`. - :guilabel:`Allowed media types`: `SRTP-DTLS` -- :guilabel:`Default media type`: `STRP-DTLS` +- :guilabel:`Default media type`: `SRTP-DTLS` - :guilabel:`Transport protocol`: `UDP`, `TCP`, `WSS`, `TLS` .. image:: didww/sip-device-route.png @@ -59,8 +59,8 @@ Configure or add the following parameters: .. tip:: If no phone number available from drop-down selection in *Inbound and Outbound DID/Caller ID* - selection, the :guilabel:`Inbounch voice trunk` needs to be modified. Navigate to the dashboard, - then click :guilabel:`My Numbers`. Scroll to :guilabel:`Configuration`.In the :guilabel:`Inbound + selection, the :guilabel:`Inbound voice trunk` needs to be modified. Navigate to the dashboard, + then click :guilabel:`My Numbers`. Scroll to :guilabel:`Configuration`. In the :guilabel:`Inbound voice trunk` field, select :guilabel:`phone.systems`. Odoo setup @@ -76,7 +76,7 @@ Under :guilabel:`PBX Server IP`, enter `sip.phone.systems`. :alt: The VoIP providers page in Odoo. To configure a user's VoIP provider, click the user avatar in the top-right of the database, then -click :guilabel:`My Profile`. Click into the :guilabel:`VoIP` tab, then under the :guilabel:`Voip +click :guilabel:`My Preferences`. Click into the :guilabel:`VoIP` tab, then under the :guilabel:`Voip Provider` field, select :guilabel:`DIDWW`. Finally, enter the :guilabel:`Voip Username` and :guilabel:`Voip Secret`, then save. From 06a435744f6939dddfa7b833a72f647cb55a1a95 Mon Sep 17 00:00:00 2001 From: Fabrice Henrion Date: Tue, 23 Sep 2025 18:32:39 +0200 Subject: [PATCH 24/52] [IMP] voip: fix DIDWW typos closes odoo/documentation#14660 closes odoo/documentation#14674 Signed-off-by: Zachary Straub (zst) --- content/applications/productivity/voip/didww.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/applications/productivity/voip/didww.rst b/content/applications/productivity/voip/didww.rst index 87c05799e4..b8e04c60e0 100644 --- a/content/applications/productivity/voip/didww.rst +++ b/content/applications/productivity/voip/didww.rst @@ -75,10 +75,10 @@ Under :guilabel:`PBX Server IP`, enter `sip.phone.systems`. .. image:: didww/new-provider.png :alt: The VoIP providers page in Odoo. -To configure a user's VoIP provider, click the user avatar in the top-right of the database, then -click :guilabel:`My Preferences`. Click into the :guilabel:`VoIP` tab, then under the :guilabel:`Voip -Provider` field, select :guilabel:`DIDWW`. Finally, enter the :guilabel:`Voip Username` and -:guilabel:`Voip Secret`, then save. +To configure a user's VoIP provider, click the user avatar icon in the top-right corner of the +database, and then choose :guilabel:`My Preferences` from the sub-menu. Then click into the +:guilabel:`VoIP` tab, and under the :guilabel:`Voip Provider` field, select :guilabel:`DIDWW`. +Finally, enter the :guilabel:`Voip Username` and :guilabel:`Voip Secret`, then save. .. image:: didww/odoo-credentials.png :alt: DIDWW provider, username, and secret credentials entered. From 1fc0adf527a0883dee8b39e61f876d509e4ed265 Mon Sep 17 00:00:00 2001 From: "Antoine Vandevenne (anv)" Date: Tue, 23 Sep 2025 13:55:51 +0000 Subject: [PATCH 25/52] [FIX] tutorials/discover_js_framework: fix example link for `reactive` closes odoo/documentation#14667 X-original-commit: 84dc025f1b0e763c94975bc9e6c4ef053b88134d Signed-off-by: Antoine Vandevenne (anv) --- .../tutorials/discover_js_framework/02_build_a_dashboard.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/developer/tutorials/discover_js_framework/02_build_a_dashboard.rst b/content/developer/tutorials/discover_js_framework/02_build_a_dashboard.rst index 861a95dbc7..e3ca788f67 100644 --- a/content/developer/tutorials/discover_js_framework/02_build_a_dashboard.rst +++ b/content/developer/tutorials/discover_js_framework/02_build_a_dashboard.rst @@ -312,8 +312,8 @@ changes. .. seealso:: - `Documentation on reactivity <{OWL_PATH}/doc/reference/reactivity.md>`_ - `Example: Use of reactive in a service - `_ + `_ 8. Lazy loading the dashboard ============================= From 9bc594f96d685f8104ee4997a0699f98a2d6dbc2 Mon Sep 17 00:00:00 2001 From: Ricardo Gomes Rodrigues Date: Wed, 17 Sep 2025 12:23:31 +0000 Subject: [PATCH 26/52] [IMP] sms_marketing: add warnings for Twilio Since some questions have appeared a couple of times, let's add a warning in the documentation. task-none closes odoo/documentation#14687 X-original-commit: 141819104bb19ad29fe12ab26594ede2a735681c Signed-off-by: Ricardo Gomes Rodrigues (rigr) --- .../applications/marketing/sms_marketing/twilio.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/content/applications/marketing/sms_marketing/twilio.rst b/content/applications/marketing/sms_marketing/twilio.rst index 94635ebe6e..9d32e49092 100644 --- a/content/applications/marketing/sms_marketing/twilio.rst +++ b/content/applications/marketing/sms_marketing/twilio.rst @@ -43,9 +43,14 @@ be able to send SMS messages. These cost credits that are to be bought on Twilio #. Go back to bottom of the :guilabel:`Dashboard` page #. Copy the :guilabel:`Account SID` and :guilabel:`Auth Token` -Beware that sending SMS to some countries (such as the US or Canada) might require a registration. -This can only be done by you, and not by Odoo. Please check out `Twilio's Help Center -`_ +.. important:: + In case of a testing account, you will only be able to send SMS to phones that you have verified + within `Twilio's console `_. + +.. note:: + Sending SMS to some countries (such as the US or Canada) might require a registration. This can + only be done by you, and not by Odoo. Please check out `Twilio's Help Center + `_. Setup Odoo to use Twilio From 0aafbe8cd24986cfe1aa8527a68e9de6cb2721cd Mon Sep 17 00:00:00 2001 From: Sven Fuehr Date: Wed, 10 Sep 2025 14:51:38 +0000 Subject: [PATCH 27/52] [ADD] accounting/l10n_be: documentation for new codaclean module MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In enterprise PR odoo/enterprise/pull/93909 we add a new module to automatically import bank statements from Codaclean. Codaclean is an external provider that allows its users to access their bank statements in form of CODA files. This PR adds the information on how to configure / use the new module. task-4844423 closes odoo/documentation#14699 X-original-commit: 1cc2adfc7d3f8fac5be3a44fa041a4e9db5b91e3 Signed-off-by: Xavier Platteau (xpl) Signed-off-by: Sven Führ (svfu) --- .../finance/fiscal_localizations/belgium.rst | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/content/applications/finance/fiscal_localizations/belgium.rst b/content/applications/finance/fiscal_localizations/belgium.rst index ef32ded339..7db802dc0c 100644 --- a/content/applications/finance/fiscal_localizations/belgium.rst +++ b/content/applications/finance/fiscal_localizations/belgium.rst @@ -428,6 +428,76 @@ Potential issues :guilabel:`CodaBox` section, click on :guilabel:`Manage Connection`, then click on :guilabel:`Revoke`. +.. _belgium/codaclean: + +Codaclean +--------- + +**Codaclean** is a service that allows Belgian companies and accounting firms to access bank +information and statements. Odoo provides a way to import such statements and their transactions +automatically. + +.. _belgium/codaclean-configuration: + +Configuration +~~~~~~~~~~~~~ + +.. note:: + Make sure to :ref:`install ` the :guilabel:`Codaclean` (`l10n_be_codaclean`) + module. + + +.. _belgium/codaclean-configuration-connection: + +Connection with Odoo +******************** + +To connect Odoo with Codaclean, follow these steps: + +#. Open the Settings app, navigate to the :ref:`Companies ` section, and + click :icon:`oi-arrow-right` :guilabel:`Manage Companies` to make sure the company's + :guilabel:`Country` is set to :guilabel:`Belgium`. +#. Go to :menuselection:`Accounting --> Configuration --> Settings` and scroll to the + :guilabel:`Codaclean` section. +#. Click :guilabel:`Manage Connection` to open the connection wizard, enter the Codaclean + :guilabel:`Username` and :guilabel:`Password` and click :guilabel:`Connect`. + +The :guilabel:`Status` is updated to :guilabel:`Connected`. + +.. tip:: + Once the connection is established, the :guilabel:`Manage Connection` wizard provides two options: + + - Update Codaclean credentials: Enter the new :guilabel:`Username` and :guilabel:`Password`, then + click :guilabel:`Change Credentials`. + - Remove Codaclean connection: Click :guilabel:`Disconnect`; no :guilabel:`Username` or + :guilabel:`Password` is required. + +.. _belgium/codaclean-configuration-journal: + +Journal creation +**************** + +A specific bank journal must be created for Codaclean synchronization. To do so, :doc:`create a new +bank journal <../accounting/bank>`, make sure to enter the correct IBAN in the :guilabel:`Bank +Account Number` field, and select :guilabel:`Codaclean Syncronization` in the :guilabel:`Bank Feeds` +field. + +.. tip:: + For bank transactions in different currencies, it is recommended to create a separate journal for + each currency, using the same bank account. + +.. _belgium/codaclean-synchronization: + +Synchronization +~~~~~~~~~~~~~~~ + +Once the connection is established, Odoo is synchronized with Codaclean, and new CODA files received +via Codaclean are checked every twelve hours. + +.. tip:: + To manually check for new CODA files, go to the Accounting Dashboard and click :guilabel:`Fetch + from Codaclean` on the relevant :ref:`journal ` . + Electronic invoicing ==================== From a87acb2f3ecac7d3bc1793deea0d03c4205f7cff Mon Sep 17 00:00:00 2001 From: jero-odoo Date: Wed, 24 Sep 2025 18:59:15 +0000 Subject: [PATCH 28/52] [ADD] MRP: Delayed production filter closes odoo/documentation#14698 X-original-commit: 7742f7fadb2e12fb7ec7c12cc949ed39631f1155 Signed-off-by: Jessica Rogers (jero) --- .../manufacturing/reporting.rst | 1 + .../manufacturing/reporting/delayed.rst | 65 ++++++++++++++++++ .../reporting/delayed/deadline.png | Bin 0 -> 19646 bytes .../reporting/delayed/delayed-filter.png | Bin 0 -> 24697 bytes 4 files changed, 66 insertions(+) create mode 100644 content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst create mode 100644 content/applications/inventory_and_mrp/manufacturing/reporting/delayed/deadline.png create mode 100644 content/applications/inventory_and_mrp/manufacturing/reporting/delayed/delayed-filter.png diff --git a/content/applications/inventory_and_mrp/manufacturing/reporting.rst b/content/applications/inventory_and_mrp/manufacturing/reporting.rst index aba1a819fa..a944f922e7 100644 --- a/content/applications/inventory_and_mrp/manufacturing/reporting.rst +++ b/content/applications/inventory_and_mrp/manufacturing/reporting.rst @@ -5,6 +5,7 @@ Reporting .. toctree:: :titlesonly: + reporting/delayed reporting/allocation reporting/oee reporting/production_analysis diff --git a/content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst b/content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst new file mode 100644 index 0000000000..2916fc6b2e --- /dev/null +++ b/content/applications/inventory_and_mrp/manufacturing/reporting/delayed.rst @@ -0,0 +1,65 @@ +====== +Delays +====== + +.. |SO| replace:: :abbr:`SO (sales order)` +.. |SOs| replace:: :abbr:`SOs (sales orders)` +.. |MO| replace:: :abbr:`MO (manufacturing order)` +.. |MOs| replace:: :abbr:`MOs (manufacturing orders)` +.. |RfQ| replace:: :abbr:`RfQ (request for quotation)` + +Odoo's *Manufacturing* app displays *delays* in manufacturing orders through the :guilabel:`Delayed +Productions` filter. If the |MO|'s end date exceeds its deadline, the deadline is highlighted in red +to draw attention to the delay. + +.. image:: delayed/delayed-filter.png + :alt: The delayed production filter in Odoo. + +Deadline calculation +==================== + +The |MO| deadline depends on how the |MO| was created, and is calculated as follows: + +- **Make To Order**: the |MO| deadline is the *Sales Order Delivery Date*. +- **Replenishment**: the |MO| deadline is *today + Manufacturing Lead Time*. +- **Manually created MO**: the deadline field remains empty. + +.. important:: + The |MO| *deadline* is not the same as the |MO| *end date*. + + The end date is computed as: + + .. math:: + \text{End date} = + \text{Scheduled start date} + +\text{Total duration of all operations} + +Filters +======= + +Several additional filters are available to help track delays: + +- :guilabel:`Delayed Productions`: the |MO|'s *scheduled start date* is later than the deadline. +- :guilabel:`Late`: the |MO|'s *scheduled end date* exceeds the deadline, highlighted in red. +- :guilabel:`Late Availability`: one or more required components are not available before the + deadline. For example, a confirmed purchase order or manufacturing order for components is + scheduled to end *after* the |MO| deadline. +- :guilabel:`Components Available`: all components are available to begin production. + +Use case +======== + +Consider an |MO| with a deadline of **September 17th**: + +- If production on the |MO| starts after September 17th, it appears in the :guilabel:`Delayed + Productions` filter. +- If required components are scheduled to arrive after September 17th, the |MO| appears in the + :guilabel:`Late Availability` filter. +- If the |MO| has a scheduled end date after September 17th, it appears in the :guilabel:`Late` + filter. + +.. image:: delayed/deadline.png + :alt: An MO with the deadline emphasized. + +By combining these indicators, planners can quickly identify where production is at risk of missing +delivery commitments. diff --git a/content/applications/inventory_and_mrp/manufacturing/reporting/delayed/deadline.png b/content/applications/inventory_and_mrp/manufacturing/reporting/delayed/deadline.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e7991a098e0cb4b3a935c2c25091b47f6f6666 GIT binary patch literal 19646 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 n000000000000000fcIVi&gkoxa=3El00000NkvXXu0mjfvE96c literal 20747 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 S0{$&^R9i#ueu?_y7yk$JfjLnC diff --git a/content/applications/hr/payroll/contracts/salary-info.png b/content/applications/hr/payroll/contracts/salary-info.png index 6e98b1e0aa99bb0d0f364fad316703ae43e77d6d..feba99fe67ed6b0001322a0839a653d33bd6b6e8 100644 GIT binary patch literal 11668 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 literal 12227 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 IDdV931@B~nHUIzs diff --git a/content/applications/hr/payroll/contracts/send-contract.png b/content/applications/hr/payroll/contracts/send-contract.png index 3a0a2846d9b0c4fe5089e24dcf0ed25448c8d3ae..0308cee77c8457b5496aa7df6a66fe0f14bfca07 100644 GIT binary patch literal 26097 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 DpPOdN literal 10222 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 DwBc)+ diff --git a/content/applications/hr/payroll/contracts/signatories.png b/content/applications/hr/payroll/contracts/signatories.png new file mode 100644 index 0000000000000000000000000000000000000000..e266a517a43852d5e5e05b18b10f902d0a4b9ed8 GIT binary patch literal 19983 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 Ts{ Date: Thu, 11 Sep 2025 15:38:40 +0000 Subject: [PATCH 08/52] [IMP] Payroll: Updating work entries closes odoo/documentation#14565 X-original-commit: 0596eadb7c4e754101167bc1e3740fe84ffddad0 Signed-off-by: Lara Martini (larm) --- .../applications/hr/payroll/work_entries.rst | 244 ++++++++---------- .../payroll/work_entries/conflict-details.png | Bin 18424 -> 19190 bytes .../payroll/work_entries/conflict-pop-up.png | Bin 19138 -> 16799 bytes .../hr/payroll/work_entries/create.png | Bin 12977 -> 11188 bytes .../hr/payroll/work_entries/entry-details.png | Bin 0 -> 33221 bytes .../work_entries/generate-payslips.png | Bin 16425 -> 0 bytes .../payroll/work_entries/print-payslips.png | Bin 19999 -> 0 bytes .../payroll/work_entries/time-off-details.png | Bin 40459 -> 0 bytes .../work_entries/work-entries-overview.png | Bin 15476 -> 10225 bytes 9 files changed, 108 insertions(+), 136 deletions(-) create mode 100644 content/applications/hr/payroll/work_entries/entry-details.png delete mode 100644 content/applications/hr/payroll/work_entries/generate-payslips.png delete mode 100644 content/applications/hr/payroll/work_entries/print-payslips.png delete mode 100644 content/applications/hr/payroll/work_entries/time-off-details.png diff --git a/content/applications/hr/payroll/work_entries.rst b/content/applications/hr/payroll/work_entries.rst index 301968f151..4ba19144d6 100644 --- a/content/applications/hr/payroll/work_entries.rst +++ b/content/applications/hr/payroll/work_entries.rst @@ -2,12 +2,20 @@ Work entries ============ -Work entries are created automatically in the *Payroll* app, based on the employee's :ref:`salary -structure type `, and from the *Planning*, *Attendances*, and *Time Off* -applications. +The **Payroll** app automatically creates work entries based on the employee's :ref:`salary +structure type `, and from the **Planning**, **Attendances**, and **Time +Off** applications. -The *Work Entries* dashboard of the *Payroll* application provides a visual overview of the -individual work entries for every employee. +Work entries provide the **Payroll** app with the worked hours used to compute employee paychecks, +if the employee's salary is based on work entries, as opposed to a salaried position. + +.. _payroll/work-entry-dashboard: + +Work entry dashboard +==================== + +The *Work Entries* dashboard of the **Payroll** app provides a visual overview of the individual +work entries for every employee. To open the dashboard, navigate to :menuselection:`Payroll app --> Work Entries --> Work Entries`. @@ -15,72 +23,72 @@ On the :guilabel:`Work Entry` dashboard, work entries appear in alphabetical ord first name of the employees. The entire month is displayed, with the current day highlighted in pale yellow. -If any entries have :ref:`conflicts ` that need to be resolved, the dashboard -defaults to filter only the :guilabel:`Conflicting` entries. - -To remove the filter from the :guilabel:`Search...` bar to view all work entries, click the -:guilabel:`✖️ (remove)` icon on the :guilabel:`Conflicting` filter in the :guilabel:`Search...` bar, -and all work entries appear in the list. +The :guilabel:`Work Entry` dashboard has a default :guilabel:`Conflicting` filter, which displays +only work entries with :ref:`conflicts ` to be resolved. .. image:: work_entries/work-entries-overview.png - :align: center :alt: Conflicts dashboard view showing all employee's conflicts in work entries. +.. tip:: + Remove the default :guilabel:`Conflicting` filter from the search bar to view *all* work entries. + .. _payroll/adjust-view: -To change the view, so only the entries for a single day, week, or month are shown, click on -:guilabel:`Month`. A drop-down menu appears with the options of :guilabel:`Day`, :guilabel:`Week`, -or :guilabel:`Month`. Click on one of the options to only display data for that specific selection. +Adjust view +----------- -Use the :guilabel:`⬅️ (left arrow)` and :guilabel:`➡️ (right arrow)` icons on the left and right -side of the :guilabel:`Month` button to adjust the displayed dates. The arrows adjust the date based -on the type of time selected. +To change the view so that only the entries for a single day, week, month, quarter, or year are +shown, click the :icon:`fa-calendar` :guilabel:`(Month)(Year)` button. A drop-down menu appears with +the options of :guilabel:`Today`, :guilabel:`This week`, :guilabel:`This month`, :guilabel:`This +quarter`, or :guilabel:`This year`. Click on one of the options to only display data for that +specific selection. + +Use the :icon:`oi-arrow-left` :guilabel:`(left arrow)` and :icon:`oi-arrow-right` :guilabel:`(right +arrow)` buttons to adjust the displayed dates. The arrows adjust the date based on the type of time +selected. For example, if :guilabel:`Month` is selected, the arrows move one month with each click of the arrow. If :guilabel:`Week` or :guilabel:`Day` is selected, the time moves by either a week or a day for each click of the arrow, respectively. -At any point, to return to a view containing the current day, click the :guilabel:`Today` button. +At any point, to return to a view containing the current day, click the :icon:`fa-crosshairs` +:guilabel:`(Focus Today)` button. .. _payroll/new-work-entry: Add a new work entry ==================== -If a work entry is missing and needs to be added, such as sick time, or if an employee forgot to -clock in and out for a shift, click :guilabel:`New` on the :guilabel:`Work Entry` dashboard, to -create a new work entry. - -A :guilabel:`Create` work entry pop-up form appears. +If a work entry is missing, such as sick time, or if an employee forgot to clock in and out for a +shift, a new work entry must be created for the missing shift. -Enter the following information on the form: +Click :guilabel:`New` on the :ref:`work entry dashboard `, and a blank +:guilabel:`Create` work entry pop-up form appears. Enter the following information on the form: -- :guilabel:`Description`: enter a short description for the work entry, such as `Sick Time`. If - this field is left blank, it automatically populates once an employee is selected. The default - entry is `Attendance: (Employee)`. -- :guilabel:`Employee`: select the employee the work entry is for, using the drop-down menu. -- :guilabel:`Work Entry Type`: select the :ref:`work entry type ` using the +- :guilabel:`Description`: Enter a short description for the work entry, such as `Sick Time`. The + default entry is `Attendance: (Employee)`. +- :guilabel:`Employee`: Select the employee the work entry is for, using the drop-down menu. +- :guilabel:`Work Entry Type`: Select the :ref:`work entry type ` using the drop-down menu. -- :guilabel:`From` and :guilabel:`To`: enter the start (:guilabel:`From`) and end (:guilabel:`To`) +- :guilabel:`From` and :guilabel:`To`: Enter the start (:guilabel:`From`) and end (:guilabel:`To`) dates and times for the work entry. First, click on either the :guilabel:`From` or :guilabel:`To` line to reveal a calendar pop-up - window. Select the date by navigating to the correct month and year, using the :guilabel:`< (left - arrow)` and :guilabel:`> (right arrow)` icons, then click on the specific day. + window. Select the date by navigating to the correct month, then click on the specific day to + select it. Next, select the time, by clicking on either the hour or minute fields at the bottom of the - calendar, and select the desired time for both the hour and minutes. + calendar, and set the desired time. - When the date and time are correct for the entry, click the :guilabel:`Apply` button. -- :guilabel:`Duration`: displays the hours based on the :guilabel:`To` and :guilabel:`From` entries. - Modifying this field modifies the :guilabel:`To` field (the :guilabel:`From` field does not - change). + When the date and time for the entry are correct, click the :guilabel:`Apply` button. +- :guilabel:`Duration`: This field displays the hours based on the :guilabel:`To` and + :guilabel:`From` entries. Modifying this field modifies the :guilabel:`To` field (the + :guilabel:`From` field does not change). Once the desired information is entered, click :guilabel:`Save & Close` to save the entry, and close the pop-up form. .. image:: work_entries/create.png - :align: center :alt: Filling in the work entry Create form in Odoo. .. _payroll/conflicts: @@ -88,9 +96,9 @@ the pop-up form. Conflicts ========= -A conflict appears for any request that has not been approved, such as sick time or vacation, or if -there are any errors on the work entry, such as required fields being left blank. Conflicts are -required to be resolved before payslips can be generated. +A conflict occurs when a request has not been approved, such as sick time or vacation, or if there +are any errors on the work entry. Conflicts that span the current pay period being processed +**must** be resolved before payslips can be generated. Any work entry that has a conflict to be resolved is indicated on the main :guilabel:`Work Entry` dashboard, which can be accessed by navigating to :menuselection:`Payroll app --> Work Entries --> @@ -101,49 +109,62 @@ entry. Click on an individual work entry to see the date and time for the specif click :guilabel:`Edit` to view the conflict details in a pop-up window. .. image:: work_entries/conflict-pop-up.png - :align: center :alt: A row of conflicts, with one entry showing details for the conflict. The conflict is briefly explained in an orange text box in the :guilabel:`Open` pop-up window that appears. -The :guilabel:`Description`, :guilabel:`Employee`, and :guilabel:`Work Entry Type` are listed on -the left side of the pop-up window. The :guilabel:`From` and :guilabel:`To` date and time range, as -well as the total time (in hours) in the :guilabel:`Duration` field, appears on the right side. - -If the conflict is due to a time off request that has not been approved yet, a :guilabel:`Time Off` -field appears on the left side, with the type of time off requested in the description. - -.. image:: work_entries/conflict-details.png - :align: center - :alt: The detailed conflict pop-up window that appears when Edit is clicked. +The :guilabel:`Description`, :guilabel:`Employee`, and :guilabel:`Work Entry Type` are listed on the +left side of the pop-up window. The :guilabel:`From` and :guilabel:`To` date and time range, as well +as the total time (in hours) in the :guilabel:`Duration` field, appears on the right side. Time off conflicts ------------------ -The most common work entry conflicts are for time off requests that have been submitted, but not yet -approved, which results in duplicate work entries for that employee (one for time off and another +The most common work entry conflicts are for time off requests. Odoo automatically generates work +entries for specific time periods. When time off is requested after these work entries are +generated, it results in duplicate work entries for that employee (one for time off and another for regular work). If there is a conflict because a time off request is in the system for the same time that a regular -work entry already exists, the time off request is entered in the :guilabel:`Time Off` field. +work entry already exists, the time off request is entered in a :guilabel:`Time Off` field. -The time off conflict can be resolved either on the work entry pop-up window, or on a detailed time -off request pop-up window. +Conflicts can be resolved either directly on the work entry or in the detailed time off request +form. + +.. _payroll/time-off-work-entry: Resolve on work entry ~~~~~~~~~~~~~~~~~~~~~ -To resolve the time off conflict on this work entry pop-up window, click the :guilabel:`Approve Time -Off` button to approve the time off request, and resolve the work entry conflict. +If no additional details are needed to determine if a time off request should be approved or +refused, the time off conflict can be resolved directly from the work entry pop-up window. + +Click either the :guilabel:`Refuse Time Off` or :guilabel:`Approve Time Off` buttons to refuse or +approve the time off request, then the two buttons disappear. Click the :guilabel:`Save & Close` +button to close the pop-up window. + +The conflict disappears from the :guilabel:`Work Entry` dashboard, since the conflict is now +resolved. + +.. image:: work_entries/conflict-details.png + :alt: The detailed conflict pop-up window that appears when the Edit button is clicked. + +.. note:: + If the time off is approved, the status of the work entry conflict changes to + :guilabel:`Cancelled`. If the time off is refused, the status changes to :guilabel:`Draft`. -The :guilabel:`Approve Time Off` and :guilabel:`Refuse Time Off` buttons disappear. Click the -:guilabel:`Save & Close` button to close the pop-up window. The conflict disappears from the -:guilabel:`Work Entry` dashboard, since the conflict is resolved. +.. _payroll/time-off-request-form: Resolve on time off request ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If more details are needed to make a decision about the time off request, hover over the entry in +the :guilabel:`Time Off` field, and click the :icon:`fa-external-link` :guilabel:`(Internal Link)` +icon that appears at the end of the line. This causes an :guilabel:`Open: Time Off` pop-up window to +load, with all the time off request details. Click either the :guilabel:`Approve` or +:guilabel:`Refuse` buttons to approve or refuse the request. + To resolve the time off conflict on the detailed time off request pop-up window, click the :guilabel:`Internal Link` button at the end of the :guilabel:`Time Off` entry line, and the time off request details appear in a new pop-up window. The request can be modified, if needed. @@ -151,9 +172,8 @@ request details appear in a new pop-up window. The request can be modified, if n Click the :guilabel:`Approve` button to approve the request, then click the :guilabel:`Save & Close` button to save the changes, and go back to the work entry conflict pop-up window. -.. image:: work_entries/time-off-details.png - :align: center - :alt: The detailed time off request form. +.. image:: work_entries/entry-details.png + :alt: The detailed time off request information. Now, the :guilabel:`Approve Time Off` button is hidden, only the :guilabel:`Refuse Time Off` button is visible. @@ -170,92 +190,44 @@ it has been resolved. Regenerate work entries ======================= -When regenerating work entries, any manual changes, such as resolved conflicts, are overwritten, -and work entries are regenerated (or recreated) from the applications that created them. +After conflicts are resolved, the affected work entries must be regenerated. This recreates the +specified work entries, and overwrites the previously conflicting work entries. -This method for correcting a large amount of conflicts is recommended to keep all records correct. While :ref:`conflicts ` *can* be resolved individually, if the conflicts are -caused from another application, it is best practice to ensure the records in the other applications -are also correct. That is why it is recommended to resolve these conflicts in the applications that -created the conflict. - -Another reason this method is recommended is because, when work entries are regenerated, the -conflicts reappear, if the issue in the related application is **not** resolved. +caused from another application, such as **Planning** or **Attendances**, it is best practice to +correct the record in the application causing the conflict. The reason this method is recommended is +because, if the issue in the related application is **not** resolved, when work entries are +regenerated, the conflicts reappear. First, ensure the issues are resolved in the specific applications that caused the work entry -conflicts. +conflicts. Once the conflicts have been resolved in the corresponding apps, open the work entry +dashboard by navigating to :menuselection:`Payroll app --> Work Entries --> Work Entries`. -Next, click the :guilabel:`Regenerate Work Entries` button at the top of the :guilabel:`Work -Entries` dashboard, and a :guilabel:`Work Entry Regeneration` pop-up window appears. +Click the :guilabel:`Regenerate Work Entries` button at the top of the :guilabel:`Work Entries` +dashboard, and a :guilabel:`Work Entry Regeneration` pop-up window appears. -Select the :guilabel:`Employees` to regenerate work entries for from the drop-down menu, and adjust +Select the :guilabel:`Employees` to regenerate work entries for, using the drop-down menu. Adjust the :guilabel:`From` and :guilabel:`To` fields, so the correct date range is displayed. Click the :guilabel:`Regenerate Work Entries` button, and the work entries are recreated. Once finished, the pop-up window closes. .. image:: work_entries/regenerate-details.png - :align: center :alt: Regenerate a work entry for a particular employee. .. example:: - An employee has incorrect work entries generated from the *Planning* app because they were - incorrectly assigned to two work stations simultaneously. This should be fixed in the *Planning* - app, instead of the *Payroll* app. - - To correct this issue, modify the employee's schedule in the *Planning* app, so they are - correctly assigned to only one work station. Then, in the *Payroll* app, regenerate work entries - for that employee, for that specific time period. - - The *Payroll* app then pulls the new, corrected data form the *Planning* app, and recreates the - correct work entries for that employee. All conflicts for that employee are now resolved. - -Generating payslips -=================== - -To generate payslips, :ref:`navigate to the time period ` the payslips should -be generated for. Ensure the :guilabel:`Conflicting` filter is removed. When the desired pay period -is displayed, click the :guilabel:`Generate Payslips` button. - -.. tip:: - If the :guilabel:`Generate Payslips` button is not active (appears pale purple, instead of dark - purple), that indicates there are conflicts, or the date selected includes dates in the future. - Resolve all conflicts before generating payslips. + An employee has incorrect work entries generated from the **Planning** app because they were + incorrectly assigned to two work stations simultaneously. This should be fixed in the + **Planning** app, instead of the **Payroll** app. -When the :guilabel:`Generate Payslips` button is clicked, a batch entry appears on a separate page -for the time period selected. + To correct this issue, modify the employee's schedule in the **Planning** app, so they are + correctly assigned to only one work station. Then, in the **Payroll** app, regenerate work + entries for that employee, for that specific time period. -The batch name populates the :guilabel:`Batch Name` field in a default `From (date) to (date)` -format. + The **Payroll** app then pulls the new, corrected data form the **Planning** app, and recreates + the correct work entries for that employee. All conflicts for that employee are now resolved. -The date range to which the payslips apply appears in the :guilabel:`Period` field, and the company -appears in the :guilabel:`Company` field. It is **not** possible to make changes to this form. +.. seealso:: + :doc:`payslips` -Click the :guilabel:`Create Draft Entry` button to create the payslips for the batch. - -Click the :guilabel:`Payslips` smart button at the top of the page to view all the payslips for the -batch. - -.. image:: work_entries/generate-payslips.png - :align: center - :alt: Information that appears when generating payslips. - -Printing payslips ------------------ - -To print payslips, first view the individual payslips by clicking the :guilabel:`Payslips` smart -button on the batch form. - -Next, select the payslips to print from the :guilabel:`Payslips` list. Click the box next to each -payslip to print, or click the box to the left of the :guilabel:`Reference` column title, to select -all the payslips in the list at once. - -Click the :guilabel:`Print` button, and a PDF file is created with all the specified payslips. - -.. image:: work_entries/print-payslips.png - :align: center - :alt: Print button for printing the payslips. - -.. note:: - The :guilabel:`Print` button does **not** appear until at least one payslip is selected in the - list. + :doc:`batches` diff --git a/content/applications/hr/payroll/work_entries/conflict-details.png b/content/applications/hr/payroll/work_entries/conflict-details.png index 6a64f5b61a8a80175d6c291cea8c06f191707d3e..dbc4c6c325b99196cf5707a533dcd1bf261b6d01 100644 GIT binary patch literal 19190 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 literal 18424 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 KTP|%L_ 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 diff --git a/content/applications/hr/payroll/work_entries/create.png b/content/applications/hr/payroll/work_entries/create.png index 58638b8000b5ca711c4f51c80936e2c8e8cf8aa4..9db489955cc77a18b98c29793a9b8a612679c593 100644 GIT binary patch literal 11188 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 Qe+VoqsVGq{W*qc?0VBFHLjV8( diff --git a/content/applications/hr/payroll/work_entries/entry-details.png b/content/applications/hr/payroll/work_entries/entry-details.png new file mode 100644 index 0000000000000000000000000000000000000000..11d0b62ebf69073113e3511a154fc0a9e0c84200 GIT binary patch literal 33221 zcma%i1yCJ9v?W1;h2ZYa!y&l4Jp4V}-6gm~a0wFN;Vusi5Zo=eyIXK~hX9-ZcmLMk zt=g*X>Z&`{eb1TcGjpeFZrzDeRhC6VAwq$HfkBg(lLEoOz(HYPVCj+I{*7o|qGSIX zfKgRcmwtbL-#Bb+uYo~xw$(yI&)UA+P}Wp-#=L2+`YShczSw%e|_YY z(EI!TzH@XgETQ)I_3h98+0M@1H7!-X6~%9v)R>LD#SEM<*w<^UHkl7NpdIUp<1Q+)D{I?_^z@Inl<4SN-XG3nw=J63cr`DatX;iC|42_tFPNB`%MNynwhNx?u2Qy+ zS)XXtPy+95uZt>MR8Adl_U6U;xL4LRF|i6nJKG%3)b0J5>)pL;XlzSJPS;k~Rd!6V zjBAzA^U2JCPVZl9xM%YzcrYbqdmHHqq!*trb#<*@)QxTJu1&sO%v^4ddRtpwJ-vqi zoGR^GXBD@0PiinxP{RyM92%YKE{qvjJMKUKTUc82=kd)}Pv0%Gcd9aKd#t3VJY%|V zG<$I0JiJ=ZA3FW#B+X7eEG$YuCvx`mse1DvudwXt_JlaCF1CAbwJn(x2i+2^p6_ej zpX{`Ac}f30p&}tjl8sJ-m#R4{YN94n29h#!_qIIPQ2WiuuW*Ecg08Wx*Ve{)XQki9 z)GE?Sr+=XS{P4Iw+UeW;Y2U)0Ur8pQSlTfxU(huDVkE0zawcQ(GPyLBqp-~=d88(% z#KJ4-V1G&9G2+kCTtj>D%E`HesHm^Ir)5^6Qb7sk_uQ1q0Z*`FOR_JpWzMJmkHgq* z%kiUn-=F;SR1wFY=qSj9!BHH%l0{M8QdRvG6;R+IBFR?dO^MA{;o8X7VpG|6k1^DBTtD@b{m_Eq$0vQEF4u z+?Jn{3X#SZoS{ExCP-j5xkua&Xyk9paw_XX)SbT=7T9a6Te!m`Tofdn^J8G*#X4JN zNhN=T2TwJYj#=I$73&-%H%KM>h^Ut2a05g0v@j%stOOKO4!rZFMEM5xeSp(gfMta~ zE@k3Y+P3uKNDvG@NGt|TnxY)mRnX?-78I9|j zW89A1obi+;m3Y4n=;8uE%T3ZymlX(JY7!o6YW`MI#m}KZY6)@!CCuuCX*rYc(!=ly zc;EXY?GRRQiP@sDRp=_dq}LWR1~P!FgKRO1T;$Xh=;*&}i2KIVBHj%#0;NW52r8o9B4)6o>Tl8(C1t!wyH~1 zZg<2QNLS1(JEOgBXrA~*&UEFLRqpb2c6I>^{|^B_d$ z7oK9hkrX<4BWeZ7(3D{{g)m@cf{Vv50ks_}6K#}lv-v!{X%}u0k1;+K<%#AAsUpKC zKXo&xS<#R+ZgQ7r7#im0YHVlrZLDoiD zSp%t!@pwV$bJCk;!uq$C7&D%wlA5-^rYOQIv^P*yYmE%g7SW~@E9{IF;8bg{YY5@c z)-leCGY!zJ!0joy=&l%|IF3~a(4Ru(KyQvj;1&eZ&)Y6R9u0F_YmBp}`=k~pY5s(U zul1hpbqzLzFx?)B%1}^BC1=Z++}W9j`vB%QD2(65FFKw#c#Bk*lVPHN^8f$0Zwq-J zVf?y!%>HlCx73d}3BoLvtj6}ZmaZrF28CDelJ!5)c~m+*KEgqd;+t^qI zIg)pDH=<-N4>S@<7S=6-=Nu77_dID~m0mez)<)UbTuUAfbw@W=vsu7Hw)QR1jF0s3 zzIp3pnj;DIE#M$u!W0ov@Sr1;?t$tbY2DUFr9|8B*Bcps3z}0+Y_P{jUs~NW1kl)~ zW?WY-%J5Qx@$Jgae;;Y-m6WN$DVPA59dd+a1Ls;Xi@xEe{03>S_$}T(i$2sVQfqZ1 z{O7#ktSI^Va%<2=iYFp*2<@~A_1!QOc~8g`~Y9*&wO%pc$g+9t-WBS z^6NRRLv);RjjVd9@*DJQWm}l*3GY?N*>mgdtqeF)jW2=9mDVa^q>WLfc;q-VTEm}x z!kf#2Uh(zlZPLBUX)|5$?^6*wkA}+Z3Asb#wXqwO0MLP-Nk-VyqxR+6 z)Xk$Sc(3*G@RYm15_-7g8@=dAW}JMHd$Bu#x6A2rteBqz{i$@P3f`MJ<@WCR9J?#z zDX_eO$sypXq*g^HP^CKg{cou$b;{>G>8Ivs!;Eyh-!raF(J5p^ph`QYrz7slg%!!v zgJ|i|%H-s2P@a{AgU{C~v5vjgdf^4Xjj1~v1!0qgO}1h)5Au^JI;^Ve@UTdE8G;uf;ZC zD*GnqDDXzxens~r<7s-wwAdtJ-K=}zY`88o<$IL+wrC+AZdLm|tY#vAtLAzpF+89fPwB z>HDS%zIDl)1#<11(NXz8IECJGuQ7-z;`5G=zgOtpC0C7Q8NtkKM0Brm-6^v6%0!LZ z@x$+GYwPwvDdorhUEFo2;SaV)o9=FVnH3cW?yV2_oqR3N_}S;X$K-CUD)?{5t$*j| zdWO+Av;In4R4@2m_rG*RM=<(}-SLaDbd(sQN4-RZtJIv@O{*#Fk11<90-ag#4kyGZ~E@jY=2U&t(!HG%0kM;ropT+8szGr#G1Uwj85c0Vzo!4 z-708$A$OuPdH(kHww^D`a`su4#8H}-2|;0%KSg={mCg5n2wOU(-#Mdmsy%mI2*KVP zd1<`@%H9aK4SRhZ7FmFWDTPUr`#tZJ^HX#!T+B9sbV)YhFlQv6iD~c-T{H#-w*233 zG%^L&`h!t~bagK#Ujj1Fea|axOH){ldpruV-Vu-S4E&wk_x>ISo*x~T7k-Rp%+4X| z{2;L^V|WS4v2Pz_7`JWjXBc<*+1RxCxisK~>*8uU{QZ+*3#|9ooF_<=3l~%6(JdlK zZ;cT8jiHc>QaDzPDECV7W9d1F$Nib!Q-ki1J1FQ``Tc`eJPx#TV!)30=jyGE1gP>z zzlzNYBJuDU{g7E*Gf7!+6^g?!ZeEdnSHDWAy5e+ly1R?xFgwXWdhb2V;BRp|d7q?GmbR7d99{X6|rq59g*jxLxp&^4l>JvyBN?{ z0U4VVv9jJN)@a*?m;6p@$@z0+f19xoCk5ZKN5rikLQGG4*!LEwP%bhCgku2IV6mTj z!}8Mg9zo?Sru|mqR>5Zx;o$C7hc!S67cMf2w+ROYZ1dUsEw-T_-_fd{Fe) zH8(d0FN#Ow5S#=l>FGfhQroJ&0CBkuWX*?-qZU#Hxqsl+x%>#B`tn)@3I<)pe(q+? zePn9YYjIG)p#rYwOQuVtyEl-K=vclwXN%^Qg?c+ff9saXEo>%_f1A-x>H6JXw>j9@ z(cwQdF)`TGVQ@DRSK{_~@v9Z1*>6vNv%Yh+Wc^@|X1?F$iaNvc!rDnUu?sT3CzJCb04vsC%pzZ%${}M-rmNIn4{h52m_CbKPaWXSv@Eo!k0Ro zpIoXeh^p~OZW0kZco?VB`L94eqoaNg$kl#?Q_`g@7~Klk!flim?OI{`2~-_%zLYHk z1I*(DvI~DzsUEorOo;dN1k)kh(%#PKoIpQjiyH79ANwu|Xt6P$$FxsPFRsW$n;_q4 zlCF18^-kkjUtWNZ-R^c2+QZ55zDoctdtpD}{YY`iqRz~4$%_6+?k~M>+Wxwux! z7gv}dpUU_p^(y@hPe{TLXjsuRi-*n62e;45vF4=swQ_tqw77qY5G)E-A^vY z;e0FD;fL+`{33DBK-V&RyN*NNdLIDxIVwrUn^#F?_GH>j&R`Z-@}t4{|H z>L~vX+C}gH(v(n!BAhTt!4J^?GB}{=1;6kFCsxuF-SWxXX7CbA{~3@g#ueGE3CSexz#(oLR9z?`-|O^y373~JFIJl4UpFPHuDWJbk0Y~`)2Aq zT5gkLa;cgY0!ob+mUAwnoz5a|p_$3Hx-sYDU%z}VX_gx*N%E{sZO+NuAEu!RFbFF= zr2feLq{b;fCi+vtRwi?Q*CwgUcTlW??cX|-DN-+x%2KX>OgV&}h8})zjQy3%{4E>Z z!D36>YccymnN^kOhxkx56i;U8_wVC+T6 zl0MetW@0tjVJR4-Y*~GJO5?<4Lt6=Cd8z8pnLd1lMmVp%z{nprmR`>QypFtpl5BRK z`%1kEd+C5e->Kxm_X}UqYyG9~EK^x*R|~(qw>mli{#v}S#U;Q0-CA|VAxcu(Dp3Wm z$jiS*Pk0gm>1i`_9iir)m1WO=ar%DRDU=NMqirFVJTv0r3aG$0@C5 zWTogHKKu@A?sWwb#za44auGL@QZA}i^5a8p3}^*QjW8C`!*)=|T@#OF#e0Ns9faVO zQz@WwWub2_K{Wjd!f4n|+yLlYm1)(iQm~(`P$+>vF@)6@K4jXtBZLY_zr=rYGxJLJ zWujl@8FSGVu7B0yr73hxdwh~AILsw^l$QqB>e8T0oAq(=?*5+gKbUoLD2hH=7L!LS zUv@Go-(~7&fDVvw4@xgN-MP>~X;z`zwd6X^_Kb$dr!ds9N;CGPd=qZZ#DBW^qes*< z-{XEcyRplofqUiEb0Fi=Ul}(Kks0n%@*tmg6kOd@$gLyq8Mt!589Au1#`}hPwm-2X zC8oFgr*OcnwkY!-{4ZpRZ~(~+=%jQUXzwWW{jeysP1XJVHVrGM*HFJoP$jFY8RTPy zILDtBJ(PO&u z3i3mH4Ug@;%bT>~AXLzOaOYQ-QM3ZS<4-ET@y+gVGFlOW<{K{|oTMzKdl_@~3K(m&5NDB7Q}siBlg0p=m{w&dm#M?BjovXl(He879>{F>mv*?foJ zK4)p~v+GrO{+Tz_Q34dt?C#riEZV}ZNkupv|8$qDfAnKsmXxywK*Q|xZkk}po7xo_ zSoBd>&?q~M>Uc!2?zz( zD04}T?Ow2~%*p6&jN01sC9J)t%mjGl&U;&uK!K@M*P>Qj~JFq^0sCsgIPn|0m1KG)?;Fr?~m(KfTQ!Q#;9Y zjya*iuhPLYhZP+`|F#+1MloG1Wgam|aWF0(Awa1x){>=yA&P;!k_;jH)!yw`8Z3{V z^vHBYz3g4>4X6a4>G#dze`2r2N0TaUp`tf3?N zce(Gh$$jSEK+m5}?l}uO(74~C$LI~?EBYbZu^Zb-<_;>n|t%2Ua<(T|TyS_nn zF9MHY`3T=Eeu;wR;Pt#tzTh9$ODhk|ziR`^T7MZH(?yb+f2Ul#GJ@70?V&FN4BvPg za1>{Gb)*)7G!VSsBo50#pi}r$&nx@GOn)HO^#>hwg&0%Ss z{iv)u{In7(2xHvKbPF4FgK45W^RK!T;P9@nnwDeZ#&DOf4jiKe1PC6>cfOz&`Qlx} zQq+W|I%;oPb3E@x$np8y>S!#zKji?{t@ul0%FEM`%)ujLiqO+rRnkW7&z6bU9ed*C zWgSBGtB_;zQ=<4X^>ab%nxdNQ()%dUgawVSI3wZ~(L*#02wx+azi|-oQ554?(P#|j z*I%w4K#O(160r^Da~(8irR>K9p(4g+Swb=X%F7-oNnhD5yQ9BSG2oEGoUa>OYQ!5$JkMfuwt`sODlb8Q?2ERFPa3@^czn`+^jY zhC9GMJS3gf8%$88%^-KIuzce43|#?%EK1i-$D{Pz4`0j`hQTPac|J`5_YpCb{#zk* zRA@^?$3n+Q-pFF!Xl9*;YKt@0v7eL9;@`y>oCJAQl<1p^6xnTG4(JkqIRQF%*fJiW zMFq*>G@j|h3KJG9OJU@@@ri-LWJXIoNr!_jA0Ph!mO9s|SYAz8qCvk1T#bSPPadO7 za1O8(b$zB40!XNledQCA!=G>|@B?B*ruhOSvP^y;L66lWy*w_w+sVQ? zWF;4Fi*#jM(7tf`m97~+Ybzamp%=~?S1T8&Z>U(V;IGG>OM05pVfNWbM*=ik`GCt6EDMr|8fDZm(|yf!!X|!FA2z$?NsyS4wO&?F#mSN zq*lL>u|AipPcdyHIyKhDAQC%`3xtQp52XNmM4=G80T9ZL5Bu-Wk*d0vKe!X6b!}xz zw<@ISajL09XM7_aO`O!iK^VHzli#|w=PAX3C(*w*CLfe-gc+q>_y+Rpr{#^5;k284 zr)gwuYNc;j@|NCHI;E2vW-mAyctgey)DGQlJY301h>lDb!*G7ct1?m|Y^{&21Gs}d zb+V=5&ujSz({ivBd0tWZUd3WkwhuH?8uH{vX%5Q%g6!*cxVC%|Si(*sJPRT2_-*~V zx>VCMm6|Zu!918O$snJc)$OP=_x*2PW~it>5|DEAm)^Ir4pHpcK;NpW#g$+i0zK#8 zW&Th5PKEhG#0>rKP7O0?9yS{S7v2+vgrtZZS-qg=+q2{(GC0kyTETBw`%`Ld-f%_W zJ;N}I_MrJ?MCv$H_5Lpl8Of!#%bvHBbH$sOzwub@a6{ZuDs^8ju`uLn(wLzX-uq@n z>KyiexJ|Es3>rqVe%g2Y@Cke!p`gD@qn|FCj}c|GUvx;J(6qW1wu^+XsB*_GU8iDY zoq5@TG+(m&8a)bcaUR=(jZlnQX#kOiM-;ROP7z%oJni; FPqwz<8VvN0>Q-0Ht~lma7FQ5I~F z7WsqcxI?^OlY9PtftJY%L!sP+uuw8{?)1M%C+0M&8s-T2%}CFM>JL+brW#saq+XT3 z5Q6~(Nrhab`#UTw)yV9Xb=$UpvHdD)Sf~+GL4!I6Op<%z>_CvA6h_p-%q>Ewp>Gso zg^}@87wcIb^iP+If3Vn=q%*@h8|NkhOaFGjd6917pzjSrQ*vTf%63P#MY<8@`EU=~ zS~C*0!}I{u?cKycF;dQ<48`|5u5U^GJIexJph~1h17JZ?Xc!#LVz`aNb2kIevgzOx zd1J6B29E&bu3T!lWB*{#9|s#|WQWbX*K-=5@o5tBOv@@bFkj;s65zH|-2dkayJ(luYocZK{$3H8wy zz4a8S2s+KTq^*GZ{IGiF^nJ2=fgZi7#t&XfGi{&RdjorHVv{vuMW;(lwpEWUEg4Sn zQZ6CoD{2jCpdR1KeZU?BLtR6v%;l3icn(%qGay7%?28*}J|wyTBGCVrs(!UToD6{@ z-hc|2tDI-zQD`~q?tv@4B9|Orj5BIQ)51bpyd>x##L_QeAz~tMOwI@sWjAqgdTMV$ z10llypsen_oraCURsVMO`*QR18H*DJwK84ktCjFy}VaWlau0nKY3a}yR! zBj9M)7{+|uH5N^vh$IH8K+ICT={v>l)n`SD6BdU=T_6@7Q+~gYZenZhcWlJW`0Q?# zbeH>3A!v!2Yy4c{TMuYQB}!sHAQIotCz@Z&qBRt0Lr zj3JCJ{A3wH5HaPziI|b;r52%CQ;*j!^eBs*pNTj`BdI=wwjn5JeX(RvN$)@gM}Ik| z%EU(a4zrlxrCUB^u*YkJa&oqoD{GXZ*o=t17PN2UxP4N+y!==x2Czgzc4E10(cS@6%(EI0B7X85oWm}6eBwtyPp%8jh|yvO4R*3kg~Bw53?gvej|%I8%$pm zd<-OSMPI+g!yDQ}$sU0c%$Q1T_x`BQV`qo> z2sS1o05!ht0(zYYrPPs4+SH;c`^l4WH*zSL_M7r*voC^N14;975|F{Vr!G-z_4=t5 zk09l)(PVKdF;*>}F}vJRT=hD13-`G++bX;hW6-}nPvORHRsZpO-{e_Wpa)(qHuAk= z<9Ld-^DHIEY7Or$9lVg>#26M{JO5Z|%BnR6N6p)0w7=*UgO#-K$l~eH+Kegvy#IPY zmsEBi!2Z3hLZp@o$I-JpDC5Nw7h&pt^NFsuziLY<)eh1W)M7cG$%@}rX3p#p#twcw zZrkDW%U?sv2hzldSu3rz z36;tQ$+{tiX07g+-|-dAWl`-e7YYf1Qh+IvX0z-9h$9#8TLL7G!$6AOzeDrVgZTTO ztYSg8Ca(uvzx^wmgkf`}flabVWY>jEps`$X)!799XW^%iaC1+y}y7_79UptmZ+;NufoLUCYx2c=-fjEs{?Zhzvv zmZT&DOY9=ZVwrTHRYU85Na}Mt^vH>9gaX2YmO*IW^z1Y3mfa5`iIF|B$pQUJuaHNf z_=&gI?_P4y2zpVL z8y_2gI*##3If(QE+A}11R(;6lZ(SBFN4toEEM8iMQ;f#9Ud{d6Pv_&881Ba3_$K!7 zGwd5zFrYrB#L=hCKM~7hR_#bgIh~(+VtGJc%kyoIk{t+Ir@Wg-Sb#fkyuJr`vzi`Z zCPvC`>W9W(+38|p&WzEqr@lg@zL^rhMriY-PGBtS!y>tC6;M#Z_I$t$5=2Y=nr;b# zht-g4qzj?QkD{WzNt74IMIVZ0+@}Q2BLPx7rIIsBIz6j99{5G}6OD`6;CzM0#4a0I zPW%k*syim$1CyWok9<5P(F$+Hz(kk{v$eL5ciLVeY$i8lP|K4)hJ9T$G^h7aFSNfo zzua-y#oy3TWdMZ`g#XsnMuPv(&JfEuM%d=@_0WTl$HPj_MD)b#7PS&bL12dv%6yLv zy}#=xbyyUEwUO0ud}1XR5W~6f#Eb<@Hy1m;d{S!BBKYTp3AG%(lRFz*M{IV*B8mBz zY2ET)9qB(6l^tsfHr~3pQh8uw)z|zZ;C<5{Y=lgUL}2QVH#+|O7D-%k!N#B!(CFf9 zLS?o3Ft66%kZla9U6O5an}iS{-nLq4Gt$!jmja7$?0iw2fG01R3b&%JAK&Ae5V7iBkF(9&a5lEmR2U?;L?rn1@vT;r3#FQqH@!_T*VNp0Xe*o5Jy84OikmzqsmlmPNj?YAk| zpYWqDKbW#aKcOJ^EnDiUBzH}7LcQRDGw~|_$WP&b4G&DUVRoF*T$1vk3B0#9xUs{U z8cal*Qm%e$w3C`{TE`s`%1))nAq3p~+AOPYv#|qau(Zg(8%gRDfswYo(OoMxi3vxs zhj};1w+8+S3flFxI#;Y!n$!4_^G&~*2>asP_F_PIT|U4amL)26Pl0UJ=hkR@_#Oh} zgiQIyxMJF=>NuwRgzST}uNMqr_N4ZdrYK zDE$5=s^y+uOsWzyJ~O4&{?3uiuGzEHl@xswGONWdgx;2`Xf_T)Mob@^l>d-YFRK^O zaFbONRV5nu?z!EuZ1t`r6h3#|H(0q3+lb`sS{rk9LoSw#tG z7PmXtm>LbcZ!&Jbb}XUQ=zpczX^zaOW2m!?r`iZq1o9ww0fI6CrM|`H52sxs${XIB z*VEjR*$>v_g>I8-XPGNwXWe`sAN+i6+#p0f1$FL)?_0TJAUCqRacC%L=_x=~eZTC%>f0|%#H;MRIp!)QfqOssc-`GA__e=b#h3>C-(DLvK;C1* zPgyy)f6R!i0uuGjE_UkD#vvjE_@O99H~SK(U|Wn(%4&+fb9?V%G6wC@p|9L`Wl#Ce zx4xCBv@;9B4KLl?jbx5)QRAFRSKT}*?g$*8tGi;r(e4X1mg zAD`&_6XzMqgYt>ok9txo-}=i9VMhuF-;~7w(>o1n3uFDfNCs}@JxkeSDMK2B->vva z!@rC*Ig3pS7hb4uF`A&}D7!b;O;u%#d|0)t5#ABc$EgZ7u6m!qx7a3ncK^ZlSKcie zp?*8t@uPT>7^-MHLuwUvVnX?td z(d{X5om7vdrs+6IDTDQawiffg{HedaC(NEsq<#4guu*@fWYTlJV;tc(yaVRPaFwh- zaU@%$2F)0sNJ`rGS^`Tl(ZY=rHop$~#Gwn_6T|Yoe#SKapXpF3W7yn;&h9{>#Cz9=Dbe89vkAq(6tQt2IY`o{~ikT6dXcA$UBuw4rUXD8P9?jum&0ame+zuZ6_-wX+*t33g|j$UnE& z!9UHrwEIW4=Fe`5wkt*6?x4OGT&^L0iv?Yr9oQO-#OTvnxlD^)^gyUSO8V%FlE*7! zK4k1R|966qNDB&u9@Js@|^x5&Xw`V1lYAq|E^DE}T%yLQ}I=I~C5L1=LaV3=#_&~rR!tPLMNYn>; zo97+5u`Vm)KLC?lSdQ@Au}0|Fs$)~ z3Ebl-g+5@u8MT!Lof3ERvPk5(6D&zr%BulB{zl(W4gB$XaDTQZ_bs$dXz-AQ5r*k!Gr* zEIuGu#LZFB4f@spEW4oy|4>V}HX>BnvDMiB zrhY|rZyZVXdSMlvqM$NxO#4hWl{_gw?_eW4**QM6^Ht!9jNRk!w%%}H7-S%ZPrBp* zMU`kr*Ih5WkUVdWz1AA{z?n(wOx|5Eb#dyhmtkE2r*N`0d5nof@cirVgLCKaj#eUL z9Dn};p0x+D^a~FCb{Dx6r9BO!8FeRC)6=s2@KunAFgcyRp+ z-1aDUf8;Dwh(ieJ6E6^N%^4Tni029bR(i#Y_$TCY7Dws6)x1fFIa*kdo_4yF&U$JmO{{mrvQ<~dL3Z#G*GR=L0{S1fc#7C3!PnBb;iuh*g%eJ$`N}?cPQK^7aL^`Vs8&k~ zf_PBz^J#vZk55LUz)r5%`;G^22?owdN_5TrLVwS%lWYrI`XtUi2)VW}7P_+v@l+%{ zfRvnU#jh!FWF}qPo>dw=Z3@LQD!Y8YJ=+p2iKG@{3AOdqh#Bcx(`3JR4cYot4;OMR z{}rG#+vfyb?tHywEUjKgj0x;r@1F(ow+03t6hG{3 zsaxFX=v>LnN7K6S2IhJmJg@D=lJ}GyyY~dvp9&@x<_YMCjnAx>D zd@VI#v=LXIFPj3qo{V$>`{FN=J)x!9SZsdf_y@LH6QmBpuww;x&bHA~B8H`oS*s0m zwq@jP_>0c|<3am{dpfAsQPWDKvMKnu&CU@))?ttROC-)dY>giCp}wHN<^ll2#vg zxxD;i%3}K8Z9fgm1{uDlPY`Q}?R_Ko*-}q!TFJ=>$fVv#6V^=~E`kS&c5^}%V6aqQ@P3V?J$ zjeS`Rl4_E?sv)Z*gm(0wJ2DL4NJK4(fT^o*W=?OKCE`;(+1Cu{vW&)em zn2K^}u?vn6%`9=s|7nh0dW&P_rr>0@JD~ZQ_0*|^3&^eaFM&bRhF<-RtgF)_H(9UCUeTECZ#A|id{S9OQYaj~GRm$LCUMQ5#ZU8>i53V{JbeaA1euv5{zX04h zR329+AS4$TOjAmu(}hRfNQ}vmNy%^#a_x{TRIj52Kr=CXV(bzpLZ*~@-@k)ObK)76 zSN}ASZG0>9PxdS86z7{b>70;X+|U2wdqp%}liCE|q$LN?kOK&h8>Y5SIAb#)u17{H z9O1rrKLY^waW(};!GIoh6&r|cBRsV6kPv?%XO4fG)%0P%-9$!;_2Wgnj+%7={^!6a ziWmulKJ24JR`Z`{$6rqWehzX7G`yXzXRvHq*t2b%@Q}o!? zXFKZ=`z&>7YSr?^*BS>WO6Vob7rN9DpPw=exWWnr)y)57S~e~CFi<%~FXp8wQh$G<@05`l^Oj?PoiI>PSj{4L78P?z^tzz48x zb?H)xwKDx;`D6*#QeVI*d#`?}OHAE`g{hjlUgyaY4EF60aOGE{+C~?~Zn6Wyi0*~f zbq;VAi19mSoU zA6Pcy2J?3f6I1Kf#47`T7=zw1ARhk}JGkK*_cqkz zc?cTOjdzRjN270_axSvRwR&bDi=!dgavkSC+YY~4Gat>_k@xjafOKR2ZO@^3z7A)rU)_Jh7-XA7LXF|iytMl##`DWbwJ0{0=jB{{4F%g zq!0!$C3r!o4$QG77H*!J5B{O1SPQ+xv8dY zX#ksA^+`Oweq~6HZyJ|4@WLUft=0AlFPRKHmWUix%h=s@*rWw+{S=SWSpA}Gr&q$l zh}eq*{17$Rem!h6l&WRV%?IlNSLwI2tmLS0=%tZ$mQQq7RCgXOmg!FliJaXhPrhvw1YQfv(1JeKJ)Pmei8I zT3&C1pS7za%Kxsm0uvn%q{O!dPL*cQMJ{vl`lvJKaq-2`p=&^qpdQJft)(1B`|vPG z#_@1+jD*cCKQIarjC*n3&_$7m6}s#0vN?EJe?t~@XF;LhdR<2S!EEs`=THJ@VRVc! ztP`HzFYTPc5{R3liU5(|$PwF_VYJ9Ze76{m>6ZL9vjd_^WE;lc>hja8(b>#MsV<}qxLK$m|B zc&Llnbm;~gQ$dE+R-!`M91scDEwX5mK2!hbMfq1wT+M0tmkzA!QI-FJJzHrF4gRy4 z97nNMwc$%$_#qYKp7QY8#OZgEGKH#-KP8lkEO-!dT%6$SI0;9xGft=79!mk$69dfm zVq$GD<<$p)WzFuUFpE(bptA7BZ;^5|CIF#NS~?^$z=9#b(HvOlfGT&!p7%wn3keD! zskO}58M?I)fkJyN-Lhd3qa*wX3;?~Sm!5j;I`3u|Yi1cE*L(r1hRw?;IH=HXsv~-N zOgh6rF9y{{8)&VZF?^YY`A6w=6Wj)A^N=`e@r0lrx&CCm)(}lHRLO#Y>>%TTD7)5) zpIF++*cl1RJZ-1ZnMw!o>q-m42OBB8A`w)3e%NFk)j6wKDqUSS&0TPvTm=+-LMjAq z^eaB`oX+JBNPf=0B8~#B)J7Z!OwcisWTy;UQwnhElCY_jyVMZy>bluBw2(-tp%1&ib-BI~OPEi@z@Z+R{Jl5$D8tfh%WIuSd z_iEeWKGV1Ff&4X~1+aI+4KrKJs!$Q{nTsHXQiK3WtX8%WYf9|}`wa7Fizywkgn)5S zoRvq?4#qa9J=_KHC(k01bNIOhlWTm<;U)iM-KC8ftFY-huA*ZKPE3uqf9`I;l~Ftpe2jjWl*<6+N9}ZhEsA@cMSUcXQiW2 ziw%pV&)aHsUp@NB{E~))^P)zyi*UZ~PAbO8#!yeK{YS{A7iu_s4o?#>*yFrK{^)QRTWP z&H!C}9P0u2({{%M$x~$X#di!#yQo(STP>dZa6rE^lB?)Vlyo~lh?0R_`4Ui*!*Z=) z9WI(^U?E_B6EjL=3C}j5nQRn0n?JW22Qat;%e6&Cd%!R%V(6nQIGvSzQ`DLa5BdBV z7U<3c)I*H6vWiMmu(7thZy3thI{g?8l8yH=N&qpUaw08m>{8w4RTP3()UJqJ-vZRx zl-4@^+lbn(FJh4`!97pY*KYY$c-S84C=}3$;Rw-X-79gQ__82`0Oju^?Y99|661R> zlko%PXOc(1Qrb(sN=o>XxKts*;bjdE43uwqD6G;N0CY%9*@s93M+2;7v1iRNMdeBb zl7fhevE~T#xC%;Wav**RNm!#U#>xt-NJ<>7`3USFZxslbutC?6XCM%|qef2wCFo}V zQ)VMtgd->sfCzBl^bbME!Xup{z!H{mDm_trA=3L)(wOK=MBJu$be~@jTGar%w)xyd zTEKz?N@?A>pnr?&$SQre**mvk1!bVfKYT>b_6ECy}&t+ z#%6wal~pp$s~-$!xGWKMJfaMP*aC~z*PEd2j>7W3Wyv5-SoQ(x+K_KE|9+&(C6!e} zq28Dp%6*qWNKHf0P#bNpA#(!c0q%U7yr?(5jJ&Qsg_ADTUH#(ozmsW~V;WSbgcznv z9+~YS$Q>z7vy7c3+5`@P!C-HnAzbYF_kZu&kEpXvWcXKw)%XRs{@ zCnS&r4H5`Wf)4KP&ftT)ySqcM0E5HeE&~ki5*&gP0)x8;3+}$$d*9xDZ+G9;Uw>8C zsjp`GeEs#&mUFt7z1igVLZ)Ro94QB~%W$BY`olQThvEF1YhD2G9M-T=?cs8*0}xn! zk_jqZllIIN$I^TTa|wFER?mMCdgeLhvI&m!N-+V`onA0qlp`7BA094 z{Fv*Py5Csx7M~?Oq|>`onjlt6PqFyxmA;S&`)yr8ZUGv0!2kIE?I~ank}{Udp7-{~ zhN^I?B0-yvysMdd3<%3OjcoJ3oB^|w#O~~c(nx6IAA*F)RC?)wPN26b27JOXtvL?L z=*q+_lAY|$OGYUCOH zHb_-7hDQ3l6%;2GV4J!^Piq*M6$hFz(b_>w4*1Qoe-;iZOcLIkn#$Y@fQ93MLnq4U zl}+N^wnvonmYHY^<@K~d?mzp(_yT7PgEhhC~Xi!ZW%RhMwvGv z4v7vG)bUFVTfg1NDnLN3q4_9^G7@;?J!GW$ih1v!JODvdU5b&^D$-XCB&km{OMtV5zFp(tlw6u(t+v`AurNP z1&lD_zvuo9`&1b_ctodHXD)C3!5<7mE+Q-}ZsCf1>12Fz8eH`g2_?$Qz@U;6)O%_e z5i-K#gZ{JIH9t@cFIW~6{Y5ahp^)%h8@$LWl{6}h=6f*S}&-CFn!NzZF# zaQ!F*3v-GdNp%ksD(%1ol@13{hy$?laXu)6X(XI=foZmdN#x>t`-PD88)NMNmSTNo z^N!R8uWsxelDcuLQA(PVhuSYd<)4uuU-e&569fR4Co$nC`f7?n@*N_;+G-{|Z9|q2 zm?Y#Y12I(anA*(rZD09UX|Bg@w(D8JTaN(lnlAO{)qw9WJ!b`K;oo=pW2`|1Clrhf z-%J7)hIqbGA=#q2fTPT7g&Y1z@U5DKsDi0Yg#pY)Hd?dSEZhU_egyF zkUm){rEzZ6x5W4jn{URM>8Lb67g&$)|6v9FSob^J%dq&BD3s{9?zC?q7$3c|A2>5WRvM{eb1AY?Jby; zeta|!hgWbwI)#hk-Zk@l>}nW!_2w&nHX#!G$&|ptw;D~tw@6J0WN3yh6$T%cLh6d3 zdg_xO;iZ@vVbE1V@w9Y9+jsL}9am0X6vmY%+K8|WJ7m#tTpdDPsG^0JgNJ1Hdb@Q?v-Y3x=0Z##~k zHzsCk`*1U^?fpKL6*k3APcZ*vo>fcg6RDLbcdXf~mujuBHLIH@R7W7unb14f4+=b@ zCPYZ?Mz#@&rdW#JXK0u;F}3geFu7CkN5zq4}tP>$}0-8oO7)xRMMyw(iv)w+R~ zPy6HQ6#8g5V9!l1)(h{6rhWnTIs;Zv5g8#=6R$s)7t(M{h3ugJz!U|8$aGPAXj@v~ z^VZ?{SN=6Hj3+;iR~v)DBdxZ&(pD*Uwv5H-J?ikqdL2?!>!B3GK03Za_Rr=weT&D- z{n170(g4C?3pFAy>)ZE?(+FOl_Es)X1BP&|NbTyU)I@-R20lV>Vr6|q#l*@Q(Q+de z$x^L@A?mMVkMcfMoxH^?bZvT4M&K3Rz@Hrt>mTJ>@9stf;`N{^4}ZF29=AvPGNId* zORbO(QFgInp}@{e&Bb}!{BBfR3`gs4?#R_lzrXF}m1UDkIoW$BYrI-EzTtajXi-WR zQ%XKgYK7Thd+bVkK20>7%S%&xfF~Ft>XK%|czkeUWw@N7F9#TXxB4an4&uyLg{TX* zRlWqxIpBkPj3a5xT-&_ut~pH#@MURAZvx^$3+&vjq-DX4Yg_@68pb^{=mhLM_H>EJ z?6i4*{D7gfRtgua>KkNigA%gcGlj!iHsQLmbV_lKp9$WrTh}1dM7m-`Q2VopC@{D| z>qn@*tBSA>074zVD@npCW71vEe5S1%y@GctAqd5Nk>+W4^AB>=P;6~v;TxC9k5K4_ zayeA&d~!qW;q*$X(Q#wBRo(~l1b>CF{`$)AvqV)@N>{BQf^JXH^O7;xiWHC>ObDBB~nCvx8g}LbpFb} zqlcc}@cq4={2B{uH38X24c9QxSArFVZ2gTjig2mJ7&BbLdq1Ee53d|kf#jiC10!T6 z-MggLSo)^c1wG9EqJBQT8vYjum<j#m#Z>xgucE7HKy=fweiCwhkLVTgMDK%Al}TMBjBkZ zTE*~#H_z#}T?MqoVNufq4`NZT)EIO3d%1*}BeT7_XT#c(C;N~3qk#po6B0#-eER&1 zSzo0KwCaEW^wvu?;VE4~_wRW8L+TwpqWfHuLDw`4TpYU&&M8f)7Zf~Og{r2E0X!X8 zy&PRV0N$i2gO-Me^3X&gb;RRh{M>j42-qZ7@yTL)ubQfTn`a3cy zmAvfhg02EzaQJA{FVgozX18Bu{)(X&K`d@8!*V|D9_Q>|gbSsC%+&?evi<#~`uM*= zyrdY1xT(lMmC~l2y|k;%=X$leR1p9w?OHR|At%??;fvm3P#UV)-;mB4Lhc3n7NYGh zW3msACW5CFlmYQF<9|rrotY+xLYlS?4w=!jKYuWT>1I0->upK*Pe`VIaeou7q#rK> zij4R}hb7bRkDllA)yc1nO$-K18qDZR9`rvBe*3t^ggG}xgxX~h*{nI;?-zKM)!3elX+UY z+@s2~r#PXg`Eddkgr;122Kr-1ro@95-)Jr9iD`GWtSCelG5ZNhAPbJ$aqOG6X!Gf- zhp2^pu#1k@KlDNRQ<{u(K#Mrq&lH0dZSa$>mVBX}Idmu4FqQr?e`0U%jyy%xQg-oi*K^H^Cjx)>Zck0W)8=NV$)H@ZZ--a zOU?>>eE1HA5VS&bo+1oVZ6ws6)eDJ!Ei3Ui&lknhjj@Ub6lrqBHw6tu_D? z{MWY|u|@n3sbb0c@6%-d@^~=3RpB)tX^1jg@dHOWO~Y3Sga(S+?`s+1dLg`ujeFe1 zoBJ$dODYRDeYo$t-JuW6(KqJQMD!%_o6$S2ij68W!o0p@ch>>XE7zo~Jd4$j<5Ljw zspP6_?9snEDlP&?H$rgcqma2nq95^E?7LklImn1mu-nBi#?bh2{TuH0l$A)y0Lw-PBd{}zaOYKgR0Yjvz@}(4fr`7P?z5M(0TReWU81Bt3^_Y z=5^uwU}Cp0JZ`|_%84aKeRdso%>W4=wp8g{hg_y#BAW>AnW%HaCqZ#_XDA&dt-JK0 z(==Qn1C@^{DzU87!dK>7>#r$VF(t(o(DCJd<%Wb=A+yI zpd$HatTIqBhNWmQ#$LxwfUAi;A5DeVeyJt2?dR#g^=pDE*U7603GID* za;)95lnw;2`l34CxhLOGIQf~o&;bG|ZwM5~B?_f zYm-F$h6j&R1qka6k+4I$YAYlzD<@nQDVX4Ek}?_(!ttR8TA7?@@VV@Bz}|D2+>LW*qccxJ}Q)N-uU*?4rYHRdVv{Lx3K#_Ug%edTseyWF1Fp z|9Rux17^KbnAvkX+1u5hrXnBYO;wx>oX}{;QRXZI9t8iudnMLV8at90EjKqT5FWva zqSb@zcURPofehW-o@1U4lL+iVsDilJrvsCtdZ{zon?hGiV;^<-INm_14PwSWg&-g0 zX8;U`HEg@XS^Aq@nxCAzx7*$K8)t9OswgBFKD3uY9)c!wRgq=mK}BYW=<~_j?UHJ| zihDKgst9sk;2OppmqBB;^Ly0N5Gmo}3Dh4Do+fWE-l-lOB|Bzx+lPw19E$)iX|b43 zcmxY54$Nu&j&_GuQAHbX>n1GO)xQ(BHot2$2yM)j@Ue4vjRQwav$?`4|vq&}_O)NRQgCCPZk3AJ+%>(c(1tSN^37Eif84oApCVkDmyrR8{B*o^vuxIa>x9 z>9m68Q({o4gyjRtAABaZRVhFF+}*(Ys!O{s(3a>&`G)nIiHbfIR1_IQu~rq2xPuoL zz8yRV>5MGAL^K~Z2CClp6ca}Vytg4#qV;hYZFEK;L1AndRx(BnZ@J)jSm|~fXXyIu zxvK1{vmR(}sJD*!MP)hrPOaobg`W2Jch%k&#qaL{|L7dow7ARsVsb!`!Dv^km9l;J zSJ|EZHHlxjxYsW0D|kG-{udzAql4m9Vjl}n<-Y;PXXn}UPzdM;+1q-W0`K0N*^&q3 z-txnH+*N`VzFP}}ZUxr>e>@o$210{F2b-f_9wwV22ne|2^+kW_JDNX3($6v_Ww^1f zRp+{z+VDfGtv(*n@43~P+LqsMU+V2WWF)HkTZ;&a0ib8HDnPT9P!JFR75z^I0?PYO z1qf66Uj+bFrTH%f0-}A^3o@&6nIZrJlDG;WXu9~H*%yoVXa8nHMX>ILM6}MPs=_PB zT1aCIe&@6jHT93?ab(b^J>V}3(Z93<6jA?9_=|RWY%7Nd?e%x9{$%TQ8jk2EbS`Uy zM?#NJJha&%u58x~cP0eUk}1^w#K2F#Ie4GBJf{Vt&0Q01{b}@O+#L2@H?#ghHRM_# z<(GuolPu=QDx7tVgG3W3Tr;(IUJX8EtR$=_+(pY77Y`0XXpz(;MlpSdoQH`@Ime{; zS!q6|c*$auRLHH<$-rtx2J)4a1v6^N=K3a6EUQYyN<0i&Jd*RoSE04z!pWsJiUN&p zjECLAtQyO4U2U1Z0K1L-_~Ix+H8@Lx!fDz{1`W|EY`53*A!?=`o?^t2+>o;3sRTb zF6pk{RSbkEj|)V)&1BFY-KrGW;V6uj!FBA@A{4)W&N7#$_iOLCdQZyIq?i0`{;B-3E_<>M(nQZW;7P^A+V9tnd>xRSy;ha*$?&G4 zzaG36IB-gw-r5_AtheGP$#tFEw5i;2+dFxO{iKQ~4aoUf-@B34b+MVHn>|Ti`BT}t z*3y;J=hI&8^{#C%Y01EP(D!tH5}ji1&-*9#ZC50*zZh(Y4p8rdxC)8uyt`lc4gk(h zCDj0I-jAn5K@v3I#1pB9hLL7U0&HGQdWumlp1i7NuiBtVD#c9zMa=3Mx97VrZ6$od z0vSik5dM(LZx8nU)<^sou~+5jM&!sXV(5^GZc4WjjwzS$`Oq)OOR>t9r1e8`oh-lE zDfnKGRS3Etk=OlR4p7;s2JsD7w<)X$68CID`pG3-%bWx-5Rc@#NshdB8esVCDP7GzZ5}vpD*t8UT@I zd-Usc(`r4p*|t*(AdF@}jdljT^BDZXz+%@luz+QZ3AjiFII8ghU}G2ws;=#`-)@iYK(q7W}h=T_PTuEY&N9f{{=^T-iZk4P{5rAB=(y6RPS5KpMZb*tviz0Q-=JS?`8PdV)o{1m(xk~g)-}3F>u#$bA0}BwXzryX0^+N3K6ssuZS21ey38wHYV`fJ}5ru>d!ZX zr;Y$a{VU3`zto*OUhZ|j9odJ4fbByXhgtY+w&AVGcQ@Zlg83oFi^|rQaXUa0^fHU< zu^}IVH)?Zdp?e)eqlLT$t;x<6Zd*zziGNC$uHvfP(NG06hPi~W*ncDyfhSQCS+}E? z9^rMX*=r*eS|tTRL*Rox??}ROMyP1nf(k$tyb1bRlitQTg*JM4w6Mw`FC4 zqmx_oDbhv-?P&}xfYqh6vUx=XHcEqz?m^?011_l zZ3rudfjD`DBFk8Lv*f4d4I{laKNR(m{B=#vb@rLOFjfYXRnKR2C;d)hW)wsh>d_2A>DZH=m?Gt6ODbv zqip%D+Di*r3t~&di^Bz;&|2pqh+Q4s$o`YCAFY9+BSSFRhT$(Qc>ExM<=l@i)a#RN z{Gsr>Af=AvA8jKHb}fu&j5tL~f7W49cdn3K^hq)WyDu8jyI?k901Yu2FaW;pCXYMH zd<63oYhPHLjccTz?!);>!sM3eTbOacdyK%;U){s0x7Z)6*=QogWM6XbvR_=xk!CN5 zyqDtL(O1jVCja5yB!o>ssGu7KXrKe_L?bXv>8h$=`5cw>JQ5ltR4jL?FzP1cA~L2f z6$nz|_3XjO{XKlKJF_;21dV$l;cgTGyoHDg{|nHBegnP#7eIu5R6>6J4}d=fyxotc zN(@|jZyWLJV`iX%3}>30q(!Bp->Vd9#y@#>T(^MONO>e@%=Y}tc&wMVS&@E+m0r>k zz!$oz|NOW*J3uvdDc6@UNk81`r?L$LN!T3T=AUob2lH?gdHB`A>to`ZQ}U4g&DLHaS6ugDFa zL%;^sHm?s@3eW4)ubojs0Dj4>XR?90-CYovAZ?Hk9&%0W;z+8}vMpbfL&NV`nu}zD z=Sq1cjmk{^(f2DO20xsWg7)kL(zdabMYdr=ej8XA2tN06(3^FntYlQl7{=QdVk{It zf_^NdQ!WwJ^;wpCT*^vBI6ISK6}mkdx<nVE4)(klcq+qR}RXSi&hu-|$f2{|BG{elp-}1@67iIi(QHn=cKr$IB19yFtC|msU(E?f0j&QE6|d|7e3bL$ta= zJwSf{q`{auB-4_$a(_Ryq*2L~Q|HzbQ$JXMT_hO{8hoX~dmKcrK(OQKqMmJ_?J=^8 z%U1}Jk|5Zyhnir7!r!0KHqEZnB=HiFvbOtBtmNd8rlgIGY5j5q(Gqf{iIcWds7x*o z=f%^xFRuj6PRZY&m&AkJFbn({UPI#oXE)l*N`D4Kz$Zlf{mIXR9wax&(}arD@86&E zSrV!>NmaI}dn*ocP}!ZG4<}3BL}Ly?1SZJv*ZoEvezFJ&86oQ9Ze6SY9)jXA%~F%h zkGYNtOysdMah`A1G_jc&fJVCoZ#L_eN{bn7gK4$w*BJVjRts7XJxBA>o3~n z;6z^k0$Mk5vc~Z|PPKGCLZ9F9_= zQm*Q-Oq5dYfjbhDms6Mvw%R8QPW4?i9=W!Rp$}2WHQv_6W^0``vlPL%zPA2P-Vov?4m@iFO1n=4B+|1zILE4pF;#hhXI*ulW~ ztb;G4L42XUU!N#Kj{jnO9D#dy5N9(Pg4;Y-v%CvA;|;F2gnkDxN~s&rMP9m3)_?#S zfjj#pl6)M>0l&&eQ)^@6`K*v^-jCbyI;-svNyzZEUE+I&m69~lFBni&es%A{x7);z zudg$OptXutaqh&oQMId)q?>E@X!V|7f{T+kSWAqqp>%c7$%n^BnO=~;E=MH2I!*L$ zZE`-5T6b_Ey9n&4i&O$;zRO&|>In%kTL96#rNMhUXf2!5=c*^WjRAxrYFhnx+Ba~QD)qYpR`Y{y`^7@gnDBNl!T@ z)hWcKusNUuz|W0le|r@$D%<(u6HHI&wmZX-zl26V`J)7V14##{-euC|zSs)?%72^G zy@2`F%~YyMKJ+!kE8ax&lcQfhF5PN=EuvJE$=2!3byxN>oQoU(x^$KtUETvb_L6hs z5Vh0ZiT)_HXv^T?p;cZy_#o$GO^y2-Aw$<2mHBI~7acx%qjzzLM1KU6Y502Wj+ajE zx1%|&pIiQ`LNtE&g2(qEZ8_K1Z4Rp^!vEp6|9f-(8v1Yh|KbGx?dSh{1TQRTWcly@ z329}VxVO;U3uVrk1KElBh-Xt$V(*D9p{in}jXxJkrlg#)(b3a_QGNQuzU~i+BNuyr zN}Db$-`%+lq65FMsCwH-!%%&lPvRR&iRhL;r;T%cW!?UvlU5xph{YiSn|RbPXFS;5 z)nph-^=ONQ5Ls~cC25SsTh6R-F>y&jUC=Qz%w1a>KXlIejxj0y2P`ryBp_@ac z>NO`|vE-xI1Rd$aCR{~zSP+%GPfm)$S=T&LcB{$V*G)x|V~*2p_=CJA0A%5puS#vM^5FSUN9X`#sai$y4=rgj zkJ$|O8Q&)+7v3Z)R=C^H#jj z0|ja;zUOWS+RqT1O}^ll7N@)`FOcYzk#CTMl!mP+K4#qeIs2A|f!#GD;A=yLy54&G zLktpB1wJmIn*28J^9&2Hvq?Y}7booE3nqNTL!9xIlZ;)7XmnCrmxJ2}-{7pHPr9Nu ze7!S#t|bP4)zQF}{27faedl@+Gbh`MRpHJn>(jJcn6AOVm9MRUzAK|3|3(sIMSbn^Neq4Wq4!T0rIzQ< zk;m=njk>#_lkjWdlO>E57EIN^ zMHEf%nA!3`=MbA*KT>mmL!Eb!J+i!Wx&u9ji{AHTY>pM%pTxOpQLo?e1|piR3-HL} zttMN4FuwKnFihgHWaV6z$Nv#DWpTl?m}&_PJ)#3GYn^G!To#$iz@S5Iw7CIVpwe4i zE6$80jX%0D_md9SPjb6tA!de98kKU9{SNnhRbze$E2bP=f=|5DmF`r|*Wu`N67?zJ zDLxc(7jjV0NQZ)z2JVx7Jt%~KLtyGyW?jz$~6iu{rnfK_$?($yaf z=^hBCnhwlA6ULosHkPd>)81pa_RK1beOE>SrMyF^=gP-2R1RQ zLa3^&avrlhV5OsP`qSANXXEVYo*^|Hr>S`Xbpm)A@j@0tgR2Cf$(T@ArWM_=!uswosUC2&Z@R-cM#zyNXnm6lSuLkZ37|8t7!uge5&fDKHgSvmX>R6wZd?!$lT{K zlOh&n?2BeV6dKWMpUO-1mA7={l!4?714&=oT4s2^(=5~0HzqcS?{TuZ$?lr&>bLzS z0H3{gO8|w*{sk5a11OMy#R3hEZt`nCFD!5h58$`Ry{vyXCMG6!Nd3C%Ha)tl0Tj`m zJgmzs=bc`TOQv-LmFKBXQL&yagM>1VQ5I>1m`wcBuhQN?mn7@FcA}0qM$lKYgrJ|T zxa%}EKzBICmUyw$Z2KTcl1<$UDc`6as-$H2n1+-CUDTsBn-Nv5`+H~ zzxc_sU&?m@(XlyW_FJ*|9#R-nT5tb3a~k0MzfOz)Ke^WTH2-TJ{of*p3h#00>~&qQ z@4kb^S;zodCn}~ga#~sVYjSr2kMM;!Wsk=G8ud~2wp~S(&GDNkysGza`S8MDCE1}& zn+vmTJ49fN&gT?4$S`g{x%~&P;AYP~GeI#8)1C5U@=8as9xv>)r_eE)?Xy+?$M1on zr6%)qP1wX!>0%2Q0hAS8k5<<%)aBtit+ZbriS)N`uCcIIVmXZL508>YaKb@Vw?lop zFcm`dFF?1)Vb8E32yyxWSE6h!Hsha-ON}*j9hp_EWQT&dKPXEuB5az_(aK~X8#!F+ zGA#8{i1lFd&^DI!<6O*Dycaq~KA7q}NZ?$j@M=5rVf*M%&i`uPfmD|I-Bm?o#O-_v zn5)e~jaVq)Xw`wKcLX^=x#36>1nO@^hCIXf3!?+kx@&}ntr-%Cg8mjeTot&%zY zB@gGmaxd;`l+d$#USP?Lzm2_eSnasy_`0Ky%>KAFe013J3-QQu#CSi^*LO)-j1mh` zk2QPJ52wb===_E*26#F4#3%S#e!}j>Z`e;YMP;638~>DjwPsjr}p0 zdzQ@-P1P)xHiI^fggj;`fPJOw9J8x=SG#=Ej`q<**6vva+F{wzd8& zEcbT5U960J=aZZ~mAL~1Unx2)O1T7FXWrLeq-Vr@o=ZeCjGxJritm%c5Iywhd`3!| zIr`b#-&Fz3`~_%X3uyk4;NuNKIV^LRmoI&XLF_hl3i3B(Kz!~S`0kllwH@iCWo6`W z`)GPMze8Ny*>117^u5V_%b~eowuHd8{J&`@cPp&+yj*mKI+2Q$OhHuPPQr)(4rKn*L~&-;n*f z&Z%gs^8-txhKETNg9<&r_po7y#sJlHulJ^>9~+51f&XZs^xj!H^bl{LB39iK!~<0v z;Yxu(bPuaDpYH=37W!1JVbA18x0lPOy#;D%xJ&a~G1K9i1~r3Mh6SySiF!jdk4@$7 z)|}sUy3bm%QQy+#p0-O%x!CQFr4u^%mB0j=jH$|6T@rh~{)!<@Zs&&eDpq@Hc++!p!B#_QXNM({-;8xO#K;f(OnMYXK|ub(3=P?gLgy!wJBEIomF*X# zGv!G_zgM1$W#9e4#k4ZAd;HRpjH~1SNv0ZW-XnODeL1xhy2F$qxbTCib-xTh)lvc_ z_KFS4?e~20p+$=+#H7>G@8G-6-f&TXL~~L`CA1bU=GaJ^aD&CS^5i6@VD%uTE-Q;} zG#fb(3ui#fS=UvZHA~W7ay!#@baHBZO$CL_Pr*mvzbv-z>wTWaIWJ}-Hx~-FugP00 zJUZK%%zki?%EFf=)R6zQ2O!O1nMc<5>72MuvM!xeV z>n)a;{?*_S2}WmUJR)!~(1~_CKvyqa(6Qe|_E|*jA}+I^Awu)G2^dq4ebTyeL^!|} z`!?Z6TnYFapsU`z-tC&fcXCVAW)C}BGpCxyudK-ydWkpP42%72xENxjZM7GgXf|_> z(JX+bSMHx3cia$NkrL}BvfAlfRqCu$+A0Gub8onSMy@+AwO)}R1*o(;;MnXE@BGw$ zqh903EoKwY&eWDcx6JCC)cIrNVH%Tv@WOu$Genpx_1?E5;&<-ViJHjA8S8h;N9z%8 zE`HW_EqceTV2%sE6~Fd3qbZEN^`L6@TW!hN6v5?gSO4%ttn}`sV@^W_6Wi1hF3P?;bP&1-e{N2 z3Nd$cyNwfd!|6=fvE2gaJ2VCWCG^;Y-LHyA_NZKEOY8Ewjo1AlFc|_$wqWp!?TH5= zzZ~Y%ArAx;LPY-sWB{QMko3O*02=p?3jY9;4n#|AnA64D3rG1)}ca zdJa5zt5ReYx~2gd5WN(cSw`AL!ENR29M8Z@SiEI-6rA(T9tCtn4i@1N(iWKOt?na1 z(Q*P*gXO(F#*_g7^!kB_#E!I02q=_H+>W_qo3l(neS^GZmsh0^U-KyZtT+K_36h)bKZYV6&P)&K*EPi z06IlzCRU2jVQd5e?+w8ySHc$Q%%B6LDK%xmHjG3|Y=PuZQisw_X@FS--Ly=Qd>`MI zo&d$%E8|bOc-&f63mMqCxLt%@`7hDu+sG*~5h!_(*1byP(A3E~ayO)+`g3(k6=Z*p z9TA2Yn~sG%N+<-{;a!L;nu}U!f`5Vc;b;C4vXWG&=D1bQqDf6XN};r5TvvD}cP?^M z)SPg1w1eZ*tfyKcJ@U*MIy&ENyvp~h_=#Op9W>!pMGvve*i##K6$U8188koQaGiFk zsH>3K2!<1lj6DMyOD?V^Ofw{E3bFyg-S`N~ol|$LzT)p*fkD%k+zr6h$ zAw*L4nvGDq2nvBP;z6s>vQs+FSq`c=1Pm(qUxd()2_m?Jv-11(3wt%7$1>o+f9uLW zwdTJlj0?eXl7Yb20ztT2P;!;&piKoGdP4;2~#h{rVy(h<%;?twy z-@aaNCaEKc0|722Q(wXxzkM@UdA{uT(vw5LxG%t&e)e-{CuhD~msuK4;{8`O_ACre z5<9gM8FcOj`HDBhn^dKztISMLPa9iy7<+>RB9ZPP;OrQ&5JN)(tdKS z1-;sKMEsnXW~jto6lcV0j9QfVw?IITB~{rPj2!q41({!(73Yl!?Pp?EBomnr!lmi7 z?VS{Y|LlqUBruRP;Wv{2`ujOyR2pdRgS|UrG<78j^yQ`)Ubl~8O&^+AirIf#^&G$U z5|h&Q|9ndNGYkUy1A?&*Z$l)>4GF;#S^8IdbF?DG7oPKa@@>S3QWP@aW;b4vF!7bs zAh@r-G2wo}*7p}AF)OlS)x!(tG+}9gXU#2xlCjY!hBp@P*hnR7{DG&P9N>K(9wZ15 zT`z)9!S(Wi7(hFi?f{{+QaD0-q_+qTmX*62au&P-ui$T8y$i4ff_c2@KF|MYRRx(> zWf(n=qU8$|;-w{kr3}+QCOA_KWTZ*M(Ukonv_JYLv}gCTI!-l)WV)6B0r`!vUI-}I5iscRnbA!2$=I4<~0Y{s*L&o$m;zuzmz zhqm(^!v64nmKt*AZAHv4!mbUDA$W^~uakt(m^ENCw5TG5ka`TQY1&{J*K;vC2at46 zq2#dRVc|tRIE9`OXJH;tZQ}FD(2KYG1w&E0)N~##nv4fJ-==sKuIHA|3fRI*#h4!+cCCBl2 zr~y0TVI}#{j^*s(<1Bq42nPy(u%RRD$;wXkYbK&uUBOi$`P0s&3jV6Lf9<>3>@biQ zMtziw=HL=}N}5YRD-lnNm=pvQf#!n#&j%&IfBf}dA5NFlcnKCxc;*W3sR1Ft8k3|a zbz*`aEK6-(&`y1wa!*QaGu4I80z#9%Q;(J+#H3_<=)GX92Gc;_?=V1GppUC`*>XX)i&tf-&fq%qgf!kw5q(;;Gv%N7z$4ymhJ1} z_86#femZXGbRcf^v5|8I8jL*_X;~-W*%M>8=1D>^^eb<;pU!)tG*s{4!&7_xY%T^< znXTGdb>qD1 zmb^1yS?9U(yt&x~1aYF=d$icG2{^*xt6(#M|AHm1lxW&N%n@e$uG+L=xh(q}-h=wy z<){L4ycF>|;U0H7`nMNq!-a4xB3T=ozNX<}>WBX3+9PKQ-cif7swF zx$yB6oI71|w7XekMSA^zxgHigM64P~quFuC9^-s4N$0S!>8ad<1%Q?~lWc04UbA&1 zK7LCS`UG^Rh^CQ9b_*}I^8SO7>ByFzuWAM+hUHWLoFwwR`W>1Ff|P1b(5XcM?NpJK z0K(9Jz$64!WQZx0HwmG&6}~mY)cn*0ln>VHkZ)aD#4Q3D>Oo=krA1tPp8)w*vFTBT zY7AwC6|0RPjrtCM%OytIEX&0#@ z(y;MQ`}mx8JOfaWp%_%An1&rn$HP%#o}^1(Of#Q*0}9^jK~CpO0+usU6I&}NN+6q9 z0a2`tQD-Lm-y~%=CoPu4OMcB@S>`k@mo#PYBK2+*S#=2d=G%HQ`#NivGvnA3Hr-P7 zP#=`wXlhu^RBdA*N(71I;K+E1$JXFd9$xg7TN@$TP#kC$Lr~Vxi1o+~1O~b# z?OV6VGW<<0qL3dl#SzG(jbzbNMsdiLxy6dKIoIjDD}kpwwo3GAvD$&mkj-3E$Zs{ft?Skam^pIaJf_hRIh(_5U*>l1Hu!e!+{)%j9;%r zD>~%*cgA9K(Kg{N~X-lG$S}TIedErt$j!$a4?L3Vs%4Ul8cD6ri*FR8K}3Y+wApx&C2h-;~!f?Nm%A$ zQr;y+jd*scv#r>lhbY5_1Xm_i8nvxx_6d))D%kmjpG|QnB*XsC zoNUQU`!E!(GEI;MX}oLrPz{MPd>hk@A5+;mBDY3;9BLEu7k9w3fOGai*pk}-mb%yY z8-q)(*_JBBYtG!D%(cU>BMKOZmSpWbnZFo6jYr%eQ2-C`ogGw3zoRzjy9S#JB`fJO38H8;v|$k_;Ho$b4XPHpC1=4S+-B-;JR?1 ze|Lq7TK>y(q|LmBAPM1M0A61NC6D#r-+LG{W6bJo_!0D3VA95d!!rFdM_s;!01V$k z>~pN_wu9BY{FrqraeBD>VzidS6bFNS__dmKEUW&StiKY2b95-C|_x6kmE|A$$Skx&q?6g3R`9~bS# A&;S4c literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/work_entries/generate-payslips.png b/content/applications/hr/payroll/work_entries/generate-payslips.png deleted file mode 100644 index 05790e0c43c8604edddde58519147691a16db1f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16425 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⩔2H&yYfI{`I`c)X(nl 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 Vi@-9g`~&n)URqhILee Date: Wed, 20 Aug 2025 18:36:28 +0000 Subject: [PATCH 09/52] [IMP]: Update doc to match current Odoo 18.4 A lot of updates happened during the life of 18x versions and the doc needs to be updated to reflect that. closes odoo/documentation#14569 X-original-commit: d7d8f00dc521104c8080ea6c92c3e1024c0851d3 Signed-off-by: Felicia Kuan (feku) --- .../finance/fiscal_localizations/mexico.rst | 505 +++++++++++++----- .../mexico/mx-CFDI_3relations.png | Bin 0 -> 48088 bytes .../mexico/mx-print-payment.png | Bin 0 -> 36013 bytes .../mexico/mx-withholdings-cash-basis.png | Bin 0 -> 133215 bytes 4 files changed, 377 insertions(+), 128 deletions(-) create mode 100644 content/applications/finance/fiscal_localizations/mexico/mx-CFDI_3relations.png create mode 100644 content/applications/finance/fiscal_localizations/mexico/mx-print-payment.png create mode 100644 content/applications/finance/fiscal_localizations/mexico/mx-withholdings-cash-basis.png diff --git a/content/applications/finance/fiscal_localizations/mexico.rst b/content/applications/finance/fiscal_localizations/mexico.rst index 676444fd62..bfe99e2b50 100644 --- a/content/applications/finance/fiscal_localizations/mexico.rst +++ b/content/applications/finance/fiscal_localizations/mexico.rst @@ -11,6 +11,7 @@ Mexico Deferred)` .. |PUE| replace:: :abbr:`PUE (Pago en una Sola Exhibición/Payment in a Single Exhibition)` .. |CFDI| replace:: :abbr:`CFDI (Comprobante Fiscal Digital por Internet)` +.. |IEPS| replace:: :abbr:`IEPS (Impuesto Especial sobre Producción y Servicios)` .. _l10n/mx/modules: @@ -30,7 +31,7 @@ The following modules are automatically installed with the Mexican localization: - `l10n_mx` - The default :doc:`fiscal localization package <../fiscal_localizations>` adds accounting characteristics for the Mexican localization, such as: the most common taxes and the chart of - accounts – based on `the SAT account grouping code + accounts — based on `the SAT account grouping code `_. * - :guilabel:`EDI for Mexico` - `l10n_mx_edi` @@ -96,11 +97,13 @@ if meeting a specific requirement for the business. Video tutorials =============== -Videos on the Mexican localization are also available. Basic workflows and most topics covered -on this page are also available in video format, please check out the following: +Videos on the Mexican localization are also available. Basic workflows and most topics covered on +this page are also available in video format, please check out the following: -- `Odoo Smart Tutorial - Mexican localization `_ -- `Basic configurations and Youtube playlist `_ +- `Odoo Smart Tutorial - Mexican localization + `_ +- `Basic configurations and Youtube playlist + `_ .. _l10n/mx/overview: @@ -132,9 +135,9 @@ modules in Odoo: #. Have a `Certificado de Sello Digital / Digital Seal Certificate `_ (CSD). #. Choose a |PAC|. Currently, Odoo works with the following |PAC|\s: `Solución Factible - `_, - `Quadrum `_, and - `SW Sapien - Smarter Web `_. + `_, `Quadrum + `_, and `SW Sapien - Smarter Web + `_. .. _l10n/mx/company: @@ -148,9 +151,9 @@ select the company to configure. Enter the full :guilabel:`Address` in the resulting form, including: :guilabel:`ZIP` code, :guilabel:`State`, :guilabel:`Country`, and |RFC| (:guilabel:`Tax ID` number). -According to the requirements of the |CFDI| 4.0, the name of the main company contact **must** -match the business name registered in the |SAT|, without the legal entity abbreviation. This is the -same for the :guilabel:`ZIP` code. +According to the requirements of the |CFDI| 4.0, the name of the main company contact **must** match +the business name registered in the |SAT|, without the legal entity abbreviation. This is the same +for the :guilabel:`ZIP` code. .. important:: From a legal point of view, Mexican companies **must** use the local currency (MXN). To use @@ -167,22 +170,33 @@ Regime` that applies to the company from the drop-down list, and click :guilabel URGATE` as the :guilabel:`Company Name`. For the :guilabel:`Fiscal Regime`, use :guilabel:`General de Ley Personas Morales`. +Branches +-------- + +When using branches, all the invoicing information will be taken from the main company except for +the zip. Unless the |RFC| is set on the branch, then the information will be taken directly from the +branch. + +Branches enable users to establish multiple brands within the same parent company. Additionally, +when different fiscal regimes are required for invoicing purposes, it is necessary to create a +branch for each regime. By default, the regime is inherited from the parent company. However, if the +regime is explicitly set on the branch, Odoo will adopt the regime applicable to that branch. + .. _l10n/mx/contacts: Contacts -------- .. note:: - :ref:`Install ` the Contacts application to access contact records. + :ref:`Install ` the **Contacts** application to access contact records. -To create a contact that can be invoiced, go to :menuselection:`Contacts --> Create`. Then, enter -the contact name, full :guilabel:`Address` including the :guilabel:`ZIP` code, :guilabel:`State`, -:guilabel:`Country`, and |RFC| (:guilabel:`Tax ID`). +To create a contact that can be invoiced, go to the :menuselection:`Contacts` app and click +:guilabel:`New`. Then, enter the contact name, full :guilabel:`Address` including the +:guilabel:`ZIP` code, :guilabel:`State`, :guilabel:`Country`, and |RFC| (:guilabel:`Tax ID`). .. important:: - As with your own company, all contacts must have their correct business name registered in the - |SAT|. This also applies to the :guilabel:`Fiscal Regime`, which needs to be added in the - :guilabel:`Sales & Purchase` tab. + As with the company itself, all contacts must have their correct business name registered in the + |SAT|. The :guilabel:`Fiscal Regime` must also be added in the :guilabel:`Sales & Purchase` tab. .. warning:: Having a |RFC| (:guilabel:`Tax ID`) set but no :guilabel:`Country` configured may result in @@ -196,25 +210,48 @@ Taxes In order to properly sign invoices, set the :ref:`Factor Type ` and :ref:`Tax Object ` fields on sales taxes. +.. tip:: + RESICO ISR withholdings and some |IEPS| taxes are created automatically, but the feature is not + active by default. To enable it, go to :menuselection:`Accounting --> Configuration --> Taxes`. + .. _l10n/mx/factor-type: Factor type ~~~~~~~~~~~ -Both the :guilabel:`SAT Tax Type` and :guilabel:`Factor Type` fields are pre-loaded in the default -taxes. If new taxes are created, these fields must be set. To do so, go to -:menuselection:`Accounting --> Configuration --> Taxes`, then fill both fields in the -:guilabel:`Advanced Options` tab for all tax records, with the :guilabel:`Tax Type` set as -:guilabel:`Sales`. +Both the **Factor Type** and **SAT Tax Type** fields are pre-loaded in the default taxes. + +For new taxes, set these fields in :menuselection:`Accounting --> Configuration --> Taxes` and click +:guilabel:`New`. Set the :guilabel:`Tax Type` to :guilabel:`Sales`. In the :guilabel:`Advanced +Options` tab, fill :guilabel:`SAT Tax Type` and :guilabel:`Factor Type` fields. Odoo supports four groups of :guilabel:`SAT Tax Types`: :guilabel:`IVA`, :guilabel:`ISR`, :guilabel:`IEPS`, and :guilabel:`Local Taxes`. +If the factor type is :guilabel:`Quota`, standard calculation methods cannot be used. Instead, set +the tax calculation computation to :guilabel:`Custom Formula`. + +.. example:: + .. math:: + result = quantity * 6.455 + + - *quantity* = the number of items in the transaction + - *6.455* = the quota value (a fixed amount per unit) + - Only per-unit quotas are supported, not quotas based on other factors + .. tip:: Mexico manages two different kinds of 0% VAT to accommodate two scenarios: - - For *0% VAT*, set the :guilabel:`Factor Type` as :guilabel:`Tasa` - - For *VAT Exempt*, set the :guilabel:`Factor Type` as :guilabel:`Exento` + - For *0% VAT*, set the :guilabel:`Factor Type` to :guilabel:`Tasa` + - For *VAT Exempt*, set the :guilabel:`Factor Type` to :guilabel:`Exento` + +.. note:: + Local taxes are generated in a separate node in the XML file, these do not get validated by the + |PAC|. + +.. warning:: + Quotas and custom formulas require the :guilabel:`Define Taxes as Python Code` module. See + :doc:`Taxes <../accounting/taxes>`. .. _l10n/mx/tax-object: @@ -222,22 +259,55 @@ Tax object ~~~~~~~~~~ One requirement of the CFDI 4.0 is that the resulting XML file handles the breakdown of taxes of the -operation in accordance with the regulation. There are three different possible values that are +operation in accordance with the regulation. There are eight different possible values that are added in the XML file: -- `01`: Not subject to tax: This value is added automatically if the invoice line doesn't contain - any taxes. -- `02`: Subject to tax: This is the default configuration of any invoice line that contains taxes. -- `03`: Subject to tax and not forced to break down: This value can be triggered on demand for - certain customers to replace the value `02`. +- `01`: No tax Object: This value is added automatically if the invoice line doesn't contain any + taxes. +- `02`: Tax Object: This is the default configuration of any invoice line that contains taxes. +- `03`: Tax Object and doesn't require breakdown: This can only be added manually. +- `04`: Tax Object and doesn't have tax: This can only be added manually. +- `05`: Tax Object, VAT for PODEBI: This can only be added manually. +- `06`: VAT Object, No VAT forwarded: This object will be selected when there is an ISR withholding + and no VAT tax. +- `07`: No VAT forwarded, |IEPS| breakdown: This object will be selected when there is an ISR + withholding, |IEPS| tax and no VAT tax. +- `08`: No VAT forwarded, |IEPS| breakdown: This object can only be added manually. -To use the `03` value for a contact, navigate to the contact's :guilabel:`Sales & Purchase` tab, and -activate the :guilabel:`No Tax Breakdown` checkbox under the :guilabel:`Fiscal Information` section. +.. warning:: + Using either 01, 03, 04, or 05 will remove the tax node from the XML file. + +.. important:: + The :guilabel:`IEPS breakdown` status affects the behavior of the tax objects due to the missing + |IEPS| when the breakdown does not happen. + +.. _l10n/mx/local-taxes: + +Local taxes +~~~~~~~~~~~ + +Local taxes (e.g., *ISH*, *Cedullar*) require a separate XML node and may not follow standard tax +logic. + +When configuring a local tax, its name appears in the local tax complement. The rate is treated as a +withholding if negative, or carried forward if positive. + +.. _l10n/mx/ieps-breakdown: + +IEPS breakdown +~~~~~~~~~~~~~~ + +By default Odoo hides the |IEPS| in the invoices so that the subtotal on which the VAT is calculated +includes the amount of |IEPS|, this is to ensure that Fiscal Regimes that don't require it, don't +recieve it. + +It is possible to make the |IEPS| visible in the XML by selecting the :guilabel:`IEPS Breakdown` +checkbox inside each contact on the :guilabel:`Sales & Purchase` tab. .. important:: - The :guilabel:`No Tax Breakdown` value applies **only** to specific fiscal regimes and/or taxes. - Consult your accountant first to see if it is needed for your business before making any - modification. + When using either :ref:`eCommerce invoicing ` or the :ref:`Self invoicing + portal `, the customer will have the option to decide whether or not to have + the |IEPS| breakdown. .. _l10n/mx/tax-config: @@ -253,13 +323,34 @@ delete this account**. .. _l10n/mx/products: +Withholdings +------------ + +By default, Odoo includes withholdings with special distributions to allocate VAT. + +When registering an invoice, add the withholding and its corresponding VAT. Both must be included on +the vendor bill to ensure correct accounting. Using :doc:`fiscal positions +<../accounting/taxes/fiscal_positions>` is recommended so the cash-basis entry properly splits the +distribution. + +.. example:: + For a lease vendor bill of `10000 MXN`, the `10.67%` lease withholding corresponds to a `16% VAT + 2/3 H`. Both taxes must be applied together to reflect the correct accounting. + +.. image:: mexico/mx-withholdings-cash-basis.png + :alt: Cash Basis entry with VAT split between paid and due. + +.. note:: + Withholdings |CFDI| is not currently supported. Consult with an accountant the proper + distribution. + Products -------- -To configure products, go to :menuselection:`Accounting --> Customers --> Products`, then select a -product to configure, or :guilabel:`Create` a new one. In the :guilabel:`Accounting` tab, in the -:guilabel:`UNSPSC Product Category` field, select the category that represents the product. The -process can be done manually, or through :doc:`a bulk import <../../essentials/export_import_data>`. +To configure products, go to :menuselection:`Accounting --> Customers --> Products`. Open an +existing product or click :guilabel:`New`. In the :guilabel:`Accounting` tab, set the +:guilabel:`UNSPSC Product Category`. Products and categories can be set manually, or through :doc:`a +bulk import <../../essentials/export_import_data>`. .. note:: All products need to have a |SAT| code associated with them in order to prevent validation @@ -289,9 +380,9 @@ your credentials (:guilabel:`PAC username` and :guilabel:`PAC password`). :alt: Configuring PAC credentials from the Accounting settings. .. tip:: - To test the electronic invoicing without credentials, activate the :guilabel:`MX PAC - test environment` checkbox, and select :guilabel:`Solucion Factible` as the :guilabel:`PAC`. It - is not required to add a username or password for a test environment. + To test the electronic invoicing without credentials, activate the :guilabel:`MX PAC test + environment` checkbox, and select :guilabel:`Solucion Factible` as the :guilabel:`PAC`. It is not + required to add a username or password for a test environment. .. _l10n/mx/certifications: @@ -300,8 +391,8 @@ your credentials (:guilabel:`PAC username` and :guilabel:`PAC password`). The `digital certificates of the company `_ must be uploaded within -the :guilabel:`Certificates` section. To do so, navigate to :menuselection:`Settings --> -General Settings --> Certificates and Keys`. +the :guilabel:`Certificates` section. To do so, navigate to :menuselection:`Settings --> General +Settings --> Certificates and Keys`. Under :guilabel:`Manage your certificates`, click the :icon:`fa-right-arrow` :guilabel:`Keys` link to access the :guilabel:`Keys` list view. Click :guilabel:`Create`, upload the digital @@ -319,8 +410,7 @@ menu. records are optional. .. tip:: - In order to test the electronic invoicing, - the following |SAT| test certificates are provided: + In order to test the electronic invoicing, the following |SAT| test certificates are provided: - :download:`Certificate ` - :download:`Certificate Key ` @@ -346,8 +436,33 @@ Customer invoices To start invoicing from Odoo, a customer invoice must be created using the :doc:`standard invoicing flow <../accounting/customer_invoices>`. -While the document is in draft mode, changes can be made to it (the correct :guilabel:`Payment Way` -or :guilabel:`Usage` that the customer might require can be added, for example.) +While the document is in draft mode, changes can be made to it, some fields take values previously +set on the sale order or the contact. + +The fields that need to be reviewed are: + +- CFDI to public. +- Usage +- Payment Policy +- Payment Method (If Payment Policy is not set as |PPD|) + +.. tip:: + :guilabel:`Usage`, :guilabel:`Payment Policy` and :guilabel:`Payment Method` can be previously + set on a sale order and/or can be set on the contact for every invoice. + +The payment policy is a selectable field on the invoice and can be manually set to the required +policy, however if no policy is selected, Odoo will compute an automatic policy based on the +following general rules: + +The value will be set to |PUE| if the due date in which the payment is expected is within the +current month, in case the date is outside the current month, the policy will be set to |PPD| +instead. + +.. warning:: + If the payment policy is not selected and |PPD| policy is expected, either select an invoice + :guilabel:`Due Date` on a different month than the current one, or choose :guilabel:`Payment + terms` that imply changing the due month (i.e., :guilabel:`30 Days`, or :guilabel:`15 Days`, as + long as they fall on the next month). After clicking on :guilabel:`Confirm` in the customer invoice, click on the :guilabel:`Send` button to process the invoice with the government. Make sure that the :guilabel:`CFDI` checkbox is marked. @@ -370,6 +485,12 @@ To download the PDF file locally, click the :guilabel:`Print` button. On a testing environment, the message :guilabel:`Not Found` will always come up. +.. warning:: + If the partner does not contain the :guilabel:`Country` or :guilabel:`Zip` the invoicing is + assumed as a |CFDI| to public and the invoicing will be addressed to the generic customer. If + however, these fields are left empty and the user unticks the :guilabel:`CFDI to public` + checkbox, a pop-up will appear blocking the operation. + .. _l10n/mx/credit-notes: Credit notes @@ -378,8 +499,8 @@ Credit notes While an invoice is a document type "I" (Ingreso), a credit note is a document type "E" (Egreso). The only addition to the :doc:`standard flow for credit notes -<../accounting/customer_invoices/credit_notes>` is that, as a requirement of the |SAT|, there has -to be a relation between a credit note and an invoice through the fiscal folio. +<../accounting/customer_invoices/credit_notes>` is that, as a requirement of the |SAT|, there has to +be a relation between a credit note and an invoice through the fiscal folio. Because of this requirement, the field :guilabel:`CFDI Origin` adds this relation with a `01|`, followed by the fiscal folio of the original invoice. @@ -388,6 +509,22 @@ followed by the fiscal folio of the original invoice. For the :guilabel:`CFDI Origin` field to be automatically added, use the :guilabel:`Add Credit Note` button from the invoice, instead of creating it manually. +.. _l10n/mx/vendor-bills: + +Vendor bills +~~~~~~~~~~~~ + +Vendor bills have to have a fiscal folio for reports and payments to work correctly, if the vendor +bill was created by the purchase app or added manually, just add the XML file of the invoice on the +chatter **As a log note** and the fiscal folio will be updated accordingly, keep in mind that the +bill **Must be in draft state** for the update to happen. + +.. tip:: + When clicking :guilabel:`Update SAT`, the :guilabel:`SAT status` field on the invoice will + confirm if the XML file is **Validated** in the |SAT|, this is also true for vendor bills. + +See also :doc:`../accounting/vendor_bills` + .. _l10n/mx/payments: Payments @@ -398,28 +535,22 @@ Payments Payment policy ************** -One addition of the Mexican localization is the :guilabel:`Payment Policy` field. `According to -the SAT documentation `_, +One addition of the Mexican localization is the :guilabel:`Payment Policy` field. `According to the +SAT documentation `_, there are two types of payments: - :guilabel:`PUE` (Pago en una Sola Exhibición/Payment in a Single Exhibition) - :guilabel:`PPD` (Pago en Parcialidades o Diferido/Payment in Installements or Deferred) -The difference lies in the :guilabel:`Due Date` or -:doc:`../accounting/customer_invoices/payment_terms` of the invoice. - -To configure |PUE| invoices, navigate to :menuselection:`Accounting --> Customers --> Invoices`, -and either select an invoice :guilabel:`Due Date` within the same month, or choose -:guilabel:`Payment terms` that do not imply changing the due month (i.e., :guilabel:`Immediate -Payment`, or :guilabel:`15 Days` or :guilabel:`21 Days`, as long as they fall within the current -month). +.. warning:: + Payment Complements are only generated if the policy of the invoice is set to |PPD|, please note + that it is a requirement to set the :guilabel:`Payment Method` to something different than **99 - + Por definir**. .. image:: mexico/mx-pue-payment.png :alt: Example of an invoice with the PUE requirements. -To configure |PPD| invoices, navigate to :menuselection:`Accounting --> Customers --> Invoices`, and -select an invoice with a :guilabel:`Due Date` after the first day of the following month. This also -applies if your :guilabel:`Payment Term` is due in the following month. +If the invoice has a due date outside the current month, it will default to |PPD|. .. image:: mexico/mx-ppd-payment.png :alt: Example of an invoice with the PPD requirements. @@ -470,7 +601,14 @@ both the invoice and the payment. Similar to an invoice or credit note, the PDF and XML can be sent to the final customer. To do so, click the :icon:`fa-cog` :guilabel:`(gear)` icon to open the actions drop-down menu and select -:guilabel:`Send receipt by email`. +:guilabel:`Send receipt by email` from the payment view. + +Regardless of whether the payment was created with or without reconciliation, it is possible to +download the payment PDF from the :guilabel:`CFDI` tab on the invoice by clicking the +:guilabel:`print` button. + +.. image:: mexico/mx-print-payment.png + :alt: Example of the print button on the CFDI tab. .. _l10n/mx/invoice-cancellations: @@ -485,6 +623,9 @@ there are two requirements for this: - After 24 hours from the invoice creation, the client must be asked to approve the cancellation. If there is no response within 72 hours, the cancellation is processed automatically. +Invoice cancellations are updated automatically on Odoo but can take some time, to check the status +of the cancellation just press the :guilabel:`Update SAT` button. + Invoice cancellations can be made for one of the following reasons: - 01 - Invoice issued with errors (with related document) @@ -518,8 +659,8 @@ Cancellation reason 01 replaces the previous invoice, along with the related |CFDI|. #. :guilabel:`Confirm` the draft and :guilabel:`Send & Print` the invoice. #. Return to the initial invoice (i.e., the invoice from which you first requested the - cancellation). Notice the :guilabel:`Substituted By` field appears with a reference to the - new replacement invoice. + cancellation). Notice the :guilabel:`Substituted By` field appears with a reference to the new + replacement invoice. #. Click :guilabel:`Request Cancel`. In the :guilabel:`Request CFDI Cancellation` pop-up window, the :guilabel:`01 - Invoice issued with errors (with related document)` option is automatically selected in the :guilabel:`Reason` field. @@ -557,11 +698,10 @@ tab. related document first. - The cancellation request is still being processed by the |SAT|. If so, wait a few minutes and try again. - - The final customer needs to reject or accept the cancellation request in their - `Buzón Tributario - `_. This - can take up to 72 hours and, in case that the cancellation requests gets rejected, you will - need to repeat the process again. + - The final customer needs to reject or accept the cancellation request in their `Buzón + Tributario `_. + This can take up to 72 hours and, in case that the cancellation requests gets rejected, you + will need to repeat the process again. .. seealso:: `Tool to validate Mexican Electronic Documents (CFDI) status @@ -588,8 +728,10 @@ Like with invoices, go to the payment and click :guilabel:`Update SAT` in order :guilabel:`SAT Status` and :guilabel:`Status` to :guilabel:`Cancelled`. .. note:: - Just like invoices, when creating a new payment complement, you can add the relation of the - original document, by adding a `04|` plus the fiscal folio in the :guilabel:`CFDI Origin` field. + Just like invoices, when creating a new payment complement, it is possible to add the relation of + the original document, by adding a `04|` plus the fiscal folio in the :guilabel:`CFDI Origin` + field. + This action cancels the invoice and marks the :guilabel:`Reason` as :guilabel:`01 - Invoice issued with errors (with related document)`. @@ -598,6 +740,42 @@ Like with invoices, go to the payment and click :guilabel:`Update SAT` in order Invoicing special use cases ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. _l10n/mx/cfdi-origin: + +CFDI relations +************** + +Sometimes it is needed to relate the current document to previously signed CFDIs, to do so just fill +the :guilabel:`CFDI Origin` field on the invoice indicating a relation, there are 7 possible values: + +- 01: Nota de crédito +- 02: Nota de débito de los documentos relacionados +- 03: Devolución de mercancía sobre facturas o traslados previos +- 04: Sustitución de los CFDI previos +- 05: Traslados de mercancias facturados previamente +- 06: Factura generada por los traslados previos +- 07: CFDI por aplicación de anticipo + +.. tip:: + The format is: Origin Type|UUID1, UUID2, ...., UUIDn where more than one Origin Type can be + added. + +.. example:: + Here is an example with two relations: + + .. code-block:: none + + 04|042FE739-7B45-4D64-B26D-360000876D83, + 07|A164BAF8-8016-428C-A422-D9BD2F68F6A0,CEAD9433-3B77-4270-85BF-AC2519587514 + + - The first section has relation type **04** with **1 UUID** + - The second section has relation type **07** with **2 UUIDs** + +Additionally any combination is also visible on the signed PDF. + +.. image:: mexico/mx-CFDI_3relations.png + :alt: Example of the PDF with 3 relations. + .. _l10n/mx/multicurrency: Multicurrency @@ -610,8 +788,8 @@ use of :doc:`multicurrency <../accounting/get_started/multi_currency>`, navigate Mexico` as the :guilabel:`Service` in the :guilabel:`Automatic Currency Rates` section. Then, set the :guilabel:`Interval` field to the frequency you wish to update the exchange rates. -This way, the XML file of the document will have the correct exchange rate, and the total amount, -in both the foreign currency and in MXN. +This way, the XML file of the document will have the correct exchange rate, and the total amount, in +both the foreign currency and in MXN. It is highly recommended to use separate :doc:`bank accounts for each currency <../accounting/bank/foreign_currency>`. @@ -636,9 +814,9 @@ In order to set this up, navigate to :menuselection:`Sales --> Products --> Prod product `Discounts`, make sure that it has a valid :guilabel:`Tax` (usually :guilabel:`IVA` at `16%`). -After this, create and sign the invoice via CFDI, and add the `Discounts` product at the bottom. In the XML -the discount should be subtracted from the first invoice line available, Odoo will try to subtract -from each line the total amount in order until all the discount has been applied. +After this, create and sign the invoice via |CFDI|, and add the `Discounts` product at the bottom. +In the XML the discount should be subtracted from the first invoice line available, Odoo will try to +subtract from each line the total amount in order until all the discount has been applied. .. tip:: A `Discount` and `UNSPSC Product Category` for each product variant related to :guilabel:`Gift @@ -650,8 +828,8 @@ Down payments ************* A common practice in Mexico is the usage of :doc:`down payments -<../../sales/sales/invoicing/down_payment>`. It's usage primarily consists of cases where you receive -a payment for a good or service where either the product or the price (or both) hasn't been +<../../sales/sales/invoicing/down_payment>`. It's usage primarily consists of cases where you +receive a payment for a good or service where either the product or the price (or both) hasn't been determinated at the moment. The |SAT| allows two diferent ways to handle this process: both of them involve linking all invoices @@ -695,12 +873,12 @@ delete the line that contains the product *Anticipo*. be created. Then, copy the :guilabel:`Fiscal Folio` from the down payment invoice, and paste it into the -:guilabel:`CDFI Origin` of the final invoice, adding the prefix `07|` before the value and sign -the document via CFDI. +:guilabel:`CDFI Origin` of the final invoice, adding the prefix `07|` before the value and sign the +document via |CFDI|. Finally, create a credit note for the first invoice. Copy the :guilabel:`Fiscal Folio` from the final invoice, and paste it in the :guilabel:`CFDI Origin` of the credit note, adding the prefix -`07|`. Then, sign the document via CFDI. +`07|`. Then, sign the document via |CFDI|. With this, all electronic documents are linked to each other. The final step is to fully pay the new invoice. At the bottom of the new invoice, you can find the credit note in the @@ -722,7 +900,31 @@ rename the other products :guilabel:`Description` to include the text `CFDI por anticipo`. Don't forget to add the :guilabel:`Fiscal Folio` of the down payment invoice in the :guilabel:`CDFI Origin` of the final invoice, adding the prefix `07|`. -Finally, sign the final invoice via CFDI. +Finally, sign the final invoice via |CFDI|. + +.. _l10n/mx/addendas-and-complements: + +Addendas and complements +************************ + +Addendas and complements can be included in the XML. To add one, go to :menuselection:`Accounting +--> Configuration --> Addendas & Complementos (MX)` and :guilabel:`New` to enter the code to be +injected. Additional fields beyond standard Odoo may be required. + +.. warning:: + This section might require techincal knowledge as well as technical debt, it is recommended to + ask your account manager for the best technical assistance. + +Once the desired nodes are created, they can be selected on each contact to make them appear on +every invoice addressed to that contact. By default all the selected nodes will be added +automatically on every invoice. + +It is also possible to just select the nodes as needed on every invoice by selecting the +:guilabel:`Other info` tab and then selecting the desired nodes from :guilabel:`Addendas & +Complementos` + +.. tip:: + It is possible to add more than one per contact or per invoice. .. _l10n/mx/xml-reader: @@ -752,20 +954,20 @@ corresponding information. This can be done for :guilabel:`Vendor Bills` too. .. tip:: - - To retrieve the :guilabel:`Fiscal Folio`, drag and drop XML files for already created draft - invoices. + To retrieve the :guilabel:`Fiscal Folio`, drag and drop XML files as a log note in the chatter + for previously created draft invoices. .. _l10n/mx/cfdi: CFDI to public ************** -The Mexican government requires that any goods or services that are sold must be backed up by -an invoice. If the customer does not require an invoice or has no |RFC|, a -*CFDI to Public* has to be created also known as a "nominative" invoice. +The Mexican government requires that any goods or services that are sold must be backed up by an +invoice. If the customer does not require an invoice or has no |RFC|, a *CFDI to Public* has to be +created also known as a "nominative" invoice. A contact must be created and it must have a particular name. + If the :guilabel:`CFDI to Public` checkbox in either a sales order or an invoice is checked, the final XML will override the data in the invoice contact and will add the following characteristics: @@ -777,17 +979,17 @@ final XML will override the data in the invoice contact and will add the followi .. image:: mexico/mx-cfdi-to-public.png :alt: CFDI to Public Checkbox -.. important:: - If your contact :guilabel:`Country` is empty, the final invoice is considered as a *CFDI to - Public* for national customers. A non-blocking warning will be displayed before signing the - document. - If the final customer doesn't share any details, create a generic :guilabel:`Customer`. The name cannot be `PUBLICO EN GENERAL` or an error will be triggered (it can be, for example, `CLIENTE FINAL`). +.. warning:: + By default sending the invoice is not allowed if the partner does not have either the *Country* + or *Zip code* set, however this is not required if the :guilabel:`CFDI to public` checkbox is + active. + .. seealso:: - `Regla 2.7.1.21 Expedición de comprobantes en operaciones con el público en general. + `Regla 2.7.1.21 Expedición de comprobantes en operaciones con el público en general `_. .. _l10n/mx/global-invoice: @@ -804,7 +1006,8 @@ single invoice that can contain all operations, known as a *global invoice*. For this process, the :doc:`Sales <../../sales/sales>` app must be installed. .. seealso:: - `Guía de llenado del CFDI global `_ + `Guía de llenado del CFDI global + `_ Sales flow ^^^^^^^^^^ @@ -974,8 +1177,8 @@ provided by the |SAT|. For :guilabel:`Return of goods` or :guilabel:`Compensatio :guilabel:`Process Number`, also provided by the |SAT|. .. note:: - To see this report without sending it, use `ABC6987654/99` for the :guilabel:`Order - Number` or `AB123451234512` for the :guilabel:`Process Number`. + To see this report without sending it, use `ABC6987654/99` for the :guilabel:`Order Number` or + `AB123451234512` for the :guilabel:`Process Number`. .. _l10n/mx/diot: @@ -990,18 +1193,22 @@ vendor bills are provided to the |SAT|. .. note:: Since July 2025 the new 2025 version of the report is available. -Unlike other reports, the |DIOT| is uploaded to a software provided by the |SAT| that contains the +Unlike other reports, the |DIOT| is uploaded to a website provided by the |SAT| that contains the A-29 form. In Odoo, you can download the records of your transactions as a TXT file that can be uploaded to the form, avoiding direct capture of this data. -The transactions file contains the total amount of your payments registered in vendor bills, broken -down into the corresponding types of IVA. The :guilabel:`VAT` and :guilabel:`Country` is mandatory -for all vendors. +The transactions file contains the total amount of the payments registered in vendor bills, broken +down into the corresponding types of IVA. The :guilabel:`VAT`, :guilabel:`Country` and +:guilabel:`Type of operation` fields are mandatory for all vendors. To download the |DIOT| report as a TXT file, go to :menuselection:`Accounting --> Reports --> Tax Return`. Select the desired month, click :icon:`fa-cog` :guilabel:`(action menu)`, and select :guilabel:`DIOT (TXT)`. +In case new taxes are created on the database, there are two types of tags, the tags containing +**tax** must go into the tax distribution and the ones with the base name go on the base of the tax. +All lines of a VAT tax **must** containing at least one tax grid. + .. image:: mexico/mx-reports-diot.png :alt: DIOT (TXT) download button. @@ -1036,7 +1243,6 @@ description of the merchandise sold. Since January 1, 2018, external trade is a requirement for taxpayers who carry export operations of type A1. While the current CFDI is 4.0, the external trade is currently on version 2.0. - .. note:: In order to use this feature, the :guilabel:`EDI for Mexico (Advanced Features)` `l10n_mx_edi_extended` module must be installed. @@ -1045,6 +1251,8 @@ type A1. While the current CFDI is 4.0, the external trade is currently on versi Before installing, make sure your business needs to use this feature. Consult your accountant first, if needed, before installing any modules. + The :guilabel:`CFDI to public` checkbox must be ticked when creating foreign invoices. + Configuration ~~~~~~~~~~~~~ @@ -1078,11 +1286,6 @@ following fields completed to avoid errors: #. In the :guilabel:`Sales & Purchase` tab, to activate the :guilabel:`Needs external trade?` checkbox. -.. important:: - - Do not enable the :guilabel:`No Tax Breakdown` option for External Trade customers. Selecting - this option hides mandatory fields that are required for external trade contact configuration. - .. note:: In the resulting XML and PDF files, the :guilabel:`VAT` is automatically replaced by the generic VAT for abroad transactions: `XEXX010101000`. @@ -1123,6 +1326,10 @@ Then, with the correct exchange rate set up in :menuselection:`Accounting --> Se Currency`, set the :guilabel:`Incoterm` and the optional :guilabel:`Certificate Source` fields in the invoice's :guilabel:`Other Info` tab. +.. tip:: + While not mandatory, the information will be more complete if :guilabel:`CFDI to public` is also + active. + Finally, confirm the invoice with the same process as a regular invoice, and click the :guilabel:`Send` button to sign it via CFDI. @@ -1176,8 +1383,9 @@ when processing a :ref:`refund `. .. important:: - In the Mexican localization, positive and negative lines in a **POS** session cannot be mixed. - - If a |SAT| validation error occurs customer will get a :doc:`Pro-Forma - <../../sales/sales/invoicing/proforma>` invoice instead. + + - If a |SAT| validation error occurs customer will get a :doc:`Pro-Forma invoice + <../../sales/sales/invoicing/proforma>` instead. .. _l10n/mx/pos/portal: @@ -1235,10 +1443,10 @@ eCommerce ========= The eCommerce adaptation of the Mexican Localization provides and extra step to create invoices that -comply with the |SAT| requirements on :doc:`eCommerce <../../websites/ecommerce>` by retrieving -the customer data after the **Checkout** and even allowing for the signature of **automatic -invoices** after the payment is processed, as well as sending customers the files via email and -granting them access to retrieve their PDF & XML files from their own customer portal. +comply with the |SAT| requirements on :doc:`eCommerce <../../websites/ecommerce>` by retrieving the +customer data after the **Checkout** and even allowing for the signature of **automatic invoices** +after the payment is processed, as well as sending customers the files via email and granting them +access to retrieve their PDF file from their own customer portal. .. _l10n/mx/ecommerce/flow: @@ -1247,17 +1455,43 @@ eCommerce flow During the regular checkout process, a new :guilabel:`Invoicing Info` step appears, where it is possible to request an invoice or not. If :guilabel:`No` is selected, a **CFDI to Public** is -created,. If :guilabel:`Yes` is selected, the :guilabel:`RFC`, :guilabel:`Fiscal Regime`, -and :guilabel:`Usage` are required in order to get all information in the sales order, where its -status will change to :guilabel:`To Invoice`. +created,. If :guilabel:`Yes` is selected, the :guilabel:`RFC`, :guilabel:`Fiscal Regime`, and +:guilabel:`Usage` are required in order to get all information in the sales order, where its status +will change to :guilabel:`To Invoice`. + +Additionally the customer can decide whether or not to request :ref:`IEPS Breakdown +`. .. important:: Make sure to add a :guilabel:`UNSPSC code` to the :ref:`shipping product `. -If you enable the :guilabel:`Automatic Invoicing` in :menuselection:`Settings --> Website --> +If the :guilabel:`Automatic Invoicing` is enabled in :menuselection:`Settings --> Website --> Invoicing`, the electronic document will be signed automatically. +.. _l10n/mx/sales: + +Sales +===== + +The **Sales** app contains fields that make invoicing easier, while the fields themselves do not +change the sales behavior, they are directly copied when creating an invoice. + +The copied fields are: + +- Payment Way +- Payment Policy +- CFDI to public +- Usage + +Additionally, it is possible to get a preview of the invoice for validation purposes with the +customer by installing the :doc:`pro-forma module <../../sales/sales/invoicing/proforma>`. This +module adds the mentioned fields to the sale order as well as: + +- Product code +- Unit code +- Fiscal regime + .. _l10n/mx/subscriptions: Subscriptions @@ -1267,6 +1501,10 @@ While handling subscriptions, all the sales fields are used to create the recurr are automatically signed and sent via email with the PDF and XML attached with no additional manual actions required. +.. important:: + All invoices generated by the subscription app will always be automatically signed with no + exceptions. + .. _l10n/mx/inventory: Inventory @@ -1377,6 +1615,15 @@ unlike other documents, is created in a delivery order instead of an invoice or Odoo can create XML and PDF files with (or without) ground transport, and can process materials that are treated as *Dangerous Hazards*. +In order to print the PDF, the delivery order must be signed by the government and then it can be +printed using the :guilabel:`Print Carta Porte` button on the delivery order. + +The PDF file contains a QR code to verify the CCP code for the authorities. + +In order to transport goods between warehouses, the logistic route must contain a **Delivery** type +of operation, see :doc:`Inter-warehouse replenishment +<../../inventory_and_mrp/inventory/warehouses_storage/replenishment/resupply_warehouses>` + .. note:: In order to use this feature, the :guilabel:`Mexico - Electronic Delivery Guide` `l10n_mx_edi_stock` module must be installed. @@ -1385,7 +1632,9 @@ are treated as *Dangerous Hazards*. and :doc:`Sales <../../sales/sales>` apps installed. .. important:: - Odoo does not support Carta Porte type document type "I" (Ingreso), air, or marine transport. + Odoo does not support Carta Porte type document type "I" (Ingreso), air, train or marine + transport. + Consult your accountant first if this feature is needed before doing any modifications. Configuration @@ -1395,8 +1644,8 @@ Odoo manages two different types of CFDI type "T". Both can be created from eith shipments or delivery orders <../../inventory_and_mrp/inventory/shipping_receiving/daily_operations>`. -- :guilabel:`No Federal Highways` is used when the :guilabel:`Distance to Destination` is `less - than 30 km +- :guilabel:`No Federal Highways` is used when the :guilabel:`Distance to Destination` is `less than + 30 km `_. - :guilabel:`Federal Transport` is used when the :guilabel:`Distance to Destination` exceeds 30 km. @@ -1429,8 +1678,8 @@ information related to the vehicle used for the delivery order. All fields are mandatory to create a correct delivery guide. .. tip:: - The fields, :guilabel:`Vehicle Plate Number` and :guilabel:`Number Plate`, must contain between - 5 and 7 characters. + The fields, :guilabel:`Vehicle Plate Number` and :guilabel:`Number Plate`, must contain between 5 + and 7 characters. In the :guilabel:`Intermediaries` section, add the operator of the vehicle. The only mandatory fields for this contact are the :guilabel:`VAT` and :guilabel:`Operator Licence`. @@ -1513,8 +1762,8 @@ taken into account. First, make sure that all relevant :guilabel:`Products` have the following configuration: - :guilabel:`UNSPSC Category` cannot be :guilabel:`01010101 Does not exist in the catalog`. -- :guilabel:`Tariff Fraction` and :guilabel:`UMT Aduana` must be set, similar to the - :ref:`external trade ` flow. +- :guilabel:`Tariff Fraction` and :guilabel:`UMT Aduana` must be set, similar to the :ref:`external + trade ` flow. - :guilabel:`Material Type` must be set. Then, when creating a :guilabel:`Delivery Guide` from a delivery or receipt, fill the following @@ -1530,4 +1779,4 @@ Type` is :guilabel:`Pedimento`, two new fields appear: :guilabel:`Pedimento Numb .. tip:: The field :guilabel:`Pedimento Number` should follow the pattern `xx xx xxxx xxxxxxx`. For - example, `15 48 3009 0001235`. + example, `15 48 3009 0001235` with **Two** spaces between text. diff --git a/content/applications/finance/fiscal_localizations/mexico/mx-CFDI_3relations.png b/content/applications/finance/fiscal_localizations/mexico/mx-CFDI_3relations.png new file mode 100644 index 0000000000000000000000000000000000000000..7935d4a27a4300a648d1ef56424a3eacce20c570 GIT binary patch literal 48088 zcmZU41za1!wm0tXPJ&Zfw0H<^#c3%}+*{lU?(Po7tyC!Pt|3SXP>L5RP@Lc%__+7o z_ujql%kQ_@*)!*y*_qj$nVtXt#A<6Q6XMa~p`f4;s;VgHqM)FKKc#zdu%7;dr9Rl8 zprBfOkeAn1m6r!-ySvzaaC{PRr8=c_siDh~46S~6`5F6DEm&W*FFX&tqQ6yn5&D1zm&Oj5uBUV8x3PW<2ziP zmsj$*bDOq%kc_{Ini!Pcl`-2Gw}y}bH4od3Pr)ZC#bq(cY)cy5X^tXo(>sQ$oH5KX z=+Et}W6fgZZS!1O+<-j;-Oed<-`=_j%S)&SW2nJO38D)XzXD^qKBe@5w$2}o%LTG! zaPv7Zn$20Uvu!svT{l0ZM`2R*@yC+XY0`VCk97ub&z}-;Ar|Dr+{faVdcAT=tzPhn zVG%$>mTa7HHaJZx_B=!e{L=MM&pZ8Bmblh>Q1|-Jz?z_%ARlB9xoF|V=>MHY z>3zyWk$o+%s`_+(ZRKub3@j%SOEW2@pO=4G0@Nk$h)}P07Q8CdHGqu zcmMzZDVF!1o~{ynd_F!tygov_F79@G0^;K0eEfoZf`TueG+uc4 zI(u3`UO0QO{+E;g_M>3qVdeh8)$@akGvFV7Ei7HUJf&Dz{!!5X{Qm1cZ6F{1wB z{?}6ErO>}y{#(xfwbb*lahG>-dMeTr{J%Z(FXMmD{Ffn!?;kb)x0d*?X8x!2shz=i zAin?UGcX=~DohUrMFvGxLG}#<^`HyW++=v_L8{p%OUITXCpY)7IGnKY!^aHWzn6#l z*VL;b8l%2rB~g8ve+H9sb7^gCm2wwW&+_tE&3FWryfHeyv+k~VTpsv(d;eX?UHC1x z{pNW_h>Q#XKth6pgMopDh8l_%E3=MvGrL}a{&ewgc?_X4SmA*G()pK|s}~1D&>%!o zy3_AJTs$cf{9i>j>#L(m&4PNX;iQFJA-gKah5EPUDyav&cPd4U5}q*4d@+lmc<)p2{40}bDBGV@h% z#jDKII;_9ua03NXGIH`RM0Lf3tJaEqNL{>UrNRdB?+_v-=IzDiR|gu-LoAhxn3^#3OGd*rX1`ABk+g^O9uKQNEFkf@ zLjXN%SJXr}u|@o!o^2B%2C=oPQsUG^wMAty(duoM-uHLH!-@MLsOXNfRfe-A^4NFN+1;K^hZCKJ&E01ck|HiE zphtp|Z+hRdybc$CNq8T;|MgXGtW%`JY=?$`27tDfnU-|0H(FB!#4b}xJPqz-4X;p2 zq?@fak=$QyYpD42DQHvQt~ZfUa@N#$D|5X4nci3HL^|PmCMiFIZ*RYYU!n-{CEVGp zb_arscgAFJHbO@F%xL+npb2%j!YwkmIEg?$=&Y`pN<2;&{&++YLkuwTHp_lPbE6-&wg(^)$lo5{_uDM4?aKyKi*+F4bp7vTA__gmL#`Q8J!+= zAQtiYI?d-9M@tps^RJ6LCgVv%VVQgZ;dD)Qa3-Tx*Am%6H)sgwMA7Q~Ur}*Op6X$T z$<@Z2*G0D(vd2?yI-%$#bI@dF#2}#&4W;Kw3Q+!@+4{u2enL$4?;8Dml2DvPF9Cc* znH$D7n0Z@WVZBd_L4y)wyp<>Fa+zKJ+Uj^S!wm z1U$}E#GYq!eL@m(Zpcs!2$&h(9zQTY^%P+Y;mOX$E98vXcp8*`y9(slD9J3*+#AC? z{;U^EF|+40Hi_~*D46%5*6cd9{I=Ej_|k1b#&9BE{3j(F69^<9p}NBwBOVc&`xag( z#i;*aTMX0}c9``vj3EXpT0~~OFj@>J2JhhIc5jQbDkaqZ{gHQ9#Sm&%XBmkP7INDp zp_WAAWZ5J(XNjtL7<|UCGn2dZ6aby6-Lnf)%kaOwSKM8vU~)d zNrdCna4K>msGF4xjk#E3r_8P>aF$WE@x^rXOya?@RMF3?M$$0#H<-EMcO)idQXpbO zIjS{U7+*jvB8B|`kWX+^@&l%}If9{&=blu!=>f&xh;Z2G$_ZLmd`N#mo6wV$6gf^B zw}r_f2a|btxavU+CR0N(m%kf{igxm^@&%p5Ke!VBuwJ606a&axmfhn;v$8QT9!O2; zM4j`c(Sb5FJMXckX1=@*EJh_@#NG`bAEK5ZOzST$FIF#v{K3U85;+!akidG*I0R6D z?4V!}mB!YUm@Y;d<)Eq!9|tV{xTAa{hx3WRIf8CWB{+;W9KV8&(DU}-X~-?d2eb-k zt74*T_l0BMg?u93u{y?_yJo-#E3fS`V}ZhnEQx5@D28MLkQZ~m<6$96Oi#;eM&m;+ zYTI1`iAA|pL4jgkYg)`{HRk|1gA!wD3_#pDIZ~@ga7r$>+4=WkS0@+GEphJN?~WEN z8WoKa;#BMmG54^l-%ryBQ?q=VKvJp{#YLqw@`LF09O8xC5B+eI4Z;DWn{-i1uqc2 za9+RjtNOE4Tn4NW7RPg-_rp^?zU({3kl%-PM}$v`?x5608CzVXlHW#mA1$@iq$?L< z$8P!^Om&_w>Ko(o@oMubg1@riSiX)QqtS8JPAp%B z1)DvbW+T~iko*Ry@!2*UI9y!bGTZFhG_4xkr0aj$jL)7X(qED2?lRFETd1%qYySOs zmIzOduol^MGYLu?Oxlo66malQXAG3u_pA|_#$4|55d92%g-i$1*)b_m2g%d3)p3bl z46?-9>7o=~7&t7h-X=s~jr2VXFiMrL^J%m}oHSCl zbzJJ3=)X~YH~ljJgUrMz8|ebcK{Cl}CJM7D%uum%@VV8*<$BYsQn2L#f5eWnCm(W@ z1_}^-h?zbX$4GHgcNUGxJBbaLM9dSwD3Mwwn=%&ffwmCMCuI*D%nOTUpb=~kofxzR zB`pXsjfQCC3JzV6rt6+#t}vcc_+c}K@rGVo=ySoIDbe=FXomC4F|=Mj+#!5e;(ml@ zSf;m98*ciq#QH%**ibDeE47$=ymux`ay5w@VXOQFeaMV8G}zQ3fKmh zy2@Y08&Py#r{58=PVz~x=4EMt5ebGTl{ptij|+V0Bx32<(WB zz!NF29qFCS^Fv63Jq|N7#?tz(Ux80zwIDbsD6z>x#{ypo%!8u6%9bt0aYPd`sY40` zg~Aj6vG};`!{?_!vEfGn;I@vRrz!GlGkJo;No{1Jr^Ls}b`r)YQBXV+$kFpiP#BX! z+@%jI2qDtdBvbYxEWjsUc^pg^!62Db#pOs1H*;TrRgy z(~_XdH8mxLaQsIaHUhs0MohR?4C<>auub#u6&LO;_078YximCJWZf5UYmZb$=Y*I* z2c%QNx64BTilbD-=C&@4w1lel8{BX41@9t5(h?}BprLmsmN@>wkyPe4#T?{N|1&!DiAO9!30FyC}j3huyN1}0S5$_ zc_?27@xuf-W0}id?GS_~t%u*AfcE|@%(Ho7FnzEl+Qujkh37=D^pI%AFtisL3j`@e z-sXNj1$k0Gt*d(P_{C#EQ84yfth=Zn;5(?Kr91$olel#)mnE9ak%pDVvwwH_DxCSg zHx|q9nKb2rv=t*`$ck+p?Pg53^%PeiYS297mh|40t&m)-vknuK?NH{4vKhPGD-1A52>>NS2yz=I!7-GA(f4xKZPaLVW+}8{B;>>l zrZ9ffewTm^dQJW>(U;S_w~Q&XESZ56YDj+H2_jKF=NP18!i*<6A zlkgK@!7Dg)pi-9aCQDLL+-g{WDy(ec}QnOH$peVuH0->FY4}N^8Fw1!nPWxC- zb(n}$Hb8kME@;O1#iY=WnJj<-9x{|x`LUmBcBUpTCF%TR+B zNITlZ+FM0cf%l2#_&tLKhK`^5VhVNwv#*s)53>1jV6Bus=z4(J4@`)Rst>;xa2W2m z>sUojlo5@m7^WulLBBCjZpJ(e;K)$Ok4WK67NtnamC&$Qqgcgs52?s!(7+Q6Zy9w% zf^5l>II+`|RxLAfRR*aK(A*=5)_pdUS5u{+U~i26(4bup&qfpLf_e|IM~6U`=>T#SHiJ?;m9RO~H8R0T^RYI}+o#sNnscORp{4@f%U{2kj& zdNG=e>HotZIzc`NAiFlomNXO{A<&0yscts4eT*A4Y((%SJVhR*49%3nQ^M;c9X_c_ z`WJ?Vxgf*jim_hY-+_M2UhDM6M7#U&Fm#6@CZ}KY=?1zH|c> z7K^jhytojC@wag-=N_atH3depX2j6IL9VLq4n_un62XAd(tF~_X3OFn+-cgz3IH_* z`7(`lN{~B$U(^DVV8~eh!zY(M-aRY+PiDK!onZv7dvS6X0nC&MQm;Y`r3FJ+I2_>^ zA=+g15%~frslun@Dl-)d(6FFNzAx15A)pd-?M)bNTsSKEXcG`+A{A(7EMQ8re=faZ z3Sy^0!|CBD|rbdJLkhA30Dg)x&EBD+Qy{y zs`J2jX(^(^9S=2z%ECy6qMb~hrIQ2`}(?^y*C8B34F5&d>M66ewq7{5ci2b^UsubIL^K&5%d zB7t{HtKP|M8$gya5}W?KPR>L5Bw­^3lW2J4l&!I@fUip*dwCMj<8noQ}`5~M%p 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 literal 0 HcmV?d00001 diff --git a/content/applications/finance/fiscal_localizations/mexico/mx-print-payment.png b/content/applications/finance/fiscal_localizations/mexico/mx-print-payment.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9f22ce3ac13e7aa0bdb029885e74937fd72c21 GIT binary patch literal 36013 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

SH^l5!2&|KRbyS=;z>z%pD*&8F-tDmc zru+{SK>jvnk@@F3Gceqk8mF}k)lsgRlcV3Ab&5Uj&n8UKlvK--ti96=EtT4Q!9*nz zHSG1C>XtnxVky%qOtJTH)b9~_W+z?%hTR~~*jlgeAtbkb%f7ewb}id>5#P+)uJ7|R zpG0Dm<$Zl|#);g`*|FsyArBSiM2~vx9BhN2-GDMR^4j?8o@%EPbJT{{A10y2Ux)#; z92F7l+|^vaLdv0q^10|+sUIWzKS`9@^OBZAVSh&3l4XSsYVvZbM3>iafys(yGRIME z3psw?zC+|bp{(h+_bu2otNCpu3wIIRcuAd%Uyk2($*Wy!eHb8ASI1x}fsz)6dw+zy ziE*Cg7*``mwKg;;{Fd@TjzHu|V~YBma8{h#P5-HMzS<^O4m5c>KNDT@UJ-bC#Hg6JL8V<0Cp1pQzBwPRK}#se z4z73w$^KZ8&Zp{k)wA3)L!b#Wmen0}G1YQ3=B|I|GYNX$EC#Q`+&=?x8*k4_`Zw%e z&RpyoA@?)wG{Y#rL*{?5`W#FBeX}khU0fyV=v4 z`}3uIQik~i{u`77PALZyOl9dQIX?BN7hm%J z{*0Koy23f|N-6W{{+}oos}$ep!_Btc%ai+SX;K}!mC*=^r+@Gn6on0kn^RM#H{$YP zL(|_Vd7M|>M6gnJnufNrhjL;HxksGlh-gUu$8WycT-%lekyhnvUwR zs8Q+#{o9*`Z$cgeAA<<<+B^S>ei?Y*ar5TqYA}ecM&4Rz5ehyGfsDRw7sGJ#LqlWO zY9~;z_eV>!NBQ9U9g7I4y9O@n1eFC(V?bWEJK^q9Uv2ls%Ey}mG=Lk=69rZA%5U}< zc^PYDN6G4})T9e8j{Sfs5UY z;ViXPPBTfbi;VYU>0GHLfcOEMj>I)kdPYrZ1@3XJT|7V{tVfYN2OMN4SzdCB3%p@> zWyjFRTvyd5Zu&U!wlu!z-P@JHi1*SXE(Yy%C_nSNuzIBmi(UqE;Z%HR3gvsTXrOW$ z(S+5flBbH-&Q-38*WG;^R8dXx9GzlK!=Sc0i1mGlTV_MhfQdxdk(Z-F?T$vlI$Jb& z&^;L!qk;}InTP=VQCSRt#qgrN%3daX?C)5&fr{d9ATtTlP)dfQV33o3JY*wx_sjEH zyGhzWtd+UR52oZ%(AwwFc4}(K-q&93j|pMn&NWyPB(}` z)>LOR@34SUj@oGN&{HI;;+ZzJLur!i(NR`Nx@9-Mk-zKXXP@h2s%Q_CSQ1SLt#)Dh zte*V5MvnNmfQ!G(aRR1Z7do6;cO+u{11Y9y!QTC3K|vY)Ntfv1P|%(?V$cY~-*k1v zkJ0I@s|p+Ya2Lz2M=q!QGb~Jp6hLBP5uHMXE6@+3QPI~d*R_A~j4LLEI-jpTl*cnA zylzU}0Z37L*RatxqZ|VO*Q#1!39$xeCJe4? z?dY$5&P2wsqL)Z~;!?JKy^V>YXLk#TvabQEqG8iTY+g(M!GBmyd(pnv!#J#-7kNPi rDj7Hd^#yj~KX>o{&(^-T{`6{UUeB&jvt{Hz-y$oeC|N3Q@aum7d$}xp diff --git a/content/applications/hr/payroll/payslips/pay.png b/content/applications/hr/payroll/payslips/pay.png new file mode 100644 index 0000000000000000000000000000000000000000..48b90dce7aa4efcd096c77447d3e4158084abf0f GIT binary patch literal 10730 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 akOg8qJc$CfDt12ni^)kTN|uTn1pF7IK>Skx literal 0 HcmV?d00001 diff --git a/content/applications/hr/payroll/payslips/payslip-chatter.png b/content/applications/hr/payroll/payslips/payslip-chatter.png index a4b9d4a4316fc5825d2cc5c8c76085693f764404..12e9f69d58d9d28fd7b1c7eb45b75927fddddad4 100644 GIT binary patch literal 25710 zcmXtfbx<5m4=Aq1-HOZMTAbo?_~A~mA5L+H;$G}UmP7B#l^+h*w{WkUNbW@3GgvL-k+Y{J`$4B8z$D?KR!;LKVCjQ`WOCwJfD}8 zRqo%tzCE1Y-`|aOk3{tk*f@G$zkS^946UrK&)vNh|6ZBe-01%^nD-0PIDhtVv2}H{ z`hK^&zOniKa_`~c_k1$Fw0qIs^+#1*w{33Kz{-8&{DDtW)ho62&)SBh0!T;CBD!?g zKBn&D^=5cv{JU4o)Y|d-(IIL`%*51mWlckHM7+1Yn1QKv-Ov&fISwV4cx6hYnlKYT z1L;Upu3vDhuYdUM>&N}|5gsY4YjD042W5n@K!0iS`_(crISC09e|G``P&gIW1F0?eOBtT4#G(W@21h?XRM}8@68^ zuP=`sM-QgT0wa5Otb($$mC-g@;)z~Pmk%#4%A8WBaVMw8QQ#7hdgy9@J){##mRvD5 z(v)7>67OWP*a!|CpR6p)s_UvsvJ&b@_Hu(BXSG0&cV;KfUsTIGcE=iGH?KqLmJg2( zzPTot`{f2We$TBhaDvR;ZM2Fi+GYlM?#;HU=2zI4l$QJISPibtbe8t^*F^`1*jYN9 zEDs`u<)k^NL}#Wd+ow;@_TBE!Esy_h+`8?_jo9ePHWvny1 z0urlpj;Tk*@xqUm!vq?(_lwr~TMJ0~z?JqYqW;(@n zMC+EFzBE)$C68U+JYS#P-Z86$6#Q(Cs4Y|FWWU%y77PjZ0SVs1z)-;`NK0sXt(>j} zDkVQrAYZ=wp!r*<8sO`;H91bWo|v|UERaa*`=~G#BkCV&K!z=8wh^EWNx_E}YZ!>x zUGU~+7RH#)MCXowe>%p7<}i3!Nk#B*nuD@4HVBnEe^HOUyP=MBPt9HzA|4S%Lp%dE zs_txFZeNCO{EgrI@(!K|bBW=C{&;$!V#_Nf5l14_@BaYFi!jgs?IffYBvnHTvhM`3 zG=maDiKtPv{|B~0t;z^=%2J59_Ps85qsl-SlpLfUmel*BlCi1uwJ+V5TX$(lEe22L zpH5Hp3mWy9Wt4i1fFJ!|OHY$0 zQUJ}KQ-io5j^%C`LeQK$0rcWWEgCkAUo={{gdpCM4k1aa9f;^11vy6GG+B_XJQ0Jn{VlW~DDfkZQ{xL5Pd|Qx#NZLd@jkTK4;8;rl znEVyMxNxU<_*fquRuGypO(0T=E!eFU z)xcukyeJN!BLt#~?YHl2#0=PJl}iKNZ<;h4>6L8ItES~e01Hh_DMa!=pUtc0D);Iw z)d4;ODt1j4vEXRy6>%5Ezulei)ax$yW8WbzWD09zXeV8Xn4&&IIz-iO-Inz)un&IP z7(jlhGTkhDCVf94gSNl|>Ra-F1HXqajCOYwoCJaGEb>=%lFN{T)Jf0$2-WAjLVW5J z=6ySW14<19cO}FB)hE4sjp(rZeP>!luln}l&S&Rzy>^l| zzMevaq#Eq792jLZN-Z@L0$pOh<6maZBFz2lNF#e+=~uwdI4gd@T>;j(HcL24>5885 z+_Xyb(W|5siLRWBh)&F_k_WujQh>-zqf2-Ls{j1CZf*3z;sU9DZt3Y8f1m3 zS16Z(Dt0#XhB7f(`2C*#YV2SRbnDfu>d1UNq7h?HdC|7WUfOUf_gGHY*y5 zi6sJima+Ed9{iumbwK4;taH$1 z#aR=aon&|UqmlM82n6y(ZMT7yE&l9NQ*E=Dx53vKcx%!69H`(0{1$G?OS^F#c#z(? zA6O5ph?q!*h3E*4AEW^YR6lbm8KW@YF)VI!ahXs-4CK(8ic@4e|9~L>g-`gXwUZ1% zVxN|9-~gfl(tiLsqNW&S34RinijPTJCsQ=8UHdiBf{^(zj9-kIVi?A;ZT-^ zZ${>`ZD|T+7I@$QZTVs36X_H}ClvrG1x3T!v<^A$#i|5(i>~2V^`G(c7JOV${^*Od z)GTH;*&QB50FQ4-I$KlrLIjKG@6XVDesy!}x@T-5niW_ezeJgew{I|25+h36xm#Md zo=jw5k%e}ZKn25t6>LL#IaS3n}@Y;SvZl z5Mlzv>z*aS;r@$=d|@{q@yNh)9qsCfWZGDu9%9`5FB9oxK@NAh-QjHMFRN zyN`(ucb2AScgf5h1MdJ!CtEl-Sf()PVf8!7Sd2l`!su_GZikYqS{&Dz#UDCB6w1C` zv11T3O~Z6?h63WN=QpsVS|$w%zaqgjd_F!d^_+TPW>XaRuT0Z))o(?y z-$(ME0(Q{ZSvyiPvdz}@zjs#7l5JjC-dgHR%H%{>#RT3X_(vg_Fpz{uoU=zLPa zB4ZyHTieN_QWqCB9Ox~nrW%`(M4mn7F9U5}pf`{LBC>L-SmZDbn~xvtYPj+vzkE5m z-0V~IOo{61LAI+a<^ehSd{iq_i&kcRvrj2c>>I;n_f zsBQVZ?(#&IJitKZKp$u3`ns;p1(~^|n8ArKxrt6400A`tqYq}E@P5I6F)U-)y}JwG zoq0PMh%!BY`5K`TMFx?%QPHx}REP*~FBu(OIoMw*$A;D|EHpQB{pT|=rBX;;6XVR~ z817u5rVs}NsOp&RUybu|ZW(C-+>e*DZpPTARJQqUM*Ww4zZ!4HaBa^u{5Pdi^$Z_z zk()eXY-D{<{s}x72le}M>{sMQ)An*S-P;s$h8(d{GOAC3a-{2PU|?`UOnOIXI4mhf zqLn&YWmZO72+B-n5Eq^l_~fOd_5Ax|Sj8SI^C{+3bll^eS@^1JujU+#=(2OCRjjNt z4D9X^Cj<{BLTSE`Yn+)b&jxWItvF#~C@Zg5x*##z=;;|4v=tU#Ar(sU6FrnhYnLre zowM+cH<)N0san)0^&X~34hO`qLxEWYd}=Otwx}-86$g%YXRB$1+G?aaz?&J2b+W_r z`(Jj8D_Eb&g>*MI_A5#49OPujbc=V7;=GMz_t2E=#rHG`Qb5YN$jyEhka#_f8;GX% zb%?e8CJD^PsFOu~p#9Jj3{xBnWce^Wf8XxI@Cz^J^kfRu#Z6OxV-$^ojVy=U!LF*z zyCO!9syrG9FkuPf$q)cu3!ZXY->pwi0#%d#_e}=>8<{=_?u^z z)-v%O-nd*w>tEP`rZKwf&(89M=%bT6)o{l0t}-dgFcAeZ+zAMPhWfu zRr}y)*mY@FN?Gg$4@Y-;gpCZ(nY}<$fh->8O{-gZC`9$y2ZJ$fV|}QCf_UtG(*0cz zSwY$bZOZ&^csV-n<8JTZBES8Y?u)J<6L2N&`4?~*FFK)NY{Et(%m7UjDQDP}%pKOa zN5sHxot|jI>9LzQAYRfoyz}AbhN6|N> zxA+GOfYe|50F0>xG&xhzioT8zeApSNraNN^W{(DE)qskftZNJ`r3RA zHxK4dEDJKliOAf~Z`{U!ZghxxlaeK65NFT`35j{NIO&Q{58WBoCs*vG1)uOX%B(l= zDK^&M^H0&_nfYL(1k9A)+;|2JW+zkIf~}Lcq~WYjuA${-=^r~`Fg0*+5C+q_zc!eX z!~rCeSzV@I4GCbNnYiLTF4Ulv0Ideo$Y~ZCQzk^EAgE`x>%Q%o1pF{|gQ`|f7kTL(eY$D@Q}OJLV1%NMPd5I@h$o4$u?UT>riGz zj!MFus+#0%YIHsjtilIz`FqB$AvF-hi19InfP0NkH%bR1&!kL!RLcQzP@;#+;hcM4 zuwXm82d%`N<#gzZrbc{Ik5cn782*I{(Uba~NY%d4kMiHKgg7ch^HCYD8XvYmGpF5t zEU7IYqP?+Q``xNb^4Ii9t8vvtaEws%^CKDBz%y@uDRxq-iYP=>T;f`EU!Ltda)D0* z%C9Y%!mvl-FwUFWep1j`_X4y+*!)Rk-MSZuBNn5+Reb>Mixn3lDFDHx8zJ z@GCH|BHE4)or}b~?uahXciQ6Z5>!{~ZC)mQByBno2~HSvsaCsg_)*zO$YwrbA_FWm zRTZ+}QO8J}dGjLGFPi(S2*`=tD-1bwjS|?6=TRwp4VAXZXPO94hisU& z|1w|KkNIu8FOc&SUT5@PKkJ3UN}JfR)m*Jo7InU8`?nJ?=H2fbK}{<#Bm0C@=aJug%JpTRs;U!!Q_OkJoLez|4u??%N;r*Ao@e`!4qh{*x>YaG)OSSso<&;ca}_(VJra(aI5*%7jsx zYE{t^1g^Jl3Zo4Bl-8un8WJMnWPje`Ti!%S?)d$fU=M>d?=l`*PI4P-x>Uz3&G*0qpazVtKHs6pmrTeR6|@SXj#%mQu%Rp0gy2bS&LM3GT0g?IZ>5@@n-NK77@h9Ok z#97dSme$Q|SVG)^yc3Sy%!<{o^PY9m{(=kX`oc5;PCv{RR%SFpBf3p*9{%i6vU7p=jmz!^U9!48`Ph3 zsmOJ24u2&KZ3D`UP&~0Dp#wgt0IuajVj) zkJHG>ymSL9Z>Qu3m?e#U*ECTIR^P)0m1I11i%a9r1bj9yl=lRKA!XAM^^sR`jjWnL z{{Ui>Xz;uL6Nad8bf73=Rv}>rIupeqKdI3xmA+nZB++1WLO7)=BdaBx&du#l&D3y@F1A6V!x1FRTNRfl1ecqh z&0pg7*Hz`3!b$<6YS6OBj4SX87bN8CvDs$(6A|c+Q~5$FC+B-sZpuMF`v`po<-08lG9FkV0{9Mf*-(ytST1=@%v(~@-C%slB5Y2n z(ejllzj~k6XCA1)o83G=$r4>3Y1ivZWya55zy!C){xheJiNPCvwu`IU+FuPFW^ho) zCh0QiGJM!*wu=^m($uqR57%rMKvCzHw6Xck%?nZ_d51r#J8^c=o-L&;gCuu4it!h} zx{r+wpQpV0kJAP=lw~RucOBJ>TS|-aG@`;ZUuSMuxXW&mI8r2|o4z6XmLTqV>;5DF zAac3NF7{OHX3=7@nXrsVS?O5^2p@XJ4~@j-*WmEw1F!xnqDc;MqD*dS>2_P36> z2LW;`zxGa^$_dL0a z@3ih!b%pk>8g}Q%qigfU6i>?ASnOf1F1i2Y)cCNXfy(Yh$`FC;yI^LwRQ9AR4~$P( z!uFq8f;8(2W=ROImHn6Y&sIcOP33nc!^t z!~z2&JJ&WA?uESkxqnH1%xI2F#d+Tge(@e65b$~}GW9a4Psf~+!QxnxIc65xM2QFWzw8Zm_mx{y-mq;fosX*?78e^|k+;I@naZvEyQ$KLV1SVkg0aGi=8 zm0})v^o@YuCJfeWa=tI^C%Vv2C4AvaAxvdu!XPsJBBSylBr573;0^5IaLJ2#ES^yC zpL4h8W#ea_AeQ@hcU1YE(qQoMcwnx3WXG)KhHx2hS7CFH0)b)-bZJK*15$oXvdGB) z0sXM zh8tUzpnSpi#~%tnvqDHEScx$uFtgM0E4F%4M8XywM{76)qaA_#@!tcD+uC^P{@!}I ze=~{_GIUh_#(p<9Pmnt5U;|j;Prx_jVl7pG?nue{i)~JGrv&7@Ig^8Ye2o@|UM4MM z-mqU*GwlpojC<;ZJrozI;kBO)%Zfvue$O-w1(r94nA{8quCm&b=$hAaes>G6LV%3# zzx2b%J7DWpy2(61@bhU!xRP5=7ArJR?t~(8NTc!7 zj^&6-B9j-o`sBAOhva=gQjUS}*LO6KONFd&u-0gY>y*8D~{nruAc@Or5tl+r0IbD!k~IRWFIovz{L8s9Le z(C5P?#c<4S6zjQUOGz4-uk{(1EVWPqvZ0pHy$DPDuUrBGC@CxQ`r5|{=*DiR`b`+k zg`cKw3YIw-HS(NRF0$@(hJc&Tr|Ka1F)#;c6xx`{hD^X2|Aos3W}jhp*#IW?8-&I1 zNWyZdm@OjZbNuh)T4VPoL5Xw4gH_ONrX6R>b#O0_$5(w;85L@s%G)y*#OPVR*Mk_a zZ4*frYS}jb^lmDD$W8Keh8n9Uwix6enzAJ#tC>>-$A5v_;f+?z>>2ZTjZY zQ1fRozg8CsK&+fSU6C!i{q?16x}0l(DJ9Imlb-q=aKLf}J=&`qEF;RRPl=)hf`lYcT|fj^ zBDyb(I6B;rM87PSn8bMi5RDT$Uvg_InVHGRrdD?7)}9ZPp!sWf zTKDT#G;~p7Z*l=G2kRdBYDAmQ14K)^bf{3+qj!lviZA@|c>&Xy z#GENYDAB&X{YMtlICW?=+dNzTTT^|9C{^xBn|_t8$Z%$?Nl!3laF| zRj4$@^GM=Mw7=kCd52$_iJ>cx*D$Jlj&MDvhaBCCokSd+@yvn0qI{cATm)4oS|$FF zueOhx?@oB;l2jCGj+POje$t$6S{MVFUH8P~ml#_G8kFEkZAcCo)@p?<7eNHMGIv~y z{bsiags06%L+yYC%z$;VDC)f?a=GJ0x%nCKN7fbln_a9j>5mcTBghpbB{(fbmPdAC zE+~3=#d-?%p-4<`RH?bALk8=gbda+MJw3hHyO*EeYs6tV`7gi~0E@CXKQbcCG_*R5 z){ZhffSB|dTXvK?k`i$p!a-uQly_0+-JedDT5 zE&$_`7!22fY)y4Im>ponR59%nO-jhHZu}eYEUT)n2JqrFaEqYBY-%D3+LxNp%QSLp z))WJlv&)^)HcSkvGv9km-K@K=z_phdk6+5>ujV9BjziFa@gn8O=df+H%0zZ0TkE2dnOTf? z#kH}SpGCE!cR$27?C(n-E0zngMps4E00OIf0-EZSh`iXzhE>I4&S2z}dl-tpxXF1R z{4hyy?dPmEg{$aFjGD1#>{mOLX2%lQk4tCDMB7**f;Ek7*f!AOsKL6mXdi!9LNF%F z#>@P&F#8Hdeow$0=9Vb@`rT{nK-;Z+xsZz_yYFlia2g@Tg1@svLzF4THc5t7JK9_e z@Formg@3zSeNKe#v;6Y3faGtgNTO$M!c5P!=kxmP5I$pu!0v;lOYY%X`1PJk!_?iR zV~P88CH^Sz(kzIbC`vqtUtj(t?AMj$H-wqcBd7;mI^9oxEsf%d+vQlP^GepUayg_= z4yCg|ZAp;Dg+nBz-{D0XAyL^sg&E<5=fP;i&JU4D(65~TK}TRs%bu-&KK-XRr3}eB zOsH`smxk%H+m8@0mA2i%tYosu<6eruwT`D>`H#r_nr8kzJXsSj`|A(u>wl9Eyf+_~ z*Lw%6R1V>Favwm)vx{t4fPsL=-N3a3;}HnTUPwHHxMgmH$_yQrdi1TN`tw-Q|3pJW^ZOGraX3pNKZN`m@vvioAq`(#STJ30KagKZ@CP|I_Yk$o09D0GGI zW3MXJPo5=8e=G*@yzJ;W^p&DAF)8~F7U+jkX2fX?5m|F(rnJcR=}(b;ivJ++yd){RNH zRt2U#Vw$whJ|aNueoZ;}fjuaBi@RWauNxByrOX16gKVY2)hLkj82CknMTO`E&c!hk)U^J} zAAGvK+e)nNQ^G+wW6h9CF|J$n;z3yJQXl!U%5tPX{g9B_2hP)HZx(BhqanRL{f3wV z4Xx_11vZz2T1v`tm>UARP5Xw$%YCCJKOUPJOWu<+u@?Y&2nW~SZZYF7Mb+!DFQQR= zCwHjYgPj`;lhk+SW~n)J#>F7Gj;<+X0Ohc}N7tC~!WWEjWfiDnShL%xm1kW}QSRTP z(^`g-7;#TGeFY$Vkwm7r^bt^P)Lnzw1Rf5wDBnjKmj&`_<{Ok|#S5tS10sI0jje_S zm9vyE#m(Sd4$OE2mOjE^WBbTOz>hiq(Z15s>f3AJ6Ny%{{T54bg3>X6q?Xw5w~`Ha z1=@{m=+2MoHEqnD(k`UAP9?U9Z~o5Iec-^0s*jm;NP2-BS%AkM z$!Fm|@--gqo5s~tG-?R5!KabbHZ#LY@60&HT6Bj>YA$O#moGtmSI^vPo95l|0Te92 zGPy`-N-ae8c#eP|=r;%pqQnmY{h&9)sa^ey^ZKy_+G>UrIvS8FWrh4K(bCljGwNk0 zcOt%Uf)o6i?OYuJ3NE$uwYPbyRQ}eCHY`yQJ(uVwZzCX4uF#u)LBedcObh#k|DYN2 z2`1ZIGyyd2Br1m;8UYPRq8g=w&{VXc!tf}$OFT$y|k9X%2Q^Z$o3l3@V?UY?_xj2}l3B_J}-4s5LYT`rkml?DZ?Oz&K z1`F%LeV*G3?DerA8v$kdRnyD;Lo_GF^Zo;8m`$Xv8q7>nI(F+|2Jlp=rA7C%3bNp? zn+Dp;Fah(+C;L%B?ZM1EZI;k49$ixFi@R>62V+P>^R_>jWWdjCkgvfTT-ZiJ)~$`E z4mJEN;q^7?p&YcIhWb$ZO%a7cexaRMqGL!SHufMD5cLbm5aWw4j#)ZvNBqv-!lofj zrR^tPr6Dos{MPFs3-=8%k{Ttq7JZnxw<1(RSZ3}s!Y1Ay z=SRw|G9x*91f(xN+&zQ(qW!7A`MyldOGPe|rb#JEnGeb$5>Cx+icOwXZb|B?o>1BtC63i+PnC7Ci0X1@1e z<3h`vK}GH(n^Cwj$R)baEGVLctGz){sU>9`PT9|3kiM)w(_C!R~~ zbVqy(|A4bBI6p-zQhvVm>xm;=1|Bx!Bp(Hzss^`Qhd6;qj0!NP48=6K!ua9i(fw!cB*|3c7d1GriOR$dvJx2fk7O6R{y` z?vJSnI4k0zV8Ruui9kCI@;7<--2Q~vQ2I>_vc%7yu`$bH0g3(G<`Be z?7+H=s($`F;d@@Y9hRt&Sm0iDx&)Z!i3oDoCiU;p2rR)zRgeB#1MY6bIa1jEhp|vh zWRsBu(*SWG@{ypgT93F5oay}ygtq_SDSC*G>qqxv2DUB)mz?dE0b$Nz7}vvD>3mr2 z8!EPP<;J%WvAD}q<}o57;?nJauCA}DsfQhH)Vs}XGOJ&Y+8*n!9^Jc5d0?Cu*KKAt z-=nlP{eA>ZX}tU2^i5>J8@4{P7*YchU$dbTY$;Bu3;~_A&QdOZvO)yN1{pY7`q0ed zPov2JAZupReFnOqTQxw5?_B*G?m^3yO@|`?I`g5=eZ<}GRdIqIiKLdkrKB8UkPo*n zau>a3>j}urXnR9-kL>!GJEfoEKYcJ|_XcUAJJ;^qe+ra-C2M{j`_n@z$E_<7A8`E@ zl%{bHp!2#53}mc^h>K5H$RBBOOfuI_z`8}b8uF8FAFjU(aZn9t-V|(a)mrnn>H3Gp zH48w3tnlmJHXwvnTT99BtaAazmYgnWmEwQ<+^4(GsaENz?;&SuE& za%J0F`su<0HJz&^{jjrR`CcT<#=nh3hvab2@56e^b@Jvtd+J7*W9lg<^pf!;P;b#p z%F15Qo1cNjo>qD0y})Q-%}R(f?PvBdXo>Ah%yMR^I_X1$?u**h*7PPl)=!ff18l(t zSIXA6=)}3&k1s(@)aw5Mruxl_ z2Y&D+f-M?viH>ZSXQj`K1A(S3d_U|=wV2@H1QXft`_0dhmOz>OY=uJALBpgx7~#ABt-e{qxv8Rd zYpW_>7B@};`pq}M`HsL(ClIxZb~gVroj@jWb>rIU^df&F=K2|PR_(!miGBp!T&n@Q zyknhCt#UgBxT(Ehtw5{09>6*Y77y8+&=Qm~`W-7zpj*-gH*EN+mqP#Q;Ydoa!c0<6 zbi6qMv}Dqb1V(~aBaX)(?ShG5L*BTSqzv@fHuzlRvn;5fvwKZ*w7Rf*mtWn~^tn&+ zY3qjPfpj~0=@zWQh!b0;0(*R~7 zShR<#NQgo1kG%qc(LrBv61?+ap~7^B>@A}E+L2?_Ufe$?%1boDk(6612PCMXgJ^W! zlk(<8G}dOSuakL7RHAsoab3d{Q`#73xLO}f}1|Izj?zg7=6 zJc(1l{-7-Fka{M|2}Gj~nfeNg0T0tI`%l-TfO5*Z5ylU?^Vp&Pcr_8Ef9ejk5z^pU z=thPXlrw!FCg{=7kYG5n$^<`=d27i}K4r?AWBWP>(`9hv@DtWD3LwHpbrw#D@}45@ zPEjCYw5e1yis&R_j^62YovD+0zd3c>;MT<{V`?)lt-6&SageC)6DC}Sv@L?wlT8rj z{kU@Fjrbs|0d&0Kbk3Rr5QCj{`i-hSCq!0{vd_I74bQ|M_~P$z^Yv30 zFncu(RFLUZW|^SsQ)Df!obJ{fG$I?4kc>k$@)#p-q6qMRX}2i71n{XhzcD)BP#ZD2 zDzo?dsCG-Fv_P8Du^pc|NgIf5#kQ83O1x2d%6!=(m?D_|7Vfo8GH45hpjch29PpDn zCBk)+9HH)bCXo-TE!mKA{uhM!r)l^s5C6cz-C($P{Pi=vu~Xm^ruZKz%fTiHc;5E; z6D^)i5BwU~EWudvN8afUBlfJalj56EAEBJ`+>w);u9c;lS7G}Org;$q5w9i_%V3VT zX1F?I%V9k}Z;58hFJ>H~8G#YB}`Va3yVMdDwcMb85L{4qNwl zF=SROh5Zf7in}sw5c}L(%1s}pEk8Fr0H%UdAh!|om_=kL&u;aT{kNRjkIQm{c(~ZU z)n@Ev>3l5g^CCLb#UD^t_>?$Dpv23bFmaL55>{Efqfl6*iOcTDBT9Q>M3o%JeYu*b z88#I76~kXJpm6hOtbxYr&x~m5^g&g}<53Emsx)SE&zJu+l*jk(T4S8%d=N_Q){@4B zUH^VE@_!i~2x^Z%Iu@(!9lPl8;X`v!=+Eh3__C-R`}C`+>xd95mL@_r)SzER9)LfmzXWppuen{Lze9pF8DTNv&uCq)A!M1E{t<)^^Cg2(r( zOE`0{NB;T3Kcrl(sVUTNSMqfKPj$;83qJXJAyD+p`|o@<%Xm>$#s(e8{g)|&)lek+ zux5mqI#vOhJtN+Y-s}ZtR)>!*f#fC`Z=FF1ovS`;fjY(Kg0zyTtm;r)U>1>kVMzvz zJ3S`>Gu;2Uv)Lcng+0J~-NNQq4n0!lL=R~6*fo+F^LM?3xO8Ix!hF&I{(6VSZvI&R z=6Ou(*}-7RE;2BUi${SR?82Biep;GvF2@7g)%*p#AMDa+8X|Gvul$Ae)Soy3c^%;4 z8-mh3Re$t}pl%-%SVdJ`DA5vPM_sVvpmoe#*uAXG&@Z%!J-GkvBKx$0V)Vy5{ zzexln8i?VHf}RG&ylj!T?Zibh#-4 zlkrj$x1~bBjxIo)0>8Yq6MCXfv3{LqsX}dEgxfKc-j8w7{m4I)7tvm+z0bs|ryUgP zZ9CZ2Co=ziVS4yxaxz9&NMtkBKQ|iT|B!x3@-EIq|0aU|<3tJc>1^OIQ@@0EL6u}r zse#4;(8e+|x%cDw_w>#l$~$YWXhB3`R}Kq-0U1U5)VG)MC^*I#63o?a#ytKE>}xo3 zj**BmjoBSA(qwmT3XY6y)W_Vr2fbqJaQa%I8JQI<*yZ~u@Gvy z438P~!kQP%trqAs_c9IVNTX7yxEu;Ggdrn67T@#*=4=S&g7$01eJvJVI#u7w*RoTCdwHo3KfFNaj8Z-#{q#`E?f6 z|I3}e@eg=MIO-fbi>O*)|KdNPb0B#)r8Z(4)D`Y5WPs#X9W^1k=URE`;-7c}XP}+a zdUQ)H3483q85)L$wmszwmaiw}taK(4%xe|4%|oXSoPBlCcr!%JtS>igba6DI5{@2U zFp2hGJ66~qCV54{)OaYdPN4_jct*E&D@wGes)?DJ&$Q*V9@o6uPQ>L8xpGVBU)=M1 z%IUxIOXyJ#lZ{j+^%cI^UJqi_zukm#Qj2@Mb3G453bWY-{Aa2EP1g2-eUsONRNQHU zYW`xL=c0kVd5QptG>QN=Ca%pE24+1XSml$Tn|<==Ib4}aoNw+|{`OLO11cM4ah}nd zmq}ssF99^M(Vd&0pL47zXF7V1Y1m~87p!sZrwf=}AjDR`dH^F7~sPuS)z#L3bS z6`{tLrruaGr=CsVwiD+2y*6|KeYKqx~o;+)}aH>PgpLf5>l>xj>LUItMaEAy+6 ze>7r=aAZ<(Uu9kL@A$~FCFoLw1JO8u)%zBC`ZLX3`eR4Ltg@QPP%7*?fh{UOFEAnU~N#?eG^8A3G(I39X6R(msik6f|JB6 zG%i82ya22(=t2tt$1oc=;;CJU^v)Cx(!DeO{Or7Zg5EUGPaSG_zT%i?&+uc+{PS=T zX2|2>5)&Ky-H72l2i~)=hvQIggIx+Yu4M;FeyO3fF_jS=?eQ=9RFvNq+qJ}R3^g}y z(u4|ug(c}TfHfp5@uOB}x4uHPQvIAB9WPk?quiiJwch`eWyH^M# z??;VjeD8AO+B!qbU3L6=LX{^GBS+DW`*sKDN=CE$xPp}k) zMsLE0ED;~xZ)@H=qpLLae}6#zT9f66DZB%0k~QXa{iQw(TVL)<7(at8oXT&Bm)3Qm z>8r{XM*gdd2$U2?@_0o}T2`ko%|fhIrq52x|B7V}kVd!#F}9chVo~j5Ycj{@qHnF9 zEH5qzZH<6(RKQyjUrvhx;VIcOdZ+8nMStv$U6w=5Gx6G){Fp=ZtKEnJOBFkD)TE&Q zYjDy-RlQK30$?a*9guF3>3j>Fe<+x#~D;tNRm|GU!LBWDi}8lFcXcz&MX9Dpt6> z1DqGu^9Zz02+CP^gcg*PTz-|wQp#E{!-1cjtkQeoUhny3FsEKT1n65H6t_jtMmv6C0gI-~a70ly*qypsrw1Hp(zmT|;~(vU8_^aWk- z(2&#Jh8&nxNV~+&bG2NClNEV6}fn(OuEVD}yiwjaA>!k6)k8Q_=I)atX`P9SPXvCkAyZvKP~lSnyXOkrQVC||M*#vPFd}>X){0; z(h3pR&GULki3~!BrQLdJZzU#HiYX0=b8Zx3P79wN^OTP^9am9Dv#-QMoTYc)My9$w zfHpZK<^$Y*;H9Va+$LhSA0&c=$YVKNB{btPX*!HR@X|n0@|J{iOioJ@3Z%M;q9D#q z;%#k+evc=*M%5KVT0rVg5M>#DscwqO@j_WT20`L(6+?<8W$;9Rn){DS4z{d{RO5dz!m&Ba>-DtT5S0_45@nh~7dqv6P7jlZTU0|BSz#epr8|~w^H)E-fVc>)Sj$I*I+##|HWHD%nRsU z%i}0Mt8h93GmjdH{`k>XoS1-K9me`8gy&Z$%`3QCGJ4Gf5ThOlNXsE10f@tXas_|~ z6hPDDAm%c=*H7|vHR@<9>Rl`t?m&0Nz;V-Gr2hMOpZt+@6#;zlq@{(zO6$R?|5~I` z{(``dD^1g49i<9Q>|O$_yz1(}JGOV{GW65MK2)u8WVhwcALEd@R^Ij0LpVz|SjbT` zJ!IsVDOdeerV#44d;OsQm|BWT1mT@;kK7>WM(!G8O3cLY%L#;d(D526uGr7Zv?)tg zI(R#0kL56h-zPTOdU;bI&ad#Z^aaB;HZhgh62ZR+sMAjyW#s1;N&~$$d1$Mf z$GSu$Zw$4P$HN*SHU)9wqTA`i)Sj62R9nfxt!Izxz3?N{Q;nqOI&8V_5%w+pTWBK!bW0D(nZ;Lir;5)cFD(&^~Hf@t{%tF!o zYw3I&K8d%nhOu)`RrkfDIxsE?v*x<_xq#7KI9|;s?ACw6hTu&yI+&I|N=NqPDd3@I zO_hm;MH1ls5b*Q=)b-uba7EqQL=c3C5G{I?(Gx9*8g)h;ExPEPDA9@D`xw0&jNW@m zq7!W}I?>B$(Yv3#@Av-s-9Mgn*1h}eyU%m)-RG=x&w38{jFg>bJwN}>@sFQ&5ID56 zbZYuO@17p@!|wgt%sj|-;terO;iC8&T^hWRG^I@HaB585Us6a8aS7 zuk0FoU@;ihQvoUELaOO!CrU0mywT7CN8kMQ0JBN%j2Dm2>ERxa3PVeDcm#Sbg+ug{ z@Xp0^^R3MWWi$%`Fq|0Ht}z#hbECB&3CouzNooHu2aKhAL9n>XLebK zd|tuNEHXY7@1z<{gqtgFE5Y*oQo3k`${u(~BOH~mUvXMs<%d_$!f;7kQF1yc*vz(K z2~yd#K2<)g6wnjMCz}V-DzuFdE67Z=3W^wMUo^CW{u}}vIneC0l!?}CUBh}l&Ry&s z9_QZOnrSGw$k6TV7E%F3oP|y;(@<&WPNai}mOe413 zRapv%0n&6ZIRH395*QCA#sx?NRW)Vdzbq$D(6iz?Bf_Rw(kE$4#<0gfNsJY}&)cgF3wwstW0a~k zFk`8XCVsV34w{Mk(ER)guuMVeZo|@V(sp=6&q;ob4z#vO`Ln~*ixuLD6%x?jOE{kB z|L7+iykUA-;H~%I-v6P26(TtrlsjO=OAv{V7%*#k2l9A+^5VI)9$6=MN7!U^$TLTt zvO@}HTPINW%#RdN%Vz*-?KBRm_gLfs(WO#wjU~4l-LP=5^>5d5=4c=SnSfl74IDg{BYb=2t!Sr9tg~#5Ji_>t487M6u zL0Y{P4J<*-T^BDd-O^XwMac(?7{eS!qS|`+a3Ux~k5=^+{l*Fdm>1|2=wc|R&C21}}5#)DD$lfxF#$_S=U4%6z+pJ)|ieo%p1Z><;%^e(C@_(&;Ukz5zXCJl@^yK$%3yy zPs{8_sZ`}KfYHK8wTlpvnu(HwC#h1jZE8W-StBA9uux8-4d^#$>B`WtwInP;U@dJk zc}_(HnPyYEMV|U!{2xURt6j4yO-TghUxH@q&FH$nVPVs(v*1@MeGgIj{@U<6hO6#x zNN?dQIX;CC1Do#Di+My(%%(30(_aGWTd29d8(G(LS_BF-309J@`-2Tyi`08r!XK4M z`U9RAj$}ANh!WEzX*Ztl%&Nq4pL{>H+*Z%CRy87HWXxPTavxE5;)ke|*b@3{b`iRy zci}CLYNUGhubz1a#`|fNyZ|H-rhqrZup2n$u`PZAD4r zPjak>#R|~VC8JY*Qd^mV$rcuUiF(m=S3>ub=IjCGW}D}mV#`GdKGi*O-~ty$4SwOY zD(^3&9tC$-CvS3=xPh3lBFELeO>}ynTtbC^FdUmr=QWB9Ca{not(BTTl3h9)>LEeIGHKl2q*t%MS%l^#@6^2CE7 zjH*D!zlWZEQw{45f}8ur#%1YXCbfp0-&vOikM*@1AYSf2T()g-X;RGYaVTZfCA7(4 z#U4SByvI<9gCU$j2w6(MS)oq)W-JC63trwN66eh1>an=@*Ep6m7()M;*mk3HA+y7q zsoz|1&_3$RKN%ZFI!{BEmi+KLOltf4+#cdc;xQX)=&4Ym%rNQ0$}}fiEuHk*|k3MH^4_C6t z=osQ0ec`N>8r*ckTT#DG*YjWmM?iEEIQA_--%v6xNqd?|wLxT}&$mV;fhUWMNENjf z?1x!!W8u@@$rx_RfXw=CIJQT&)Kx64l`-*mDzrWO(zI*@(vE5~Y7T7Z{ep3kl2k)TdA5FdbHCb2Wyu2*rmm)^-j-Z7Me06p zP{7;!d@HyBA4hIyRNg8t#^)XrgG$$4kwn_z@FHm6_BFTeVq;8L|C7S#n^KnYRvfzr zv>huJXLj>qpTF?s$S3W^&Z?Y}Go%+b3uw>Lks&*y$GG$;RVHLFCIQZFvjYsURB zmem0!AsFUPi2F|QUhyN_`{@u|Mg6TEh|z624=_V5&(aBIdEMvtRYUm`PvDukvrH}D zuIAiix&^ql)Gkr~yyL#PMP|O$wUy}BCs4&M_ZW{RD|G8_!y|MdOThZ2Kpr%3xX(RI zB&nBEleW6OxU7qa%(b3B?smEt_bU!h6qq%FmZp2op6=QtjXdX+56~lqOF~20$XK=! zg&jj9iyzA+qUYtl`Q;QHPCVtM&iXO-enF+4DbF*u$>vu`eewl$coqUBW2fKP9K$ez zecDQr;kRI@M-J7vV>)u)X|{v09H8G9vM_SLbJ5Wmc`y&o@bY~_(!dAh-?%7p3^@qf zJw3B4_BF|Sg+t}`hs((3mcdW*)Kcp$i*lQ+U`WCm^(Nh`rYEsT1+ptj91?NlB;MT7) z#K*;4Tp+x*+Wv<&tX$)(GDBP&K>2=cpFnWI1%5l3V? z?_4~idARnvpbl2XVQaPbYmhK*JL0<5cj~?2A-I;xy>mZu^WPq_gSE}KvFi}MW3?oz zJ4aT~dN(7fjd2&%S;g}MKY31iddb4wn?-C7M`3y=^#Tgitw!`>-`+C8is5JjuCcDO zVI6RF4)L$=vxu#Z$B)0(;|m_{v23In?**m*`+x&(A(SykU1`)p7y7V{326+mF^^g#x#`v4_4sDy&II(+IxHgIvLALwT|vOjoJE1RglQKU2vKq(&H%(T-x{pu z3R@_~ge-*nd0*d)LH?Z&na5#6u?|z{77hlEdmA=w!JTF~HAO5robRMN;k+)_61L`f z#*Cbde=!iMxeP#K(<3l3;Eg&nqgdH_f{QcH*1~y!1@ILQ=_hA%A|A}V-^JX?-;x9L zf%hjW@j>L$DnJvpVzbOQYBEsO4@DZp`z-oM^XA%Mu_>S}M@0Oopqu7S zfbqH`W1*@X_^(eNm^V9j_}P~;3$p?>U@af6UH=KNX9zc(+Ptl!u6M|s3Ibet*r4Ew zY)6f7EqSPBm@KdLKX-k|%}f@-6Is4LU0s9qT^D$D#+KN5i3#ro+q8{lO;uo;?gfwH zLppq6amg{TWs#3_zFQ)cGY^wAT$(yy-Re;Wr;d|KOnv-E&5sV9oQr4wls_KTNd8HH z+*<&{;CU9gL_E7OpB!z8_w+SDATKEWmAc+$?HzR2TH)XqG2xN zC@ELNKjr>8zHVoZp9>?(wqit<;0xQGQA(R8yD;?c`6je`nP?8g+@B&1~~H#~x~a6puSHm?~Xp-DO|b zIPrlT*dEt9%Xyt(EjJ%uI5Q&PjkJ2yu~qv7Xy+9MXfu42s|+Rp)8+5rXOBS;KDI*w z@Ho>Ae)b<=5jpx9^jrn^?^hTPFNy0K?&5VrWNhq5H*=}x6^zJ-gFs%t!`FB#sHMw{ ze#c4y!bVY|%2A>m;?+;U>ZJs+F?NwTDIOjv#GcDk91ta9U%NqC7u8#eJ13YH>aSem zWm)p_Q?VEU?BpWG-dHjHj9MD?bTC}Xn2RO&a`JOa%CNI6FG=$rFbQIJz^?|xER5g& zBEebveJ9G1?UOuAQ*AzOlFP=G-RUgz?6RYOM)xZS$;d8F4GW+0-$cy*A6DCB`+lsyC!MTfSZ$3+6Z@$#RZ=-Y8b7Y=U)b2t$02~&}61+#Lg8Qg( zL;R?H17HdM4t^9I`;MS_Yw_-pJTn;2Q{TinuS|nIk8d%+T(;&EAEQCOqaGs3%e`H? z!@XD4Zs*Lkr6iBMfq*24onwXy<7iEOL}I+r7`$FWhXl8g)>%{0?#Tbcm*3aBuY$Ul zrbtRIo|Sv8ZB2*+x|1QhyYoX%i$5d!dKiX+X2xu4T)oodVJ^;BMuHFG5L91$DQTN5 z1`-Da7XR@BY~yY7@sZ#-Fp?ERk0+uC7p+y6yHiUQhl-jG%VTZ_#HP*08zQ zrrO4!3v=w4g>;|!n=pJJT?a1|oGGIl$y~OjBoV@}C$53t)o*Mx+F*kLBQ#XSofY^m z3;$lA|HlbBOiYiU_AyY|q!Gf)r1B+(p^7ffV}mETfA$lVwf)M?Y*3-9&7N09@ zy|=+177s+_&z>bD=dTp2f$JZrWL-%r6`mDdy`s}U55T$00(!)(p*z&xP+0^e4hTJ= zQ3OKGPu|Q_1@a_8T$0l>AY{M9S-1qP-m#;NTl7{@n#|NO7-VM1{jecAW;KCVl(n-9 z1j?ULE81UB>+`K9{=^OBNV%FZE*_YEx|5kDarQ(}7SK~x5nagtP&#W;Tg_ddqS4Ql z@#;C=Ie0K4lZgFo(s{@^mJQZ~ej9Zo%-!5WB^I|ZekMD=^V?^>;!Ow)Z03bSAQ zAzgb?!i+Vp*d&yaUHP{)Q|#}-#M7n4@xH?YcQB{Po*)$A@D0l72GvJ7OXX)2AlOV+ z(@ok63h;vz7dxJ+qjX08lYKNo`{7v*dNny2=bFa^59B;L+80r{!RdUIw^ zvU%971^6yQn`_>z2c6ynD2d)qF9;K>6KmOD?fyIgS%supZDkgnq;F-qi7wsurQK(@ z03VnjcE}a}aCTkP_%BjQD}yX4q+Mt@#U(83Wo0Jn;kbJ`b5VaM&UvfV0W;SoU4l>; z4m&&7O@J+nMQaQB)@$D0)tByI#Uq7A^j?Z~+YxE=gW^d&dJy*29h$@spWjl`@9UE< zFSRU5$AXq$5e!ecU)}2p4S?^LW+(K&wK_Ka(t9SH$h$Sfo$^elMF{$O5isqopN*3& zm5Z{aDF3_EYPKDKlI*3DAT$l2%_2*;5+NFmJ`=;*_G8z+CRc0@CR2FIp-%;ZdA)MU zN!Pl__S54Q(A~spRYR8mt@VMQN`R)(1SLT69~xcyS@k`hYMY&gl|($D$%e?#kN0(d3K5J^Qvh`FnZ%yTkM5EVfn} zgZsLwo3Y`BQ37=DjB3N1t{3Gfp5%m|;e_JS+@HyxYeol+u44uE_*?BcKG^PAP4 zwKTWtXIUufpYM?rBY6Cg7G(x4g+QVDyq`#hr}OR)%Hp7xb;KOfW8nXx#27-uze{vF zuBqX)Viw`_KwFSmvdn%KgP>hR^U3`SPX~!l@hZpE8VCYn@1PuG&KC?SXZhal2@~vDQdtY5k_i z2m|R*$S#NxBt|1N{rG#6-N%RnV-0_eWV$Gns}dy7@M?0f?1u};h#pLp0f|*Ii6#wa z18wD|yZMi|DNXkesZGZhntsFNivzTemhj%P2( zgXo2sy3m5>MrnTRoQaJQh8&@$?TRlOnoX)9_0W@(frY|djo2voQ*kjr-Dw9MqmC!p zk^W3NdjXR$TQ>VMo1)n<#72(8;e#b0zELcRZ8djW__tH4%8@m?$>{V7)hL!$H@FfH zf)voz$=46;-)>JAUp_Ji^)OvS#V@QeA6H|{&YjL#{X%evXq;K@t#WcxhcDTAHLkhP zS$s%n`uUbBH6!m(Wa3ubrutnYpPRVn?Kq`%8;uBNm)hlY;$Oc)_eSz|z*4!589==L z8B^)!s;(7wwAR^ys|@&+Cvu;-u5DVA+m_KBj|x?v$}yA$@&Uq3(`2npx0HplI-~OC6_@qE zF3lP#(8M4P8D(fgLOSz-eQ54ouw%~i8Ic#%SqmSa=Rhq!V*IE*KCC`*9wNX#PWu2D zaYyX5G;(?3wwAem!z|{OaFc0c0YIrmNHOtW5p5%7zT2C`Rcc*}Z^k+8R3*8J=Ove7 zNH5mt4ti~|pAFu98#~Nt=2exeisN|wjcEXvHp0&A^iqCiUnsnv3H z{TX!DLg63WjWEY7V0;-8UwRci zk#30i@jF+SDE?#^H)P8_i=8Q1(rz)9`v7$A>zc!gmHIL0=O$zM#N!6Ivd5Jcz zw?4+&luov;H3B(cW^ZS`8U_2~ti8962@3yHgOUJ6vTN%kTDx*OX}2+`#&0K$>geo` zwWM1<-*bivY0P-mxfq zm5fC$*l%u7ijj{N2l#Fwf~&+zuJ4s)wnLEeMI7B| z6Zpz!$TNy5p2wUi5xH~e@xIFpf9wX#0AlepG3QFZXoaaPxp1(rnYvo!9Bn^6Wi53m zV6|z1X^y|5evU~H3(ZQ!g~&+yKZY323=%2eALw#Y#iZE~Q8m~MfB#-z`2b6h-L8_p ze%w;IT2>;DdX-KgA(U5Eqy>|s#~>u0Z`aISf~=>viue5U`+(5~*;V0W`by0I_Gc2H z@&7b^{NGUF5&oTh%CYzvx(VqSV1%0bVciF?DUE2?@y2l6Ie2Z+AY`D}N7G1H>(Kk5 z#d29_LAv3Vy8?{pBtP|o7tSnGej-eZ_^I2g5H&)+fu7gp0V1gs;OaW8WI}0M`tfHy zC2#mC0Ic;ax@E7Qj*CgMx;a|B{&*f6n05bk0d(3jpC8%k&hLNc8|HBAwY2UdwtTV4 zIAY0l#_&EU?x7cTfqK1E1IuHHjBCZPg5Gc4UoBLryTQ6=Bz)bIK{TfCe1kP3OQ^@s zny1F3p`Ha^1r!1+6iNdxSt-T(QU~)u89QO54Y2|R%Khy#8`KH{UIG_Gwe^#NngMuA zF^!p`eMN}iJqsgvjpzkC{;fS#JcGKVoYR&GC7aZ2-(NkXUWvCK#>IKK4m(74B^Hqu)VxL_^q+7?)Kb@abKcY3 z+q!lT6GV9u?}wGX^aZJ}Nuk%PM6HgP=;$EpOuV|d95y+hWrZgQ-(Fe>XsfS9ibS7^ zT%OX+*LnF!b-wwFZ8v1McULLt-2M`z*S@KAxoP2fEjq%{? zAfmXNYu5j@rGFuRG|1F@Zsy`z-1xpdT%+Q1;6kTkQ!mGDlgTcDAE76a@xherm&jB44t6D3JiZzG`zGItqK8Ip2M{*)FD{JFY*%8tl`HlAi$5e+g| zoNQu()Z5|d^IN1EWkq6{X;RBvM2V0JN37Jm5{E@>nsIJyUW8X>&9_4)lw211XWHma zp>o?xBVJ)yKUD;iX}`eQ=C5z8&8j>l8%`)RQgGR8!H!>EN#1l^)6hp%`YI3hu$bRW zkt>1At$l2W(70Q#6np4t%9yij5nK63B*|6a2a#c{*!koLZCH_vglACUP!>$ub$rq8 zVqf-~Exf+(a_ktDir&zgYC{v5Gb^_zApiDl3AGfzR~N&&+>aW+&8s0XyZRI??Bbs`uA!byg`br z*l*ysadv9GmXM@;dGWOO{sUQNcKPX7Qh{FTv`{9s^b2qOORj-;&Qt*u%o+=t#ff00O;ddFh_zb-JLlFg^aP?mIensp4EM?A)zcpituPbDA z4=T;mDPRBkfO6#(MbhU zhZUy5ab?v_g&K>jDE62o1N^tQ?0=&c+YMB!$mp0&eJ0(Vr^9?mo%$BS7H_v*bjSyT#7GfHuYMIC>z|lu6qSrAdeqpo)u+-3-|rB-HG_; ztNyX6h!(N@LamHXCRzvja8%SLi9!c&P}k@UbB4$TKB{%k)5O&eAwgyh)vwRESSI?( zK3SQ{gv;Ols*pNZ6)FPi5n+3jYao)nTO(I*^{o=K4kP9uYzbbGApTIr`~B>Bv2sI9 zWNt!&x2rdk9sGkQU3+!}$KCXp#`rDvCnrTR-QAh-KQ0MMfLZZVsd(+x9OWVieFHRk z?WNg>_AXbi#sY^HBk1LUoT@98rVIPmQ+MAhZ}a954m*XMKBa}@Or|nRA?Y>ID|wLv zxkgm19bB=c)f38FX{}=`E%A2HD|fM#g-%0pf1?yWWY8V~AZ%nI-%P`|B2VlJnQwJT z{%f83By?3jMAf!rZwCbPPJ5RG>ShfN`EstVu!8qQ%qLM*kW53cwuEE&saqnFvDe{u zTVUPBQsg$2O0XhH*=tVJ*V2C60BSWjq&C5Eu1K$(zGeM>f76PQ>l!?Glhn=B)vdSz zNT>$bA==dV;W8R&J$K-Jf~Az3JNvdaIrq~ zDynf#DuyaFTL6|44S!Aj@`3+(**Mp-ek$8#IQwSj`RC;*a zJOlIJ9s$b7lWxAz}kc`u!6qj&%TanuH0pB6iK-aHJv zD0(g&!yn)(VzmDN z2>r1H`uVum2WYtlX0e3*-Q)>0s|wcLisq>BUyJ`-d<1sPe|C?E{vY^P@3HcKo&A4Y e{*f3J=+UFQ z|JzS}`)SoVRrOGNue0WwbInuXik~FWQ3y}~0O-hSy@sHl#USX{pV^$In|HP&(G7-(>D)~PfyRs*S8zz7h79f%P0Rn zN=gk44Q>CsT08ys{QUIy?_U!$i~ErfAk~}Z(9``RFnuiwF zk8c|1PoB>f)D-15ub+>PPnJ(k3Og32|9n5+T~yIFnL7Np)>nG8HrD^^>)6_noT^^i zkC3Iqy`hSvz3HZJO*0##wd<3e&rj!u`UYi#8?$|lBYS5DkIyw@n_u!f{$1Vb+WOyI zohutSEseApyG9Ny>^@&_l>Hf6IDR^xZz_)Q>@1FvlvAAEIy<>}`c^mE)G@qy{$%Kz z;THYdNL?P9-RkBObTHqszcASM_qeEkJ=j9#&!09KMfH!`&JCFXsuEJ#>T1u=2YE?f zKgt@MuJ&|Kt$&nKcM8jEt}3;$vR>#Y`WhVE+E_Qz^QZ8uZOhD#y>CoiRgJN%)WP|+ zyM@+|=9${*gUZ_W$A4Rg<5jMoKW9V*78e#KRE>Y}vI{95C>`7H{ZpFWy6g*$?OeP3 zS=JEXA7JYiSlu-_zxOY37HS{+dr(y{Ch>#OFxopj25CzrOZ5n}{M4 zE9V#&};gPMz3z}m*gbIgeFlrUoy$9c*szsb^?s;5D`Qw{3Vd(8DL%;Zx3%tWu*PDF#p^yRT52C6b3x~~!nyRxi&;Bqi5i0>{0r&%G zW?=8jL>#p|8Zo0P{0CMta$4m#?clA*n^zF{vv==`XpzEcA!wT4B}~d#Ym20(vY$W5 z56RoDoEzL{rWuLYhD%R1wT!-IcODS(KB*G&E~&Z3$KXT@xx;)Lq6ZZNinMSbR@rUpD&=ky`0^ji?<#8+jMbn?_=D# zM$p2ra-Leh>_TH2o-y}l*Yf$3LxW!nABp_QC4A1UwS?^HIr79wn45wHuzcv*;q4~w z*ZO$u+b?N@AGGjz&`0x?Whw9Eyk0P)Hr}Q?Ab^S6;I(r(W53qkgoESf=Mr>Y27}E_ z3SNfX6|RzGx8WM}LHt(FOI?4=^)q*_SC>A3U~rFc z+li9eJ5{#-s2l4R&-RqNy6TTQiuiogEz{A4k^OQE(@_G-w{4dL0X{0Xvt(Dj>AEk- zL>UIozgmbp{)R683XijZySrZy)e^3)7D;oh8#Yp1`raEX-Wo__iIl~8IG1+ktkhe! zFmmwZ_E2t8s2x~xIJ3&PsM)ea)y(i-BD>4%2}BLXEykc6xSASMr(B>1F!2rb`EIDH zdWn|f9Hr;LrBE!chY`ybbeO8pX?eA&*}2V*&osGF z=5n_{d@yJ1Swgcf=X>E1p0N0RCthDnNE}Z zT%^Vy2Y+)iF*0)1ANHr4?>~C^gb9&n=nZt|xp48|Q%cM5zv$*?n#Ijb` zj#htoNY*2#nI(mc1$vWKzw~p=q#Nk4FIW7f;7*a~LuWkT`t2a#)r}2dfvmCRph<}0AwKm*`I5Gx&928bp>s++dT1}XiIv>f zI>zFK>V?WPR9~<6r3zJz6UFQSx<(yIq=lpk;b|hu84-zBhYUCr&D@N$gY zk7%d-5^1j?MGrtJay5ybzEfeX_IC6{BX<5QFYmJqE8ZlY7j8;RrU#F~Y4_HpE4Z9b48-o-?61ZiW~PgfdpJ zEw!T5tyQ*tX=c)eu~e4~)NO@l2dFlOrEQO4Z3rWu*u(IO1sAsxqlsVNLMsPSbVyj} zICU{+D~9Mb{USYr3I7!;l*0uz*8XM3qd?{Ee$ArXl!`%(;i?Z~U!h}-%WOe59qg0P zPaEwq-4^1kj?M5cZZVGKB12_=^1^8y+!e!Px2P^We_hth=-EAJ zDY-?3Y!FjoE2rckQZ8}fMAvMP4}A2WiqK=Uj_st|mNf!Y^|9A*RJ>Jdr!`)&SQ*^7 zcDlcI;=h}?Gueg6N~dHHr`}jg--)NoTJ($Ng}by%S`RbXKX5%-#1pkkRTA)ZM(ZL~ zZM71C!3}i$@$FG*&i0HYn^8*tv%V{`b$1}hIbVzF6C&fF>-$H@GxNTH=={O z2}Y{B_|gr74O$xSn-iWo2E~bT@o(APr0FNJ=3#hWt;>%vE?Rv#jBS?aQyP!Pw@sHQ z-uehMlTo(>Y?3fXT`GxazYfoh_Njg=1cf|NpMhj&0qA zjRm7OROB%D^hbf~wP;Oe6zrAK5+4U8%8rvc82H!W4jD-ov1t!=3HCg@F6jcYMeBhP z>lvWZv$m2$`A8WxJX5%Np=CEetuCTj{)@}JU23q?uMtswt|k|t5NPc!#HeJq$m>bu$X1) zmT2`xOo!GWmC{FTv*|y=pNIibMj3m+5+p?e38^&RAwSQBstxcm2u_jcitDVMu^-*} z7K;<%Q(@xlx8Y&BxuFSh=wIX-@znD35fZ_OysGbxmt&jW`i(t`H1nQ}BO>S~G^VX( z^gRSo6SMh?!-Msplks&IvzS!0k#xNI-XTA7)EXnTP_C~UI`P6Jx%TMo#F>sPe~aPa zuJ#iBdXY~IPGEL}GMdsul8TZ=?Kr-|K!X<6%3R!8+V%$l3e)}%p1m+(u& zl2VQ&{KsPmO9!=fR}YrdOiTH= zpm%6}GTHxBvJq{ah>`G*Uro?OGgat^gHr|ZL5tT?yX(!qyn?5s3~0KXk&JX4xCMKp z>Cb5-j!eEPB}c!cD`lHT8M<5IF>G6sRBYgvuf`eUF&Twska79GU*MPGJxl|l#bu$r z@nR0=l+g42k2|xwaxdFovhHOR*+P}3+`o{cQjw#*dM>3qb;-7t`&eWmj@x{rqtOzA z9Ly}XxnZ+_(z$WhJ1%*&zmE3$lWW{xrJcC;7%Wq6{pw2o_$vB9q9fuunM$5Sw~M>w zB!}meFzCG9Pbr>*gpXmJUw@K*yET8fOI(mfmGM0)b%`h2QC-dPGJC3(tgEfdU=OGK ziy{T9fdxxtirI87NC`ii-eTrZF5t|%ucSnGgIDwvn1!g=ah7N&MH*cvmSD18)#$TP z#dXue?Q)yW9Kl}wn#JUHh1|7>cyy>ipF^MUF^g zfBEI^8N5XdSF-z9l<9Vt;fAX+qG12*{!0^YN*=6hn~JJ3QNHnYk$Vo#I7Drt+~y(&LI;9qDYpoM+WbMjGd}8aPY+A}#K=SZMK|%G_ zPDaLqPp%?!XM96uniw7q$mb*Ke9DBhCjprcw`%+?ML#+bqs}<50JFO?v44!3X5$ho zC%UI#0UKjX*c`g8YFEzZsGGrG2+LnoPWFGvnf_ZM_5bIWNNuZd(4HD3 z<}2ZSbOb1;`?Zpp44#|Yg`qbu$tnX~ew2?>ScGpvymHA#QQ{9$-6*l^Krd%OXrZel zmCaH~T+p#<1q*TUt7LUv2maRU3=bJI8+rhpiSeou&k48qZacC$Xq8VWN6H9|yka#lV7 z&5cjX`(qh5H@40j^W)B={zLd0jUG!asr`B?f7k`V4fWH;JI_uWy! zB&Kjrjt;iO_`1Dth$Tnjbv22=SCL$OcffPJL-R{>wKUH~Wkv|nc1?_cL*22WvZEq% zDcI>YpPjM|OHcAG)E5+)y2&Y5Gw{M8d_egvk+1TK{Z`Q)S!kw-)T6(a|< zFG>9W8k&&-(hRzqswxp*&q@D=#|$a`(B!S}=pE|JH_C4PoUh-`vI0AVUmB;Xkd8m8 z?go{VBN((&tSR#T<4E2HMp^a-ulN_=yutnvnXM8W`tKeEC1Z#-H?FqhP|bJoHZMBD zjHoc6CS6^FWWYE*S+h(?lnR*+B(-EpNtRa_Ft8hj3iUilK~(r zP*)jq`FYYnNd7zk*1nX!rLhV6Jd?75ej5ZViJ^hp({kRIz(K0nl4{01Pw2ME9OoPn zBKAapdDp*#f<3ICe>V$htK?NqHOei(TA45*=#NBM3AwJp>G&+m5E@&?CAqy?c)iM% zbkIa2J(l}isqD7_S-Vy*mcCo&GPqQOv{j8xCcinTUdMzfXN-B{OqX>}1Cx`JvnQM- zc*>zrR5s~!rGpN7A91BIU7F$${di~8u!G)HKJGK${=~PWD#k5LvGqX(Yjfh_9iNjD z6aU0dXX+D!jVn=q-tlhhL2%l%x%WW6_rz=069hSpckCepvD@CSbbm-bEdxp~x>xWq z&!`YZ$LEk^2r66Ot~1?CqOVJKEHkohKQ*u%I4#QPg1#@ya%&cSCqka9gCL@!|8l?~f=sAU@+^=fH#UZMJ#1r7=iEVD9B zt07yXaBFo{#eR%T8h9w*mNxM$@H3fq97LiTu8(aDh4XRV$|8`P6)avA&3iTDfH6oH ziizV43NO0<_VfrEReou-s)-h;u2inIpf&4K)0mhsT+UN%&BU$N*?X{K(|6nxCeO`# zLvg!^Me2j7{__VjGnWPmV5kx)UQtYY>ZI4hK~zCWbcz;Y@lxuC!(DbYkZ(6=#e}}n z`N}@t&RLB+cc4CAIC4gWksY_Tg(bFs^x@>vL=`yJ`_ zSnKT@F;*Ep3yQf-d-3=~q|nxd80l&})zn;7fBvM4wh2nhYZ;@?D<@KBDhHmbZ@T?c zF(e!UD7kThIL7|)g+zK5dcReLtoobGeL20FN@$t_}YF2#w zp%_P!q6J%~w36XhVhW5Jg(uA&`O{-|=FgwzgzR~J6%@k*0$Vsd;l<$UZj17$1zJs|ojb}g^W zxWP^Z>U-#i(n{szIbawHIx*l22@)*09jxNh#oRd~$CfV?*@y|Mu{8pIk$*mu;G11O)ROn8CIAO;Vgv7}0Y2~0AW{U07 z7xeZUkW&ELOa*%@@&fN0=X%jigk3ouYB!8V)Lc3nwPHHY_)tlHv7OQ79|e2%V3D~- zjFXFbTWl~;9mfq=E`C6UJx6ecg02XM0M1Grr3R?D2Ofc zzGZ(deP^>x;uJEZS-#nC3@By(;L|~%TVvGn+xM_Ju{?t34FKs-xKNx--(Jn2IkXS7 zRi(_~xO~A!hf?oBbQnq$rB?ySY{m??ej4pf3FuwI2l&RxN+D>=)j0$(=jc5@}Y`J zk9YaW=~{&O$8KG{@?c)2eO2=$F=Kgy!Uznh;j(Urz8nxd`|0z@JB^g>EXHwn7mT9B zxK&(SWG@qG93(?R4JUlS5k$lJvT00YGzicowGiIA6I#1r6%$~|chAnT356#T{Obu$ zmoic#)1NDqs)wg0IecM+HVTz9Nw==CWxBA69jE!~cd2hhVwJxdQ?lZZb~ zwtR=|3f-TM#c7)3Apnj?cfl7B`*8;cgjbT6M2&mlz+#5OKW4aCR&u_;iIBCG)dy)w zR2ti#rlBHq;CVnJdBoeA!O|{}Txu<=5T9t&PZs3Bu`k3^nY?8mglGLbrXbkHCcF;| zCBiE=+0A`_rUBZl;Prl^;D6=Xd!>NQBa6T|4za5EG^mCMYZ#ru$9`%z^tMUsZH3bU zIsR2HWia@$7=;nMyQC2hH<<k$ZpmO<~XV-MG1Nh(kxc0Ji;m^pG>r z&Lp``nP;D@ZeiNbhw10_xqFNV-|ACtXN=I@+mbT z8{u;SgGiW2J4ODP-L=xRnHtJpgJ6^ug zLZKKx*LY*UJ$(zW|90~iBk1_8^9{d$!5Re?lH*;|jX3lvw|SLRd52iQ$=drj!BLg4 z9|4#$tCwGn_pwz3eW^aoS;$r`#QjGZ@Duqa%4V$K9T`{bgC{dG_!Bf1YdR5&3rB`! ze3UO??JLqYd;;6XS!<8Tp@#tdCU+dCxmqE^Kn7QvdJV}LXZYOr6=1D6&AjR; z&Cf+qfEXUCK-MA`Ddt;_^w>@j{TXZ5j+q9OL7%ERDF`H956v>f!~lPH_JFDoEQo#- z+9M_cfYY7Srv*d&;|0|Ho)JCheo>x<1|uB~HJ3EiHZyHC)_UY5E7ngQq&f|%J_z*w z)r0}~Qcd=JcX7NGLSUDt*MA}$IK;ec(bB&+90zs30(`Gs_lwwZ#CMk&E61)}fTjzL zg|NwY-zi8MEAOA4JQlcjlditxSR0UfY@lgMdn`ow*JAQ&3F}K1JoadCtUw$jt((w< zu?hn$CuqK=OJgp$1JEz5WJsa9>*9~YJICZC;HPNj{GryA3h+4Q6EP6zloOW$IqW&2 zVq}tgbX^qupPetNv~DOt-sLC9Y}xd=>-TWBvuM@E*kyi`Ijh+A)MFvRVw2fg-@F&W zoXH~lUNup-v!-P(7Kusap%DK2El>8VzHMOo`9l@L&`v**$bQLA-=_0a5m(`YUT@SE zd?RJ}R}ulZ2xVNJ*pmzM6;EGEaF!)gpOg8mF zcbSj_`YO4 z|KKP#Y2Pcs&`s8*)f{Oq#2h%$Zw`vaBPF6v;53aCn<44)XJC*9s&qyAC%v6L3wi_{ z*!e~sMGDZxk?k$@Fd`hyKlbI73pZ>&h7mT4Yq1@tb zg!9OF#>{?93PhAksS|ZxNy8duK>p@^#`ML(2ec(U0-xtvc0mHyF4syJYtGgK8F{RS zivqhhHGm}v^J{|S>|FON5Qc8Ejf$1umlsV-=^!O@`ZK24CYy zJdNrNXoZe0<3A$g$IjQZF}!gMwO>)Q>HX3fu7_^voF3pEhhe1f#d!{-9(QFXgpJ5w z(+^=vc{p_EHe7kG;kRHLD4)Su^}(AIhYgXg z_a_KB_IqChGJ*-J6Z$AdTBzT^oTB8LlnsP0YFH#sv2>9O$ z*qyU4=NUtNB+;rJv_yh(F<&#y9Gpv8aS(xR=}7at`5H&bcEj9>+bdCK^#L z0~Rq?TuoaY=;%qlzAJJhtnG6dqLJU|u01BYK5N_H-B_sZM4ui{e8vDmH~uFKw3eZZ zE16gCW-EDf-V(Pb!MEx6UoW@U%j~nIKn!KF0t3Z7WL5Jnph|Sp17&o8|LbBa0g|7l z`_osAS?9w?Ef(0eqLB82UC0v`Xt{~#7Or2E?LCC|X}u5Slvh8m1Onofz}Ef8OUwCi zna}Tj+;ZCpb7~#og$xQFHVMPs9=KsdjHlkSyjM>iYuYU>M)pCcXQNGrlR~PJbDzS` zi|ABODxb)Z5+0aYLL37c#c0K8m zwK-|==C1?0WFMtQ*mF553nawmvC5DS-Ip1q4)3NYqN-U+R zhg(rfCSpwY=R?N&*f_U|ms}sTm9)P6oURFt_%w#Tb@u0$_&zK$xm9{amY*+l;ot%9rsN? zR{AuBbjUke#4PBscQw4RTPtEoI<~Q)-cMzPUEbnC4LR-d*P`>L?iMS0?V*}RKzMy7 z0*cHQmpw|=tWm;`C|K-6Q!Pha%=9Qwoj$&f_7+|8Jvxq9q5mA>@T@hZY@wWhCpchk z?;9E-X1uWJCt7>SVvUj>FugvJLJj|x@>dArK~NNRcZVmZdDck28)Mk;DxcHNlVu;s zsZo^HjXxIq3?I^E=o|2e85)<^_K4U?zHucI)Px>}1tfe6U-!G$s0F@bVM;zjdo4Zx zceUrM-W)_(YD7wZd)970QD%Eq31T8l88xb*&iluRb(u9Qo@t84Q!&##Cy5muDr25i zD`tFQjR3{J&tYkaBCSK@8()nWu6TwtemA2cmb+Z3i~k`|(psxbJo~|`XCRgD4>A3v z=mfXhe=V#`=dJOdfjP8JsggV|YLvC>6$9o%?=~x)d`d3kd2X$Wqrurq2vkJ;b#7IB zl0d_#Y?Su-R&uDT&Ui94UY&iyJQ*kt9?=sTL~$9qnNe$rlSAqv{AFrcImK%t(A!M^ zegIRBt3+A<7qd>RXKRn#Zn{yCb=B-%LE2b@+05&>a68LW>;Le_=m&ikaaWvKGy__N zewj;$CFAmwnCPDiy(M{FVD2v6DtOvHR~CB?SI%Fk0`5SS+=;Nfzl1TRK)>ymlyRI{k6xzV42*%@s-3*(wE4hs`iIICiM9x60=(kmcwK8pCu$>oOd6VAVXfxCOYONlhEOjc<7a z8Wd1|hV_l;W&I8kvzD-lWEw3XiYN?9(RF89&e_YpV*|gNW@KtbkT_6@X8)oK!GWl9 zSqILd%RV8{2G6Wf$a96cw0Y?NC4MB)E7X-KR4-I~H;O(@cyo{(_@^VLR`yCuOZN{- z(UhYs2v!U8$zY7L8ptzj3`coR7n_f_5O_!BSh$Bjj5WspNB_M^IA_S>(VeMmsLF>b zC1w7DH5Dw>1QNl%xDP^!zJ&hgk2_OFoO-MBX^BN_6U8i zoFP~QTLO1S1$;247Nal?^bN&9N)iLML`cy0#rd6WZENcKk@&D}OU4G+F#Qb)y77R_ zy}k{x-h=Ojm|Ig&-g2;KxTxp}m<<4t$l>NTZV@gxFBouRUG(Y9D;v&mCxGC!^n$j~ z^Y3uGfd|rNq_Pkm%~Ewd3Tu3mk$8*gzkvP9_!bh+ZyFMGhF*8yw*keg)GHfR%)33g+RBQ3D4Y zfx9wK60$HLi+SY-suxgJIVQi9DL{TjN&wECPWct@^ z2-^5IR8$Gaj+X!EXAwjFiv!?<6%c@T|68d*@_^dWMNlMp5c_>$57R$eHf1Y8;Ml#-Yf% zzoz;)iZ&zA06TZW-t28^jKJ*8c|AaO5GuTsAU4o?TBvK)}^u1 zj?T%UoV{D7kW;>&j{Iae)se(zDwdNk@fPLc?S8^&Zhe}?| zML@%~?15Z}7P8jI3z;{~SUtRR+80HCAs>(%sSsp8A<7R^p&Bt}xb%y~AHzsWzjJ)Q zymm~%&eaT)JWv3W$`Bv&zCJ|&aZbmGdexqsG2VEO8AZv=SGimro2RYcj2zKjO$N6^ zLUAZA{=7ah^g2&B0$#i+?@4=gn)OsZvJM%9ep4!!enu_B&bpmJ~?YhVKl)o67D^lutbL0OS+}`+d0PSlt+8V?(^?Q%-^GWvTGVQ zVo%=l?DJ^y^HQnmA#NCON9FnVY1(`#1y-b!^G7ckxy#0Dd#eLj5vf*@gJK}Z5wFjy zAS%i}{>l|fKl9)YvbG=} zE@WM@A#L0R4qK+3eP)ZlaQX{(r#JN`rtQBYlAQ#904s8!kH13FH{}WkR-{e(h1Bat zd=!gQaGoD}+l|^Y6gDZ|b=5&wM{_h{)#_RpWmJ`Ys?x1%TomY-6UCO z5v1mGJp#BapD-NL(7=(`o0@-Z)KzAS{Yku6p3s5HBb)mWY1~as2<}79lCC3#=E3g3 zse+iOfO3|=<3|!Vw9AcimQ94r#Hsj?1nj|w4dwn}>sG?bf=CUT5b^5-n0aHs1IZS9 zte1c;a$*yk`d5*J6lFw4j${T6}FL=XoV`YNRml$Isz*rG1A@6xN~1 zS-2Q&+u}T!e!uXkPA50jkW@{-K-sDSUN!h-;&eLqIoGO*NlYlgPwO#~)OVV*mP^aB z_QOZz%(UDJ>)N{RGLtQ>x(f~~nwkA7y3rE(g}+Zq)Kf*vH5SLCTH-Ku$4mzueTz}v zVpuQB0R3jLpNa)s#C6;_Q#iWiOxklwcbBh@tfR^io6=8+=?F`jVh;x<)2KHfGvmOA zMDx+XW`&yFT0+I)S%>Gq>zY0sR&D+!`SWx}8=nidq;) z)upBB#2+p{@ZKDvTCAS$jX|a+OAU2}<=BNf2-h*med$>`wJj^c?K2-wx^Y zQig^}hkI>3$6l5a#knGyh{4FB%t@_Wv>@3pD@i34*y&RM=VdRs}1 zS~D0U;&Kxxt)86thtryqwt1II#KW~uRWO$J{+>s7o5S;6Yyr_~*W^z*Ia zaB18PEtA1v#6idcP0(jy&0Haq7<(TLNuYzEdJjA_PK;T56=-jZDUympdk1F#3?7@Fwu~v$HWuIdL0z@rx zk}``Ny(?clA7>9MKZ#!0y=}`ck6EQ@8j#wZFVL$WiD^l9n$Z`rjFp!H1g&T2j8 zW1Pp@L*V_jBoLwcoe01OWHwSwWC*|^gNv?Z$?nFlv%f<+fMKXDDtY)5&|dN{nyUh|S;$*_u%$fsV9zPlCCoOan|;Wwe3b!izt zh`k?i2S@NQjv+1kh$1@vnBZ;Ul08AS-UG8W0!X&oZSXio1vyUjhJK+*^fo=$ijv8l z+v!$=SB(DHAlioLb%SCMOxwvNsRCGovIl%6jnK)w^ODGvb zRJT)0p_9Y;0C#N#9CVwO9$*fsq~Du4lX+2UybScbZB({2I|vKaUZi!LH6=|BhE~tA3cHti zdn>yN+rGDQRB^r${8mD3vN`I97}P`=`F^(9p^nHGZaQ><#smLF_@?>jY^qWWDMP@! zH5G)uPItT?Nvn#t2&nErY5X2a9Y+PiRFnoxlgP!3uZleMq$z9(*~^tx_}Xm;M%A&a z3o;2~z zX+}3{*-az_V~a+;gTGI9hw6z(3pjLJzpN?y+^jh;7hS z{_y2z7i{cn;)WrdgHf?Znyli2LjRn-t&J@rH;W|ZmcHZJ8o+uZ>o=uLi0kXCnWp!h->Yhu!^jZwx+%|!@3ls%@Gz? zxm|baN{cu5*{#!WGMSj$bEn(ZrXH(hkU{^YAVRl{`Z)*S$DDG<%cLKk;Z)vd-K8w^ zEj%)CC-)Ilg9p0>gm_EVe1&B%rHRRt#>$&&MQ~~rqwOB0+MJyn%VsA)K8fDQ@z)DX zwx7N4>HURL@TM#_A^cj8+tj%mB(iXs%g+nxrM=YCbR#O7QNq`TkFKhegXTun#J*Ug z3k>w}6Y;?!e}+iUlOW~pyvM?L66?$2%@X8T7LwA1DYarQRGfC5PSXv-^4$0}{M)(T z*V~u*)>B$hgOrbTXyNXp0PQz4ireGQ`*1H^*wL#C){&HGdioV_G@*brvO9}EJcw(g z0trUBT)pyoYr1wAVSCPJ$GQ3x-~-|xnbFk&Sm4qsJ6YxTUf*@ce1U&RmQbGb_p5ES z70CE-4v5sQ?~m+v$4_~eg=aQla9&n;>HCa6uMCy$o#N(-je78Y_y(4Fs(%pxP(Pp|13vTLzy{_;WlHJ7a{v#yG^%G9-}N!U zX7Uk(u>UU}d;m2P;Pv3NCDlMv8Z5cxPIGaca=#=-`1ea20UnB7!&)W6WxCLtQ!bb# z^o8BM%D=b7`0H+*Y=WWpUtbzF!D{ES62cT?Unl=Yz7^3an|RpM!)vQMmUkr3^|_sC ztRJ{Md0jtwmobb4z~En~+uD42yEs_{)w=@_I{9MI^Ry1kQCo)kGVaf zov-+pSk@T9&nwg`^8iQqFR5q=C42uvb1v}EniE0=IQM1$tU!e8JGDdq0F&lSYq>j+ zqaXc9b_)MFqe&xO*1${5we73DxMe z_r&u8(H^7J%5En~O%uX*s#)~;H?E$}=rB+(3eXp+L+3JM{-pXgVNZw^b#r>cejp6w zyz1cz_t%0aDs@s;HU{;`fT#d6_Z8%3s~Nbsd<*frvC$fO4X%yA$gc zjfq@g9+223$Wl=G%ow{XGFZATuH#*4@$|;lYgY;Jh^ZthB zUXb!`eiLX<_FHjm*W7kF7ruKV>?u<&es=NXTKHHWNUTWml{vtSsf z1-M@o&DH1U9Lz=h?-7w4{GW2hsV=gx+K`z_rfWomc>SZ>d;9LQd-0H}51&7^3?v#Z z7v|9(=k%V2(PM8pW$VdP9Hm+*H1sVEhfl|O(7b}K=66=0WY9M>qSky{GBt3MI}>p0 z{b^O3$$3u^!XiHrJ^mvYUH&b~UnUDgPQ&DT%*~Ji=K==dD#|SPxV_0p-S>9ct(ds> zR4}Lfkn$SknlfcP&=yHO{2z|F_3K&c@5a?<-Jt@uU*;#)7}gBWH*{c#_x`kjWG(HS zDC0Lf!GCVO2S^H$TK1;7+i$k+j83I+?hUx^%IWrlC|}AImZyh5WA(`7r{Cyt8I>&M zCJM$)RwlncyXIN`%dEdoZ=XMO>|Q|mR8wqvax1vdKF{v&q&+gDSH%164}1cAD01i1 z+?=dXgOm2GkXs>U==XD&(G%2|84VoRwE_&%dtK$1@Y)kb{7i1T(ceD43uhq-|(Bm@u$4U*hQ!>w9`L-)A4C8 z--Js0);NVe6MW8{+2ehcK@G^udPg`|qnAFM>uFLdG)=X}l{rRU2}+mQhbx)cB8!(46x^dHO_1<4wDrG;(Cz-7)L@ttBL! zCtCf55Gvzr*oJ5Rx;l7GS8ln*d$IA|p3MuU9o@NRuVO(hzWciYYZ{JTO2U7B^fa=C z?^PKXf|@ceAlF~Rux`HfoGb9bNc7M5d*~1;g_U!Mz?)49ER*y^;4;gCXKc!(?_V!@ z-ve*ln7n141WFzl>(J|Ma{RM{>#V)mtQqX8_^sh?zO>uus+Q88!L!z>1cWjH{$x%b z75D&x>Q_KTMTqd6jF4ywycU7n-*kVvksGwN^9nL1^t&|+q7XROHRtlhma4O(!5N@+ zp#UB+dj8=e%lWp4kD)>G)^IsbW`_^~2EPY{J^b756@(ClGliCy zXSCAkdOL}v3HSR*+Wu}U*p9rS56Zb)dKZek{bd$bcg8fsGz9egNu1UJ*=7E0qHviv zIpji{;q95w=hH-3^87oP*Dky4A+enyfYRSkcz}`L&SN%0$&j_xMApC)-}`dpIS#zn zfi5=w@0K}?ADGq&LBXIL1_Yq4H7IOH5RzLRV|M{PND{1z$WgkAFq3jxioCoJ!Ge^f6QlBn5HH6Zp z3|Jd|l5i!8jrW@z?WY*UN|d5CHk!L`S!~@MK?Tf)J@+{jL;uZMb@1T2q(=qjht7V7 ze(AVgO@b9RdWq2(JZh%pNi%)p$=4ES>*5$=;MT;z-msJh$v)4j;gF{+RRqlvwos4V z@2>yi8PvCc$OG?RGNZFf*IDMUtNLh?=dhknDf6(i1vedhj;LA!GG`sYoCI`~AFA{NxXBSAKxCRL_Bw3v~ow z;I{M$%h)DjaPiWYAjB_FleX@S@qB(JY?J)j$@3^XH zxK4HUmuGk)vJ96Upo zDU}}}qYmt{sd2{oG5* zq1~2y5}}AE4Q!8P?y2Vh$!9Fhs`ogym*FU{xdoMeJKin^uU_(!ImU%`EL6L zw<1xJ-FF77bJY?j2ih|GWk>1ER? z+C-h&&cf$@rz5lsR^E8-)m+&Y7Pc>V2@pzYa*YXrmnhVe;s!I@{&%I#V*eVpkI}eV#Ct%Q_h@oifb&5dg8j8x3)Ka?#l6pxjw|zjD zJdl*ZO6ZjjAfc`f&S_e0f}8f}Z*e&9E8I*Xa{)`3{0{l{gY(L43T908A=A{LhkSWf zzRWctY1I4^(j6BAhBlMn5{>WILcTOm-|*pYJFk1h@c`?mf$C5VGKVAewH4@ugK(oV z5Gnzzw+hA)t`P1C;}g@$eq?0|wVpd%Eu9PYfUj&nPhLyu`6}3^nx4!V%lbkaej{Rb zJUmnW<>1wq2Z|I7KZ#gWlei0Hfgh-QYY?T#K#ck$GE=G;N4|1u)M75$akw{X)z5Im zOq}SR2%Ss?&*RWBUo8`5w&D~AZhsh=rsT*8=2(6}1BaQ~Z#h)yJH)<;>G_N$;s{{$ zFC}|cvwis&8~@~d-Dh!1BaOH2lflLZ2z8Dg(KvBAIa23{fii}?+oqKjdwCf3cnGVJ zes}bRc8gqaZ_zz`h*OAYaPJh3tjgib!9t6L_;rD{G($V$Yv!>NJL!Zr<~e3fXj;id z5!PQIHf{Fq#wV`4ZRDPz)Z!igI<3UU37)A&jcpJV*!%Gw-B)7&HqH}E`6H6#!}eou zi=rN7!`1)j!K?!+gn%9?qcf*~J}>FbkMhsnjEzLlmZ;1#Fmoi&n`9z@YLFN=sS*2` zz%ofiwnGzYKYZk*P5MiEFe>w}Qw{P+O~6b7rD|dh9kkF*f0w(`SK})jLP>>pvdt<> z*@gB3EFKzPER_tcNK1;)8GA>Y)3g$5&pJfcxX~*8vSQlQGa*`g9!07&udq!7daJk= zZpM||b$ldU#!}-CtL=|gu0&csiRm~xP=PgU`Bn|K&KL7_&+&x|-i>_LoV)PA)z@Ea#> zxkNfh;Ag|nmWX&xn!auB$2UJ*k2*TK1}4*1dm06!sf9rb9Gml{_64IZEg!Z9R(ZIW$JZmXJZ z2fOKeXk_^HQ}pH6JLL-yBBADIl-EHrK$Pe$B43rEQc~aX&z9F&!N`B6H3{#gxJ9^-5g>nONriRARYhd}y*b zk>*$672n%+Z3=M%3%{Z`3wGs_@1EhXeL~B4?j=7p0iP&p;s_Rfv^h-5VgpI+k!Js-SFNBKzRtm+c75crwRD)D74ZypU`9ZiJ=POY$MwNU0p)QsM zKC3({kZ@#1siU4#YFYm>Awo_+j0i5VKPjD=mdZyJ+=sN=hJLfwX`_#hQ$dSijNS z*Rj8mg#dVAl)D3eQ_dPe$@`qHnh9`7vWuWKPO8v+xTZfv2#gv1BZnXJu!wbJYc>+m3QIqU^wk^AJ8oGF=#Ez`^X^=Xl7NJo@mR8i78^yY#|yFKR^mFmmsUv=EvhEXUwJH9 zTLj;VM9O}fSFG0eG8b=nTq?w+jh6>Msj%Y~ z;f5XPZ!oL^e_)bmS|>@@qL&>a5h6Zu^s-bMmv4QJbFIoq=8FBuZKVh~GaL6G!WMPp zjAF@4H#iv=%PkHvQzAz`G(651S3RcbwVY#!jpuovVvaCiZZlP*%QM+njO6BhAoIwzYNQ_57Ev>uzfO`ojKF3|m*ElZZ3GcC*E zo`COzB0z>qnlRZa)<$&PdgZ(#hFuzpX8mg-Lju+RIZ1nZM^SUwhTe%xo;;9Y zu>Y~7^Vs}xq!#P5hSz^|!B_7bU1*F+y=S+1$Xs3FVow6fT>m$f6mIaGWj`~H1XDhI zg|0ng(9ioxewtq!v{h9&Dwkh8-O?#)c{zlfs2^xZ=3g5=Vr z6t;8p_5QHpF4ebe)4ya)AAD?N1-eNvOx}0z5+C$$IeAAn#+e_qkXKYRGNcspXp8qj_W3{c!NaX;LR4F1Zx?Q7``M z@l^=0AZJLENA*$qjN_rm>k0Vpv=N8lke|HA;r{2ha`8pJsW%5KcD zd=+$i)jiI<>j<*iw_TTNd3$@X@T;!%^>uhXrb>J8Z@c%#6|fRS$1!V~UCSYNV+${K zp%%%S!0m6ggY`8I!8Cv5sffg^{{r_vrqR6Geu)W@!5Pz#a{ZuUM-P>%-tsHt;?_%jrEe_mRK~9zYrYPRgqa$KY0*QTKyx zOYeMS1{6-0y0Oh+HwQEo9baxmINYyphiyhe$bhRqL9Y!!^w{;SF#0w3_ZHgZYKf5| zAi!eM(wEy9z13e261y2AdBXDfiD2cA(L0!}CF+O5GhrPJ{RMoey8S+F)MJ0Tq7dHs z$BXOUmfD{?Vz2~EO)iRE`7#bC4hf8wNNYJwR@cHbA@;XK;lA8+!Px4;sZ!C4isMSl zN+bH9&;!eusN4hG-p@H6vPi9@a>9Lc&Agt?D@88~ZM)7zJ3*iDNi5Wn>7* zZa#V{^B;x|3)bBSs#g;;q-(NW{)SB+749ZRyKdfweu#>0RS<6g!dQh$eJdWTpX*tK^t|QZ7;)1zT%jep*qg~kSZ}fkA9j{(NlY67FD;{FF z*=}Pod}04I`lN~HnMsC~sA=tuRrtW5UJ?XpPJ;{idHT0uha9TV0Cs5FT;ov47jG{E zz6W@%V><$n9v=arfOKqkGjAbe4CnlBAOn9ToIG2|UkG@*>&*6&R)>itxMOdq>f684 zeVKm`BfxGHNXExp$^d??^>)pc3TAG^N|*W6O1-bD%QATc2tNEUO}TORL2Q2F0FWby z+t>3G#6E2Qc(b7gw+CSt9SMY)nWuN?`!3XFQ=fguKST#vjAHj>{F;+p6~Q@z4uX-N z38PKL*Q0tW;(coV&6?cCh5)l%m@&s*y`lUJAme-nrZA+t4x3{`~kJb&xtO$TaY~&UMqjj?QBYdt0 zMeKC<+iaDkfbC+X&)6f1$g)XsS+edQlThW6X4Qqvsl)-maDGFpvqeGO9k--B593Kr ze{xt9d~t>yw6WcSz@b{{or4>e&flU^AaKu7d_lnmRKGc-zE=gAEBYRyA_6Rizq<$` zB&zdcb;RfkzK6shl8xUOhBwNRxn*jxm7Ow<0EP5OGt7Fc>>)9R?~E@6`MKAL01h5T zQYWCmdx*EwA-~L3dpY4vfGo~#@c*4afR9r7?{#+ykzY|j{kS0f4y!aiJc*!>6Fx|f gY#;{rY2j`70MmCdzWuX-MgZK@m35RpKS4(P4`eW3lK=n! diff --git a/content/applications/hr/payroll/payslips/payslips.png b/content/applications/hr/payroll/payslips/payslips.png deleted file mode 100644 index 25b9dc894df510ea89da82e745b00721cd4dd862..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13701 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 dD2TK|s2@?0kdQDWB}5gFkY0h2kX|6Yef8|| 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 jU;F>+ca9l2euV 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 literal 25631 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 V<&1BV9&?fZD9NeGR?55${C^ZCB1r%M diff --git a/content/applications/hr/payroll/payslips/worked-days-tab.png b/content/applications/hr/payroll/payslips/worked-days-tab.png index 7c5b463c298f92e92800f5a05274bc0d98528dac..be88835b165099943cd37a1f5230cd946355abb5 100644 GIT binary patch literal 18983 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 Date: Fri, 22 Aug 2025 10:02:13 +0000 Subject: [PATCH 06/52] [IMP] developer: new CLI commands and improvements Added the new `i18n` and `module` commands. Added the existing `deploy`, `obfuscate`, `upgrade_code` commands. Reviewed titles to make the commands stand out in the ToC. Removed the no longer present `tsconfig` command. task-4866527 closes odoo/documentation#14564 X-original-commit: 912b07fe2588fa11d7f3131db8762e0010d743bc Signed-off-by: Victor Feyens (vfe) --- content/developer/reference/cli.rst | 736 ++++++++++++++++-- .../tutorials/define_module_data.rst | 3 + 2 files changed, 666 insertions(+), 73 deletions(-) diff --git a/content/developer/reference/cli.rst b/content/developer/reference/cli.rst index 3fe68ce757..824eb29c78 100644 --- a/content/developer/reference/cli.rst +++ b/content/developer/reference/cli.rst @@ -34,16 +34,20 @@ environment `, :ref:`scaffold an Odoo module `_. -.. _reference/cmdline/help: +.. _reference/cmdline/extra: -Help & version -============== +Version +======= .. program:: odoo-bin .. option:: -h, --help - shows help text with all available options + it can be used in combination with any command available, and it displays + the options of the current command. + + If no command is used, it will act as per the `help` command + :ref:`below `. .. option:: --version @@ -53,17 +57,29 @@ Help & version .. code-block:: bash - echo "complete -W '`./odoo-bin --help | \ - sed -e 's/[^a-z_-]\(-\+[a-z0-9_-]\+\)/\n\1\n/' | \ - grep -- '^-' | sort | uniq | tr '\n' ' '`' odoo-bin" >> ~/.bash_completion + COMMANDS=$(odoo-bin --help | sed -e "s/^ \([^ ]\+\).*$/ \1/gp;d" | xargs) + echo "complete -W '$COMMANDS' odoo-bin" >> ~/.bash_completion + +.. _reference/cmdline/help: + +`help` - Show available commands +================================ + +.. program:: odoo-bin help + +This command shows all the available commands for Odoo. + +It has no options. .. _reference/cmdline/server: -Running the server -================== +`server` - Run the Server +========================= .. program:: odoo-bin +This command is the default one: you can omit it, and it will be chosen anyway. + .. option:: -d , --database database(s) used when installing or updating modules. @@ -74,8 +90,7 @@ Running the server .. option:: -i , --init - comma-separated list of modules to install before running the server - (requires :option:`-d`). + comma-separated list of modules to install before running the server (requires :option:`-d`). .. option:: -u , --update @@ -169,8 +184,8 @@ Running the server .. _reference/cmdline/testing: -Testing Configuration -===================== +Testing +------- .. option:: --test-enable @@ -371,39 +386,16 @@ Emails Internationalisation -------------------- -Use these options to translate Odoo to another language. See i18n section of -the user manual. Option '-d' is mandatory. Option '-l' is mandatory in case -of importation - .. option:: --load-language specifies the languages (separated by commas) for the translations you want to be loaded -.. option:: -l, --language - - specify the language of the translation file. Use it with --i18n-export - or --i18n-import - -.. option:: --i18n-export - - export all sentences to be translated to a CSV file, a PO file or a TGZ - archive and exit. - -.. option:: --i18n-import - - import a CSV or a PO file with translations and exit. The '-l' option is - required. - .. option:: --i18n-overwrite overwrites existing translation terms on updating a module or importing a CSV or a PO file. -.. option:: --modules - - specify modules to export. Use in combination with --i18n-export - .. _reference/cmdline/advanced: Advanced Options @@ -673,8 +665,6 @@ Some conversions don't match the pattern: ``log_handler``, use that directly in the configuration file * :option:`--smtp` is stored as ``smtp_server`` * :option:`--database` is stored as ``db_name`` -* :option:`--i18n-import` and :option:`--i18n-export` aren't available at all - from configuration files .. _reference/cmdline/config_file: @@ -706,13 +696,15 @@ Here is a sample file: https://werkzeug.palletsprojects.com/en/0.16.x/middleware/proxy_fix/#module-werkzeug.middleware.proxy_fix .. _pyinotify: https://github.com/seb-m/pyinotify/wiki + .. _reference/cmdline/shell: -Shell -===== +`shell` - Open a Shell +====================== The Odoo command line also allows launching Odoo as a Python console environment, enabling direct -interaction with the :ref:`orm ` and its functionalities. +interaction with the :ref:`orm ` and its functionalities. Since running a shell +involves starting the server, the configuration file options do apply. .. code-block:: console @@ -750,13 +742,432 @@ interaction with the :ref:`orm ` and its functionalities. Specify a preferred `REPL` to use in shell mode. This shell is started with the `env` variable already initialized to be able to access the `ORM` and other Odoo modules. + .. seealso:: :ref:`reference/orm/environment` -.. _reference/cmdline/scaffold: -Neutralize -========== +.. _reference/cmdline/db: + +`db` - Manage a Database +======================== + +.. program:: odoo-bin db + +This command lets you manage databases through a command-line interface. The operations are +specified using subcommands. + +For all subcommands, these options to configure your environment are available: + +- :option:`--addons-path ` +- :option:`--config ` +- :option:`--data-dir ` +- :option:`--db_user ` +- :option:`--db_password ` +- :option:`--db_host ` +- :option:`--db_port ` +- :option:`--db_sslmode ` +- :option:`--pg_path ` + + +.. _reference/cmdline/db/init: + +`db init` - Initialize a Database +--------------------------------- + +.. program:: odoo-bin db init + +This command creates a new database and installs the `base` module. You can specify the +language and country of the main company. + +.. code-block:: console + + $ odoo-bin db init + +.. option:: database + + Name of the database to be initialized. + +.. option:: --with-demo + + Install demo data in the initialized database. + +.. option:: --force + + Delete the database if it already exists, before initializing the new one. + +.. option:: --country + + Code of the country to be set on the main company + +.. option:: --language + + Default language for the instance, default `en_US` + +.. option:: --username + + Username for the new database, default `admin` + +.. option:: --password + + Password for the new database, default `admin` + + +.. _reference/cmdline/db/dump: + +`db dump` - Save a Database Dump +-------------------------------- + +.. program:: odoo-bin db dump + +Creates a dump file. + +.. code-block:: console + + $ odoo-bin db dump + +.. option:: database + + Name of the database to dump. + +.. option:: dump_path + + (Optional) Database is dumped to specified path. By default it is dumped + to `stdout`. + +.. option:: --format + + If provided, database is dumped used the specified format. + Supported formats are `zip` (default), `dump` (pg_dump format). + +.. option:: --no-filestore + + If provided, zip database is dumped without filestore + + +.. _reference/cmdline/db/load: + +`db load` - Load a Database Dump +-------------------------------- + +.. program:: odoo-bin db load + +Loads a dump file into an Odoo database, the dump file can be a URL. + +.. code-block:: console + + $ odoo-bin db load + +.. option:: database + + (Optional) Name of the database to create from the dump. + If not provided, the dump filename without extension is used. + +.. option:: dump_file + + `.zip` or `pg_dump` file to be loaded. + +.. option:: -f,--force + + Delete the database if it already exists, before loading the new one. + +.. option:: -n,--neutralize + + Neutralize the database after restoring it. + + +.. _reference/cmdline/db/duplicate: + +`db duplicate` - Duplicate a Database +------------------------------------- + +.. program:: odoo-bin db duplicate + +Duplicate a database including filestore. + +.. code-block:: console + + $ odoo-bin db duplicate + +.. option:: source + + Name of the source database. + +.. option:: target + + Name of the target database. + +.. option:: -n,--neutralize + + Neutralize the database, after restoring it. + +.. option:: -f,--force + + Delete the target database if it already exists, before initializing the new one. + + +.. _reference/cmdline/db/rename: + +`db rename` - Rename a Database +------------------------------- + +.. program:: odoo-bin db rename + +Rename a database from an old name to a new one. + +.. code-block:: console + + $ odoo-bin db rename + +.. option:: source + + Current name of the database. + +.. option:: target + + New name for the database. + +.. option:: -f,--force + + Delete the target database if it already exists, before renaming the source one. + + +.. _reference/cmdline/db/drop: + +`db drop` - Delete a Database +----------------------------- + +.. code-block:: console + + $ odoo-bin db drop + +.. program:: odoo-bin db drop + +.. option:: database + + Name of the database to drop. + + +.. _reference/cmdline/i18n: + +`i18n` - Internationalization +============================= + +.. program:: odoo-bin i18n + +This command has subcommands that enable you to import or export internationalization files +and setup languages on the Odoo instance. + +For all subcommands, these options to configure your environment are available: + +- :option:`--addons-path ` +- :option:`--config ` +- :option:`--database ` + +.. note:: + + Language codes must follow the XPG (POSIX) locale format. + + To list available codes, you can search them querying the database: + + .. code-block:: console + + $ psql -d -c "SELECT iso_code FROM res_lang ORDER BY iso_code" + + .. seealso:: + + `GNU libc Locale Names `_ + + .. example:: + + .. code-block:: console + + $ odoo-bin i18n loadlang -l en # English (U.S.) + $ odoo-bin i18n loadlang -l es es_AR # Spanish (Spain, Argentina) + $ odoo-bin i18n loadlang -l sr@latin # Serbian (Latin) + +.. _reference/cmdline/i18n/import: + +`i18n import` - Import i18n files +--------------------------------- + +.. program:: odoo-bin i18n import + +This command imports provided translation files in the `.po` or `.csv` formats. +By default, only new entries will be added, but you can choose to overwrite +existing terms. All the files must refer to the specified language. + +.. code-block:: console + + $ odoo-bin i18n import --overwrite --language + +.. option:: files + + | List of files to be imported. + | Allowed extensions: `.po`, `.csv`. + +.. option:: -l,--language + + (Required) Language code of the translations in the files. + +.. option:: -w,--overwrite + + Overwrite existing translation when importing. + + + .. _reference/cmdline/i18n/export: + +`i18n export` - Export i18n files +--------------------------------- + +.. program:: odoo-bin i18n export + +This command exports existing translation terms for modules in the Odoo database +to a range of formats: `.po`, `.pot`, `.tgz`, `.csv`. In case of `.po` and `.pot` +files, they will be created under the `i18n/` folder of the module they belong to. +If you specify an output parameter, only one language can be selected, and all +the output will refer to that language. +The `.tgz` output format makes all output be archived in a single file. + +.. code-block:: console + + $ odoo-bin i18n export --languages + +.. option:: modules + + List of modules you want to export the internationalization files from. + +.. option:: -l,--languages + + List of language codes you want to export, `pot` for template (default). + +.. option:: -o,--output + + | Path of an only output file with translations from all provided modules. + | Allowed extensions: `.po`, `.pot`, `.tgz`, `.csv` + | If `-` is provided, the content is written as a `.po` file to stdout. + + Only one language is allowed when this option is active. + + +.. _reference/cmdline/i18n/loadlang: + +`i18n loadlang` - Load language +------------------------------- + +.. program:: odoo-bin i18n loadlang + +This command loads one of the available languages into the Odoo database and activates it. + +.. code-block:: console + + $ odoo-bin i18n loadlang + +.. option:: languages + + language codes of the languages to be installed. + + +.. _reference/cmdline/module: + +`module` - Manage modules +========================= + +.. program:: odoo-bin module + +This command has subcommands that enable you to install, uninstall and upgrade modules +on the Odoo instance. There's also a command to force install the demo data into the +database. + +For all subcommands, these options are available: + +- :option:`--addons-path ` +- :option:`--config ` +- :option:`--database ` + + +.. _reference/cmdline/module/install: + +`module install` - Install modules +---------------------------------- + +.. program:: odoo-bin module install + +This command installs all selected modules straight away. + +Before installing modules, the Odoo database needs to be created and initialized +on your PostgreSQL instance, e.g. using the :ref:`reference/cmdline/db/init` command. + +.. code-block:: console + + $ odoo-bin module install + +.. option:: modules + + List of modules you want to install. + + +.. _reference/cmdline/module/uninstall: + +`module uninstall` - Uninstall modules +-------------------------------------- + +.. program:: odoo-bin module uninstall + +This command uninstalls all selected modules straight away. + +.. code-block:: console + + $ odoo-bin module uninstall + +.. option:: modules + + List of modules you want to uninstall. + + +.. _reference/cmdline/module/upgrade: + +`module upgrade` - Upgrade modules +---------------------------------- + +.. program:: odoo-bin module upgrade + +This command upgrades all selected modules straight away. + +.. code-block:: console + + $ odoo-bin module upgrade + +.. option:: modules + + List of modules you want to upgrade. + +.. option:: --outdated + + Only update modules that have a newer version on disk. + + +.. _reference/cmdline/module`u/forcedemo: + +`module forcedemo` - Force demo data install +-------------------------------------------- + +.. program:: odoo-bin module forcedemo + +This command forces the installation of :ref:`Demo Data ` + +.. warning:: + + Once installed, there is no way to undo it, so you might want to save a backup of the database + first with the command :ref:`db dump ` + +There are no additional options to this command. + + +.. _reference/cmdline/neutralize: + +`neutralize` - Neutralize a Database +==================================== .. program:: odoo-bin neutralize @@ -765,9 +1176,9 @@ database option. .. code-block:: console - $ odoo-bin --addons-path neutralize -d + $ odoo-bin --addons-path neutralize -d -.. option:: -d +.. option:: -d , --database Specify the database name that you would like to neutralize. @@ -779,8 +1190,10 @@ database option. .. seealso:: :doc:`../../administration/neutralized_database` -Scaffolding -=========== +.. _reference/cmdline/scaffold: + +`scaffold` - Scaffold a Module +============================== .. program:: odoo-bin scaffold @@ -815,8 +1228,8 @@ This will create module *my_module* in directory */addons/*. .. _reference/cmdline/populate: -Database population -=================== +`populate` - Populate a Database +================================ .. program:: odoo-bin populate @@ -833,32 +1246,35 @@ It also follows x2Many relationships. name of the database to populate -.. option:: --models +.. option:: --models list of models to populate. Models appearing twice will only be populated once. -.. option:: --factors +.. option:: --factors list of populate factors. In case a factor is missing for a model, the last factor in the list will be used. -.. option:: --sep +.. option:: --sep separator used to generate record names .. _reference/cmdline/cloc: -Cloc -==== +`cloc` - Count Lines of Code +============================ .. program:: odoo-bin cloc -Odoo Cloc is a tool to count the number of relevant lines written in +Odoo Cloc is a tool to count the number of relevant lines of code written in Python, Javascript, CSS, SCSS, or XML. This can be used as a rough metric for pricing maintenance of extra modules. -Command-line options --------------------- +.. code-block:: console + + $ odoo-bin cloc -c config.conf -d my_database + + .. option:: -d , --database | Process the code of all extra modules installed on the provided database, @@ -911,10 +1327,6 @@ Multiple paths can be provided by repeating the option. Specify a configuration file to use in place of the :option:`--addons-path` option. -.. code-block:: console - - $ odoo-bin cloc -c config.conf -d my_database - .. option:: -v, --verbose @@ -1003,20 +1415,198 @@ load. If the module works despite the presence of those files, they are probably not loaded and should therefore be removed from the module, or at least excluded in the manifest via ``cloc_exclude``. -TSConfig Generator -================== -.. program:: odoo-bin tsconfig +.. _reference/cmdline/obfuscate: + +`obfuscate` - Obfuscate database +================================ + +.. program:: odoo-bin obfuscate -When working on javascript, there are ways to help your editor providing you with -powerful auto-completion. One of those ways is the use of a tsconfig.json file. -Originally meant for typescript, editors can use its information with plain javascript also. -With this config file, you will now have full auto-completion across modules. +This command provides a quick and easy way to obfuscate some of the data in the +Odoo instance, mainly used for instructional purposes or to make quick videos for +the support team helping technicians avoid leaking sensitive information. -The command to generate this files takes as many unnamed arguments as you need. Those are relative paths -to your addon directories. In the example below, we move up one folder to save the tsconfig file in the folder -containing community and enterprise. +.. warning:: + + This command must be used carefully, as it is **not** considered a safe method + for full anonymizing data before transfer to a third party. Images, PDF + attachments, amounts, many other informations may not be obfuscated and cause + sensitive information leaks. A thorough review is required before sharing data + to ensure that no sensitive information is exposed. + +Obfuscation is symmetric, so content can be unobfuscated using the same password. + +All the configurations available for the :ref:`server ` +command are available here too. + +.. code-block:: console + + $ odoo-bin obfuscate --pwd= + +.. option:: --pwd + + (Required) the password that will be used to symmetrically obfuscate content. + +.. option:: --unobfuscate + + if you want to unobfuscate instead of obfuscate. + +.. option:: --fields + + comma-separated list of `table.column` entries to obfuscate/unobfuscate. + +.. option:: --file + + file containing the list of `table.column` entries to obfuscate/unobfuscate. + +.. option:: --exclude + + comma-separated list of `table.column` entries not to obfuscate/unobfuscate. + +.. option:: --allfields + + used only when :option:`--unobfuscate` is selected. + + Try to unobfuscate all fields. It's slower than specifying the fields manually. + +.. option:: --vacuum + + used only when :option:`--unobfuscate` is selected. + + After unobfuscation, completely clear the obfuscated tables and reclaim unused disk space. + +.. option:: --pertablecommit + + commit once per table, after obfuscation. + + It avoids big transactions that might get a timeout or face rollback after an error. + +.. option:: -y,--yes + + don't ask for manual confirmation. + + Only use if you're sure that you're not going to leak sensible information by sharing + the database to third party without a review. + + +.. _reference/cmdline/deploy: + +`deploy` - Deploy module remotely +================================= + +.. program:: odoo-bin deploy + +This command uploads a module to a remote Odoo server and installs it. +It's simpler than manually connecting to the remote server, and it does not require full access +to the machine that hosts the Odoo instance, only the Odoo administrative credentials. + +.. code-block:: console + + $ odoo-bin deploy --db --login --password + +.. note:: + + Prerequisites: + + - The server must have the module `base_import_module` installed. + - The user selected with the `--login` option must have administrative rights. + +.. option:: path + + path of the module to be deployed + +.. option:: url + + (Optional) url of the server where the module must be deployed + (default `http://localhost:8069`) + +.. option:: db + + database name (if the server does not use the `--db-filter` option) + +.. option:: --login + + name of the user with admin rights (default `admin`) + +.. option:: --password + + password of the user with admin rights (default `admin`) + +.. option:: --verify-ssl + + verify the server's SSL certificate, to ensure the target instance is legit. + +.. option:: --force + + re-initialize the module in case it's already installed. It will update + `noupdate="1"` records. + + +.. _reference/cmdline/upgrade_code: + +`upgrade_code` - Rewrite source code +==================================== + +.. program:: odoo-bin upgrade_code + +This command rewrites the entire source code using the scripts found in the +`odoo/upgrade_code` folder. It is used for doing the heavy-lifting when +dealing with big code migrations and forward ports. + +.. note:: + + All the scripts are doing a best-effort at migrating the source code, but + they are not silver bullets. + +It accepts the :option:`--addons-path ` option. .. code-block:: console - $ community/odoo-bin tsconfig --addons-path community/addons,community/odoo/addons,enterprise > tsconfig.json + $ odoo-bin upgrade_code --from 18.0 --to 19.0 --dry-run + +.. option:: --script + + run a single script + +.. option:: --from + + run all script starting from this version included + +.. option:: --to + + to be used with :option:`--from`. Run all scripts up to this version included. + Default is `odoo.release.version`. + +.. option:: --glob + + filter the files to be rewritten, default is every file (`\*\*/\*`) + +.. option:: --dry-run + + list the files that would be re-written, but do not apply changes + +Code upgrade scripts +-------------------- + +The scripts must be named `{version}-{name}.py`, and must expose an `upgrade` +function that takes a single `file_manager` argument and have no return. + +The `file_manager` argument is a sequence of `files`, which have 3 attributes +and some helper methods: + +- `path`: the `pathlib.Path` where the file is on the file system. +- `addon`: the addon the file belongs to. +- `content`: the re-writtable content of the file (lazy). +- `print_progress(current, total)`: outputs the current progress. + +.. example:: + + .. code-block:: python + + def upgrade(file_manager): + files = (file for file in file_manager if file.path.suffix == '.py') + for fileno, file in enumerate(files, start=1): + file.content = file.content.replace(..., ...) + file_manager.print_progress(fileno, len(files)) + diff --git a/content/developer/tutorials/define_module_data.rst b/content/developer/tutorials/define_module_data.rst index 656a658143..5df93e9517 100644 --- a/content/developer/tutorials/define_module_data.rst +++ b/content/developer/tutorials/define_module_data.rst @@ -25,6 +25,9 @@ On top of technical data, business data can be defined, e.g. countries, currenci as well as complete country localization (legal reports, tax definitions, chart of account), and much more... + +.. _tutorials/define_module_data/demo_data: + Demo Data --------- From dfeff11d9cd11378c54886d64916fd66c6459876 Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Wed, 10 Sep 2025 19:11:40 +0000 Subject: [PATCH 07/52] [IMP] Payroll: Updating contracts closes odoo/documentation#14563 X-original-commit: 89852e0c552bf704f5e336573893c83dd25529a3 Signed-off-by: Lara Martini (larm) --- content/applications/hr/employees.rst | 7 +- content/applications/hr/payroll/contracts.rst | 429 +++++++++--------- .../payroll/contracts/contracts-overview.png | Bin 37065 -> 43391 bytes .../hr/payroll/contracts/details-tab.png | Bin 0 -> 16281 bytes .../hr/payroll/contracts/required-fields.png | Bin 20747 -> 22033 bytes .../hr/payroll/contracts/salary-info.png | Bin 12227 -> 11668 bytes .../hr/payroll/contracts/send-contract.png | Bin 10222 -> 26097 bytes .../hr/payroll/contracts/signatories.png | Bin 0 -> 19983 bytes 8 files changed, 211 insertions(+), 225 deletions(-) create mode 100644 content/applications/hr/payroll/contracts/details-tab.png create mode 100644 content/applications/hr/payroll/contracts/signatories.png diff --git a/content/applications/hr/employees.rst b/content/applications/hr/employees.rst index 3f520bb782..3ebf52e47e 100644 --- a/content/applications/hr/employees.rst +++ b/content/applications/hr/employees.rst @@ -15,13 +15,18 @@ reporting. .. card:: New employees :target: employees/new_employee - Set up new employee records + Set up new employee records. .. card:: Departments :target: employees/departments Create and manage the departments employees are a part of. + .. card:: Contracts + :target: payroll/contracts + + Manage and create employee contracts. + .. card:: Certifications :target: employees/certifications diff --git a/content/applications/hr/payroll/contracts.rst b/content/applications/hr/payroll/contracts.rst index 20d1ec0195..1302f3d53c 100644 --- a/content/applications/hr/payroll/contracts.rst +++ b/content/applications/hr/payroll/contracts.rst @@ -4,52 +4,63 @@ Contracts Every employee in Odoo is required to have a running contract in order to be paid. A contract outlines the terms of an employee's position, their compensation, working hours, and any -other details about their position. +other relevant details pertaining to their compensation. .. important:: - Contract documents (PDFs) are uploaded and organized using the *Documents* application, and are - signed using the *Sign* application. Ensure these applications are installed to send and sign + Contract documents (PDFs) are uploaded and organized using the **Documents** application, and are + signed using the **Sign** application. Ensure these applications are installed to send and sign contracts. Please refer to the :doc:`../../productivity/documents` and - :doc:`../../productivity/sign` documentation. + :doc:`../../productivity/sign` documentation for more information. -To view the employee contracts, go to the :menuselection:`Payroll app --> Contracts --> Contracts` -from the top menu. All employee contracts, and their current contract status, are displayed in a -list view, by default. The list view displays running contracts, contracts that require action, -expired contracts, and cancelled contracts. +.. _payroll/contract-dashboard: + +Contracts dashboard +=================== + +Both the **Payroll** and **Employees** apps display *identical employee contract information*. + +To access the contracts dashboard from the **Employees** app, navigate to :menuselection:`Employees +app --> Employees --> Contracts`. To access the contracts dashboard from the **Payroll** app, +navigate to :menuselection:`Payroll app --> Contracts --> Contracts`. + +The :guilabel:`Contracts` dashboard displays all employee contracts in a default list view, grouped +by :guilabel:`Status`. The available status groupings are :guilabel:`New`, :guilabel:`Running`, +:guilabel:`Expired`, and :guilabel:`Cancelled`. Each grouping displays the number of contracts +within the grouping. .. image:: contracts/contracts-overview.png - :align: center :alt: Contracts dashboard view showing running contracts and contracts with issues. .. note:: - The list of contracts in the *Payroll* application matches the list of contracts in the - *Employees* application. + Any changes made to contracts in the **Employees** app is reflected in the **Payroll** app, and + vice versa. Contract information remains identical, regardless of where the contract information + is accessed. .. _payroll/new-contract: -In order for an employee to be paid, an active contract is required. If a new contract is needed, -click the :guilabel:`Create` button on the :guilabel:`Contracts` dashboard. A contract form appears -where the information can be entered. +Create a contract +================= -New contract form ------------------ +To create a new contract, click the :guilabel:`New` button on the :ref:`Contracts dashboard +`, and a blank contract form appears. .. _payroll/gen-info: General information section --------------------------- -- :guilabel:`Contact Reference`: type in the name or title for the contract, such as `John Smith +Enter the following information in the top-half of the blank contract form: + +- :guilabel:`Contact Reference`: Type in the name or title for the contract, such as `John Smith Contract`. This field is **required**. -- :guilabel:`Employee`: using the drop-down menu, select the employee that the contract applies to. -- :guilabel:`Contract Start Date`: the date the contract starts. To choose a date, click the - drop-down menu, navigate to the correct month and year with the :guilabel:`< > (arrow)` icons, - then click on the desired date. This field is **required**. -- :guilabel:`Contract End Date`: if the contract has a specific end date, click the drop-down menu, - navigate to the correct month and year with the :guilabel:`< > (arrow)` icons, then click on the - desired date. -- :guilabel:`Working Schedule`: select one of the working schedules from the drop-down menu. This - field is **required**. +- :guilabel:`Employee`: Using the drop-down menu, select the employee the contract is for. +- :guilabel:`Contract Start Date`: Required. Defaults to the current date. To choose a different + date, click into the field. In the popover calendar, select a different date. +- :guilabel:`Contract End Date`: Optional. Select a date from the calendar popover, or leave blank + for an indefinite contract. +- :guilabel:`Working Schedule`: Select one of the available working schedules the employee is + expected to work, from the drop-down menu. If this field is left blank, this allows the employee + to work as many or as few hours as desired every week, with no restrictions. .. tip:: The :guilabel:`Working Schedule` drop-down menu displays all the working schedules for the @@ -57,247 +68,217 @@ General information section Configuration --> Working Schedules`. Click :guilabel:`New`, and create a new working schedule, or click on an existing working schedule and make edits. -- :guilabel:`Work Entry Source`: select how the :doc:`work entries ` are generated. - This field is **required**. Click the radio button next to the desired selection. The options are: +- :guilabel:`Work Entry Source`: Using the drop-down menu, select how the :doc:`work entries + ` are generated. This field is **required**. Click the radio button next to the + desired selection. The options are: - - :guilabel:`Working Schedule`: work entries are generated based on the selected + - :guilabel:`Working Schedule`: Work entries are generated based on the selected :guilabel:`Working Schedule`. - - :guilabel:`Attendances`: work entries are generated based on the employee's check-in records in - the *Attendances* application. (This requires the *Attendances* application). - - :guilabel:`Planning`: work entries are generated based on the planned schedule for the employee - from the *Planning* application. (This requires the *Planning* application). + - :guilabel:`Attendances`: Work entries are generated based on the employee's check-in records in + the **Attendances** app. (This requires the **Attendances** app to be installed). + - :guilabel:`Planning`: Work entries are generated based on the planned schedule for the employee + from the **Planning** app. (This requires the **Planning** app to be installed). -- :guilabel:`Salary Structure Type`: select one of the salary structure types from the drop-down +- :guilabel:`Salary Structure Type`: Select one of the salary structure types from the drop-down menu. The default salary structure types are :guilabel:`Employee` or :guilabel:`Worker`. A :ref:`new salary structure type ` can be created, if needed. -- :guilabel:`Department`: select the department the contract applies to from the drop-down menu. -- :guilabel:`Job Position`: select the specific job position the contract applies to from the - drop-down menu. +- :guilabel:`Department`: Select the department the employee is working within, using the drop-down + menu. +- :guilabel:`Job Position`: Select the employee's specific job position using the drop-down menu. .. note:: If the selected :guilabel:`Job Position` has a contract template linked to it with a specific :guilabel:`Salary Structure Type`, the :guilabel:`Salary Structure Type` changes to the one associated with that :guilabel:`Job Position`. -- :guilabel:`Wage on Payroll`: enter the employee's monthly wage. -- :guilabel:`Contract Type`: choose either :guilabel:`Permanent`, :guilabel:`Temporary`, - :guilabel:`Seasonal`, :guilabel:`Full-Time`, or :guilabel:`Part-Time` from the drop-down menu. +- :guilabel:`Contract Type`: Using the drop-down menu, select the type of contract being created. + The default options are :guilabel:`Permanent`, :guilabel:`Temporary`, :guilabel:`Seasonal`, + :guilabel:`Full-Time`, :guilabel:`Intern`, :guilabel:`Student`, :guilabel:`Apprenticeship`, + :guilabel:`Thesis`, :guilabel:`Statutory`, and :guilabel:`Employee`. +- :guilabel:`Wage on Payroll`: Enter the employee's monthly wage in this field. -.. figure:: contracts/required-fields.png - :align: center - :alt: New contract form to be filled in when creating a new contract, with required fields - outlined in red. + .. tip:: + The :guilabel:`Working Schedule` drop-down menu displays all the working times for the selected + :guilabel:`Company`. To modify or add to this list, go to :menuselection:`Payroll app --> + Configuration --> Working Times`, and either :guilabel:`Create` a new working time, or click on + an existing working time, then edit it by clicking :guilabel:`Edit`. -.. tip:: - The :guilabel:`Working Schedule` drop-down menu displays all the working times for the selected - :guilabel:`Company`. To modify or add to this list, go to :menuselection:`Payroll app --> - Configuration --> Working Times`, and either :guilabel:`Create` a new working time, or click on - an existing working time, then edit it by clicking :guilabel:`Edit`. +- :guilabel:`HR Responsible`: Select the person who is responsible for validating the contract using + the drop-down menu. This field is required. + + .. note:: + The :guilabel:`HR Responsible` field only appears if the **Salary Configurator** + (`hr_contract_salary`) module and the **Sign** app are both installed. -- :guilabel:`Yearly Cost (Real)`: this field automatically updates after the :guilabel:`Schedule +.. figure:: contracts/required-fields.png + :alt: New contract form to be filled in when creating a new contract. + +Salary information tab +---------------------- + +The :guilabel:`Salary Information` tab is where the specific details of how much and how often the +employee is paid. Fill in the following fields in this tab: + +- :guilabel:`Wage Type`: Using the drop-down menu, select what kind of pay the employee receives. + The two default options are :guilabel:`Fixed Wage` or :guilabel:`Hourly Wage`. Select + :guilabel:`Fixed Wage` for salaried employees, and select :guilabel:`Hourly Wage` for employees + who are paid based on their logged worked hours. +- :guilabel:`Schedule Pay`: Using the drop-down menu, select how often the employee is paid. The + default options are :guilabel:`Annually`, :guilabel:`Semi-annually`, :guilabel:`Quarterly`, + :guilabel:`Bi-monthly`, :guilabel:`Monthly`, :guilabel:`Semi-monthly`, :guilabel:`Bi-weekly`, + :guilabel:`Weekly`, or :guilabel:`Daily`. +- :guilabel:`Wage`: Enter the amount the employee receives each pay period. The first field allows + for a wage to be entered, the second field displays how often the pay is issued to the employee. + The second field *cannot** be modified, and is updated when the :guilabel:`Schedule Pay` field + changes. +- :guilabel:`Yearly Cost (Real)`: This field automatically updates after the :guilabel:`Schedule Pay` and :guilabel:`Wage` fields are entered. This amount is the total yearly cost for the employer. This field can be modified. However, if this is modified, the :guilabel:`Wage` field updates, accordingly. Ensure both the :guilabel:`Wage` and :guilabel:`Yearly Cost (Real)` are correct if this field is modified. -- :guilabel:`Monthly Cost (Real)`: this field automatically updates after the :guilabel:`Schedule +- :guilabel:`Monthly Cost (Real)`: This field automatically updates after the :guilabel:`Schedule Pay` and :guilabel:`Wage` fields are entered. This amount is the total monthly cost for the employer. This field **cannot** be modified, and is calculated based on the :guilabel:`Yearly Cost (Real)`. - .. image:: contracts/salary-info.png - :align: center - :alt: Optional tabs for a new contract. +.. figure:: contracts/salary-info.png + :alt: The Salary Information tab filled out. -Contract Details tab --------------------- +Details tab +----------- -The :guilabel:`Contract Details` tab allows for the addition and editing of a contract, along with -specifying which template to use when a new contract is created. These fields **must** be populated -in order to create a new contract. +The :guilabel:`Details` tab of the contract houses the contract template information, accounting +information (refer to the :doc:`country-specific localization document ` for +more information), any part time work information, and notes. Fill out the following fields in this +tab: -.. important:: - To access the various contract template fields in the :guilabel:`Contract Details` tab, the - *Salary Configurator* (`hr_contract_salary`) module **must** be :ref:`installed - `. +- :guilabel:`Contract Template`: Using the drop-down menu, select a contract template to use when + making an offer to an applicant. - When the *Salary Configurator* module is installed, the *Salary Configurator - Holidays* and - *Salary Configurator - Payroll* modules install, as well. + .. note:: + Contract templates are typically created through the **Payroll** app configuration menu, and + stored in the **Documents** app. To view the contract templates, and to create new ones, + navigate to :menuselection:`Payroll app --> Configuration --> Templates`. - Once the modules are installed, the database reverts to the main dashboard. +- :guilabel:`Originated Offer`: This field automatically populates with the original offer sent to + the employee. This field is **not** modifiable, and is only populated if applicable. +- :guilabel:`Part Time`: Tick the checkbox if the contract is for part time work. Once enabled, a + percentage field appears next to the checkbox. The percentage **cannot** be modified, and + automatically updates based on the selected :guilabel:`Working Schedule` in the top-half of the + contract, compared to the typical working schedule for the company (typically 40 hours/week). -- :guilabel:`Contract Template`: select a pre-existing contract template from the drop-down menu. - Contract templates are typically created through the configuration menu, and stored in the - *Documents* application. -Sign section -~~~~~~~~~~~~ + - :guilabel:`Standard Calendar`: This field is automatically populated with the default working + schedule for the company. In most cases, this is :guilabel:`Standard 40 hours/week`. + - :guilabel:`Part Time Work Entry Type`: Using the drop-down menu, select the work entry type that + generates the balance of a full-time working schedule. -- :guilabel:`HR Responsible`: select the person who is responsible for validating the contract from - the drop-down menu. This field is required. -- :guilabel:`New Contract Document Template`: select a contract from the drop-down menu to be - modified for this new employee contract. These documents are stored in the *Sign* application. -- :guilabel:`Contract Update Document Template`: select a contract from the drop-down menu, if the - employee has an existing contract that requires updating. These documents are stored in the *Sign* - application. + .. example:: + An employee contract is being created for a part-time employee who works 20 hours a week. -.. important:: - The :guilabel:`HR Responsible`, :guilabel:`New Contract Document Template`, and - :guilabel:`Contract Update Document Template` fields are only visible if the *Sign* application - is installed, along with the `hr_contract_salary` and `hr_contract_salary_payroll` :doc:`modules - <../../general/apps_modules>`. The *Sign* application is where the contract templates are stored. - This application is required for an employee to sign any contract. - -Accounting section -~~~~~~~~~~~~~~~~~~ - -- :guilabel:`Analytic Account`: select the account the contract affects from the drop-down menu. It - is recommended to check with the accounting department to ensure the correct account is selected. - -Part Time section -~~~~~~~~~~~~~~~~~ - -- :guilabel:`Part Time`: tick this box if the employee is working part-time. When active, additional - fields appear: - - - :guilabel:`% (Percentage)`: enter the percent of time the employee works as compared to a - full-time employee. - - :guilabel:`Standard Calendar`: select the working hours that a typical full-time worker uses - from the drop-down menu. - - :guilabel:`Part Time Work Entry Type`: select the work entry type that generates the balance of - a full-time working schedule. - - .. example:: - If a full-time employee works 40 hours a week, and the employee works 20, enter `50` in the - :guilabel:`% (Percentage)` field (50% of 40 hours = 20 hours). The employee generates twenty - (20) hours of work entries under the work entry type `part-time`, and another twenty (20) - hours of work entries under the work entry type `generic time off`, for a total of forty (40) - hours worth of work entries. - -Notes section -~~~~~~~~~~~~~ - -- :guilabel:`Notes`: a text field where any notes for the employee contract are entered for future - reference. - -.. image:: contracts/contract-details.png - :align: center - :alt: Contract details in optional tabs for a new contract. - -Modify a contract template -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Click the :icon:`fa-external-link` :guilabel:`(external Link)` icon at the end of either the -:guilabel:`New Contract Document Template` or :guilabel:`Contract Update Document Template` to open -the corresponding contract template, and proceed to make any desired changes. - -Click the :guilabel:`Upload your file` button next to the corresponding document, navigate to the -file, then click :guilabel:`Open` to select the document and add it to the tab. - -Modifying document templates -============================ - -Contracts templates can be modified at any point when changes are needed. - -- :guilabel:`Tags`: select any tags associated with the contract. -- :guilabel:`Signed Document Workspace`: this is where the signatures are stored. Choose a - pre-configured workspace, or create a new one. To create a new :guilabel:`Signed Document - Workspace`, type in the name of the workspace, then click either :guilabel:`Create` to add the new - workspace, or :guilabel:`Create and Edit` to add the workspace and modify the workspace details. -- :guilabel:`Signed Document Tags`: select or create any tags that are only associated with the - signed contract, as opposed to the original unsigned contract. -- :guilabel:`Redirect Link`: enter a redirect link for the employee to access the contract. A - redirect link takes the user from one URL to another. In this case, it takes them to the - newly-updated contract specifically written for them. -- :guilabel:`Who can Sign`: select either :guilabel:`All Users` or :guilabel:`On Invitation`. - - - :guilabel:`All Users`: any user in the organization can sign the contract. - - :guilabel:`On Invitation`: only users selected in this field can sign the contract. - -- :guilabel:`Invited Users`: select the person (or people) that can sign the document. -- :guilabel:`Document`: the attached document can be replaced by clicking the :icon:`fa-pencil` - :guilabel:`(pencil)` icon. A pop-up window appears, so another document can be selected for - upload. The file **must** be a PDF. To remove the document, click the :icon:`fa-trash-o` - :guilabel:`(trash can)` icon. - -Once the edits are complete, click the :guilabel:`Save` button. All the information for the selected -contract template populates the fields in the :guilabel:`Salary Information` tab. Any additional -tabs, such as :guilabel:`Personal Documents`, appears if applicable. - -Personal documents ------------------- + To configure this, the employee's :guilabel:`Working Schedule` is set to :guilabel:`20 + Hours/Part time` in the :ref:`general information section `. In the + :guilabel:`Details` tab, the :guilabel:`Part Time` checkbox is ticked, and the percentage is + set to `50`. The :guilabel:`Standard Calendar` is set to :guilabel:`Standard 40 hours/week`, + and the :guilabel:`Part Time Work Entry Type` is set to :guilabel:`Unpaid`. -This tab **only** appears after an :guilabel:`Employee` is selected, and houses any documents that -are linked to the employee on their employee record. Documents cannot be added to this tab, this tab -**only** shows documents that are already uploaded and associated with the employee. + When a typical work week is processed in the **Payroll** app, the employee generates twenty + (20) hours of regular work entries under the work entry type `Attendance`, and another twenty + (20) hours of work entries under the work entry type `Unpaid`, for a total of forty (40) hours + worth of work entries. -The available documents in this tab can be downloaded. Click the :icon:`fa-download` -:guilabel:`(download)` icon next to the document to download it. +- :guilabel:`Notes`: Enter any relevant notes for the contract in this field. -Send the contract ------------------ +.. figure:: contracts/details-tab.png + :alt: The Details tab filled out. -Click on the following button to send the contract to the employee: +Signatories tab +--------------- -.. image:: contracts/send-contract.png - :align: center - :alt: Send the contract to the employee via one of the buttons. +The :guilabel:`Signatories` tab is where the default contract templates are selected, for both new +and updated contracts. -- :guilabel:`Generate Offer`: Clicking this opens a pop-up window that contains the basic - information from the contract, as well as a link for the contract when using the salary - configurator. Click :guilabel:`Send` to send an email to the employee, so they can sign - the contract. +Using the drop-down menu, select the default contract template to use when creating a new or updated +contract, in the respective fields. -At the bottom of the pop-up form is a :guilabel:`Link Expiration Date`. This is the timeframe that -the contract offer is valid for. By default, this field is pre-populated with `30 days`, but it can -be modified. +Once a PDF template is selected, any mapped signature fields in the file appear in a list, below the +selection, identifying who must sign the document. These fields **cannot** be updated. - .. note:: - In order to send a contract using the :guilabel:`Generate Simulation Link`, there **must** be a - signature field in the contract PDF being sent to the employee, so they can sign it. +Any changes to the template and signatories but be done in the **Sign** app, where contract +templates are uploaded, modified, and stored. + +.. important:: + The :guilabel:`PDF Template` fields are only visible if the **Sign** app is installed, along with + the :guilabel:`hr_contract_salary` and :guilabel:`hr_contract_salary_payroll` + :doc:`modules <../../general/apps_modules>`. + +.. figure:: contracts/signatories.png + :alt: The Signatories tab with the roles specified for signing. + +Personal documents tab +---------------------- -- :guilabel:`Signature Request`: clicking this reveals a pop-up window, where an email can be typed - to the employee. Select the document (such as a contract, NDA, or Homeworking Policy) from the - drop-down menu, and fill out the email section. Click :guilabel:`Send` when the email is ready to - be sent. +Occasionally, additional paperwork may be required when creating a contract, such as legal documents +declaring the employee is able to work in the country. When this situation occurs, Odoo allows for +one image file of the necessary document to be attached to a contract in the :guilabel:`Personal +Documents` tab. + +Click the :guilabel:`Upload your file` button, navigate to the desired document, and click +:guilabel:`Select` to attach the file to the contract. The file name appears on the +:guilabel:`Image` line. .. note:: - To send a contract using the :guilabel:`Generate Simulation Link`, there **must** be a signature - field in the contract PDF being sent to the employee, so they can sign it. + This tab **only** appears after an :guilabel:`Employee` is selected. Additionally, only image + files can be attached in this field at this time. Salary attachments ------------------ -Any automatic deductions or allocations for an employee, such as child support payments and wage -garnishments, are referred to as a *salary attachment*. This section is where all of these -deductions or allocations are set. - -To add a new deduction, first navigate to :menuselection:`Payroll app --> Contracts --> Salary -Attachments`. Next, click :guilabel:`Create`, and a new salary attachment form loads. - -.. image:: contracts/garnishment.png - :align: center - :alt: The salary attachment form with everything filled in for Ronnie Hart's child support. - -Fill out the following fields on the form: - -- :guilabel:`Employee`: using the drop-down menu, select the employee the salary attachment applies - to. -- :guilabel:`Description`: enter a short description for the salary attachment, such as `Child - Support` or `529 Contribution`. -- :guilabel:`Type`: using the drop-down menu, select the type of salary attachment being created. -- :guilabel:`Start Date`: the date the salary attachment starts. Choose a date by clicking on the - drop-down menu, navigating to the correct month and year by using the :icon:`fa-chevron-left` - :icon:`fa-chevron-right` :guilabel:`(arrow)` icons, then clicking on the desired date. This field - is **required**. -- :guilabel:`Estimated End Date`: this field automatically populates after both the - :guilabel:`Monthly Amount` and :guilabel:`Total Amount` fields are populated. This field is - **not** modifiable. -- :guilabel:`Document`: attach any documents relevant to the salary attachment. Click the - :guilabel:`Upload Your File` button, navigate to the desired document in the file explorer, then - click :guilabel:`Open` to select the document, and attach it to the form. To change the attached - document, click the :icon:`fa-pencil` :guilabel:`(pencil)` icon, and select a different document. - To remove a document, click the :icon:`fa-trash-o` :guilabel:`(trash can)` icon. -- :guilabel:`Monthly Amount`: enter the amount to be taken out of the employee's paycheck every - month for this specific salary attachment. -- :guilabel:`Total Amount`: enter the total amount that the employee pays for the salary attachment - to be completed. +After an employee is selected for the contract, a :icon:`fa-book` :guilabel:`Salary Attachments` +smart button appears at the top of the page. + +For new employees who do not currently have a contract, the smart button displays :guilabel:`New`. +If the contract is being updated for a current employee who already has salary attachments +configured, the smart button displays the number of salary attachments currently running. + +:doc:`Create or update any necessary salary attachments ` for the contract, +before sending. + +Send a contract +=============== + +After a contract has been created and configured, the next step is to send it to the employee or +applicant. Click the :guilabel:`Generate Offer` button, and the :guilabel:`Offer for (Employee)` +form loads. + +The :guilabel:`Offer for (Employee)` form displays all the basic information from the contract, as +well as a link the employee can use to sign the contract. The last field on the form is a +:guilabel:`Validity Days Count` field. This indicates how long the offer is valid. Enter the desired +number of days in the field. The default is `30` days. + +Click :guilabel:`Send By Email` and a pop-up email window loads, using a preconfigured default email +template. Click :guilabel:`Send` to send the offer. + +.. Important:: + In order to send a contract using the :guilabel:`Generate Offer` button, there **must** be an + employee signature field on the contract PDF being sent. + +.. image:: contracts/send-contract.png + :alt: Send the contract to the employee via one of the buttons. + +Contract status +=============== + +When creating and sending out a contract, the default status of the contract is :guilabel:`New`. + +Once there is a minimum of one completed signature on the document, the status changes to +:guilabel:`Partially Signed`. Internal users, such as HR and recruitment employees, are alerted in +the database when there is a signature requested of them. + +After all required parties have signed the contract, the status changes to :guilabel:`Fully Signed`. + +All status changes happen automatically as the document is signed. + +.. seealso:: + - :doc:`../../productivity/documents` + - :doc:`../../productivity/sign` diff --git a/content/applications/hr/payroll/contracts/contracts-overview.png b/content/applications/hr/payroll/contracts/contracts-overview.png index eaad0fcb6483c90ba71da16196ed68d0015b7aff..b05a877610aa5abe5f4fff3f77fa21d1e3d53b0e 100644 GIT binary patch literal 43391 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