Compare commits
54 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 217705119e | |||
| 9feca1b4e4 | |||
| d42810f05d | |||
| d77c24d556 | |||
| 6366c20ffa | |||
| 43426fa893 | |||
| 3c9ea881a9 | |||
| 928e3bb43e | |||
| 57212a6798 | |||
| cd32574f88 | |||
| f6994a1047 | |||
| 55d3d59a64 | |||
| 6c74ac42f9 | |||
| 96f3a3e846 | |||
| 148549b3d0 | |||
| 3b1f9f6df2 | |||
| 83db1bdd8d | |||
| 2341f42d4a | |||
| fe3281523c | |||
| 011ef11978 | |||
| 184dd5f93f | |||
| 5f566009c7 | |||
| 4983adb63f | |||
| a99c1cd7e1 | |||
| 90fe2b31b1 | |||
| 69b145716c | |||
| 4d21807379 | |||
| 15c6bb8b0e | |||
| 9a0e87e861 | |||
| 0745c3f180 | |||
| f1d8cb8f16 | |||
| aef490c600 | |||
| ab659db849 | |||
| f46dda5e61 | |||
| f1bd4ec134 | |||
| 05cd6af1ed | |||
| cb644b0834 | |||
| 6bfa0802c7 | |||
| e59188d85b | |||
| fb2f1d5f8b | |||
| ed15f46531 | |||
| da6d3e6740 | |||
| fade821930 | |||
| b94d534bae | |||
| 714b75ce3b | |||
| 59ba096ee2 | |||
| 4e929b4ebc | |||
| 905914c939 | |||
| 801a165df4 | |||
| 693a48f150 | |||
| 5c781afe88 | |||
| eca1b7ffd3 | |||
| de7fd89137 | |||
| 9fb69e4eaf |
@@ -21,7 +21,7 @@ turned into a testing environment.
|
||||
Deactivated features
|
||||
====================
|
||||
|
||||
Here is a non-exhaustive list of the deactivated parameters:
|
||||
Here is a non-exhaustive list of the deactivated features:
|
||||
|
||||
- all planned actions (e.g., automatic invoicing of subscriptions, mass mailing, etc.)
|
||||
- outgoing emails
|
||||
@@ -29,6 +29,7 @@ Here is a non-exhaustive list of the deactivated parameters:
|
||||
- payment providers
|
||||
- delivery methods
|
||||
- :abbr:`IAP (In-App Purchase)` tokens
|
||||
- website visibility (prevent search engines from indexing your site)
|
||||
|
||||
.. note::
|
||||
**A red banner at the top of the screen is displayed on the neutralized database so that it can
|
||||
|
||||
@@ -277,18 +277,22 @@ Dependencies
|
||||
|
||||
.. tab:: Debian/Ubuntu
|
||||
|
||||
For Debian-based systems, the packages are listed in the `debian/control
|
||||
<{GITHUB_PATH}/debian/control>`_ file of the Odoo sources.
|
||||
|
||||
On Debian/Ubuntu, the following commands should install the required packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y
|
||||
$ cd odoo #CommunityPath
|
||||
$ sudo ./setup/debinstall.sh
|
||||
|
||||
The `setup/debinstall.sh` script will parse the `debian/control
|
||||
<{GITHUB_PATH}/debian/control>`_ file and install the found packages.
|
||||
|
||||
.. tab:: Install with pip
|
||||
|
||||
.. warning::
|
||||
Using pip may lead to security issues and broken dependencies; only do this if you
|
||||
know what you are doing.
|
||||
|
||||
As some of the Python packages need a compilation step, they require system libraries to
|
||||
be installed.
|
||||
|
||||
|
||||
@@ -7,5 +7,6 @@ Odoo essentials
|
||||
essentials/activities
|
||||
essentials/reporting
|
||||
essentials/search
|
||||
essentials/contacts
|
||||
essentials/export_import_data
|
||||
essentials/in_app_purchase
|
||||
|
||||
@@ -2,20 +2,22 @@
|
||||
Activities
|
||||
==========
|
||||
|
||||
.. |clock| replace:: :icon:`fa-clock-o` :guilabel:`(clock)` icon
|
||||
|
||||
*Activities* are follow-up tasks tied to a record in an Odoo database.
|
||||
|
||||
.. _activities/important:
|
||||
|
||||
The icon used to display activities varies depending on the :ref:`activity type <activities/types>`:
|
||||
The icon used to display activities varies, depending on the :ref:`activity type
|
||||
<activities/types>`:
|
||||
|
||||
- :guilabel:`🕘 (clock)`: the default icon, which appears if nothing is scheduled.
|
||||
- :guilabel:`📞 (phone)`: this icon appears if a phone call is scheduled.
|
||||
- :guilabel:`✉️ (envelope)`: this icon appears if an email is scheduled.
|
||||
- :guilabel:`✔️ (checkmark)`: this icon appears if a to-do is scheduled.
|
||||
- :guilabel:`(group of people)`: this icon appears if a meeting is scheduled.
|
||||
- :guilabel:`(arrow pointing up above a line)`: this icon appears if a document is scheduled to be
|
||||
uploaded.
|
||||
- :guilabel:`(pencil in a box)`: this icon appears if a signature request is scheduled.
|
||||
- :icon:`fa-clock-o` :guilabel:`(clock)` icon: the default activities icon.
|
||||
- :icon:`fa-phone` :guilabel:`(phone)` icon: a phone call is scheduled.
|
||||
- :icon:`fa-envelope` :guilabel:`(envelope)` icon: an email is scheduled.
|
||||
- :icon:`fa-check` :guilabel:`(check)` icon: a "to-do" is scheduled.
|
||||
- :icon:`fa-users` :guilabel:`(people)` icon: a meeting is scheduled.
|
||||
- :icon:`fa-upload` :guilabel:`(upload)` icon: a document is scheduled to be uploaded.
|
||||
- :icon:`fa-pencil-square-o` :guilabel:`(request signature)` icon: a signature request is scheduled.
|
||||
|
||||
Schedule activities
|
||||
===================
|
||||
@@ -44,13 +46,9 @@ Schedule Activity form <activities/form>`.
|
||||
Kanban view
|
||||
-----------
|
||||
|
||||
Another way that activities are created is from the Kanban view in an application.
|
||||
Activities can also be created from the :icon:`oi-view-kanban` :guilabel:`(Kanban)` view.
|
||||
|
||||
.. image:: activities/kanban.png
|
||||
:align: center
|
||||
:alt: The Kanban icon in the top menu, highlighted.
|
||||
|
||||
To do so, click on the :guilabel:`🕘 (clock)` icon located at the bottom of an individual record.
|
||||
To do so, click on the |clock| located at the bottom of an individual record.
|
||||
|
||||
Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Schedule Activity form
|
||||
<activities/form>`.
|
||||
@@ -60,28 +58,26 @@ Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Sch
|
||||
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. note::
|
||||
If a record already has a scheduled activity, the :guilabel:`🕘 (clock)` icon is replaced by the
|
||||
icon that represents the existing scheduled activity. Click on the activity type's icon to
|
||||
schedule another activity.
|
||||
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.
|
||||
|
||||
.. _activities/list:
|
||||
|
||||
List view
|
||||
---------
|
||||
|
||||
Activities can also be created from a list view.
|
||||
Activities can also be created from a :icon:`oi-view-list` :guilabel:`(list)` view.
|
||||
|
||||
If the :guilabel:`Activities` column is hidden, reveal it using the :guilabel:`(additional options
|
||||
toggle)` icon in the far-right of the top row, represented by two horizontal lines with two dots.
|
||||
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.
|
||||
|
||||
Then, click on the :guilabel:`🕘 (clock)` icon for the record the activity is being added to, then
|
||||
click :guilabel:`+ Schedule an activity`. Proceed to :ref:`fill out the Schedule Activity form
|
||||
<activities/form>` that appears.
|
||||
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 <activities/form>` that
|
||||
appears.
|
||||
|
||||
.. note::
|
||||
If a record already has a scheduled activity, the :guilabel:`🕘 (clock)` icon is replaced by the
|
||||
icon that represents the existing scheduled activity. Click on the activity type's icon to
|
||||
schedule another activity.
|
||||
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.
|
||||
|
||||
.. image:: activities/schedule-list-activity.png
|
||||
:align: center
|
||||
@@ -92,10 +88,10 @@ click :guilabel:`+ Schedule an activity`. Proceed to :ref:`fill out the Schedule
|
||||
Activity view
|
||||
-------------
|
||||
|
||||
Most applications in Odoo have an *Activity* view available. If available, a :guilabel:`🕘 (clock)`
|
||||
activity icon is visible in the top-right of the main menu bar.
|
||||
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.
|
||||
|
||||
To open the activity view, click the :guilabel:`🕘 (clock)` activity icon.
|
||||
To open the activity view, click the |clock|.
|
||||
|
||||
.. image:: activities/activities.png
|
||||
:align: center
|
||||
@@ -114,12 +110,12 @@ If multiple activity types are scheduled for a record, a number appears in the b
|
||||
total number of scheduled activities.
|
||||
|
||||
.. note::
|
||||
Activity colors, and their relation to an activity's due date, is consistent throughout Odoo,
|
||||
Activity colors, and their relation to an activity's due date, are consistent throughout Odoo,
|
||||
regardless of the activity type, or the view.
|
||||
|
||||
To schedule an activity for a record, hover over the corresponding field, and a :guilabel:`➕ (plus
|
||||
sign)` appears. Click the :guilabel:`➕ (plus sign)`, and then :ref:`fill out the Schedule Activity
|
||||
form <activities/form>`.
|
||||
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
|
||||
<activities/form>`.
|
||||
|
||||
.. image:: activities/activity-view.png
|
||||
:align: center
|
||||
@@ -140,12 +136,6 @@ Enter the following information on the form:
|
||||
- :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.
|
||||
|
||||
.. note::
|
||||
Individual applications have a list of dedicated :ref:`activity types <activities/types>`. For
|
||||
example, installing the *Sales* application makes :guilabel:`Order Upsell` available, while
|
||||
installing the *Sign* application makes :guilabel:`Request Signature` available.
|
||||
|
||||
- :guilabel:`Summary`: enter a short title for the activity, such as `Discuss Proposal`.
|
||||
- :guilabel:`Due Date`: using the calendar popover, select the activity's deadline.
|
||||
- :guilabel:`Assigned to`: by default, the current user populates this field. To assign a different
|
||||
@@ -187,11 +177,11 @@ buttons:
|
||||
All scheduled activities
|
||||
========================
|
||||
|
||||
To view a consolidated list of activities, organized by application, click the :guilabel:`🕘
|
||||
(clock)` icon in the header menu, located in the top-right.
|
||||
To view a consolidated list of activities, organized by application, click the |clock| in the header
|
||||
menu, located in the top-right corner.
|
||||
|
||||
If any activities are scheduled, the number of activities appear in a red bubble on the
|
||||
:guilabel:`🕘 (clock)` icon.
|
||||
|clock|.
|
||||
|
||||
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
|
||||
@@ -252,6 +242,11 @@ To view the currently configured types of activities in the database, navigate t
|
||||
|
||||
Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found.
|
||||
|
||||
.. tip::
|
||||
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`.
|
||||
|
||||
.. image:: activities/activity-list.png
|
||||
:align: center
|
||||
:alt: The list of activity types already configured and available.
|
||||
@@ -264,7 +259,7 @@ activity type form loads.
|
||||
|
||||
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
|
||||
:guilabel:`(cloud upload)` icon, located in the top-left corner of the page.
|
||||
:icon:`fa-cloud-upload` :guilabel:`(cloud upload)` icon, located in the top-left corner of the page.
|
||||
|
||||
Create new activity types
|
||||
-------------------------
|
||||
@@ -347,3 +342,4 @@ It is possible to have another activity either suggested or triggered. To do so,
|
||||
.. seealso::
|
||||
- :doc:`../productivity/discuss`
|
||||
- :doc:`../productivity/discuss/team_communication`
|
||||
- :doc:`../sales/crm/optimize/utilize_activities`
|
||||
|
||||
|
Before Width: | Height: | Size: 5.5 KiB |
@@ -0,0 +1,238 @@
|
||||
========
|
||||
Contacts
|
||||
========
|
||||
|
||||
The *Contacts* application comes installed on all Odoo databases. Contacts are created for customers
|
||||
the company does business with through Odoo. A contact is a repository of vital business
|
||||
information, facilitating communication and business transactions.
|
||||
|
||||
Contact form
|
||||
============
|
||||
|
||||
To create a new contact, navigate to the :menuselection:`Contacts app`, and click
|
||||
:guilabel:`Create`. A new form appears where various contact information can be added.
|
||||
|
||||
Contact type
|
||||
------------
|
||||
|
||||
Odoo allows for both :guilabel:`Individual` and :guilabel:`Company` contacts. Select either
|
||||
:guilabel:`Individual` or :guilabel:`Company`, depending on the type of contact that is being added.
|
||||
|
||||
Name
|
||||
----
|
||||
|
||||
First, fill in the name of the :guilabel:`Individual` or :guilabel:`Company`. This is how the name
|
||||
appears throughout the database. This field is **mandatory**.
|
||||
|
||||
.. tip::
|
||||
:guilabel:`Individual` contacts can have a :guilabel:`Company` contact linked to it. After
|
||||
selecting :guilabel:`Individual`, a new :guilabel:`Company Name...` field appears below the
|
||||
first name field.
|
||||
|
||||
Address
|
||||
-------
|
||||
|
||||
Next, enter the :guilabel:`Address` of the :guilabel:`Company` or :guilabel:`Individual`.
|
||||
|
||||
.. tip::
|
||||
If the :guilabel:`Individual` option is chosen, then the *type of address* can be chosen from a
|
||||
drop-down menu. Options for this drop-down menu include: :guilabel:`Contact`, :guilabel:`Invoice
|
||||
Address`, :guilabel:`Delivery Address`, :guilabel:`Other Address`, and :guilabel:`Private
|
||||
Address`.
|
||||
|
||||
Additional fields
|
||||
-----------------
|
||||
|
||||
Additional details are included on the initial form. The following fields are available:
|
||||
|
||||
- :guilabel:`VAT`: Value Added Tax number.
|
||||
- :guilabel:`Citizen Identification`: citizen or government identification number (only available
|
||||
on :guilabel:`Individual`).
|
||||
- :guilabel:`Job Position`: list the job position of the :guilabel:`Individual` (only available on
|
||||
:guilabel:`Individual`).
|
||||
- :guilabel:`Phone`: list phone number (with country code). Make a call, send an SMS, or WhatsApp
|
||||
message by hovering over the field on the saved form, and clicking the desired option.
|
||||
- :guilabel:`Mobile`: list mobile phone number (with country code). Make a call, send an SMS, or
|
||||
WhatsApp message by hovering over the field on the saved form, and clicking on the desired option.
|
||||
- :guilabel:`Email`: enter the email address with the domain.
|
||||
- :guilabel:`Website`: enter the full website address, starting with `http` or `https`.
|
||||
- :guilabel:`Title`: select :guilabel:`Doctor`, :guilabel:`Madam`, :guilabel:`Miss`,
|
||||
:guilabel:`Mister`, :guilabel:`Professor`, or create a new one directly from this field.
|
||||
- :guilabel:`Tags`: enter preconfigured tags by typing them in the field, or clicking the drop-down
|
||||
menu, and selecting one. To create a new one, type the new tag in the field, and click
|
||||
:guilabel:`Create` from the resulting drop-down menu.
|
||||
|
||||
Contacts & Addresses tab
|
||||
------------------------
|
||||
|
||||
At the bottom of the contact form are several tabs. On the :guilabel:`Contacts & Addresses` tab,
|
||||
contacts can be added that are associated with a :guilabel:`Company` and related addresses. For
|
||||
example, a specific contact person for the company can be listed here.
|
||||
|
||||
Multiple addresses can be added on both :guilabel:`Individual` and :guilabel:`Company` contacts. To
|
||||
do so, click :guilabel:`Add` in the :guilabel:`Contacts & Addresses` tab. Doing so reveals a
|
||||
:guilabel:`Create Contact` pop-up form, in which additional addresses can be configured.
|
||||
|
||||
.. image:: contacts/contact-form-add-address.png
|
||||
:align: center
|
||||
:alt: Add a contact/address to the contact form.
|
||||
|
||||
On the :guilabel:`Create Contact` pop-up form, start by clicking the default :guilabel:`Other
|
||||
Address` field at the top to reveal a drop-down menu of address-related options.
|
||||
|
||||
Select any of the following options:
|
||||
|
||||
- :guilabel:`Contact`: adds another contact to the existing contact form.
|
||||
- :guilabel:`Invoice Address`: adds a specific invoice address to the existing contact form.
|
||||
- :guilabel:`Delivery Address`: adds a specific delivery address to the existing contact form.
|
||||
- :guilabel:`Other Address`: adds an alternate address to the existing contact form.
|
||||
- :guilabel:`Private Address`: adds a private address to the existing contact form.
|
||||
|
||||
.. image:: contacts/create-contact-window.png
|
||||
:align: center
|
||||
:alt: Create a new contact/address on a contact form.
|
||||
|
||||
Once an option is selected, enter the corresponding contact information that should be used for the
|
||||
specified address type.
|
||||
|
||||
Add the :guilabel:`Contact Name`, :guilabel:`Address`, :guilabel:`Email`, along with the
|
||||
:guilabel:`Phone` and/or :guilabel:`Mobile` numbers below.
|
||||
|
||||
Set the :guilabel:`Job Position`, which appears if the :guilabel:`Contact` address type has been
|
||||
selected. This is similar to the :guilabel:`Individual` contact.
|
||||
|
||||
To add a note, click on the text field next to :guilabel:`Notes`, and write anything that is
|
||||
applicable to the customer or contact.
|
||||
|
||||
Then, click :guilabel:`Save & Close` to save the address, and close the :guilabel:`Create Contact`
|
||||
window. Or, click :guilabel:`Save & New` to save the address, and immediately input another one.
|
||||
|
||||
Sales & Purchase tab
|
||||
--------------------
|
||||
|
||||
Next, is the :guilabel:`Sales & Purchases` tab, which only appears when the *Sales*, *Purchase*,
|
||||
**or** *Point of Sale* applications are installed.
|
||||
|
||||
The :guilabel:`Fiscal Position` can be set on the :guilabel:`Sales & Purchases` tab. Select a
|
||||
:guilabel:`Fiscal Position` from the drop-down menu.
|
||||
|
||||
Sales section
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Sales` heading, a specific :guilabel:`Salesperson` can be assigned to a
|
||||
contact. To do that, click the :guilabel:`Salesperson` drop-down field, and select one. Create a new
|
||||
:guilabel:`Salesperson` by typing the user's name, and making the appropriate selection.
|
||||
|
||||
Certain :guilabel:`Payment Terms`, or a certain :guilabel:`Pricelist`, can also be set, if needed.
|
||||
Click the drop-down menu next to :guilabel:`Payment Terms`, and change it to one of the preselected
|
||||
:guilabel:`Payment Terms`, or :guilabel:`Create` a new one. Select the :guilabel:`Pricelist`
|
||||
drop-down menu to choose the appropriate :guilabel:`Pricelist`.
|
||||
|
||||
Click into the :guilabel:`Delivery Method` field to select an option from the drop-down menu.
|
||||
|
||||
Point Of Sale section
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Point Of Sale` heading, enter a :guilabel:`Barcode` that can be used to
|
||||
identify the contact. Use the :guilabel:`Loyalty Points` field to track points the user won as part
|
||||
of a *Loyalty Program*.
|
||||
|
||||
Purchase section
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Specify :guilabel:`Payment Terms`, :guilabel:`1099 Box` information, and a preferred
|
||||
:guilabel:`Payment Method` here. A :guilabel:`Receipt Reminder` can be set here, as well.
|
||||
|
||||
Misc section
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Misc.` heading, use :guilabel:`Reference` field to add any additional
|
||||
information for this contact. If this contact should only be accessible for one company in a
|
||||
multi-company database, select it from the :guilabel:`Company` field drop-down list. Use the
|
||||
:guilabel:`Website` drop-down menu to restrict the publishing of this contact to one website (if
|
||||
working on a database with multiple websites). Select one or more :guilabel:`Website Tags` to assist
|
||||
in filtering published customers on the `/customers` website page. Select an :guilabel:`Industry`
|
||||
for this contact from the drop-down menu. Use the :guilabel:`SLA Policies` field to assign a
|
||||
*Helpdesk* SLA policy to this contact.
|
||||
|
||||
Accounting tab
|
||||
--------------
|
||||
|
||||
The :guilabel:`Accounting` tab appears when the *Accounting* application is installed. Here, a user
|
||||
can add any related :guilabel:`Bank Accounts`, or set default :guilabel:`Accounting entries`.
|
||||
|
||||
Under the :guilabel:`Miscellaneous` heading, use the :guilabel:`LEI` field to enter a Legal Entity
|
||||
Identifier, if necessary.
|
||||
|
||||
Internal Notes tab
|
||||
------------------
|
||||
|
||||
Following the :guilabel:`Accounting` tab is the :guilabel:`Internal Notes` tab, where notes can be
|
||||
left on this contact form, just like on the contact form noted above.
|
||||
|
||||
Partner Assignment tab
|
||||
----------------------
|
||||
|
||||
Next is the :guilabel:`Partner Assignment` tab, which by default, includes a :guilabel:`Geolocation`
|
||||
section, and other partner options, including :guilabel:`Partner Activation` and :guilabel:`Partner
|
||||
Review` configurations. These are **only** present when the *Enterprise Resellers* module is
|
||||
installed.
|
||||
|
||||
Membership tab
|
||||
--------------
|
||||
|
||||
Finally, there is the :guilabel:`Membership` tab, 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* applications is installed.
|
||||
|
||||
Smart buttons
|
||||
=============
|
||||
|
||||
At the top of the contact form, there are some additional options available, known as *smart
|
||||
buttons*.
|
||||
|
||||
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.
|
||||
|
||||
.. example::
|
||||
For example, there is an :guilabel:`Opportunities` smart button, where all the opportunities
|
||||
related to this customer from the *CRM* app are accessible.
|
||||
|
||||
.. tip::
|
||||
If the corresponding applications are installed, their related smart buttons appear
|
||||
automatically on a contact form.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
Archive contacts
|
||||
----------------
|
||||
|
||||
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`.
|
||||
|
||||
Then, click :guilabel:`OK` from the resulting :guilabel:`Confirmation` pop-up window.
|
||||
|
||||
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.
|
||||
|
||||
.. tip::
|
||||
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.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Add different addresses in CRM <../sales/sales/send_quotations/different_addresses>`
|
||||
- `Odoo's eLearning Contacts tutorial
|
||||
<https://www.odoo.com/slides/slide/contacts-2527?fullscreen=1>`_
|
||||
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -76,6 +76,8 @@ expense either when the transaction occurs (accrual basis) or when the payment i
|
||||
.. seealso::
|
||||
:doc:`Cash basis <accounting/taxes/cash_basis>`
|
||||
|
||||
.. _accounting/multi-company:
|
||||
|
||||
Multi-company
|
||||
=============
|
||||
|
||||
|
||||
@@ -15,6 +15,8 @@ When browsing your chart of accounts, you can sort the accounts by :guilabel:`Co
|
||||
.. image:: chart_of_accounts/chart-of-accounts-sort.png
|
||||
:alt: Group the accounts by type in Odoo Accounting
|
||||
|
||||
.. _chart-of-account/create:
|
||||
|
||||
Configuration of an account
|
||||
===========================
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@ for use at a later date:
|
||||
- `Odoo Tutorials: Bank Configuration
|
||||
<https://www.odoo.com/slides/slide/bank-configuration-1880>`_
|
||||
|
||||
.. _payments/register:
|
||||
|
||||
Registering payment from an invoice or bill
|
||||
===========================================
|
||||
|
||||
|
||||
@@ -40,6 +40,8 @@ of your organisation as at a particular date.
|
||||
|
||||
.. image:: reporting/main_reports09.png
|
||||
|
||||
.. _accounting/reporting/balance-sheet:
|
||||
|
||||
Profit and Loss
|
||||
---------------
|
||||
|
||||
@@ -49,6 +51,8 @@ report period.
|
||||
|
||||
.. image:: reporting/main_reports10.png
|
||||
|
||||
.. _accounting/reporting/executive-summary:
|
||||
|
||||
Executive Summary
|
||||
-----------------
|
||||
|
||||
@@ -126,6 +130,8 @@ payment during a selected month and several months prior.
|
||||
|
||||
.. image:: reporting/main_reports07.png
|
||||
|
||||
.. _accounting/reporting/cash-flow-statement:
|
||||
|
||||
Cash Flow Statement
|
||||
-------------------
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@ available on Odoo.
|
||||
- :doc:`United Arab Emirates - Accounting <fiscal_localizations/united_arab_emirates>`
|
||||
- :doc:`UK - Accounting <fiscal_localizations/united_kingdom>`
|
||||
- Ukraine - Accounting
|
||||
- United States - Accounting
|
||||
- :doc:`United States - Accounting <fiscal_localizations/united_states>`
|
||||
- Uruguay - Accounting
|
||||
- Venezuela - Accounting
|
||||
- :doc:`Vietnam - Accounting <fiscal_localizations/vietnam>`
|
||||
@@ -159,3 +159,4 @@ available on Odoo.
|
||||
fiscal_localizations/vietnam
|
||||
fiscal_localizations/united_arab_emirates
|
||||
fiscal_localizations/united_kingdom
|
||||
fiscal_localizations/united_states
|
||||
|
||||
@@ -362,6 +362,16 @@ Send GSTR-1
|
||||
|
||||
#. The user can verify the :ref:`GSTR-1 <india/gstr-1_report>` report before uploading it to the
|
||||
**GST portal** by clicking :guilabel:`GSTR-1 Report`;
|
||||
|
||||
#. The user can also get details to be submitted in **GSTR-1** in **Spreadsheet view** by clicking
|
||||
on :guilabel:`Generate`;
|
||||
|
||||
.. 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`;
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 38 KiB |
@@ -7,114 +7,336 @@ Kenya
|
||||
Configuration
|
||||
=============
|
||||
|
||||
:ref:`Install <general/install>` the following modules to get all the features of the Kenyan
|
||||
localization:
|
||||
Install the 🇰🇪 **Kenyan** :ref:`fiscal localization package <fiscal_localizations/packages>` to get
|
||||
all the features of the Kenyan localization.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
eTIMS
|
||||
=====
|
||||
|
||||
* - Name
|
||||
- Technical name
|
||||
- Description
|
||||
* - :guilabel:`Kenyan - Accounting`
|
||||
- `l10n_ke`
|
||||
- Installing this module grants you access to the list of accounts used in the local GAAP and
|
||||
the list of common taxes (VAT, etc.).
|
||||
* - :guilabel:`Kenyan - Accounting Reports`
|
||||
- `l10n_ke_reports`
|
||||
- Installing this module grants you access to improved accounting reports for Kenya, such as
|
||||
Profit and Loss and Balance Sheets.
|
||||
The `Kenya Revenue Authority (KRA) <https://www.kra.go.ke/>`_ has implemented the
|
||||
`electronic Tax Invoice Management System (eTIMS) <https://www.kra.go.ke/online-services/etims>`_
|
||||
for tax collection.
|
||||
|
||||
You also have to install the **Kenya Tremol Device EDI Integration** package to be able to report
|
||||
your taxes to the **Kenya Revenue Authority (KRA)** using the Tremol G03 Control Unit:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Technical name
|
||||
- Description
|
||||
* - :guilabel:`Kenya Tremol Device EDI Integration`
|
||||
- `l10n_ke_edi_tremol`
|
||||
- Installing this module integrates with the Kenyan G03 Tremol control unit device to report
|
||||
taxes to KRA through TIMS.
|
||||
|
||||
.. image:: kenya/modules.png
|
||||
:align: center
|
||||
:alt: The three modules for the Kenya Fiscal Localization Package on Odoo
|
||||
|
||||
Kenyan TIMS integration
|
||||
=======================
|
||||
|
||||
The Kenya Revenue Authority (KRA) has decided to go digital for tax collection through the **Tax
|
||||
Invoice Management System (TIMS)**. As of December 1st, 2022, all VAT-registered persons should
|
||||
comply with TIMS. The goal is to reduce VAT fraud, increase tax revenue, and increase VAT compliance
|
||||
through standardization, validation, and transmission of invoices to KRA on a real-time or near
|
||||
real-time basis.
|
||||
|
||||
All VAT-registered taxpayers should use a **compliant tax register**. Odoo decided to develop the
|
||||
integration of the **Tremol G03 Control Unit (type C)**, which can be run locally through USB. This
|
||||
device validates invoices to ensure financial documents meet the new regulations and send the
|
||||
validated tax invoices directly to KRA. Installing a proxy server that provides a gateway between
|
||||
users and the internet is required.
|
||||
|
||||
Installing the proxy server on a Windows device
|
||||
-----------------------------------------------
|
||||
|
||||
Go to `odoo.com/download <https://www.odoo.com/page/download>`_, fill out the required information
|
||||
and click :guilabel:`Download`.
|
||||
|
||||
.. image:: kenya/download.png
|
||||
:align: center
|
||||
:alt: Install the Proxy Server on a Windows device
|
||||
|
||||
Once it is loaded on your computer, a wizard opens. You have to read and agree with the terms of the
|
||||
agreement. On the next page, select the :guilabel:`type of install: Odoo IoT`. Then, click
|
||||
:guilabel:`Next` and :guilabel:`Install`. Once completed, click :guilabel:`Next`. Check the
|
||||
:guilabel:`Start Odoo` box to be redirected to Odoo automatically, and then click :guilabel:`Finish`.
|
||||
|
||||
A new page opens, confirming your :doc:`IoT Box <../../general/iot/config/connect>` is up and
|
||||
running. Connect your physical device **Tremol G03 Control Unit (type C)** to your laptop via USB.
|
||||
In the :guilabel:`IoT Device` section, check that your Tremol G03 Control Unit (type C) appears,
|
||||
confirming the connection between the device and your computer.
|
||||
|
||||
.. image:: kenya/iot-box.png
|
||||
:align: center
|
||||
:alt: Your IoT box is up and running
|
||||
To submit documents through eTIMS, you must use an :abbr:`OSCU (Online Sales Control Unit)` that
|
||||
integrates with the existing **Trader Invoicing System (TIS)**, such as the one provided by Odoo.
|
||||
The OSCU is used to validate, encrypt, sign, transmit, and store tax invoices.
|
||||
|
||||
.. note::
|
||||
If the device is not detected, try to plug it in again or click on the :guilabel:`Restart` button
|
||||
in the top right corner.
|
||||
Make sure to :ref:`install <general/install>` the **Kenya eTIMS EDI** modules to use the OSCU
|
||||
device fully.
|
||||
|
||||
.. _kenya/initialization:
|
||||
|
||||
OSCU device initialization
|
||||
--------------------------
|
||||
|
||||
The OSCU must be initialized before use. To do so, navigate to :menuselection:`Settings --> General
|
||||
Settings`, click :guilabel:`Update Info` in the :guilabel:`Companies` section, and enter your
|
||||
:guilabel:`Tax ID`.
|
||||
|
||||
To initialize the OSCU:
|
||||
|
||||
#. Go to the :guilabel:`eTIMS` tab.
|
||||
#. Fill in the :guilabel:`eTIMS Branch Code` and :guilabel:`Serial Number` of the device.
|
||||
#. Set the :guilabel:`eTIMS Server Mode` to :guilabel:`Test` for the initialization.
|
||||
#. Tick the **user agreement** and click :guilabel:`Initialize OSCU`.
|
||||
|
||||
.. note::
|
||||
Three server modes are available:
|
||||
|
||||
- :guilabel:`Demo`: Designed for demo purposes; it uses mock data and does not require an
|
||||
initialized OSCU;
|
||||
- :guilabel:`Test`: Used to test the connection to eTIMS;
|
||||
- :guilabel:`Production`: Used for live databases that are ready to send data.
|
||||
|
||||
.. Important::
|
||||
If your device has **already been initialized** (through another ERP, for example), enable the
|
||||
:doc:`../../general/developer_mode`, go to the :guilabel:`eTIMS` tab, and enter the key
|
||||
obtained through a previous initialization in the :guilabel:`Device Communication Key` field.
|
||||
Click :guilabel:`Save manually`, then :guilabel:`Initialize OSCU` (which may take a moment to
|
||||
become available).
|
||||
|
||||
eTIMS codes
|
||||
-----------
|
||||
|
||||
Common standard codes are **automatically** fetched from the KRA eTIMS API servers every two days.
|
||||
To fetch them manually, proceed as follows:
|
||||
|
||||
#. Enable the :doc:`../../general/developer_mode`.
|
||||
#. Go to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions` and search for
|
||||
:guilabel:`KE eTIMS: Fetch KRA standard codes`.
|
||||
#. Click the action in the list, then click :guilabel:`Run Manually` to fetch the codes.
|
||||
|
||||
Go to :menuselection:`Accounting --> Vendors --> KE OSCU Codes` to view the complete list of
|
||||
fetched OSCU codes.
|
||||
|
||||
.. image:: kenya/oscu-codes.png
|
||||
:alt: List of fetched OSCU codes.
|
||||
|
||||
.. _etims/unspsc:
|
||||
|
||||
UNSPSC codes
|
||||
------------
|
||||
|
||||
The KRA needs UNSPSC codes for a product to be **registered**. UNSPSC codes are **automatically**
|
||||
fetched from the KRA eTIMS API servers every day. To fetch them manually, proceed as follows:
|
||||
|
||||
#. Enable the :doc:`../../general/developer_mode`.
|
||||
#. Go to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions` and search for
|
||||
:guilabel:`KE eTIMS: Fetch UNSPSC codes from eTIMS`.
|
||||
#. Click the action in the list, then click :guilabel:`Run Manually` to fetch the codes.
|
||||
|
||||
Go to :menuselection:`Accounting --> Vendors --> KE UNSPSC Codes` to view the complete list of
|
||||
fetched UNSPSC codes.
|
||||
|
||||
Notices
|
||||
-------
|
||||
|
||||
Notices are **automatically** fetched from the KRA eTIMS API servers every day. To fetch them
|
||||
**manually**, proceed as follows:
|
||||
|
||||
#. Enable the :doc:`../../general/developer_mode`.
|
||||
#. Go to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions` and search for
|
||||
:guilabel:`KE eTIMS: Fetch KRA notices from eTIMS`.
|
||||
#. Click the action in the list, then click :guilabel:`Run Manually` to fetch the notices.
|
||||
|
||||
Go to :menuselection:`Accounting --> Vendors --> KE OSCU Notices` to view the complete list of
|
||||
fetched notices.
|
||||
|
||||
Multi-company
|
||||
-------------
|
||||
|
||||
.. _kenya/branch:
|
||||
|
||||
.. seealso::
|
||||
:doc:`Connect an IoT box to your database <../../general/iot/config/connect>`
|
||||
:doc:`../../general/companies`
|
||||
|
||||
Sending the data to KRA using the Tremol G03 Control Unit
|
||||
---------------------------------------------------------
|
||||
If you have :ref:`multiple companies <accounting/multi-company>`, you can centralize and manage them
|
||||
all on a single Odoo database. The KRA identifies and differentiates the **main** company from
|
||||
its **subsidiaries** by using IDs. Furthermore, subsidiaries are classified as **branches** of the
|
||||
main company.
|
||||
|
||||
As a pre-requisite, check out that the :ref:`Kenyan Accounting modules
|
||||
<localization/kenya/configuration>` are installed on your database. Then, go to
|
||||
:menuselection:`Accounting --> Configuration --> Settings --> Kenya TIMS Integration section`, and
|
||||
check that the :guilabel:`control Unit Proxy Address` matches the address of the IoT box.
|
||||
To configure the company ID, open the **Settings** app, click :guilabel:`Update Info` in the
|
||||
:guilabel:`Companies` section, then click the :guilabel:`eTIMS` tab. The **main company** has a
|
||||
branch ID equal to `00` in a multi-company environment. Companies that are *not* the main company
|
||||
have a branch ID other than `00` and are assigned an ID by the KRA.
|
||||
|
||||
To send data to KRA, create a new invoice by going to :menuselection:`Accounting Dashboard -->
|
||||
Customer Invoice card` and clicking :guilabel:`New Invoice`. Upon confirmation of a new invoice, the
|
||||
:guilabel:`Send invoice to Fiscal Device` button appears. Clicking on it sends the invoice details
|
||||
to the device and from the device to the government. The :guilabel:`CU Invoice Number` field is now
|
||||
completed in your invoice, confirming the information has been sent.
|
||||
To add a branch, go to the :guilabel:`Branches` tab in the **company settings** and click
|
||||
:guilabel:`Add a line`.
|
||||
|
||||
The :guilabel:`Tremol G03 Fiscal Device` tab contains fields that are automatically completed once
|
||||
the invoice is sent to the government:
|
||||
|
||||
- :guilabel:`CU QR Code`: Url from the KRA portal which reflects a QR code.
|
||||
- :guilabel:`CU Serial Number`: reflects the serial number of the device.
|
||||
- :guilabel:`CU Signing Date and Time`: The date and time when the invoice has been sent to KRA.
|
||||
|
||||
If you click on :guilabel:`Send and Print`, a .pdf of the invoice is generated. The
|
||||
:guilabel:`Kenyan Fiscal Device Info` is mentioned on the document.
|
||||
To fetch the **branch ID** from the KRA for your non-main companies, ensure the main company has a
|
||||
Kenyan :guilabel:`Tax ID` and the OSCU device has been :ref:`initialized <kenya/initialization>`.
|
||||
Then, go to the :guilabel:`Branches` tab and click :guilabel:`Populate from KRA`.
|
||||
|
||||
.. note::
|
||||
To verify KRA has received the invoice information, take the :guilabel:`CU Invoice Number` and
|
||||
enter it in the :guilabel:`Invoice Number Checker` section on
|
||||
`Kenya Revenue Authority website <https://itax.kra.go.ke/KRA-Portal>`_. Click
|
||||
:guilabel:`Validate` and find the invoice details.
|
||||
- The KRA considers each **place of supply** as a separate branch (ID).
|
||||
- The **OSCU** device must be :ref:`initialized independently <kenya/initialization>` for each
|
||||
branch.
|
||||
|
||||
.. image:: kenya/branches.png
|
||||
:alt: "Populate from KRA" button for branches.
|
||||
|
||||
Contact branch ID
|
||||
-----------------
|
||||
|
||||
To attribute a branch ID to a contact, access the contact form, go to the :guilabel:`Accounting`
|
||||
tab, and enter the branch code in the :guilabel:`eTIMS Branch Code` field.
|
||||
|
||||
.. note::
|
||||
By default, contacts' branch IDs are set to `OO`.
|
||||
|
||||
KRA sequences
|
||||
-------------
|
||||
|
||||
.. important::
|
||||
Odoo invoice sequences and KRA sequences are **different**.
|
||||
|
||||
In Odoo, invoice sequences depend on the **main company**. Main companies can see the invoices of
|
||||
branches, but branches **cannot** see the main company's invoices or those of other branches.
|
||||
|
||||
The KRA needs **independent** sequences per branch. Therefore, Odoo manages sequences individually
|
||||
per branch.
|
||||
|
||||
.. example::
|
||||
If you have a main company with two branches, the invoice sequence would be the following:
|
||||
|
||||
- Creating an invoice on **branch 1**: INV/2024/00001;
|
||||
- Creating an invoice on **branch 2**: INV/2024/00002;
|
||||
- Creating an invoice on the **main company**: INV/2024/00003.
|
||||
|
||||
This is how Odoo manages sequences to be compliant with the KRA regulations:
|
||||
|
||||
- Creating an invoice on **branch 1**: INV/2024/00001;
|
||||
- Creating an invoice on **branch 2**: INV/2024/00001;
|
||||
- Creating an invoice on the **main company**: INV/2024/00001.
|
||||
|
||||
Insurance
|
||||
=========
|
||||
|
||||
For **health service providers**, you can send insurance information about the main and branch
|
||||
companies and update it in eTIMS. To do so, open the **Settings** app, click :guilabel:`Update Info`
|
||||
in the :guilabel:`Companies` section, and in the :guilabel:`eTIMS` tab, fill in the fields related
|
||||
to your company: :guilabel:`Insurance Code`, :guilabel:`Insurance Name`, and :guilabel:`Insurance
|
||||
Rate`.
|
||||
|
||||
.. _kenya/product-registration:
|
||||
|
||||
Product registration
|
||||
====================
|
||||
|
||||
The KRA requires **products to be registered** first before conducting business operations (such as
|
||||
stock movements, :abbr:`BOM (Bill of Materials)`, customer invoices, etc.). For a product to be
|
||||
registered, the following fields must be defined on the product form:
|
||||
|
||||
- In the :guilabel:`General Information` tab: :guilabel:`Cost`.
|
||||
- In the :guilabel:`Accounting` tab:
|
||||
|
||||
- :guilabel:`Packaging Unit`;
|
||||
- :guilabel:`Packaging Quantity`;
|
||||
- :guilabel:`Origin Country`;
|
||||
- :guilabel:`eTIMS Product Type`;
|
||||
- :guilabel:`Insurance Applicable`;
|
||||
- :ref:`UNSPSC Category <etims/unspsc>`.
|
||||
|
||||
If the elements above are defined, the product is automatically registered while sending the
|
||||
operation to the KRA. If not, you will be alerted by a yellow banner at the top of the screen
|
||||
inviting you to check the missing elements.
|
||||
|
||||
.. image:: kenya/product-registration.png
|
||||
:alt: Product registration template.
|
||||
|
||||
Stock movements
|
||||
===============
|
||||
|
||||
All **stock movements** must be sent to the KRA. They do not require an invoice if they are
|
||||
internal operations or stock adjustments; therefore, Odoo automatically sends them if at least one
|
||||
of the following conditions are met:
|
||||
|
||||
#. No contact is set for the move;
|
||||
#. The contact is your main company or a branch of the main company.
|
||||
|
||||
If the stock moves are **external operations** (e.g., to contacts that are not part of the main
|
||||
company or its branches), the stock moves are automatically sent *after* the invoice is sent to
|
||||
eTIMS.
|
||||
|
||||
.. note::
|
||||
- The stock move must be confirmed before sending the invoice to eTIMS.
|
||||
- The product(s) must be :ref:`registered <kenya/product-registration>` for the stock move to be
|
||||
sent to eTIMS. If the product has not been registered yet, a yellow banner will prompt the
|
||||
products' registration.
|
||||
|
||||
Purchases
|
||||
=========
|
||||
|
||||
Odoo automatically fetches new vendor bills from eTIMS every day. You need to confirm the fetched
|
||||
vendor bills and send the confirmation to the KRA. To confirm a vendor bill, it must be linked to
|
||||
one or several confirmed purchase order line(s).
|
||||
|
||||
.. _kenya/purchases:
|
||||
|
||||
In the case of purchases (not customs imports), the steps to link purchase order lines with bills
|
||||
are the following:
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Vendors --> Bills`.
|
||||
The vendor bill is fetched from the KRA servers. The JSON file is available in the chatter of the
|
||||
vendor bill if needed.
|
||||
#. Odoo looks at the :guilabel:`Tax ID` (PIN) of the vendor (partner);
|
||||
|
||||
- If it is unknown, a new contact (partner) is created.
|
||||
- If it is known and the branch ID is the same, Odoo uses the known contact.
|
||||
|
||||
#. In the fetched bill from the KRA, select the :guilabel:`Product`. Each vendor bill *must* contain
|
||||
a product to be confirmed and sent to eTIMS later on.
|
||||
#. Odoo checks existing purchase order lines matching the product(s) entered at the previous step
|
||||
and the partner (if any). Click the :guilabel:`Purchase Order Line` field, and select the correct
|
||||
related purchase order line(s) matching the product(s). The quantities on the bill *must* be the
|
||||
same as the received quantities indicated on the purchase order.
|
||||
|
||||
If no existing purchase order line matches the lines of the fetched bill, click
|
||||
:guilabel:`Create Purchase Order` and create a purchase order based on the unmatched line(s).
|
||||
:guilabel:`Validate` the resulting stock move and :guilabel:`Confirm` the bill.
|
||||
|
||||
#. Set a method in the :guilabel:`eTIMS Payment Method` field..
|
||||
#. Once all steps are completed, click :guilabel:`Send to eTIMS` to send the vendor bill. When the
|
||||
vendor bill has been confirmed on eTIMS, the **KRA invoice number** can be found in the
|
||||
:guilabel:`eTIMS Details` tab.
|
||||
|
||||
.. image:: kenya/purchase-order-lines.png
|
||||
:alt: Bill registration steps.
|
||||
|
||||
Invoicing
|
||||
=========
|
||||
|
||||
.. note::
|
||||
The KRA does *not* accept sales if the product is not in stock.
|
||||
|
||||
This is the **advised sales flow** in Odoo when selling:
|
||||
|
||||
#. Create a **sales order**.
|
||||
#. :guilabel:`Validate` the delivery.
|
||||
#. :guilabel:`Confirm` the invoice.
|
||||
#. Click :guilabel:`Send and print`, and then enable :guilabel:`Send to eTIMS`.
|
||||
#. Click :guilabel:`Send & print` to send the invoice.
|
||||
|
||||
Once the invoice has been sent and signed by the KRA, the following information can be found on
|
||||
it:
|
||||
|
||||
- **KRA invoice number**;
|
||||
- Mandatory KRA invoice fields, such as **SCU information**, **date**, **SCU ID**, **receipt
|
||||
number**, **item count**, **internal date**, and **receipt signature**;
|
||||
- The **KRA tax table**;
|
||||
- A unique **KRA QR code** for the signed invoice.
|
||||
|
||||
Imports
|
||||
=======
|
||||
|
||||
Customs import codes are **automatically** fetched from the KRA eTIMS API servers every day. To
|
||||
fetch them manually, proceed as follows:
|
||||
|
||||
#. Enable the :doc:`../../general/developer_mode`.
|
||||
#. Go to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions` and search for
|
||||
:guilabel:`KE eTIMS: Receive Customs Imports from the OSCU`.
|
||||
#. Click the action in the list, then click :guilabel:`Run Manually` to fetch the codes.
|
||||
|
||||
Go to :menuselection:`Accounting --> Vendors --> Customs Imports` to view the imported codes.
|
||||
|
||||
The following steps are required to send and have **customs imports** signed by the KRA:
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Vendors --> Customs Imports`; The customs import is fetched
|
||||
automatically from the KRA.
|
||||
#. Match the imported item with an existing registered product in the :guilabel:`Product` field (or
|
||||
create a product if no related product exists).
|
||||
#. Set a vendor in the :guilabel:`Partner` field.
|
||||
#. Based on the partner, match the imported item with its related purchase order (see
|
||||
:ref:`purchase steps <kenya/purchases>`). The stock must be correctly adjusted when the customs
|
||||
import is approved.
|
||||
|
||||
If no related purchase order exists, create one and :guilabel:`Confirm` it. Then, confirm the
|
||||
delivery by clicking :guilabel:`Receive Products`, then :guilabel:`Validate` on the purchase
|
||||
order.
|
||||
|
||||
#. Click :guilabel:`Match and Approve` or :guilabel:`Match and Reject`, depending on the
|
||||
situation of the goods.
|
||||
|
||||
.. note::
|
||||
The JSON file received from the KRA is attached to the chatter of the customs import.
|
||||
|
||||
BOM
|
||||
===
|
||||
|
||||
The KRA requires all BOMs to be sent to them. To send BOMs to eTIMS, the product and its components
|
||||
*must* be :ref:`registered <kenya/product-registration>`. To access a product's BOM, click on the
|
||||
product and then click the :guilabel:`Bill of Materials` smart button.
|
||||
|
||||
Fill in the KRA's required fields in the :guilabel:`KRA eTIMS details` section of the
|
||||
:guilabel:`Accounting` tab, then click :guilabel:`Send to eTIMS`. The successful sending of the
|
||||
BOM is confirmed in the chatter, where you can also find the sent information in an attached JSON
|
||||
file.
|
||||
|
||||
Credit notes
|
||||
============
|
||||
|
||||
The KRA does not accept credit notes with quantities or prices higher than the initial invoice. When
|
||||
reversing the invoice, a KRA reason must be indicated: in the credit note form, go to the
|
||||
:guilabel:`eTIMS Details` tab, select the :guilabel:`eTIMS Credit Note Reason`, and then select the
|
||||
invoice number in the :guilabel:`Reversal of` field.
|
||||
|
||||
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 42 KiB |
@@ -0,0 +1,748 @@
|
||||
=============
|
||||
United States
|
||||
=============
|
||||
|
||||
.. |GAAP| replace:: :abbr:`GAAP (Generally Acceptable Accounting Practices)`
|
||||
.. |FASB| replace:: :abbr:`FASB (Financial Accounting Standards Board)`
|
||||
.. |SEC| replace:: :abbr:`SEC (Securities and Exchange Commission)`
|
||||
.. |COA| replace:: :abbr:`CoA (Chart of Accounts)`
|
||||
.. |AR| replace:: :abbr:`AR (Accounts Receivable)`
|
||||
.. |AP| replace:: :abbr:`AP (Accounts Payable)`
|
||||
.. |CFS| replace:: :abbr:`CFS (Cash Flow Statement)`
|
||||
.. |NACHA| replace:: :abbr:`NACHA (National Automated Clearing House Association)`
|
||||
.. |ACH| replace:: :abbr:`ACH (Automated Clearing House)`
|
||||
|
||||
The Odoo fiscal localization package for the United States follows the Generally Acceptable
|
||||
Accounting Principles (GAAP) accounting standards and rules used to prepare financial statements,
|
||||
as outlined by the Financial Accounting Standards Board (FASB) and adopted by the Securities and
|
||||
Exchange Commission (SEC).
|
||||
|
||||
.. seealso::
|
||||
- `Financial Accounting Standards Board (FASB) <https://asc.fasb.org/Home>`_
|
||||
- `Securities and Exchange Commission (SEC) <https://www.sec.gov/>`_
|
||||
|
||||
In addition, a series of videos on the subject of Accounting are available through Odoo's eLearning
|
||||
platform. These videos cover how to start from scratch, set up configurations, complete common
|
||||
workflows, and provide in-depth looks at some specific use cases, as well.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: Accounting & Invoicing
|
||||
<https://www.odoo.com/slides/accounting-and-invoicing-19>`_
|
||||
- `Odoo SmartClass: Accounting <https://www.odoo.com/slides/smartclass-accounting-121>`_
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Below are the available modules in Odoo for accounting use in the United States.
|
||||
|
||||
.. note::
|
||||
The modules listed below are either for reference only or are optional, as the core requirements
|
||||
to operate under the US fiscal localization in Odoo are already included under the default
|
||||
package that came installed during database initialization.
|
||||
|
||||
Verify the default package is in use by navigating to :menuselection:`Accounting App -->
|
||||
Settings` and under the :guilabel:`Fiscal Localization` section at the top, look for the `Generic
|
||||
Chart Template` selection to be listed next to the :guilabel:`Package` field label. This chart
|
||||
template includes the necessary settings for the US localization for the Odoo *Accounting* app.
|
||||
|
||||
.. image:: united_states/us-l10n-generic-chart-template.png
|
||||
:align: center
|
||||
:alt: The Generic Chart Template comes pre-configured for the US localization.
|
||||
|
||||
Modules installation
|
||||
--------------------
|
||||
|
||||
:ref:`Install <general/install>` the following modules to get all the features of the United States
|
||||
localization:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 25 25 50
|
||||
|
||||
* - Name
|
||||
- Technical name
|
||||
- Description
|
||||
* - :guilabel:`United States - Accounting`
|
||||
- `l10n_us`
|
||||
- Base accounting module for United States localization.
|
||||
* - :ref:`US - Accounting Reports <l10n_us/reports>`
|
||||
- `l10n_us_reports`
|
||||
- Adds United States accounting reports.
|
||||
* - :guilabel:`US Checks Layout`
|
||||
- `l10n_us_check_printing`
|
||||
- Enables the printing of payments on pre-printed check paper. Supports the three most common
|
||||
check formats and will work out of the box with the linked checks from `checkdepot.net
|
||||
<https://checkdepot.net/collections/computer-checks/Odoo>`_.
|
||||
|
||||
- `Check on top: Quicken / QuickBooks standard
|
||||
<https://checkdepot.net/collections/computer-checks/odoo+top-check>`_
|
||||
- `Check on middle: Peachtree standard
|
||||
<https://checkdepot.net/collections/computer-checks/odoo+middle-check>`_
|
||||
- `Check on bottom: ADP standard
|
||||
<https://checkdepot.net/collections/computer-checks/odoo+Bottom-Check>`_
|
||||
|
||||
* - :ref:`NACHA Payments <l10n_us/nacha>`
|
||||
- `l10n_us_payment_nacha`
|
||||
- Export payments as NACHA files for use in the United States.
|
||||
* - :ref:`1099 Reporting <l10n_us/1099-report>`
|
||||
- `l10n_us_1099`
|
||||
- Export 1099 data for e-filing with a 3rd party.
|
||||
* - :ref:`Avatax <l10n_us/taxes-avatax>`
|
||||
- `account_avatax`
|
||||
- Module for the :doc:`AvaTax integration <../accounting/taxes/avatax>` with Odoo.
|
||||
* - :ref:`United States - Payroll <l10n_us/payroll>`
|
||||
- `l10n_us_hr_payroll`
|
||||
- Includes the necessary rules for United States payroll, including:
|
||||
|
||||
- Employee Details
|
||||
- Employee Contracts
|
||||
- Passport-based Contracts
|
||||
- Allowances/Deductions
|
||||
- Allow Configurations for Basic/Gross/Net Salary
|
||||
- Employee Payslip
|
||||
- Integration with Leaves Management
|
||||
|
||||
* - :ref:`United States - Payroll with Accounting <l10n_us/payroll>`
|
||||
- `l10n_us_hr_payroll_account`
|
||||
- Contains the necessary accounting data for the United States payroll rules.
|
||||
* - :ref:`United States - Payroll - Export to ADP <l10n_us/adp>`
|
||||
- `l10n_us_hr_payroll_adp`
|
||||
- Export Work Entries to the ADP payroll software.
|
||||
|
||||
.. _l10n_us/coa:
|
||||
|
||||
Chart of accounts
|
||||
=================
|
||||
|
||||
The :doc:`chart of accounts (COA) <../accounting/get_started/chart_of_accounts>` for the United
|
||||
States localization, in Odoo, follows the standard |GAAP| structure, with accounts grouped into
|
||||
seven main categories, with corresponding numeric values that prefix individual journal entries:
|
||||
|
||||
- **Receivable**: the balance of money (or credit) due to the business for goods or services
|
||||
delivered or used, but not yet paid for by customers. |AR| is indicated by the journal code
|
||||
labeled (or beginning) with :guilabel:`1`.
|
||||
- **Payable**: the business's short-term obligations owed to its creditors or suppliers, which have
|
||||
not yet been paid. |AP| is indicated by the journal code labeled (or beginning) with
|
||||
:guilabel:`2`.
|
||||
- **Equity**: the amount of money that would be returned to a company's shareholders if all of the
|
||||
assets were liquidated and all of the company's debt was paid off in the case of liquidation.
|
||||
Equity is indicated by the journal code labeled (or beginning) with :guilabel:`3` or
|
||||
:guilabel:`9`.
|
||||
- **Assets**: items listed on the balance sheet that contains economic value or have the ability to
|
||||
generate cash flows in the future, such as a piece of machinery, a financial security, or a
|
||||
patent. Assets are indicated by the journal code labeled (or beginning) with :guilabel:`1`.
|
||||
- **Liability**: refers to a company's financial debts or obligations that arise during the course
|
||||
of business operations. Liabilities are indicated by the journal code labeled (or beginning) with
|
||||
:guilabel:`2`.
|
||||
- **Income**: synonymous with *net income*, this is the profit a company retains after paying off
|
||||
all relevant expenses from sales revenue earned. Income is indicated by the journal code labeled
|
||||
(or beginning) with :guilabel:`4` or :guilabel:`6`.
|
||||
- **Expenses**: the cost of operations that a company incurs to generate revenue. Expenses are
|
||||
indicated by the journal code labeled (or beginning) with a :guilabel:`6`.
|
||||
|
||||
.. tip::
|
||||
Predefined accounts are included in Odoo, as part of the |CoA| that's installed with the US
|
||||
localization package. The accounts listed below are preconfigured to perform certain operations
|
||||
within Odoo. It is recommended to **not** delete these accounts; however, if changes are needed,
|
||||
rename the accounts instead.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
* - :guilabel:`Type`
|
||||
- :guilabel:`Account Name`
|
||||
* - :guilabel:`Current Assets`
|
||||
- | :guilabel:`Bank Suspense Account`
|
||||
| :guilabel:`Outstanding Receipts`
|
||||
| :guilabel:`Outstanding Payments`
|
||||
| :guilabel:`Liquidity Transfer`
|
||||
| :guilabel:`Stock Valuation`
|
||||
| :guilabel:`Stock Interim (Received)`
|
||||
| :guilabel:`Stock Interim (Delivered)`
|
||||
| :guilabel:`Cost of Production`
|
||||
* - :guilabel:`Income`
|
||||
- | :guilabel:`Foreign Exchange Gain`
|
||||
| :guilabel:`Cash Difference Gain`
|
||||
| :guilabel:`Cash Discount Gain`
|
||||
* - :guilabel:`Expenses`
|
||||
- | :guilabel:`Cash Discount Loss`
|
||||
| :guilabel:`Foreign Exchange Loss`
|
||||
| :guilabel:`Cash Difference Loss`
|
||||
* - :guilabel:`Current Year Earnings`
|
||||
- :guilabel:`Undistributed Profits/Losses`
|
||||
* - :guilabel:`Receivable`
|
||||
- :guilabel:`Account Receivable`
|
||||
* - :guilabel:`Payable`
|
||||
- :guilabel:`Account Payable`
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../accounting/get_started/chart_of_accounts`
|
||||
- :doc:`../accounting/get_started/cheat_sheet`
|
||||
|
||||
View, edit, and sort accounts
|
||||
-----------------------------
|
||||
|
||||
Access the *Chart of Accounts* dashboard in Odoo by navigating to :menuselection:`Accounting app
|
||||
--> Configuration --> Accounting: Chart of Accounts`.
|
||||
|
||||
From the :guilabel:`Chart of Accounts` dashboard, create new accounts by clicking the purple
|
||||
:guilabel:`New` button in the top-left corner of the dashboard and :ref:`filling in the
|
||||
corresponding form <chart-of-account/create>`. Search and sort through existing accounts by using
|
||||
specific :guilabel:`Filters` and :guilabel:`Group By` criteria, which are available in the mega menu
|
||||
under the :guilabel:`Search...` bar.
|
||||
|
||||
To filter accounts by category, click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon to
|
||||
access the mega menu and look under the :guilabel:`Filters` column for individual selections.
|
||||
Clicking on a specific category will only show accounts that match that particular filter.
|
||||
|
||||
To view all the available account types, remove all of the filters in the :guilabel:`Search...` bar,
|
||||
and then click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon to access the mega menu. From
|
||||
there, select :guilabel:`Account Type` under the :guilabel:`Group By` column heading to list all of
|
||||
the account types in the table.
|
||||
|
||||
.. image:: united_states/us-l10n-coa-account-types.png
|
||||
:align: center
|
||||
:alt: Chart of Accounts grouped by Account Type.
|
||||
|
||||
Besides structure, there are other key differences in the chart of accounts in the United States,
|
||||
compared to other countries:
|
||||
|
||||
- **Specificity**: US |GAAP| often requires more detailed accounts compared to some other countries.
|
||||
This can include separate accounts for various types of revenue, expenses, and assets, providing
|
||||
more granular information in financial reports.
|
||||
- **Regulatory Requirements**: In the United States, there are specific regulatory requirements set
|
||||
by bodies such as the |SEC| for publicly traded companies. These requirements may influence the
|
||||
structure and content of the |COA| to ensure compliance with reporting standards.
|
||||
- **Industry Practices**: Certain industries in the United States may have unique accounting
|
||||
requirements or specialized |COA| structures. For example, financial institutions often have
|
||||
specific accounts related to loans, investments, and interest income.
|
||||
- **Tax Considerations**: The |COA| may also reflect tax considerations, such as accounts for
|
||||
deductible expenses, deferred tax assets, and liabilities, to ensure compliance with tax laws and
|
||||
facilitate tax reporting.
|
||||
|
||||
These differences, ultimately, should be reflected in the |COA| structure itself, with the addition
|
||||
of new accounts, as needed, in order to meet the demands of US accounting reporting requirements.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Create a new account <chart-of-account/create>`
|
||||
- :doc:`../../essentials/search`
|
||||
|
||||
.. _l10n_us/taxes:
|
||||
|
||||
Taxes
|
||||
=====
|
||||
|
||||
In the United States, tax rates and what is considered taxable vary by jurisdiction. Default *Sales*
|
||||
and *Purchase* taxes are created automatically when the Odoo *Accounting* application is installed.
|
||||
To manage existing or configure additional taxes, navigate to :menuselection:`Accounting -->
|
||||
Configuration --> Taxes`.
|
||||
|
||||
.. _l10n_us/taxes-avatax:
|
||||
|
||||
AvaTax
|
||||
------
|
||||
|
||||
**Avalara AvaTax** is a cloud-based tax calculation and compliance software that integrates with
|
||||
Odoo for the United States and Canadian accounting localizations. Integrating AvaTax with Odoo
|
||||
provides real-time and region-specific tax calculations when items are sold, purchased, and invoiced
|
||||
in the database.
|
||||
|
||||
.. important::
|
||||
AvaTax is only available for integration with databases/companies that have locations in the
|
||||
United States and Canada. This means the fiscal position/country of a database can only be set to
|
||||
the United States or Canada. Reference this documentation for more information:
|
||||
:ref:`avatax/fiscal_country`.
|
||||
|
||||
.. seealso::
|
||||
Refer to the documentation articles below to integrate and configure an AvaTax account with an
|
||||
Odoo database:
|
||||
|
||||
- :doc:`AvaTax integration <../accounting/taxes/avatax>`
|
||||
- :doc:`Avalara management portal <../accounting/taxes/avatax/avalara_portal>`
|
||||
- :doc:`Calculate taxes with AvaTax <../accounting/taxes/avatax/avatax_use>`
|
||||
- `US Tax Compliance: AvaTax elearning video
|
||||
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
|
||||
- Avalara's support documents: `About AvaTax
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=dqa1657870670369_dqa1657870670369&topicId=About_AvaTax.html&_LANG=enus>`_
|
||||
|
||||
.. _l10n_us/reports:
|
||||
|
||||
Reports
|
||||
=======
|
||||
|
||||
A number of :doc:`report selections <../accounting/reporting>` are readily available for the US
|
||||
localization, under the :menuselection:`Accounting app --> Reporting` drop-down menu:
|
||||
|
||||
- :ref:`Balance Sheet <reporting/balance-sheet>`: a "snapshot" of a company's financial position at
|
||||
a specific point in time, which contains an overview of a company's assets, liabilities, and
|
||||
equity.
|
||||
- :ref:`Profit & Loss <accounting/reporting/balance-sheet>`: otherwise known as a *P&L statement* or
|
||||
*income statement*, provides a summary of a company's revenues, expenses, and profits/losses over
|
||||
a given period of time.
|
||||
- :ref:`Cash Flow Statement <l10n_us/cash-flow-statement>`: shows how much cash and cash equivalents
|
||||
a company has received and spent in a given period.
|
||||
- :ref:`Executive Summary <accounting/reporting/executive-summary>`: an overview report that covers
|
||||
the key performance indicators of a company's financial position, such as revenue, profit, and
|
||||
debt.
|
||||
- :ref:`Tax Report <reporting/tax-report>`: an official form filed for a tax authority that reports
|
||||
income, expenses, and other pertinent tax information. Tax reports allow taxpayers to calculate
|
||||
their tax liability, schedule tax payments, or request refunds for the overpayment of taxes. In
|
||||
Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,
|
||||
semi-annually, and annually.
|
||||
- :guilabel:`Check Register`: a report that displays cash transactions (regardless of the journal)
|
||||
with their running balance after the transaction. Only visible with the *US - Accounting Reports*
|
||||
(`l10n_us_reports`) module installed.
|
||||
- :ref:`1099 Report <l10n_us/1099-report>`: a CSV download of payments made to non-employees in a
|
||||
period to file electronically in a third-party service. Only visible with the *1099 Reporting*
|
||||
(`l10n_us_1099`) module installed.
|
||||
|
||||
.. _l10n_us/report-filters:
|
||||
|
||||
Depending on the type of report, certain filters are available at the top of the dashboard:
|
||||
|
||||
- a *date* filter, indicated by a :icon:`fa-calendar` :guilabel:`(calendar)` icon that precedes a
|
||||
date in *MM/DD/YYYY* format. Use this to select a specific date or date range for the report.
|
||||
- a :icon:`fa-bar-chart` :guilabel:`Comparison` filter, to compare reporting periods against each
|
||||
other
|
||||
- a *journal* filter, as indicated by a :icon:`fa-book` :guilabel:`(book)` icon and the default
|
||||
setting of :guilabel:`All Journals`. Use this filter to specify which journals should be included
|
||||
in the report.
|
||||
- an *entries type* filter, as indicated by a :icon:`fa-filter` :guilabel:`(filter)` icon, with the
|
||||
default setting of :guilabel:`Posted Entries Only, Accrual Basis`. Use this filter to determine
|
||||
which type of journal entries should be included in the report (e.g. posted or draft), along with
|
||||
the type of accounting method (e.g. accrual or cash basis).
|
||||
|
||||
- There are view options in this filter, as well, one that will :guilabel:`Hide lines at 0` for
|
||||
more relevant viewing, along with a :guilabel:`Split Horizontally` option to keep the report
|
||||
above the screen's fold, removing the need to scroll.
|
||||
|
||||
.. image:: united_states/us-l1on-accounting-method-reporting-menu.png
|
||||
:align: center
|
||||
:alt: Accounting method filter menu for reports, covering accrual vs. cash basis methods.
|
||||
|
||||
- a *decimal* filter, that by default, includes figures with cents, as indicated by the
|
||||
:guilabel:`In .$` setting. Use the other options in the drop-down menu to change figures in the
|
||||
report to whole numbers (:guilabel:`In $`), thousands (:guilabel:`In K$`), or millions
|
||||
(:guilabel:`In M$`) formats.
|
||||
- a report *customization* filter, indicated by the :icon:`fa-cogs` :guilabel:`(gears)` icon. Use
|
||||
this filter to customize the current report's sections and line items, or build new reports, as
|
||||
desired.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Accounting reporting <../accounting/reporting>`
|
||||
- :doc:`../../essentials/search`
|
||||
|
||||
.. _l10n_us/1099-report:
|
||||
|
||||
1099 report
|
||||
-----------
|
||||
|
||||
The 1099 report, available by :ref:`installing <general/install>` the *1099 Reporting*
|
||||
(`l10n_us_1099`) module, includes payments that are made to non-employees across a given reporting
|
||||
period. Use the available CSV download from the report in Odoo to file 1099 payments electronically
|
||||
via a third-party service.
|
||||
|
||||
To generate a 1099 report, navigate to :menuselection:`Accounting app --> Reporting --> Management:
|
||||
1099 Report` to open a :guilabel:`1099 Report` wizard.
|
||||
|
||||
First, enter the date range of the transactions to report in the :guilabel:`Start Date` and
|
||||
:guilabel:`End Date` fields.
|
||||
|
||||
Then, edit the journal items that appear on the wizard. Click :guilabel:`Add a line` to add any
|
||||
items that are missing. Be sure to remove any items that should not be included in the report by
|
||||
clicking :icon:`fa-times` :guilabel:`(delete)` on the row.
|
||||
|
||||
Finally, once all necessary items are included in the 1099 report, click on the :guilabel:`Generate`
|
||||
button. Doing so, downloads a CSV file that groups transactions by the partner that received the
|
||||
payments.
|
||||
|
||||
.. _l10n_us/cash-flow-statement:
|
||||
|
||||
Cash flow statement
|
||||
-------------------
|
||||
|
||||
Navigate to the *Cash Flow Statement* (CFS) dashboard by going to :menuselection:`Accounting app -->
|
||||
Reporting --> Statement Reports: Cash Flow Statement`. From here, |CFS| reports can be generated
|
||||
using the various :ref:`filters <l10n_us/report-filters>` that are available at the top of the
|
||||
dashboard.
|
||||
|
||||
Odoo uses the *direct* cash flow method to compile cash flow statements, which measures actual cash
|
||||
inflows and outflows from the company's operations, such as when cash is received from customers or
|
||||
when cash payments are made to suppliers.
|
||||
|
||||
By default, an account labeled with any of the three default :guilabel:`Tags` on the
|
||||
:guilabel:`Chart of Accounts` dashboard will be included in the report, which includes:
|
||||
:guilabel:`Operating Activities`, :guilabel:`Financing Activities`, and :guilabel:`Investing &
|
||||
Extraordinary Activities`.
|
||||
|
||||
.. image:: united_states/us-l10n-cash-flow-statement-tags.png
|
||||
:align: center
|
||||
:alt: Examples of tagged accounts that are included in the Cash Flow Statement in Odoo.
|
||||
|
||||
Additionally, the cash flow statement in Odoo:
|
||||
|
||||
- is limited to the *Bank* and *Cash* journals to reflect money coming in or out; and
|
||||
- also contains *Expenses* accounts, to show the counterpart transactions versus *Bank* or *Cash*
|
||||
journal entries, while excluding |AR| and |AP| activity.
|
||||
|
||||
.. example::
|
||||
Create a vendor bill for $100, as an operating expense (not |AP|). Doing so will **not** reflect
|
||||
a transaction on the cash flow statement. However, register a corresponding payment for $100,
|
||||
and the transaction **will** reflect on the cash flow statement as :guilabel:`Cash paid for
|
||||
operating activities`.
|
||||
|
||||
.. image:: united_states/us-l10n-operating-expenses-example.png
|
||||
:align: center
|
||||
:alt: Example of a bill registered as an operating expense as part of a cash flow statement.
|
||||
|
||||
.. _l10n_us/cash-discount:
|
||||
|
||||
Cash discount
|
||||
=============
|
||||
|
||||
Cash discounts can be configured from :menuselection:`Accounting app --> Payment Terms`. Each
|
||||
payment term can be set up with a cash discount and reduced tax.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../accounting/customer_invoices/cash_discounts`
|
||||
|
||||
.. _l10n_us/writing-checks:
|
||||
|
||||
Writing checks
|
||||
==============
|
||||
|
||||
Using checks is still a common payment practice in the US. Be sure the *US Checks Layout*
|
||||
(`l10n_us_check_printing`) module for the US localization is :ref:`installed <general/install>`.
|
||||
|
||||
To enable check printing from Odoo, navigate to :menuselection:`Accounting --> Configuration -->
|
||||
Settings` and find the :guilabel:`Vendor Payments` section. From here, tick the :guilabel:`Checks`
|
||||
checkbox to reveal several fields for check configuration.
|
||||
|
||||
Select a :guilabel:`Check Layout` from the drop-down menu:
|
||||
|
||||
- :guilabel:`Print Check (Top) - US`
|
||||
- :guilabel:`Print Check (Middle) - US`
|
||||
- :guilabel:`Print Check (Bottom) - US`
|
||||
|
||||
Next, choose whether or not to enable the :guilabel:`Multi-Pages Check Stub` checkbox.
|
||||
|
||||
Optionally set a :guilabel:`Check Top Margin` and :guilabel:`Check Left Margin`, if required.
|
||||
|
||||
Once all check configurations are complete, :guilabel:`Save` the settings.
|
||||
|
||||
.. tip::
|
||||
Some of the check formats may require pre-printed paper from a third party vendor,
|
||||
https://checkdepot.net/collections/odoo-checks is recommended.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../accounting/payments/pay_checks`
|
||||
|
||||
.. _l10n_us/payroll:
|
||||
|
||||
Payroll
|
||||
=======
|
||||
|
||||
The *Payroll* application is responsible for calculating an employee's pay, taking into account all
|
||||
work, vacation, and sick time, benefits, and deductions. The *Payroll* app pulls information from
|
||||
the *Attendances*, *Timesheets*, *Time Off*, *Employees* and *Expenses* applications, to calculate
|
||||
the worked hours and compensation for each employee.
|
||||
|
||||
When using an external payroll provider, such as *ADP*, it is necessary to export the various
|
||||
payroll-related data, such as work entries, repayment of expenses, taxes, commissions, and any other
|
||||
relevant data, so the data can be uploaded into the payroll provider, who then issues the actual
|
||||
paychecks or directly deposits the funds into an employee's bank account.
|
||||
|
||||
In order to export the payroll data, the work entries must first be validated and correct. Refer to
|
||||
the :doc:`work entries <../../hr/payroll/work_entries>` documentation for more information
|
||||
regarding validating work entries.
|
||||
|
||||
Once work entries are validated, the information can be :ref:`exported to ADP <l10n_us/adp>`.
|
||||
|
||||
After payments have been issued to employees, payslips can be processed into batches, validated, and
|
||||
posted to the corresponding accounting journals to keep all financial records in Odoo current.
|
||||
|
||||
Required information
|
||||
--------------------
|
||||
|
||||
It is important to have the *Employees* application installed, and all employee information
|
||||
populated. Several fields in both the :ref:`employee records <l10n_us/payroll-employee-records>`, as
|
||||
well as in an :ref:`employee contracts <l10n_us/payroll-employee-contracts>`, are necessary to
|
||||
properly process the employee's pay. Ensure the following fields are filled out in their respective
|
||||
places.
|
||||
|
||||
.. _l10n_us/payroll-employee-records:
|
||||
|
||||
Employee records
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
In each employee record, there is various information the *Payroll* application requires to properly
|
||||
process payslips, including various banking, tax, and work information.
|
||||
|
||||
Navigate to the :menuselection:`Employees app` and select an employee record to view the sections of
|
||||
the employee form that directly affect *Payroll*:
|
||||
|
||||
- :guilabel:`Work Information` tab:
|
||||
|
||||
- :guilabel:`Work Address`: indicates where the employee is located, including the state, which
|
||||
affects the tax calculations.
|
||||
- :guilabel:`Working Hours`: determines how pay is calculated, and determines if an employee earns
|
||||
overtime.
|
||||
|
||||
- :guilabel:`Private Information` tab:
|
||||
|
||||
- :guilabel:`SSN No`: the last four digits of the employee's Social Security Number (SSN) appears
|
||||
on payslips.
|
||||
- :guilabel:`Bank Account Number`: the bank account associated with the NACHA payment file.
|
||||
|
||||
- :guilabel:`HR Settings` tab:
|
||||
|
||||
- :guilabel:`Federal Tax Filing Status`: the tax status an employee uses for Payroll tax
|
||||
calculations, which can be different from their state status.
|
||||
- :guilabel:`State Tax Filing Status`: the tax status an employee uses for their state portion of
|
||||
the Payroll tax calculation.
|
||||
- :guilabel:`W-2 Form`: a US tax form indicating the summary of wages, taxes, and benefits paid to
|
||||
an employee during a tax period (typically one year).
|
||||
- :guilabel:`W-4 Form`: an IRS form that helps outline the amount of federal taxes to withhold for
|
||||
an employee, which is paid to the IRS by the company.
|
||||
|
||||
.. _l10n_us/payroll-employee-contracts:
|
||||
|
||||
Employee contracts
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Additionally, there is information that is found in an employee contract that also affects the
|
||||
*Payroll* application.
|
||||
|
||||
Navigate to the :menuselection:`Employees app --> Employees --> Contracts` and select a contract
|
||||
record to view the sections of a contract that directly affect *Payroll*:
|
||||
|
||||
- :guilabel:`General Information`:
|
||||
|
||||
- :guilabel:`Salary Structure Type: United States: Employee`: defines when the employee is paid,
|
||||
their working schedule, and the work entry type.
|
||||
- :guilabel:`Work Entry source`: determines how work entries are calculated.
|
||||
|
||||
- :guilabel:`Salary Information` tab:
|
||||
|
||||
- :guilabel:`SSN No`: the last four digits of the employee's Social Security Number (SSN) appears
|
||||
on payslips.
|
||||
- :guilabel:`Wage type`: determines how the employee is paid, wether a Fixed wage (salary) or
|
||||
Hourly wage.
|
||||
- :guilabel:`Schedule Pay`: defines how often the employee is paid, either :guilabel:`Annually`,
|
||||
:guilabel:`Semi-annually`, :guilabel:`Quarterly`, :guilabel:`Bi-monthly`, :guilabel:`Monthly`,
|
||||
:guilabel:`Semi-monthly`, :guilabel:`Bi-weekly`, :guilabel:`Weekly`, or :guilabel:`Daily`. In
|
||||
the US, Semi-monthly (24 payments a year) or bi-weekly (26 payments a year) are the most common.
|
||||
- :guilabel:`Wage, Yearly, and Monthly cost`: used to show the total cost of an employee. It is
|
||||
recommended to populate the :guilabel:`Yearly` wage first, as it auto-populates the other
|
||||
fields.
|
||||
- :guilabel:`Pre-tax benefits`: populate this section according to the employee's selections.
|
||||
Pre-tax benefits decrease the gross wage, which lowers the base amount that is taxed. These are
|
||||
displayed at the beginning of the payslip.
|
||||
- :guilabel:`Post-tax benefits`: these benefits are deductions made *after* taxes are calculated.
|
||||
These appear towards the end of the payslip before the net amount is displayed.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Employees documentation <../../hr/employees/new_employee>`
|
||||
|
||||
.. _l10n_us/adp:
|
||||
|
||||
Export work entries to ADP
|
||||
--------------------------
|
||||
|
||||
Requirements
|
||||
~~~~~~~~~~~~
|
||||
|
||||
In order to create a report that can be uploaded to ADP, there are some initial configuration steps
|
||||
that must be completed first.
|
||||
|
||||
First, ensure the *United States - Payroll - Export to ADP* (`l10n_us_hr_payroll_adp`) module is
|
||||
:ref:`installed <general/install>`.
|
||||
|
||||
Then, the company **must** have an *ADP Code* entered in the company settings. To do so, navigate
|
||||
to :menuselection:`Payroll app --> Configuration --> Settings`. Enter the :guilabel:`ADP Code` in
|
||||
the :guilabel:`US Localization` section.
|
||||
|
||||
Next, work entry types **must** have the correct ADP code listed in the *External Code* field for
|
||||
each work entry type that is being referenced.
|
||||
|
||||
Lastly, every employee **must** have an *ADP Code* entered on their employee form. To do so,
|
||||
navigate to :menuselection:`Employees app`, select an employee record, and open the :guilabel:`HR
|
||||
Settings` tab. Enter the :guilabel:`ADP Code` in the :guilabel:`ADP Information` section.
|
||||
|
||||
The :guilabel:`ADP Code` code is how ADP identifies that particular employee, and is typically a
|
||||
six-digit number.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`payroll/new-work-entry`
|
||||
- :doc:`../../hr/employees/new_employee`
|
||||
|
||||
Export data
|
||||
~~~~~~~~~~~
|
||||
|
||||
Once :doc:`work entries <../../hr/payroll/work_entries>` have been verified, the information can be
|
||||
exported to a CSV file, which can then be uploaded into ADP.
|
||||
|
||||
To export the data, navigate to :menuselection:`Payroll app --> Reporting --> United States: ADP
|
||||
Export`, then click :guilabel:`New`. Next, enter the :guilabel:`Start Date` and :guilabel:`End Date`
|
||||
for the work entries using the calendar pop-over.
|
||||
|
||||
Then, enter a :guilabel:`Batch ID` in the corresponding field. The recommendation for this field is
|
||||
to enter the date in a `YY-MM-DD` format, followed by any other characters to distinguish that
|
||||
specific batch, such as a department name, or any other defining characteristics for the batch.
|
||||
|
||||
Enter a :guilabel:`Batch Description` in the corresponding field. This should be short and
|
||||
descriptive, but distinct from the :guilabel:`Batch Name`.
|
||||
|
||||
Ensure the correct company populates the :guilabel:`Company` field. Change the selected company with
|
||||
the drop-down menu, if needed.
|
||||
|
||||
Lastly, add the employee's work entry information to the list. Click :guilabel:`Add a line` and an
|
||||
:guilabel:`Add: Employee` pop-up window loads. The list can be :doc:`filtered
|
||||
<../../essentials/search>` to more easily find the employees to add to the list.
|
||||
|
||||
.. tip::
|
||||
Process the data export in multiple groups instead of in one large group that contains all
|
||||
employees. This helps to meaningfully differentiate the batches and makes processing more
|
||||
tenable, overall. The most common ways to group employees is by department, or by wage type
|
||||
(hourly or salaried).
|
||||
|
||||
Select the employees to add to the list by ticking the box to the left of their name. Once all
|
||||
desired employees have been selected, click the :guilabel:`Select` button in the lower-left corner,
|
||||
and the employees appear in the list.
|
||||
|
||||
To create the CSV file, click the :guilabel:`Generate` button in the top-left corner.
|
||||
|
||||
.. _l10n_us/ach-electronic-transfers:
|
||||
|
||||
ACH - electronic transfers
|
||||
==========================
|
||||
|
||||
Automated Clearing House (ACH) payments are a modern way to transfer funds electronically between
|
||||
bank accounts, replacing traditional paper-based methods. |ACH| payments are commonly used for
|
||||
direct deposits, bill payments, and business transactions.
|
||||
|
||||
Receive ACH payments: payment provider integration
|
||||
--------------------------------------------------
|
||||
|
||||
|ACH| payments are supported by *Authorize.net* and *Stripe* payment integrations in Odoo.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Setting up Authorize.net for ACH payments (Odoo) <authorize/ach_payments>`
|
||||
- `Authorize.net's ACH payment processing for small businesses documentation
|
||||
<https://www.authorize.net/resources/blog/2021/ach-payments-for-small-businesses.html>`_
|
||||
- :doc:`Setting up Stripe for ACH payments (Odoo) <../payment_providers/stripe>`
|
||||
- `Stripe's ACH Direct Debit documentation <https://docs.stripe.com/payments/ach-debit>`_
|
||||
|
||||
.. _l10n_us/nacha:
|
||||
|
||||
Send payments: NACHA files
|
||||
--------------------------
|
||||
|
||||
Odoo can generate a National Automated Clearing House Association (NACHA) compatible |ACH| file to
|
||||
send to a company's bank. For each individual *Bank* journal that the company wishes to pay vendors
|
||||
with, a |NACHA| configuration section needs to be filled out on the Odoo database.
|
||||
|
||||
Configuration
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
First, navigate to the :menuselection:`Accounting app --> Configuration --> Journals`. Open the
|
||||
bank journal and click into the :guilabel:`Outgoing Payments` tab.
|
||||
|
||||
.. image:: united_states/us-l10n-nacha-settings.png
|
||||
:align: center
|
||||
:alt: NACHA (National Automated Clearing House Association) configuration settings on Odoo.
|
||||
|
||||
.. note::
|
||||
The following |NACHA| configuration information is normally provided by the company's financial
|
||||
institution once they have been approved to send payments via their account.
|
||||
|
||||
Under the section labeled, :guilabel:`NACHA configuration` are the fields required to generate a
|
||||
|NACHA| compatible |ACH| file to send to a company's bank. First, enter the routing number of the
|
||||
financial institution in the field labeled, :guilabel:`Immediate Destination`. This information is
|
||||
widely available on the Internet and generally varies by bank location. This number is usually
|
||||
provided during the initial account setup.
|
||||
|
||||
Next, enter the registered name of the financial institution in the field called,
|
||||
:guilabel:`Destination`. This information will be provided by the bank or credit union.
|
||||
|
||||
Following the :guilabel:`Destination` field is the :guilabel:`Immediate Origin` field. Enter the
|
||||
9-digit company ID or Employer Identification Number (EIN) into this field. This information is
|
||||
provided by the financial institution.
|
||||
|
||||
Next, enter the :guilabel:`Company Identification` number, which is a 10-digit number made from
|
||||
combining the 9-digit company ID or Employer Identification Number (EIN), along with an additional
|
||||
number at the start of the sequence. This number is often a `1`. Check with the financial
|
||||
institution should this first number differ to verify that it is correct, as this number is provided
|
||||
for |ACH| approved accounts.
|
||||
|
||||
Enter the :guilabel:`Originating DFI Identification` number next, which should contain an assigned
|
||||
8-digit number from the financial institution.
|
||||
|
||||
.. important::
|
||||
Enter the numerical values in this section *exactly* as the company's financial institution
|
||||
(e.g. bank or credit union) has provided them, otherwise risk failing a successful |NACHA|
|
||||
configuration in Odoo.
|
||||
|
||||
.. image:: united_states/us-l10n-nacha-dropdown.png
|
||||
:align: center
|
||||
:alt: NACHA settings with the standard entry class code drop-down menu highlighted.
|
||||
|
||||
There are two options for the next field: :guilabel:`Standard Entry Class Code`. Select the
|
||||
drop-down menu to the right of the field and pick either :guilabel:`Corporate Credit or Debit (CCD)`
|
||||
or :guilabel:`Prearranged Payment and Deposit (PPD)`. Again, this information will be provided by
|
||||
the financial institution. By default :guilabel:`Corporate Credit or Debit (CCD)` is selected.
|
||||
|
||||
Finally, the last option is for :guilabel:`Generated Balanced Files`. Tick the checkbox to the right
|
||||
of the field to enable :guilabel:`Generated Balanced Files`. Consult the company's accountant or
|
||||
financial advisor to make an informed decision for this field.
|
||||
|
||||
Manually save the configuration by clicking the :icon:`fa-cloud-upload` :guilabel:`(cloud upload)`
|
||||
icon, or navigate away from this screen to auto-save. The configuration is now complete.
|
||||
|
||||
.. _l10n_us/batch-payment:
|
||||
|
||||
Create batch payment
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Now, record each payment in Odoo using the |NACHA| payment method.
|
||||
|
||||
.. seealso::
|
||||
:ref:`Register Payments in Odoo <payments/register>`
|
||||
|
||||
.. important::
|
||||
Be aware of the cut-off time for same-day payments. Either the file needs to have a future date
|
||||
associated with each payment or the file needs to be sent prior to the cut-off, if the dates
|
||||
included in it match today's date. Consult the financial institution for the exact cut-off time
|
||||
for their processing of same-day payments.
|
||||
|
||||
Once all the payments to be included in the |NACHA| |ACH| file have been made, a batch payment needs
|
||||
to be made from the :icon:`fa-cog` :guilabel:`Action` menu.
|
||||
|
||||
To create the batch payments, access the payments page, by navigating to :menuselection:`Accounting
|
||||
--> Vendors --> Payments`. Select all the payments that should be included in the |NACHA| |ACH|
|
||||
file, by ticking the checkboxes to the far-left of the rows.
|
||||
|
||||
.. image:: united_states/us-l10n-create-batch-payments.png
|
||||
:align: center
|
||||
:alt: On the payments screen, the action menu is highlighted with create a batch payment
|
||||
selected.
|
||||
|
||||
.. warning::
|
||||
All payments in the batch must share the same payment method.
|
||||
|
||||
Next, navigate to the batched payment (:menuselection:`Accounting --> Vendors --> Batch Payments`).
|
||||
Click into the payment just created and then click into the :guilabel:`Exported File` tab. The
|
||||
generated file is listed with the :guilabel:`Generation Date`. Click the :icon:`fa-download`
|
||||
:guilabel:`(download)` button to download the file.
|
||||
|
||||
.. image:: united_states/us-l10n-batch-file.png
|
||||
:align: center
|
||||
:alt: The exported file tab highlighted in the batch payment with the download circled.
|
||||
|
||||
If any adjustments need to be made, click the :guilabel:`Re-generate Export File` button to recreate
|
||||
a new |NACHA| |ACH| file.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../accounting/payments/batch`
|
||||
- :doc:`Europe's direct debiting <../accounting/payments/batch_sdd>`
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 19 KiB |
@@ -50,6 +50,8 @@ customer's card, but not charged yet.
|
||||
.. seealso::
|
||||
- :doc:`../payment_providers`
|
||||
|
||||
.. _authorize/ach_payments:
|
||||
|
||||
ACH payments (USA only)
|
||||
=======================
|
||||
|
||||
|
||||
@@ -12,8 +12,9 @@ Outgoing emails
|
||||
Email is not sent
|
||||
-----------------
|
||||
|
||||
The first indicator showing that an email has not been sent is the presence of a red :guilabel:`✉️
|
||||
(envelope)` icon, next to the date and time of the message, located in the chatter.
|
||||
The first indicator showing that an email has not been sent is the presence of a red
|
||||
:icon:`fa-envelope` :guilabel:`(envelope)` icon, next to the date and time of the message, located
|
||||
in the chatter.
|
||||
|
||||
.. image:: faq/red-envelop.png
|
||||
:align: center
|
||||
@@ -42,13 +43,18 @@ Odoo's email servers from being blacklisted.
|
||||
Here are the default limits for new databases:
|
||||
|
||||
- **200 emails per day** for Odoo Online and Odoo.sh databases with an active subscription.
|
||||
- **20 emails per day** for one-app free databases.
|
||||
- **50 emails per day** for trial databases.
|
||||
- In the case of migration, the daily limit might be reset to 50 emails per day.
|
||||
- **50 emails per day** for one-app free and trial databases.
|
||||
|
||||
.. important::
|
||||
In a one-app free database, if the *Email Marketing* app is installed, the email limit is **20
|
||||
emails per day**.
|
||||
|
||||
.. note::
|
||||
In the case of migration, the daily limit might be reset to 50 emails per day.
|
||||
|
||||
If the daily limit is reached:
|
||||
|
||||
- Contact the Odoo support team, who may increase the daily limit depending on the following
|
||||
- Contact the Odoo support team, who may increase the daily limit, depending on the following
|
||||
factors:
|
||||
|
||||
#. How many users are in the database?
|
||||
@@ -72,7 +78,7 @@ If the daily limit is reached:
|
||||
SMTP error
|
||||
**********
|
||||
|
||||
Simple Mail Transport Protocol (SMTP) error messages explain why an email wasn't transmitted
|
||||
*Simple Mail Transport Protocol (SMTP)* error messages explain why an email was not transmitted
|
||||
successfully. :abbr:`SMTP (Simple Mail Transport Protocol)` is a protocol to describe the email
|
||||
structure, and transmits data from messages over the Internet. The error messages generated by email
|
||||
services are helpful tools to diagnose and troubleshoot email problems.
|
||||
@@ -83,9 +89,9 @@ services are helpful tools to diagnose and troubleshoot email problems.
|
||||
mta4471.mail.bf1.yahoo.com --- Below this line is a copy of the message.`
|
||||
|
||||
The debug menu can be used to investigate SMTP sending issues from a database. To access the menu,
|
||||
:ref:`developer mode <developer-mode>` must be activated. Once activated, navigate to the
|
||||
:menuselection:`Debug Menu` in the top right of the menu bar (the :guilabel:`🐞 (bug)` icon),
|
||||
:menuselection:`Debug Menu --> Manage Messages`
|
||||
:ref:`developer mode <developer-mode>` **must** be activated. Once activated, navigate to the
|
||||
:menuselection:`Debug Menu` in the top-right of the menu bar (the :icon:`fa-bug` :guilabel:`(bug)`
|
||||
icon), and select :menuselection:`Debug Menu --> Manage Messages` from the resulting drop-down menu.
|
||||
|
||||
The :guilabel:`Manage Messages` menu opens a list of all the messages sent in a particular record.
|
||||
Within each message there is information on sending, including the type, and subtype, of the
|
||||
@@ -128,11 +134,10 @@ Email is sent late
|
||||
Email campaigns send at a scheduled time, using a delay pre-programed in the database. Odoo uses a
|
||||
delayed task to send emails that are considered "not urgent" (newsletter formats, such as: mass
|
||||
mailing, marketing automation, and events). The system utility **cron** can be used to schedule
|
||||
programs to run automatically at predetermined intervals. Odoo uses that policy in order to avoid
|
||||
cluttering the mail servers and, instead, prioritizes individual communication. This **cron** is
|
||||
called :guilabel:`Mail: Email Queue Manager`, and can be accessed in :ref:`developer mode
|
||||
<developer-mode>` by going to :menuselection:`Settings app --> Technical menu --> Automation -->
|
||||
Scheduled Actions`.
|
||||
programs to run automatically at predetermined intervals. Odoo uses that policy to avoid cluttering
|
||||
the mail servers and, instead, prioritizes individual communication. This **cron** is called
|
||||
:guilabel:`Mail: Email Queue Manager`, and can be accessed in :ref:`developer mode <developer-mode>`
|
||||
by going to :menuselection:`Settings app --> Technical menu --> Automation: Scheduled Actions`.
|
||||
|
||||
.. image:: faq/email-scheduled-later.png
|
||||
:align: center
|
||||
@@ -154,9 +159,9 @@ invoices, purchase orders, etc.) are sent immediately.
|
||||
Incoming emails
|
||||
===============
|
||||
|
||||
When there is an issue with incoming emails, there might not be an indication, per se, in Odoo. It
|
||||
is the sending email client, who tries to contact a database, that will get a bounce-back message
|
||||
(most of the time a :guilabel:`550: mailbox unavailable` error message).
|
||||
When there is an issue with incoming emails, there might not be an indication in Odoo. It is the
|
||||
sending email client, who tries to contact a database, that gets a bounce-back message (most of the
|
||||
time it is a :guilabel:`550: mailbox unavailable` error message).
|
||||
|
||||
Email is not received
|
||||
---------------------
|
||||
@@ -229,5 +234,5 @@ of what can be helpful when reaching out to the Odoo Support team about an issue
|
||||
.. note::
|
||||
The bounce system parameter needs to be set in the technical settings in order for the database
|
||||
to correctly receive bounce messages. To access this setting, go to :menuselection:`Settings app
|
||||
--> Technical menu --> Parameters --> System Parameters`. Then select the parameter name
|
||||
:guilabel:`mail.bounce.alias` and set the value to `bounce` if it isn't already set.
|
||||
--> Technical menu --> Parameters: System Parameters`. Then, select the parameter name
|
||||
:guilabel:`mail.bounce.alias` and set the value to `bounce` if it is not already set.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
:show-content:
|
||||
|
||||
==========
|
||||
Appraisals
|
||||
==========
|
||||
@@ -168,29 +170,6 @@ document.
|
||||
.. note::
|
||||
In previous versions of Odoo, this section was referred to as :guilabel:`Surveys`.
|
||||
|
||||
Tags
|
||||
----
|
||||
|
||||
An additional feature of the *Appraisals* application is the ability to set :ref:`goals
|
||||
<appraisals/goals>` for employees. On each goal form, there is a field to add tags. The available
|
||||
tags are pulled from a list that is configured from the settings.
|
||||
|
||||
To view a list of all existing goal tags, and to create new tags, go to the :guilabel:`Goal Tags`
|
||||
page, by navigating to :menuselection:`Appraisals application --> Configuration --> Tags`.
|
||||
|
||||
All currently configured tags are presented in a list view.
|
||||
|
||||
The *Appraisals* application does **not** have any pre-configured tags, so all tags need to be added
|
||||
from this list, or directly from the goal form.
|
||||
|
||||
To create a new tag from the :guilabel:`Goal Tags` page, click the :guilabel:`New` button, and a
|
||||
blank line appears.
|
||||
|
||||
Enter the name of the tag on the line. Then, press the enter key to save the tag, and create a new
|
||||
blank line. Repeat this for all tags that need to be added.
|
||||
|
||||
The list of tags is automatically arranged in alphabetical order.
|
||||
|
||||
Appraisals
|
||||
==========
|
||||
|
||||
@@ -455,137 +434,14 @@ Next, click on the :guilabel:`Meeting` smart button, and the calendar loads. Fol
|
||||
directions above to create the meeting.
|
||||
|
||||
.. note::
|
||||
If no meetings are scheduled, the :guilabel:`Meeting` smart button says :guilabel:`No Meeting`.
|
||||
If no meetings are scheduled, the :guilabel:`Meeting` smart button reads :guilabel:`No Meeting`.
|
||||
|
||||
.. _appraisals/goals:
|
||||
.. seealso::
|
||||
- :doc:`appraisals/goals`
|
||||
- :doc:`appraisals/reporting`
|
||||
|
||||
Goals
|
||||
=====
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
The ability to set goals for employees to work toward is an important feature of Odoo *Appraisals*.
|
||||
Goals are typically set during an appraisal, so the employee knows what they need to work toward
|
||||
before their next appraisal.
|
||||
|
||||
To view all goals, navigate to :menuselection:`Appraisals application --> Goals`. This presents all
|
||||
the goals for every employee, in a default Kanban view.
|
||||
|
||||
Each goal card contains the following information:
|
||||
|
||||
- :guilabel:`Skill`: the name of the goal.
|
||||
- :guilabel:`Name`: the employee the goal is assigned to.
|
||||
- :guilabel:`Deadline`: the due date for the goal.
|
||||
- :guilabel:`Progress`: the percentage of competency set for the goal.
|
||||
- :guilabel:`Employee`: the profile icon of the employee the goal is assigned to.
|
||||
|
||||
If a goal is completed, a :guilabel:`Done` banner appears in the top-right corner of the goal card.
|
||||
|
||||
.. image:: appraisals/goals.png
|
||||
:align: center
|
||||
:alt: The goals Kanban view, with nine goal cards.
|
||||
|
||||
.. note::
|
||||
Every individual goal requires its own entry for each employee. If employees have the same goal,
|
||||
a goal card for each employee appears on the list. For example, if both Bob and Sara have the
|
||||
same goal of `Typing`, two cards appear in the Kanban view: one `Typing` goal for Bob, and
|
||||
another `Typing` goal for Sara.
|
||||
|
||||
New goal
|
||||
--------
|
||||
|
||||
To create a new goal, navigate to :menuselection:`Appraisals application --> Goals`, and click
|
||||
:guilabel:`New` to open a blank goal form.
|
||||
|
||||
Enter the information on the card. The information requested is all the same information that
|
||||
appears on the :ref:`goal card <appraisals/goals>` in the Kanban view, with the addition of a
|
||||
:guilabel:`Tags` field and a :guilabel:`Description` tab.
|
||||
|
||||
The current user populates the :guilabel:`Employee` field by default, and the :guilabel:`Manager`
|
||||
field populates with the manager set on the employee profile.
|
||||
|
||||
Make any necessary changes to the form, and add any notes that might be useful to clarify the goal
|
||||
in the :guilabel:`Description` tab.
|
||||
|
||||
.. image:: appraisals/new-goal.png
|
||||
:align: center
|
||||
:alt: A goal form filled out for a Python skill, set to 50% proficiency.
|
||||
|
||||
Completed goals
|
||||
---------------
|
||||
|
||||
When a goal has been met, it is important to update the record. A goal can be marked as `Done` in
|
||||
one of two ways: from the main :guilabel:`Goals` dashboard, or from the individual goal card.
|
||||
|
||||
To mark a goal as `Done` from the main :guilabel:`Goals` dashboard, click on the :guilabel:`⋮ (three
|
||||
dots)` icon in the top-right of a goal card.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`⋮ (three dots)` icon **only** appears when the mouse hovers over the corner of a
|
||||
goal card.
|
||||
|
||||
Then, click :guilabel:`Mark as Done` from the resulting drop-down menu. A green :guilabel:`Done`
|
||||
banner appears in the top-right corner of the goal card.
|
||||
|
||||
To mark a goal as `Done` from the goal card itself, click on a goal card to open that goal's form.
|
||||
Then, click the :guilabel:`Mark as Done` button in the top-left of the form. When clicked, a green
|
||||
:guilabel:`Done` banner appears in the top-right corner of the goal form.
|
||||
|
||||
Reporting
|
||||
=========
|
||||
|
||||
The *Appraisals* application tracks two metrics across two different reports: an :ref:`appraisal
|
||||
analysis <appraisals/analysis>`, and a :ref:`skills evolution <appraisals/skills-report>`.
|
||||
|
||||
.. _appraisals/analysis:
|
||||
|
||||
Appraisal analysis
|
||||
------------------
|
||||
|
||||
To access the *Appraisal Analysis* report, navigate to :menuselection:`Appraisals application -->
|
||||
Reporting --> Appraisal Analysis`. This displays a report of all the appraisals in the database,
|
||||
highlighted in different colors to represent their status.
|
||||
|
||||
Appraisals in yellow are completed, appraisals in orange are in-progress (the appraisal is
|
||||
confirmed, but not completed), and appraisals in gray are scheduled (according to the
|
||||
:ref:`appraisals/appraisal-plan`), but have not been confirmed yet.
|
||||
|
||||
The report displays the whole current year, by default, grouped by department.
|
||||
|
||||
To change the calendar view presented, change the date settings in the top-left of the report. The
|
||||
options to display are :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, and :guilabel:`Year`.
|
||||
Use the arrows to move forward or backward in time.
|
||||
|
||||
At any point, click the :guilabel:`Today` button to present the calendar to include today's date in
|
||||
the view.
|
||||
|
||||
The report can have other filters and groupings set in the :guilabel:`Search...` bar at the top.
|
||||
|
||||
.. image:: appraisals/analysis.png
|
||||
:align: center
|
||||
:alt: A report showing all the appraisals for the Appraisal Analysis report.
|
||||
|
||||
.. _appraisals/skills-report:
|
||||
|
||||
Skills evolution
|
||||
----------------
|
||||
|
||||
To access the *Skills Evolution* report, navigate to :menuselection:`Appraisals application -->
|
||||
Reporting --> Skills Evolution`. This displays a report of all skills, grouped by employee.
|
||||
|
||||
All the lines of the report are collapsed, by default. To view the details of a line, click on a
|
||||
line to expand the data.
|
||||
|
||||
Each skill has the following information listed:
|
||||
|
||||
- :guilabel:`Employee`: name of the employee.
|
||||
- :guilabel:`Skill Type`: the category the skill falls under.
|
||||
- :guilabel:`Skill`: the specific, individual skill.
|
||||
- :guilabel:`Previous Skill Level`: the level the employee had previously achieved for the skill.
|
||||
- :guilabel:`Previous Skill Progress`: the previous percentage of competency achieved for the skill
|
||||
(based on the :guilabel:`Skill Level`).
|
||||
- :guilabel:`Current Skill Level`: the current level the employee has achieved for the skill.
|
||||
- :guilabel:`Current Skill Progress`: the current percentage of competency achieved for the skill.
|
||||
- :guilabel:`Justification`: any notes entered on the skill explaining the progress.
|
||||
|
||||
.. image:: appraisals/skills-report.png
|
||||
:align: center
|
||||
:alt: A report showing all the skills grouped by employee.
|
||||
appraisals/goals
|
||||
appraisals/reporting
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
=====
|
||||
Goals
|
||||
=====
|
||||
|
||||
The Odoo *Appraisals* application allows managers to set goals for their employees. That way,
|
||||
employees know what to work toward before their next review.
|
||||
|
||||
To view all goals, navigate to :menuselection:`Appraisals app --> Goals`. This presents all the
|
||||
goals for every employee, in a default Kanban view.
|
||||
|
||||
.. _appraisals/goal-card:
|
||||
|
||||
Each goal card contains the following information:
|
||||
|
||||
- :guilabel:`Goal`: the name of the goal.
|
||||
- :guilabel:`Employee`: the employee the goal is assigned to.
|
||||
- :icon:`fa-clock-o` :guilabel:`(clock)` icon: displays the corresponding :doc:`activity icon
|
||||
<../../essentials/activities>` for the record. If no activities are scheduled, the default icon is
|
||||
the :icon:`fa-clock-o` :guilabel:`(clock)`. If any activities have been scheduled, the icon
|
||||
represents the activity scheduled soonest.
|
||||
- :guilabel:`Deadline`: the due date for the goal.
|
||||
- :guilabel:`Progress`: the percentage of competency set for the goal. The options are
|
||||
:guilabel:`0%`, :guilabel:`25%`, :guilabel:`50%`, :guilabel:`75%`, or :guilabel:`100%`.
|
||||
- :guilabel:`Employee Icon`: the profile icon of the employee the goal is assigned to.
|
||||
|
||||
If a goal is completed, a :guilabel:`Done` banner appears in the top-right corner of the goal card.
|
||||
|
||||
.. image:: goals/goals.png
|
||||
:align: center
|
||||
:alt: The goals Kanban view, with nine goal cards.
|
||||
|
||||
.. note::
|
||||
Every individual goal requires its own record for each employee. If multiple employees have the
|
||||
same goal, a goal card for each employee appears on the list.
|
||||
|
||||
For example, if Bob and Sara have the same goal of `Typing`, two cards appear in the Kanban view:
|
||||
one `Typing` goal for Bob, and another `Typing` goal for Sara.
|
||||
|
||||
New goal
|
||||
========
|
||||
|
||||
To create a new goal, navigate to :menuselection:`Appraisals app --> Goals`, and click
|
||||
:guilabel:`New` top-left corner to open a blank goal form.
|
||||
|
||||
Input the :guilabel:`Goal`, :guilabel:`Employee`, :guilabel:`Progress`, and :guilabel:`Deadline`,
|
||||
information on the goal card, as discussed in the :ref:`goal card <appraisals/goal-card>` section of
|
||||
this document.
|
||||
|
||||
The information requested is all the same information that appears on the goal card in the Kanban
|
||||
view, with the addition of a :guilabel:`Tags` field and a :guilabel:`Description` tab.
|
||||
|
||||
.. tip::
|
||||
The *Appraisals* application does **not** have any pre-configured tags, so all tags need to be
|
||||
added. To add a tag, enter the name of the tag on the line, then click :guilabel:`Create
|
||||
"(tag)"`. Repeat this for all tags that need to be added.
|
||||
|
||||
The current user populates the :guilabel:`Employee` field, by default, and the :guilabel:`Manager`
|
||||
field populates with the manager set on the employee profile.
|
||||
|
||||
Make any necessary changes to the form, and add any notes that might be useful to clarify the goal
|
||||
in the :guilabel:`Description` tab.
|
||||
|
||||
.. image:: goals/new-goal.png
|
||||
:align: center
|
||||
:alt: A goal form filled out for a Python skill, set to 50% proficiency.
|
||||
|
||||
Completed goals
|
||||
===============
|
||||
|
||||
When a goal has been met, it is important to update the record. A goal can be marked as `Done` in
|
||||
one of two ways: from the main :guilabel:`Goals` dashboard, or from the individual goal card.
|
||||
|
||||
To mark a goal as `Done` from the main :guilabel:`Goals` dashboard, click on the
|
||||
:icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` icon in the top-right of a goal card.
|
||||
|
||||
.. note::
|
||||
The :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` icon **only** appears when the mouse
|
||||
hovers over the top-right corner of a goal card.
|
||||
|
||||
Then, click :guilabel:`Mark as Done` from the resulting drop-down menu. A green :guilabel:`Done`
|
||||
banner appears in the top-right corner of the goal card.
|
||||
|
||||
To mark a goal as `Done` from the goal card itself, click on a goal card to open that goal's form.
|
||||
Then, click the :guilabel:`Mark as Done` button in the top-left of the form. When clicked, a green
|
||||
:guilabel:`Done` banner appears in the top-right corner of the goal form.
|
||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,130 @@
|
||||
=========
|
||||
Reporting
|
||||
=========
|
||||
|
||||
In Odoo's *Appraisals* app, two metrics are tracked as appraisals are completed: an :ref:`appraisal
|
||||
analysis <appraisals/analysis-report>`, and a :ref:`skills evolution <appraisals/skills-report>`.
|
||||
|
||||
.. _appraisals/analysis-report:
|
||||
|
||||
Appraisal analysis
|
||||
------------------
|
||||
|
||||
To access the *Appraisal Analysis* report, navigate to :menuselection:`Appraisals app --> Reporting
|
||||
--> Appraisal Analysis`.
|
||||
|
||||
On the :guilabel:`Appraisal Analysis` page, there is a report of all the appraisals in the database,
|
||||
highlighted in different colors to represent their status.
|
||||
|
||||
Appraisals in yellow are *Done*, appraisals in orange are in progress (the *Appraisal Sent*, but not
|
||||
completed), appraisals in red have been *Cancelled*, and appraisals in gray are scheduled *To Start*
|
||||
(according to the :ref:`appraisals/appraisal-plan`), but have not been confirmed yet.
|
||||
|
||||
The report displays the current year, in a default Gantt view, and is grouped by department.
|
||||
|
||||
To change the period of time that is presented by default, adjust the date settings in the top-left
|
||||
of the report. The options to display are :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, and
|
||||
:guilabel:`Year`. Use the arrows to move forward or backward in time.
|
||||
|
||||
At any point, click the :guilabel:`Today` button to have the Gantt view include today's date in the
|
||||
view.
|
||||
|
||||
The report can have other :ref:`filters <search/filters>` and :ref:`groupings <search/group>` set in
|
||||
the :guilabel:`Search...` bar at the top.
|
||||
|
||||
.. image:: reporting/analysis.png
|
||||
:align: center
|
||||
:alt: A report showing all the appraisals for the Appraisal Analysis report.
|
||||
|
||||
.. example::
|
||||
Appraisals that have been cancelled appear in red on the :guilabel:`Appraisal Analysis` report,
|
||||
but there is no preconfigured filter to show only cancelled appraisals.
|
||||
|
||||
To view only cancelled appraisals, click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon
|
||||
in the :guilabel:`Search...` bar.
|
||||
|
||||
Next, click :guilabel:`Add Custom Filter` in the :guilabel:`Filters` section, and a
|
||||
:guilabel:`Add Custom Filter` pop up window loads.
|
||||
|
||||
Using the drop-down menu, select :guilabel:`Status` for the first drop-down, then select
|
||||
:guilabel:`Cancelled` for the third drop-down field. Click the :guilabel:`Add` button, and only
|
||||
appraisals that have been cancelled appear.
|
||||
|
||||
.. image:: reporting/custom-filter.png
|
||||
:align: center
|
||||
:alt: The Custom Filter pop-up with the parameters set to only show cancelled appraisals.
|
||||
|
||||
.. _appraisals/skills-report:
|
||||
|
||||
Skills evolution
|
||||
----------------
|
||||
|
||||
To access the *Skills Evolution* report, navigate to :menuselection:`Appraisals app --> Reporting
|
||||
--> Skills Evolution`. The :guilabel:`Appraisal Skills Report` page displays a report of all skills,
|
||||
grouped by employee.
|
||||
|
||||
Skill levels are **only** updated after an appraisal is marked as done. Any skill level changes from
|
||||
any ongoing appraisals that have **not** been finalized are **not** included in this report.
|
||||
|
||||
All the lines of the report are collapsed, by default. To view the details of a line, click anywhere
|
||||
on a line to expand the data.
|
||||
|
||||
Each skill has the following information listed:
|
||||
|
||||
- :guilabel:`Employee`: name of the employee.
|
||||
- :guilabel:`Skill Type`: the category the skill falls under.
|
||||
- :guilabel:`Skill`: the specific, individual skill.
|
||||
- :guilabel:`Previous Skill Level`: the level the employee had previously achieved for the skill.
|
||||
- :guilabel:`Previous Skill Progress`: the previous percentage of competency achieved for the skill
|
||||
(based on the :guilabel:`Skill Level`).
|
||||
- :guilabel:`Current Skill Level`: the current level the employee has achieved for the skill.
|
||||
- :guilabel:`Current Skill Progress`: the current percentage of competency achieved for the skill.
|
||||
- :guilabel:`Justification`: any notes entered on the skill, explaining the progress.
|
||||
|
||||
The color of the skill text indicates any changes from the previous appraisal. Skill levels that
|
||||
have increased since the last appraisal appear in green as an *Improvement*, skill levels that have
|
||||
not changed appear in black as *No Change*, and skills that have regressed appear in red as
|
||||
*Regression*.
|
||||
|
||||
.. image:: reporting/skills-report.png
|
||||
:align: center
|
||||
:alt: A report showing all the skills grouped by employee.
|
||||
|
||||
The report can have other :ref:`filters <search/filters>` and :ref:`groupings <search/group>` set in
|
||||
the :guilabel:`Search...` bar at the top.
|
||||
|
||||
.. example::
|
||||
Since the :guilabel:`Appraisal Skills Report` organizes all skills by employee, it can be
|
||||
difficult to find employees with a specific skill at a specific level. To find these employees,
|
||||
a custom filter must be used.
|
||||
|
||||
To view only employees with an :guilabel:`Expert` level of the :guilabel:`Javascript` skill,
|
||||
first remove any active filters in the :guilabel:`Search...` bar.
|
||||
|
||||
Next, click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon in the :guilabel:`Search...`
|
||||
bar, then click :guilabel:`Add Custom Filter` in the :guilabel:`Filters` section to load an
|
||||
:guilabel:`Add Custom Filter` pop up window.
|
||||
|
||||
Using the drop-down menu, select :guilabel:`Skill` for the first drop-down, then select
|
||||
:guilabel:`Javascript` for the third drop-down field.
|
||||
|
||||
Next, click the :guilabel:`New Rule` button, and another line appears. In this second line,
|
||||
select :guilabel:`Current Skill Level` for the first drop-down, then select :guilabel:`Expert`
|
||||
for the third drop-down field.
|
||||
|
||||
After the :guilabel:`New Rule` button is clicked, the word :guilabel:`any` in the sentence
|
||||
:guilabel:`Match any of the following rules:` changes from plain text into a drop-down menu.
|
||||
Click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon after the word :guilabel:`any`, and
|
||||
select :guilabel:`all`.
|
||||
|
||||
Finally, click the :guilabel:`Add` button, and only employees that have an :guilabel:`Expert`
|
||||
level for the skill :guilabel:`Javascript` appear.
|
||||
|
||||
.. image:: reporting/javascript.png
|
||||
:align: center
|
||||
:alt: The Custom Filter pop-up with the parameters set to only show employees with expert
|
||||
level for the skill javascript.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Odoo essentials reporting <../../essentials/reporting>`
|
||||
- :doc:`../../essentials/search`
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 29 KiB |
@@ -4,11 +4,6 @@
|
||||
Attendances
|
||||
===========
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
attendances/hardware
|
||||
|
||||
Odoo's *Attendances* application functions as a time clock. Employees are able to check in and out
|
||||
of work using a dedicated device in kiosk mode, while users are also able to check in and out of
|
||||
work directly from the database. Managers can quickly see who is available at any given time, create
|
||||
@@ -20,28 +15,26 @@ checking out of work earlier than expected.
|
||||
Access rights
|
||||
=============
|
||||
|
||||
It is important to understand how the different access rights affect what users can access in the
|
||||
*Attendances* application.
|
||||
It is important to understand how the different access rights affect what options and features users
|
||||
can access in the *Attendances* application.
|
||||
|
||||
Every user in the database is always able to access their own information on the dashboard and can
|
||||
check in and out directly from the database. Access to all the other features is determined by
|
||||
access rights.
|
||||
Every user in the database is able to check in and out directly from the database, without needing
|
||||
access to the *Attendances* application. Additionally, all users can access their own attendance
|
||||
records from their employee form in the *Employees* app.
|
||||
|
||||
To see what access rights a user has, navigate to the :menuselection:`Settings application --> Users
|
||||
& Companies: Users`, and click on an individual user. The :guilabel:`Access Rights` tab is visible
|
||||
by default. Scroll down to the :guilabel:`Human Resources` section to see the setting. For the
|
||||
Access to both the *Attendances* application, and the various features within the application is
|
||||
determined by access rights.
|
||||
|
||||
To see what access rights a user has, navigate to the :menuselection:`Settings app --> Users &
|
||||
Companies: Users`, and click on an individual user. The :guilabel:`Access Rights` tab is visible by
|
||||
default. Scroll down to the :guilabel:`Human Resources` section to see the setting. For the
|
||||
:guilabel:`Attendances` field, the options are either to leave the field blank or select
|
||||
:guilabel:`Administrator`.
|
||||
|
||||
If the :guilabel:`Administrator` option is selected, the user has full access to the entire
|
||||
*Attendances* application, with no restrictions. They can view all employee attendance records,
|
||||
enter kiosk mode from the application, access all reporting metrics, and make modifications to the
|
||||
settings.
|
||||
|
||||
If left blank, the user can only view their own information on the *Attendances* application
|
||||
dashboard and can view their own personal attendance records under the reporting feature. All other
|
||||
attendance records are hidden from view on the report. There is no access to either the kiosk mode
|
||||
or the configuration menu.
|
||||
enter *Kiosk mMode* from the application, access all reporting metrics, and make modifications to
|
||||
the settings. If left blank, the user does **not** have access to the *Attendances* application.
|
||||
|
||||
.. _attendances/approvers:
|
||||
|
||||
@@ -158,92 +151,6 @@ time is not logged.
|
||||
activated, the extra hours can be :ref:`deducted from an approved time off request
|
||||
<time_off/deduct-extra-hours>`.
|
||||
|
||||
.. _attendances/check-in:
|
||||
|
||||
Check in and out via the database
|
||||
=================================
|
||||
|
||||
Odoo's *Attendances* application allows users who are logged into the database to check in and out,
|
||||
without needing to go into the *Attendances* application, or use a kiosk. For some smaller
|
||||
companies, where every employee is also a user, this feature may be useful.
|
||||
|
||||
A user can check in and out on the main database dashboard, as well as in any application. In the
|
||||
upper right corner of the top main menu, which is always visible regardless of what application the
|
||||
user is in, a :guilabel:`🔴 (red circle)` or :guilabel:`🟢 (green circle)` is visible. Click on the
|
||||
colored circle to reveal the attendance widget, enabling the user to check in and/or out.
|
||||
|
||||
.. image:: attendances/top-menu.png
|
||||
:align: center
|
||||
:alt: Top right main menu with check in button highlighted.
|
||||
|
||||
Check in
|
||||
--------
|
||||
|
||||
If the attendance widget circle is red, this indicates the user is not currently checked in. Click
|
||||
the :guilabel:`🔴 (red circle)` and the attendance widget appears, displaying a green
|
||||
:guilabel:`Check in ➡️` button.
|
||||
|
||||
.. image:: attendances/check-in.png
|
||||
:align: center
|
||||
:alt: Top right main menu with check in button highlighted.
|
||||
|
||||
When the user checks in from the database, the *Attendances* app logs the location details for the
|
||||
user, including the IP Address and GPS coordinates.
|
||||
|
||||
.. important::
|
||||
For the *Attendances* app to log the location details, the user must allow their computer to
|
||||
access their location information.
|
||||
|
||||
If the user has not checked in and out already during the current work day, this button is the only
|
||||
visible item in the widget. If the user has previously checked in and out, a :guilabel:`Total today`
|
||||
field appears above the button, and the total amount of time that has been logged for the day
|
||||
appears beneath that field, in an :guilabel:`HH:MM` (hours:minutes) format.
|
||||
|
||||
Click the :guilabel:`Check in ➡️` button to check in. The :guilabel:`🔴 (red circle)` in the top
|
||||
menu changes to green, and the widget changes appearance as well. The widget updates to reflect that
|
||||
the user has checked in, by changing the green :guilabel:`Check in ➡️` button to a yellow
|
||||
:guilabel:`Check out ➡️` button.
|
||||
|
||||
Click anywhere on the screen to close the attendance widget.
|
||||
|
||||
Check out
|
||||
---------
|
||||
|
||||
If the user is checking out for the first time, :guilabel:`Since HH:MM (AM/PM)` appears at the top
|
||||
of the widget, with the time the user checked in populating the time field. Beneath that line,
|
||||
:guilabel:`HH:MM` is displayed, indicating the hours and minutes that have elapsed since checking
|
||||
in. As time passes, this value is updated to reflect the hours and minutes that have passed since
|
||||
the user checked in.
|
||||
|
||||
If the user has previously checked in and out, additional fields are presented. A :guilabel:`Before
|
||||
HH:MM (AM/PM)` field appears in addition to the :guilabel:`Since HH:MM (AM/PM)` field. The time
|
||||
displayed in both of these fields are populated with the most recent check in time, and will match.
|
||||
Beneath the :guilabel:`Before HH:MM (AM/PM)` field, the previously logged hours are displayed, in an
|
||||
:guilabel:`HH:MM` (hours:minutes) format.
|
||||
|
||||
In addition, beneath both of these fields, a :guilabel:`Total today` field appears. This field is
|
||||
the sum of both the :guilabel:`Before HH:MM (AM/PM)` and :guilabel:`Since HH:MM (AM/PM)` fields, and
|
||||
is the total time that will be logged for the user, if they were to log out at that moment.
|
||||
|
||||
As time passes, both the :guilabel:`Since HH:MM (AM/PM)` and :guilabel:`Total today` fields are
|
||||
updated live. To check out, click the yellow :guilabel:`Check out ➡️` button. The attendance widget
|
||||
updates again, displaying the :guilabel:`Total today` field with the logged time, and the yellow
|
||||
:guilabel:`Check out ➡️` button changes to a green :guilabel:`Check in ➡️` button.
|
||||
|
||||
When the user checks out from the database, the *Attendances* app logs the location details for the
|
||||
user. This information is **only** logged if the user allows their computer to access this
|
||||
information.
|
||||
|
||||
.. image:: attendances/check-in-database-message.png
|
||||
:align: center
|
||||
:alt: The pop-up that appears when an employee checks in inside the database.
|
||||
|
||||
.. tip::
|
||||
There is no limit to the amount of times a user can check in and check out. Users are able to
|
||||
check in and out without any time elapsing (a value of 00:00). Each time an employee logs in and
|
||||
out, the information is stored and appears on the dashboard, including check ins and check outs
|
||||
with no time value.
|
||||
|
||||
.. _attendances/kiosk-mode-entry:
|
||||
|
||||
Kiosk mode
|
||||
@@ -548,3 +455,13 @@ button and a pop-up appears. Select the desired spreadsheet, and click :guilabel
|
||||
.. image:: attendances/reporting.png
|
||||
:align: center
|
||||
:alt: The default report view, with all the optional view buttons highlighted.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`attendances/check_in_check_out`
|
||||
- :doc:`attendances/hardware`
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
attendances/check_in_check_out
|
||||
attendances/hardware
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
================
|
||||
Check in and out
|
||||
================
|
||||
|
||||
Odoo's *Attendances* application allows users, who are logged into the database, to check in and
|
||||
out, without needing to go into the *Attendances* application, or use a kiosk. For smaller
|
||||
companies, where every employee is also a user, this feature may be useful.
|
||||
|
||||
A user can check in and/or out on the main database Odoo dashboard, or while inside any application.
|
||||
To do so, in the upper-right corner of the top main header menu, which is always visible regardless
|
||||
of what application the user is in, a :guilabel:`🔴 (red circle)` or :guilabel:`🟢 (green circle)`
|
||||
is visible. Click on the colored circle to reveal the attendance widget, enabling the user to check
|
||||
in and/or out.
|
||||
|
||||
.. image:: check_in_check_out/top-menu.png
|
||||
:align: center
|
||||
:alt: Top right main menu with check in button highlighted.
|
||||
|
||||
.. _attendances/check-in:
|
||||
|
||||
Check in
|
||||
========
|
||||
|
||||
If the attendance widget circle is red, this indicates the user is not currently checked in. Click
|
||||
the :guilabel:`🔴 (red circle)`, and the attendance widget appears, displaying a green
|
||||
:guilabel:`Check in` :icon:`fa-sign-in` button.
|
||||
|
||||
.. image:: check_in_check_out/check-in.png
|
||||
:align: center
|
||||
:alt: Top right main menu with check in button highlighted.
|
||||
|
||||
When the user checks in from the database, the *Attendances* app logs the location details for the
|
||||
user, including the IP Address and GPS coordinates.
|
||||
|
||||
.. important::
|
||||
For the *Attendances* app to log the location details, the user must allow their computer to
|
||||
access their location information.
|
||||
|
||||
If the user has not already checked in and out during the current work day, this button is the only
|
||||
visible item in the widget. If the user has previously checked in and out, a :guilabel:`Total today`
|
||||
field appears above the button, and the total amount of time that has been logged for the day
|
||||
appears in that field, in an :guilabel:`HH:MM` (hours:minutes) format.
|
||||
|
||||
Click the :guilabel:`Check in` :icon:`fa-sign-in` button to check in. The :guilabel:`🔴 (red
|
||||
circle)` in the top menu changes to green, and the widget changes appearance, as well. The widget
|
||||
updates to reflect that the user has checked in, by changing the green :guilabel:`Check in`
|
||||
:icon:`fa-sign-in` button to a yellow :guilabel:`Check out` :icon:`fa-sign-out` button.
|
||||
|
||||
Click anywhere on the screen to close the attendance widget.
|
||||
|
||||
Check out
|
||||
=========
|
||||
|
||||
If the user is checking out for the first time, :guilabel:`Since HH:MM (AM/PM)` appears at the top
|
||||
of the widget, with the time the user checked in populating the time field. Beneath that line, the
|
||||
hours and minutes that have elapsed since checking in are displayed in a :guilabel:`HH:MM` format.
|
||||
As time passes, this value is updated to reflect the hours and minutes that have passed since the
|
||||
user checked in.
|
||||
|
||||
If the user has previously checked in and out, additional fields are presented. A :guilabel:`Before
|
||||
HH:MM (AM/PM)` field appears, in addition to the :guilabel:`Since HH:MM (AM/PM)` field. The times
|
||||
displayed in both of these fields match, and are populated with the most recent check in time.
|
||||
Beneath the :guilabel:`Before HH:MM (AM/PM)` field, the previously logged time is displayed, in an
|
||||
:guilabel:`HH:MM` (hours:minutes) format.
|
||||
|
||||
In addition, beneath both of these fields, a :guilabel:`Total today` field appears. This field is
|
||||
the sum of both the :guilabel:`Before HH:MM (AM/PM)` and :guilabel:`Since HH:MM (AM/PM)` fields, and
|
||||
is the total time that is logged for the user, if they were to log out at that moment.
|
||||
|
||||
As time passes, both the :guilabel:`Since HH:MM (AM/PM)` and :guilabel:`Total today` fields are
|
||||
updated live. To check out, click the yellow :guilabel:`Check out` :icon:`fa-sign-out` button. The
|
||||
attendance widget updates again, displaying the :guilabel:`Total today` field with the logged time,
|
||||
while the yellow :guilabel:`Check out` :icon:`fa-sign-out` button changes to a green
|
||||
:guilabel:`Check in` :icon:`fa-sign-in` button.
|
||||
|
||||
When the user checks out from the database, the *Attendances* app logs the location details for the
|
||||
user. This information is **only** logged if the user allows their computer to access this
|
||||
information.
|
||||
|
||||
.. image:: check_in_check_out/check-in-database-message.png
|
||||
:align: center
|
||||
:alt: The pop-up that appears when an employee checks in inside the database.
|
||||
|
||||
.. tip::
|
||||
There is no limit to the amount of times a user can check in and check out. Users are able to
|
||||
check in and out without any time elapsing (a value of 00:00). Each time an employee logs in and
|
||||
out, the information is stored and appears on the main *Attendances* dashboard, including check
|
||||
ins and check outs with no time value.
|
||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@@ -12,3 +12,4 @@ Odoo *Employees* organizes a company's employee records, contracts, and departme
|
||||
:titlesonly:
|
||||
|
||||
employees/new_employee
|
||||
employees/departments
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
===========
|
||||
Departments
|
||||
===========
|
||||
|
||||
All employees in the *Employees* app fall under specific departments within a company.
|
||||
|
||||
Create new departments
|
||||
======================
|
||||
|
||||
To make a new department, navigate to :menuselection:`Employees app --> Departments`, then click
|
||||
:guilabel:`New` in the top-left to reveal a blank department form. Fill out the following
|
||||
information on the department form:
|
||||
|
||||
.. image:: departments/department-form.png
|
||||
:align: center
|
||||
:alt: The department for with all fields filled out.
|
||||
|
||||
- :guilabel:`Department Name`: enter a name for the department.
|
||||
- :guilabel:`Manager`: using the drop-down menu, select the department manager.
|
||||
- :guilabel:`Parent Department`: if the new department is housed within another department (has a
|
||||
parent department), select the parent department using the drop-down menu.
|
||||
- :guilabel:`Custom Appraisal Templates`: if employees in this department require a specific
|
||||
appraisal form that is different from the default appraisal form, tick the checkbox. If this
|
||||
option is activated, an :guilabel:`Appraisal Templates` tab appears below the form. This field
|
||||
**only** appears if the *Appraisals* app is installed.
|
||||
- :guilabel:`Company`: using the drop-down menu, select the company the department is part of.
|
||||
- :guilabel:`Appraisal Survey`: using the drop-down menu, select the default survey to use for the
|
||||
department when requesting feedback from employees. This field **only** appears if the
|
||||
*Appraisals* app is installed, **and** the *360 Feedback* option is enabled in the settings.
|
||||
- :guilabel:`Color`: select a color for the department. Click the default white color box to display
|
||||
all the color options. Click on a color to select it.
|
||||
- :guilabel:`Appraisal Templates` tab: this tab **only** appears if the :guilabel:`Custom Appraisal
|
||||
Templates` options is activated on the form. Make any desired edits to the appraisal form. The
|
||||
appraisal form is used for appraisals for all employees within this department.
|
||||
|
||||
After the form is completed, click the :icon:`fa-cloud-upload` :guilabel:`(cloud upload)` icon to
|
||||
manually save the changes. When saved, a :guilabel:`Department Organization` chart appears in the
|
||||
top-right of the department card.
|
||||
|
||||
.. note::
|
||||
The form auto-saves while data is entered, however the :guilabel:`Department Organization` chart
|
||||
does **not** appear until the form is manually saved. If the form is not saved, the
|
||||
:guilabel:`Department Organization` chart is visible upon opening the department card from the
|
||||
:guilabel:`Departments` dashboard.
|
||||
|
||||
.. seealso::
|
||||
Refer to the :doc:`../appraisals` documentation for more information.
|
||||
|
||||
Departments dashboard
|
||||
=====================
|
||||
|
||||
To view the currently configured departments, navigate to :menuselection:`Employees app -->
|
||||
Departments`. All departments appear in a Kanban view, by default, and are listed in alphabetical
|
||||
order.
|
||||
|
||||
.. image:: departments/departments.png
|
||||
:align: center
|
||||
:alt: The departments dashboard view with all the department cards in a Kanban view.
|
||||
|
||||
Kanban view
|
||||
-----------
|
||||
|
||||
Each department has its own Kanban card on the main :guilabel:`Departments` :icon:`oi-view-kanban`
|
||||
:guilabel:`(Kanban)` dashboard view, that can display the following information:
|
||||
|
||||
- Department name: the name of the department.
|
||||
- Company: the company the department is part of.
|
||||
- :guilabel:`Employees`: the number of employees within the department.
|
||||
- :guilabel:`Appraisals`: the number of appraisals scheduled for employees in the department.
|
||||
- :guilabel:`Time Off Requests`: the number of unapproved time off requests for employees in the
|
||||
department :ref:`awaiting approval <time_off/manage-time-off>` . This **only** appears if there
|
||||
are requests to approve.
|
||||
- :guilabel:`Allocation Requests`: the number of unapproved allocation requests for employees in the
|
||||
department :ref:`awaiting approval <time_off/manage-allocations>`. This **only** appears if there
|
||||
are requests to approve.
|
||||
- :guilabel:`New Applicants`: the number of :ref:`new applicants <recruitment/new>` for a position
|
||||
in this department. This **only** appears if there are new applicants.
|
||||
- :guilabel:`Expense Reports`: the number of employees in the department with :ref:`open expense
|
||||
reports to approve <expenses/approve>`. This **only** appears if there are any expense reports
|
||||
waiting for approval.
|
||||
- :guilabel:`Absence`: the number of absences for the current day.
|
||||
- Color bar: the selected color for the department appears as a vertical bar on the left side of the
|
||||
department card.
|
||||
|
||||
.. note::
|
||||
Click on an alert in a department card, such as :guilabel:`Time Off Requests`, to reveal a list
|
||||
view of the requests to approve. This list includes **all** open requests to approve, not just
|
||||
from the specific department.
|
||||
|
||||
The default view for the :guilabel:`Departments` dashboard is a Kanban view. It is possible to view
|
||||
the departments in two other forms: a list view and a hierarchy view.
|
||||
|
||||
List view
|
||||
---------
|
||||
|
||||
To view the departments in a list view, click the :icon:`fa-align-justify` :guilabel:`(list)` icon
|
||||
in the top-right corner. The departments appear in a list view, which displays the
|
||||
:guilabel:`Department Name`, :guilabel:`Company`, :guilabel:`Manager`, :guilabel:`Employees`,
|
||||
:guilabel:`Parent Department`, and :guilabel:`Color` for each department.
|
||||
|
||||
The departments are sorted alphabetically by :guilabel:`Department Name`, by default.
|
||||
|
||||
.. image:: departments/list.png
|
||||
:align: center
|
||||
:alt: The departments presented in a list view.
|
||||
|
||||
.. tip::
|
||||
When in list view, departments can be managed in batch by selecting one or multiple record's
|
||||
checkbox, then select the :icon:`fa-cog` :guilabel:`Actions` button to reveal a drop-down menu of
|
||||
actions.
|
||||
|
||||
Hierarchy view
|
||||
--------------
|
||||
|
||||
To view the departments in a hierarchy view, click the :icon:`fa-share-alt fa-rotate-90`
|
||||
:guilabel:`(hierarchy)` icon in the top-right corner. The departments appear in an organizational
|
||||
chart format, with the highest-level department at the top (typically :guilabel:`Management`), and
|
||||
all other departments beneath it. All child departments of the first-level child departments are
|
||||
folded.
|
||||
|
||||
Each department card displays the :guilabel:`Department Name`, the :guilabel:`Manager` (and their
|
||||
profile image), the :guilabel:`Number of Employees` in the department, and the ability to expand the
|
||||
department (:guilabel:`Unfold`) if there are child departments beneath it.
|
||||
|
||||
Click the :guilabel:`Unfold` button on a department card to expand it. Once expanded, the
|
||||
:guilabel:`Unfold` button changes to a :guilabel:`Fold` button. To collapse the department, click
|
||||
the :guilabel:`Fold` button. Only **one** department *per row* can be unfolded at a time.
|
||||
|
||||
Click anywhere on a department card to open the department form. Click the :guilabel:`(#) Employees`
|
||||
smart button to view a list of all the employees in that department, including all employees in the
|
||||
child departments beneath it, organized by individual department.
|
||||
|
||||
.. example::
|
||||
In the hierarchy view, if the :guilabel:`(2) Employees` button on the :guilabel:`Management` card
|
||||
is clicked (the highest-level department card), **all** employees appear in a list view, grouped
|
||||
by department. This is because **all** departments are children of the :guilabel:`Management`
|
||||
department.
|
||||
|
||||
If the :guilabel:`(3) Employees` button in the :guilabel:`Sales` department card is clicked, the
|
||||
employees from the :guilabel:`Sales` department, as well as its two child departments
|
||||
(:guilabel:`East Coast Territory` and :guilabel:`West Coat Territory`), appear in the list.
|
||||
|
||||
.. image:: departments/hierarchy.png
|
||||
:align: center
|
||||
:alt: The departments presented in a hierarchy view.
|
||||
|
||||
.. image:: departments/employee-list.png
|
||||
:align: center
|
||||
:alt: The list view of employees for the department that was clicked, including all child
|
||||
departments.
|
||||
|
||||
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 28 KiB |
@@ -1,3 +1,5 @@
|
||||
:show-content:
|
||||
|
||||
=========
|
||||
Frontdesk
|
||||
=========
|
||||
@@ -184,94 +186,10 @@ Station dashboard
|
||||
|
||||
The image selected now appears in the picture field, and is set as the image for the drink.
|
||||
|
||||
.. _frontdesk/kiosk:
|
||||
|
||||
.. _frontdesk/visitors:
|
||||
|
||||
Visitors
|
||||
========
|
||||
|
||||
To access a complete list of visitors that are currently checked in, navigate to
|
||||
:menuselection:`Frontdesk app --> Visitors`.
|
||||
|
||||
The visitors are listed in a list view, with the following details that were entered when they
|
||||
checked in:
|
||||
|
||||
.. note::
|
||||
By default, the :guilabel:`Planned or Checked-In` and :guilabel:`Today` filters appear in the
|
||||
:guilabel:`Search...` bar.
|
||||
|
||||
- :guilabel:`Name`: the guest's name.
|
||||
- :guilabel:`Visitor Company`: the company the guest represents.
|
||||
- :guilabel:`Phone`: the guest's phone number.
|
||||
- :guilabel:`Drinks`: the drink the guest requested.
|
||||
- :guilabel:`Host`: who the guest is waiting to see.
|
||||
- :guilabel:`CheckIn`: the date and time the guest checked in.
|
||||
- :guilabel:`Checkout`: the date and time the guest checked out. As mentioned, in the default view,
|
||||
only guests with a :guilabel:`Checked-In` or :guilabel:`Planned` status are visible. Guests with
|
||||
check-out times are only visible if the :guilabel:`Today` filter is not active.
|
||||
- :guilabel:`Duration`: the amount of time the guest has been checked in for.
|
||||
- :guilabel:`Station`: the location of where the guest checked in.
|
||||
- :guilabel:`Status`: the status of the guest. The options are :guilabel:`Checked-In`,
|
||||
:guilabel:`Planned`, :guilabel:`Checked-Out`, or :guilabel:`Canceled`. In the default view, only
|
||||
guests with a :guilabel:`Checked-In` or :guilabel:`Planned` status are visible.
|
||||
- :guilabel:`Email`: the guest's email address.
|
||||
|
||||
To the far right of the titled columns on the :guilabel:`Visitors` page is an untitled column,
|
||||
where a guest's status can be updated.
|
||||
|
||||
When a guest leaves, click the available :guilabel:`Check out` button to update the guest's record,
|
||||
and log the date and time they left.
|
||||
|
||||
If a scheduled guest arrives, and they did not check in using the *Frontdesk* kiosk, they can be
|
||||
checked in here, by clicking the available :guilabel:`Check in` button to log the date and time they
|
||||
arrived.
|
||||
|
||||
Beside the untitled status column a :guilabel:`Drink Served` button appears, but only if that
|
||||
particular visitor requested a drink.
|
||||
|
||||
When their drink has been served, click the :guilabel:`Drink Served` button to indicate the drink
|
||||
has been delivered to the guest. Once clicked, that button disappears.
|
||||
|
||||
.. image:: frontdesk/visitors.png
|
||||
:align: center
|
||||
:alt: The full list of currently checked in visitors, with the drinks to be served highlighted.
|
||||
|
||||
If any column is not visible, or if a visible column is preferred to be hidden, click the
|
||||
:guilabel:`Additional Options (two horizontal lines with dots)` icon, located at the end of the
|
||||
column name list.
|
||||
|
||||
Clicking that reveals a drop-down menu of column options to enable or disable. A :guilabel:`✅
|
||||
(checkmark)` icon indicates the column is visible.
|
||||
|
||||
Planned visitors
|
||||
----------------
|
||||
|
||||
If a guest is expected to arrive at a future date and time, it is possible to enter their
|
||||
information into the *Frontdesk* application in advance.
|
||||
|
||||
To create a planned guest, navigate to :menuselection:`Frontdesk app --> Visitors --> New`. Then,
|
||||
enter the same information as any other :ref:`visitor <frontdesk/visitors>`. The only required
|
||||
fields are the visitor's :guilabel:`Name` and the :guilabel:`Station` at which they are expected to
|
||||
arrive.
|
||||
|
||||
.. important::
|
||||
If a guest is planned in advance, they must be checked in from the list on the
|
||||
:guilabel:`Visitors` page in the *Frontdesk* application (:menuselection:`Frontdesk app -->
|
||||
Visitors`). If a planned guest checks in using a kiosk, they will be checked in separately, and
|
||||
their planned visitor entry remains listed as :guilabel:`Planned`.
|
||||
|
||||
Only when a planned guest is checked in inside the application's visitor list, their
|
||||
:guilabel:`Planned` status changes to :guilabel:`Checked-In`.
|
||||
|
||||
If a guest does check in using a kiosk, ensure all records are current, and the list of
|
||||
currently on-site guests is correct. Be sure to check in and/or check out the correct entries, so
|
||||
the visitors list correctly reflects who is currently on the premises.
|
||||
|
||||
Ensure planned guests are informed that they should **not** check in using the kiosk if they are
|
||||
listed as a planned guest in advance.
|
||||
|
||||
Frontdesk flow
|
||||
==============
|
||||
Kiosk setup
|
||||
===========
|
||||
|
||||
Set up each kiosk for use after configuring the various stations. It is recommended to use a
|
||||
dedicated device for each frontdesk kiosk, such as a tablet.
|
||||
@@ -288,65 +206,6 @@ Navigate to the kiosk in one of two ways:
|
||||
It is recommended to log out of the database, and close the tab, after navigating to the kiosk.
|
||||
That way, there is no possibility of a visitor accessing the database when checking-in.
|
||||
|
||||
Visitor flow
|
||||
------------
|
||||
|
||||
When a visitor arrives at a facility, they approach a frontdesk kiosk, and enter their information.
|
||||
The information requested is what was configured for that specific frontdesk station. If any
|
||||
information is required, the field displays a red asterisk (*). The visitor must enter the required
|
||||
information in order to check in.
|
||||
|
||||
Once all the information is entered, the visitor taps the :guilabel:`Check In` button.
|
||||
|
||||
If drinks were configured for the station, after tapping :guilabel:`Check In`, a registration
|
||||
confirmation screen loads, along with the question: `Do you want something to drink?`
|
||||
|
||||
The visitor can tap either :guilabel:`Yes, please`, or :guilabel:`No, thank you`.
|
||||
|
||||
If they select :guilabel:`Yes, please`, a drink selection screen appears, and the pre-configured
|
||||
options are listed. The visitor then taps the desired selection, or, if they do not want anything,
|
||||
they can tap the :guilabel:`Nothing, thanks` button at the bottom of the screen.
|
||||
|
||||
If a drink selection was made, a `Thank you for registering! Your drink is on the way.` message
|
||||
appears.
|
||||
|
||||
At any point in the check-in process, if ten seconds pass with no selection, the kiosk returns to
|
||||
the main welcome screen.
|
||||
|
||||
Once the visitor has checked in, the person they are visiting, and any other users who were
|
||||
configured to be notified when checks ins occur at the kiosk, are notified. The notification is
|
||||
either by email, SMS message, a *Discuss* chat, or any combination of those three options.
|
||||
|
||||
If the visitor requested a drink, the user(s) configured as the :guilabel:`People to Notify` on the
|
||||
drink form, are notified via the *Discuss* application. The message that appears is: `(Visitor Name)
|
||||
just checked-in. They requested (Drink Name).`
|
||||
|
||||
Once the drink has been delivered to the guest, the person who delivered the drink is responsible
|
||||
for marking the drink as delivered.
|
||||
|
||||
To mark a drink as delivered, navigate to :menuselection:`Frontdesk app --> Stations --> (#) Drinks
|
||||
to serve` on the desired station card.
|
||||
|
||||
This opens a list of all the visitors checked in at that station, and are waiting for a drink. Click
|
||||
the :guilabel:`Drink Served` button at the end of the line for the visitor who was served. Once they
|
||||
are marked as having their drink served, the visitor disappears from the list.
|
||||
|
||||
Once the visitor has completed their business, and has left the premises, it is important to check
|
||||
them out for accurate record keeping.
|
||||
|
||||
To check visitors out properly, navigate to :menuselection:`Frontdesk app --> Stations --> (#) On
|
||||
Site`. Doing so opens a list of all the visitors who are currently checked-in at that station.
|
||||
|
||||
Click the :guilabel:`Check Out` button near the end of the line for the visitor who left. Once they
|
||||
are marked as checked-out, the visitor disappears from the list.
|
||||
|
||||
.. important::
|
||||
Visitors do **not** check themselves out when they leave. It is important to check out visitors
|
||||
for accurate record keeping.
|
||||
|
||||
Always have an accurate list of who is on the premises at any given time. This is important for
|
||||
security purposes, and in the case of an emergency.
|
||||
|
||||
Reporting
|
||||
=========
|
||||
|
||||
@@ -359,3 +218,11 @@ The :guilabel:`Visitors` report displays the number of visitors by month, for th
|
||||
:guilabel:`Drinks` report shows how many total requests were made for each drink.
|
||||
|
||||
As with all reports in Odoo, the filters and groups can be modified to show other metrics, as well.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`frontdesk/visitors`
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
frontdesk/visitors
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
========
|
||||
Visitors
|
||||
========
|
||||
|
||||
In the Odoo *Frontdesk* application, a *visitor* is defined as any non-employee (e.g., repair
|
||||
person, job candidate, etc.). These visitors can be logged upon arrival and departure for security
|
||||
purposes. This ensures an accurate list of people on the premises.
|
||||
|
||||
.. _frontdesk/list:
|
||||
|
||||
Visitor list
|
||||
============
|
||||
|
||||
To access a complete list of checked-in visitors, navigate to :menuselection:`Frontdesk app -->
|
||||
Visitors`.
|
||||
|
||||
.. note::
|
||||
By default, the :guilabel:`Planned or Checked-In` and :guilabel:`Today` filters appear in the
|
||||
:guilabel:`Search...` bar.
|
||||
|
||||
All visitors are presented in a list view, with the following details that were entered upon check
|
||||
in:
|
||||
|
||||
- :guilabel:`Name`: the guest's name.
|
||||
- :guilabel:`Visitor Company`: the company the guest represents.
|
||||
- :guilabel:`Phone`: the guest's phone number.
|
||||
- :guilabel:`Drinks`\*: the drink the guest requested.
|
||||
- :guilabel:`Host`: who the guest is waiting to see.
|
||||
- :guilabel:`CheckIn`: the date and time the guest checked in.
|
||||
- :guilabel:`Checkout`\*: the date and time the guest checked out. In the default view, only guests
|
||||
with a :guilabel:`Checked-In` or :guilabel:`Planned` status are visible. Guests with check-out
|
||||
times are only visible if the :guilabel:`Today` filter is not active.
|
||||
- :guilabel:`Duration`: the amount of time the guest has been checked in for.
|
||||
- :guilabel:`Station`: the location of where the guest checked in.
|
||||
- :guilabel:`Status`: the status of the guest. The options are :guilabel:`Checked-In`,
|
||||
:guilabel:`Planned`, :guilabel:`Checked-Out`, or :guilabel:`Canceled`.
|
||||
- :guilabel:`Email`\*: the guest's email address.
|
||||
|
||||
\* These fields are not visible in the default :guilabel:`Visitor` list. These must be enabled
|
||||
using the :icon:`oi-settings-adjust` :guilabel:`(settings adjust)` icon in the top-right of the
|
||||
list.
|
||||
|
||||
To the far-right of the titled columns on the :guilabel:`Visitors` page, there is an untitled
|
||||
column, where a guest's status can be updated.
|
||||
|
||||
When a guest leaves, click the available :guilabel:`Check out` button to update the guest's record,
|
||||
and log the date and time they left.
|
||||
|
||||
If a scheduled guest arrives, and they did not check in using the *Frontdesk* kiosk, they can be
|
||||
checked in here, by clicking the available :guilabel:`Check in` button to log the date and time they
|
||||
arrived.
|
||||
|
||||
Beside the untitled status column, a :guilabel:`Drink Served` button appears, but only if that
|
||||
particular visitor requested a drink.
|
||||
|
||||
When their drink has been served, click the :guilabel:`Drink Served` button to indicate the drink
|
||||
has been delivered to the guest. Once clicked, that button disappears.
|
||||
|
||||
.. image:: visitors/visitors.png
|
||||
:align: center
|
||||
:alt: The full list of currently checked in visitors, with the drinks to be served highlighted.
|
||||
|
||||
If any column is not visible, or if a visible column is preferred to be hidden, click the
|
||||
:icon:`oi-settings-adjust` :guilabel:`(additional options)` icon, located at the end of the column
|
||||
name list. Doing so, reveals a reveals a drop-down menu of column options to enable or disable. A
|
||||
:icon:`fa-check` :guilabel:`(check)` icon indicates the column is visible.
|
||||
|
||||
Planned visitors
|
||||
================
|
||||
|
||||
Enter expected guest information in advance by creating a planned guest in the *Frontdesk* app.
|
||||
|
||||
To create a planned guest, navigate to :menuselection:`Frontdesk app --> Visitors`, and click
|
||||
:guilabel:`New`. Then, enter the same information as any other :ref:`visitor <frontdesk/list>` on
|
||||
the guest form that appears. The only required fields are the visitor's :guilabel:`Name` and the
|
||||
:guilabel:`Station` at which they are expected to arrive.
|
||||
|
||||
.. important::
|
||||
If a guest is planned in advance, they must be checked in from the list on the
|
||||
:guilabel:`Visitors` page in the *Frontdesk* application (:menuselection:`Frontdesk app -->
|
||||
Visitors`). If a planned guest checks in using a kiosk, they will be checked in separately, and
|
||||
their planned visitor entry remains listed as :guilabel:`Planned`.
|
||||
|
||||
The :guilabel:`Planned` status of a planned guest **only** changes to :guilabel:`Checked-In` when
|
||||
they are checked in *inside* the application's :guilabel:`Visitors` list.
|
||||
|
||||
If a guest does check in using a kiosk, ensure all records are current, and the list of guests
|
||||
that are currently on-site is correct. Be sure to check in and/or check out the correct entries,
|
||||
so the visitors list correctly reflects who is currently on the premises.
|
||||
|
||||
Ensure planned guests are informed that they should **not** check in using the kiosk if they are
|
||||
listed as a planned guest in advance.
|
||||
|
||||
Visitor flow
|
||||
============
|
||||
|
||||
Visitor check in
|
||||
----------------
|
||||
|
||||
When a visitor arrives at a facility, they approach a :ref:`Frontdesk kiosk <frontdesk/kiosk>`, and
|
||||
click :guilabel:`Check in`. The information requested from the visitor is what was configured for
|
||||
that specific *Frontdesk* station. If any information is required, the field displays a red asterisk
|
||||
(\*). The visitor **must** enter the required information in order to check in.
|
||||
|
||||
Once all the information is entered, the visitor taps the :guilabel:`Check In` button.
|
||||
|
||||
.. note::
|
||||
At any point in the check-in process, if ten seconds pass with no selection, the kiosk returns to
|
||||
the main welcome screen.
|
||||
|
||||
Drinks
|
||||
------
|
||||
|
||||
If drinks were configured for the station, after tapping :guilabel:`Check In`, a registration
|
||||
confirmation screen loads, along with the question: :guilabel:`Do you want something to drink?`
|
||||
|
||||
The visitor can tap either :guilabel:`Yes, please`, or :guilabel:`No, thank you`.
|
||||
|
||||
If they select :guilabel:`Yes, please`, a drink selection screen appears, and the pre-configured
|
||||
options are listed. The visitor then taps the desired selection, or, if they do not want anything,
|
||||
they can tap the :guilabel:`Nothing, thanks` button at the bottom of the screen.
|
||||
|
||||
If a drink selection was made, a :guilabel:`Thank you for registering! Your drink is on the way.`
|
||||
message appears.
|
||||
|
||||
Notifications
|
||||
-------------
|
||||
|
||||
Once the visitor has checked in, the person they are visiting, and any other users who were
|
||||
configured to be notified when check-ins occur at the kiosk, are notified. The notification is
|
||||
either by email, SMS message, a *Discuss* chat, or any combination of those three options.
|
||||
|
||||
If the visitor requested a drink, the user(s) configured as the :guilabel:`People to Notify` on the
|
||||
drink form, are notified, via the *Discuss* application. The message that appears is:
|
||||
:guilabel:`(Visitor Name) just checked-in. They requested (Drink Name).`
|
||||
|
||||
Once the drink has been delivered to the guest, the person who delivered the drink is responsible
|
||||
for marking the drink as delivered.
|
||||
|
||||
To mark a drink as delivered, navigate to :menuselection:`Frontdesk app --> Stations`, and choose
|
||||
the desired station card displaying :guilabel:`(#) Drinks to serve`.
|
||||
|
||||
This opens a list of all the visitors checked in at that station, and are waiting for a drink. Click
|
||||
the :guilabel:`Drink Served` button at the end of the line for the visitor who was served. Once they
|
||||
are marked as having their drink served, the visitor disappears from the list.
|
||||
|
||||
Check out
|
||||
---------
|
||||
|
||||
Once the visitor has completed their business, and has left the premises, it is important to check
|
||||
them out for accurate record keeping.
|
||||
|
||||
To check visitors out properly, navigate to :menuselection:`Frontdesk app --> Stations`, and choose
|
||||
the desired station card displaying :guilabel:`(#) Drinks to serve`. Doing so opens a list of all
|
||||
the visitors who are currently checked-in at that station.
|
||||
|
||||
Click the :guilabel:`Check out` button near the end of the line for the visitor who left. Once they
|
||||
are marked as checked-out, the visitor disappears from the list.
|
||||
|
||||
.. important::
|
||||
Visitors do **not** check themselves out when they leave. It is important for *Frontdesk* users
|
||||
to check out visitors for accurate record keeping.
|
||||
|
||||
Always have an accurate list of who is on the premises at any given time. This is important for
|
||||
security purposes, and in the case of an emergency.
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
@@ -2,9 +2,9 @@
|
||||
Contracts
|
||||
=========
|
||||
|
||||
Every employee in Odoo is required to have a contract to be paid. A contract outlines the terms of
|
||||
an employee's job position, compensation, working hours, and any other details specific to their
|
||||
role.
|
||||
Every employee in Odoo is required to have a 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.
|
||||
|
||||
.. important::
|
||||
Contract documents (PDFs) are uploaded and organized using the *Documents* application, and are
|
||||
@@ -12,13 +12,10 @@ role.
|
||||
contracts. Please refer to the :doc:`../../productivity/documents` and
|
||||
:doc:`../../productivity/sign` documentation.
|
||||
|
||||
To view the employee contracts, go to :menuselection:`Payroll app --> Contracts --> Contracts` from
|
||||
the top menu. All employee contracts are displayed in a default list view, grouped into four
|
||||
categories: :guilabel:`New`, :guilabel:`Running`, :guilabel:`Expired`, and :guilabel:`Cancelled`.
|
||||
|
||||
The default view has all categories collapsed. The number of contracts in each category is displayed
|
||||
next to the category name (example: `Running (20)`). To view the list of contracts under any
|
||||
category, click on the category, and the list expands downward, showing all contracts beneath it.
|
||||
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
|
||||
Kanban view, by default. The Kanban view displays running contracts, contracts that require action,
|
||||
expired contracts, and cancelled contracts.
|
||||
|
||||
.. image:: contracts/contracts-overview.png
|
||||
:align: center
|
||||
@@ -30,12 +27,12 @@ category, click on the category, and the list expands downward, showing all cont
|
||||
|
||||
.. _payroll/new-contract:
|
||||
|
||||
Create new contracts
|
||||
====================
|
||||
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. Required fields are underlined in bold.
|
||||
|
||||
For an employee to be paid, an active contract is required. When a new contract is needed, click the
|
||||
:guilabel:`New` button on the :guilabel:`Contracts` dashboard. A contract form appears where the
|
||||
information can be entered.
|
||||
New contract form
|
||||
-----------------
|
||||
|
||||
.. _payroll/gen-info:
|
||||
|
||||
@@ -91,29 +88,41 @@ General information section
|
||||
:alt: New contract form to be filled in when creating a new contract, with required fields
|
||||
outlined in red.
|
||||
|
||||
The general information section filled out, with the required fields highlighted in red.
|
||||
- :guilabel:`Contact Reference`: type in the name or title for the contract, such as `John Smith
|
||||
Contract`. This field is **required**.
|
||||
- :guilabel:`Employee`: name of the employee the contract applies to.
|
||||
- :guilabel:`Contract Start Date`: the date the contract 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:`Contract End Date`: the date the contract ends. 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:`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 new
|
||||
salary structure type can be created by typing the name in the field. This field is **required**.
|
||||
- :guilabel:`Working Schedule`: select one of the working schedules from the drop-down menu. This
|
||||
field is **required**.
|
||||
- :guilabel:`Department`: the department the contract applies to.
|
||||
- :guilabel:`Job Position`: the specific job position the contract applies to.
|
||||
- :guilabel:`Wage on Payroll`: the amount to be paid to the employee each month.
|
||||
- :guilabel:`Contract Type`: choose from :guilabel:`CDI`, :guilabel:`CDD`, or :guilabel:`PFI` from
|
||||
the drop-down menu.
|
||||
|
||||
Salary Information tab
|
||||
----------------------
|
||||
- :guilabel:`CDI` is an open-ended contract with only a start date, but no end date.
|
||||
- :guilabel:`CDD` is a contract with both a start date and an end date.
|
||||
- :guilabel:`PFI` is a Belgian-specific contract used when hiring employees that need training,
|
||||
and covers the training period specifically.
|
||||
|
||||
This section is where the specific salary details are defined. This section is country-specific, so
|
||||
depending on where the company is located, these fields may vary.
|
||||
- :guilabel:`HR Responsible`: if there is a specific person in HR that is responsible for the
|
||||
contract, select the person from the drop-down menu. This field is required.
|
||||
|
||||
The following fields are universal and apply to all localizations:
|
||||
|
||||
- :guilabel:`Wage Type`: select either :guilabel:`Fixed Wage` or :guilabel:`Hourly Wage` from the
|
||||
drop-down menu.
|
||||
- :guilabel:`Schedule Pay`: select how often the employee is paid using the drop-down menu. 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 employee's gross wage. The metric for the :guilabel:`Wage` is based on
|
||||
what is selected for the :guilabel:`Schedule Pay`.
|
||||
|
||||
.. example::
|
||||
If :guilabel:`Annually` is selected for the :guilabel:`Schedule Pay`, then the :guilabel:`Wage`
|
||||
field appears in a `$0.00/year` format. If the :guilabel:`Schedule Pay` is set to
|
||||
:guilabel:`Bi-weekly`, then the :guilabel:`Wage` field appears in a `$0.00/two weeks` format.
|
||||
.. 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:`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
|
||||
@@ -132,8 +141,19 @@ The following fields are universal and apply to all localizations:
|
||||
Contract Details tab
|
||||
--------------------
|
||||
|
||||
The contract details section allows for the addition and editing of a contract, and the ability to
|
||||
send the contract to the employee for approval and signatures.
|
||||
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.
|
||||
|
||||
.. 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
|
||||
<general/install>`.
|
||||
|
||||
When the *Salary Configurator* module is installed, the *Salary Configurator - Holidays* and
|
||||
*Salary Configurator - Payroll* modules install, as well.
|
||||
|
||||
Once the modules are installed, the database reverts to the main dashboard.
|
||||
|
||||
- :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
|
||||
@@ -193,16 +213,23 @@ Notes section
|
||||
:align: center
|
||||
:alt: Contract details in optional tabs for a new contract.
|
||||
|
||||
Personal Documents tab
|
||||
----------------------
|
||||
- :guilabel:`Analytic Account`: this field allows a link between the contract and a specific
|
||||
analytic account for accounting purposes.
|
||||
- :guilabel:`Contract Template`: select a pre-existing contract template from the drop-down menu.
|
||||
Contract templates are typically created through the *Recruitment* application.
|
||||
- :guilabel:`New Contract Document Template`: select a contract from the drop-down menu to be
|
||||
modified for this new employee contract.
|
||||
- :guilabel:`Contract Update Document Template`: select a contract from the drop-down menu, if the
|
||||
employee has an existing contract that requires updating.
|
||||
- :guilabel:`Notes`: the notes field is a text field where any notes for the employee contract can
|
||||
be entered for future reference.
|
||||
|
||||
Once an :guilabel:`Employee` is selected in the :ref:`General Information section
|
||||
<payroll/gen-info>`, the :guilabel:`Personal Documents` tab appears.
|
||||
Modify a contract template
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If any documents are needed to keep on file, add them in the :guilabel:`Personal Documents` tab.
|
||||
Depending on what other applications are installed, and what kind of benefits are enabled (and
|
||||
offered) to the employee, the various options to add a file varies. The :guilabel:`Image` option
|
||||
always appears, and is available by default.
|
||||
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.
|
||||
@@ -212,162 +239,135 @@ Modifying contract templates
|
||||
|
||||
Contracts templates can be modified at any point when changes are needed.
|
||||
|
||||
To modify a contract template, refer to the :ref:`contract templates <payroll/contract-templates>`
|
||||
section of the main payroll documentation.
|
||||
- :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`.
|
||||
|
||||
Salary attachments
|
||||
==================
|
||||
- :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.
|
||||
|
||||
Any automatic deductions or allocations for an employee, such as child support payments and wage
|
||||
garnishments, are referred to as a *salary attachment*. Navigate to :menuselection:`Payroll app -->
|
||||
Contracts --> Salary Attachments` to view a list of all the currently configured salary attachments.
|
||||
- :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.
|
||||
|
||||
Each salary attachment appears with all its relevant details displayed. The :guilabel:`Status` for
|
||||
each attachment is color-coded in the far right column.
|
||||
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.
|
||||
|
||||
Currently running salary attachments have a :guilabel:`Status` of :guilabel:`Running`, and appear in
|
||||
green. Salary attachments that have been paid in-full, and are no longer active, have a
|
||||
:guilabel:`Status` of :guilabel:`Completed`, and appear in blue. Cancelled salary attachments have a
|
||||
:guilabel:`Status` of :guilabel:`Cancelled`, and appear in red.
|
||||
Salary information
|
||||
------------------
|
||||
|
||||
.. image:: contracts/attachments.png
|
||||
.. image:: contracts/salary-info.png
|
||||
:align: center
|
||||
:alt: A list view of all the salary attachments with their status displayed.
|
||||
:alt: Optional tabs for a new contract.
|
||||
|
||||
New salary attachment
|
||||
---------------------
|
||||
This section is where the specific salary details are defined. This section is country-specific, so
|
||||
these fields vary, depending on where the company is located.
|
||||
|
||||
To create a new salary attachment from the :guilabel:`Salary Attachment` page, click
|
||||
:guilabel:`New`, and a blank salary attachment form loads. Enter the following information on the
|
||||
form:
|
||||
Enter the amount in the various fields, or tick a checkbox to apply a benefit. Some options that can
|
||||
be entered here include :guilabel:`Group Insurance Sacrifice Rate` and :guilabel:`Canteen Cost`, for
|
||||
example.
|
||||
|
||||
- :guilabel:`Employees`: add any employees the salary attachment applies to using the drop-down
|
||||
menu.
|
||||
Some fields may be automatically filled in as other fields are entered. For example, the
|
||||
:guilabel:`Yearly Cost (Real)` and :guilabel:`Monthly Cost (Real)` updates once the :guilabel:`Wage`
|
||||
is populated.
|
||||
|
||||
.. tip::
|
||||
Multiple employees can be added, if the salary attachment details are identical. After all
|
||||
employees are added, a :guilabel:`Create Individual Attachments` button appears at the top of
|
||||
the form.
|
||||
Personal documents
|
||||
------------------
|
||||
|
||||
After the form is completed, click the :guilabel:`Create Individual Attachments` button to
|
||||
create separate salary attachments for each of the employees listed in this field.
|
||||
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.
|
||||
|
||||
.. image:: contracts/individual-attachments.png
|
||||
:align: center
|
||||
:alt: The Create Individual Attachments button that appears after multiple employees are
|
||||
added to the Employees field.
|
||||
The available documents in this tab can be downloaded. Click the :icon:`fa-download`
|
||||
:guilabel:`(download)` icon next to the document to download it.
|
||||
|
||||
This is a time-saving tip, so that separate salary attachments do not need to be created
|
||||
individually. They can be created in a batch using this method.
|
||||
Save and send the contract
|
||||
--------------------------
|
||||
|
||||
- :guilabel:`Description`: enter a description for the specific type of salary attachment.
|
||||
- :guilabel:`Type`: select the :ref:`type of salary attachment <payroll/salary-attachment-types>`
|
||||
from the drop-down menu. The options listed come from the salary attachment types configured in
|
||||
the configuration menu.
|
||||
- :guilabel:`Start Date`: enter the date the salary attachment begins. The first of the current
|
||||
month populates this field, by default. Click on the date, and a calendar appears. Navigate to the
|
||||
desired month and year, using the :guilabel:`< > (arrow)` icons, and click on the date to select
|
||||
it.
|
||||
- :guilabel:`Document`: if any documents are needed for the salary attachment, click the
|
||||
:guilabel:`Upload your file` button, and a file explorer appears. Navigate to the file, and click
|
||||
:guilabel:`Open` to select them, and attach them to the form.
|
||||
- :guilabel:`Monthly Amount`: enter the amount to be taken out of the paycheck each month for this
|
||||
salary attachment.
|
||||
- :guilabel:`Estimated End Date`: this field only appears after the :guilabel:`Monthly Amount` field
|
||||
is populated, and if the :guilabel:`Type` is **not** set to :guilabel:`Child Support`. This date
|
||||
is when the salary attachment is predicted to end, and is automatically calculated once both, the
|
||||
:guilabel:`Monthly Amount` and :guilabel:`Total Amount`, fields are populated. This is calculated
|
||||
based on how much is required to be paid, and how much is paid towards that amount each month. If
|
||||
either the :guilabel:`Monthly Amount` or :guilabel:`Total Amount` changes, this field
|
||||
automatically updates. It is **not** possible to modify this field.
|
||||
- :guilabel:`Total Amount`: enter the total amount to be paid in this field. If :guilabel:`Child
|
||||
Support` is selected for the :guilabel:`Type`, this field does **not** appear.
|
||||
Once a contract has been created and/or modified, save the contract by clicking the :guilabel:`Save`
|
||||
button. Next, the contract must be sent to the employee to be signed.
|
||||
|
||||
.. image:: contracts/garnishment.png
|
||||
:align: center
|
||||
:alt: Enter a new line for each type of garnishment.
|
||||
|
||||
.. important::
|
||||
When the total amount has been paid for the salary attachment, navigate to the individual salary
|
||||
attachment, and click the :guilabel:`Mark as Completed` button at the top of the form. This
|
||||
changes the status to :guilabel:`Completed`, and the garnishments are no longer taken out of the
|
||||
employee's paychecks.
|
||||
|
||||
Offers
|
||||
======
|
||||
|
||||
Once a contract has been created or modified, the contract **must** be sent to the employee to be
|
||||
accepted and signed.
|
||||
|
||||
Send an offer
|
||||
-------------
|
||||
|
||||
Open an individual contract by navigating to :menuselection:`Payroll app --> Contracts ->
|
||||
Contracts`, and click on a contract to open the contract form. Click on the :guilabel:`Generate
|
||||
Offer` button at the top of the page, and a :guilabel:`Generate Simulation Link` pop-up form
|
||||
appears.
|
||||
Click on one of the following buttons to send the contract to the employee:
|
||||
|
||||
.. image:: contracts/send-contract.png
|
||||
:align: center
|
||||
:alt: Send the contract to the employee via one of the buttons.
|
||||
|
||||
The :guilabel:`Generate Simulation Link` pop-up form contains all the information pulled from the
|
||||
contract, including the :guilabel:`Contract Template`, :guilabel:`Job Position`, :guilabel:`Job
|
||||
Title`, :guilabel:`Department`, :guilabel:`Contract Start Date`, :guilabel:`Default Vehicle`,
|
||||
:guilabel:`Contract Type`, and :guilabel:`Yearly Cost`.
|
||||
- :guilabel:`Generate Simulation Link`: this option is **only** for Belgian companies. 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.
|
||||
|
||||
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.
|
||||
|
||||
Click the :guilabel:`Send By Email` button, and a :guilabel:`Send Offer Email` template pop-up
|
||||
window appears. Make any modifications to the email, and attach any additional documents needed,
|
||||
then click :guilabel:`Send` to send the offer.
|
||||
.. 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.
|
||||
|
||||
.. image:: contracts/send-offer.png
|
||||
:align: center
|
||||
:alt: The email template pop-up to send an offer.
|
||||
- :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.
|
||||
|
||||
.. 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.
|
||||
|
||||
Accept an offer
|
||||
---------------
|
||||
Salary attachments
|
||||
------------------
|
||||
|
||||
Once the offer email is received, the offer can be accepted, and the contract can be signed.
|
||||
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.
|
||||
|
||||
In the offer email, click the :guilabel:`Configure your package` button, and the offer loads in a
|
||||
new tab. Enter the requested information on the form. Next, click the :guilabel:`Review Contract &
|
||||
Sign` button to begin the signing process.
|
||||
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.
|
||||
|
||||
Click the :guilabel:`CLICK TO START` button at the top-left of the contract. Follow the prompts to
|
||||
complete the signature request. The contract auto-populates with the information entered on the
|
||||
:guilabel:`Configure your package` page. When done, click the :guilabel:`Validate & Send Completed
|
||||
Document` button at the bottom of the contract.
|
||||
|
||||
After the document is signed by the (potential) employee, management signs the contract next. The
|
||||
manager's signature is completed directly in the *Sign* application.
|
||||
|
||||
.. image:: contracts/sign-contract.png
|
||||
.. image:: contracts/garnishment.png
|
||||
:align: center
|
||||
:alt: The contract offer, ready to sign with the Click to Start button highlighted.
|
||||
:alt: The salary attachment form with everything filled in for Ronnie Hart's child support.
|
||||
|
||||
.. note::
|
||||
Depending on the localization settings, there may be the option to customize the offer in the
|
||||
:guilabel:`Configure your package` tab.
|
||||
Fill out the following fields on the form:
|
||||
|
||||
View offers
|
||||
-----------
|
||||
- :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.
|
||||
Choose from:
|
||||
|
||||
To view the current offers, navigate to :menuselection:`Payroll app --> Contracts --> Offers`. This
|
||||
presents all offers in a list view, grouped by status, and displays the number of offers in each
|
||||
status category. The statuses are: :guilabel:`Fully Signed`, :guilabel:`Partially Signed`,
|
||||
:guilabel:`In Progress`, and :guilabel:`Expired`.
|
||||
- :guilabel:`Attachment of Salary`: any payments taken out towards something that is *not* child
|
||||
support. Typically any garnishments, such as lawsuit payments, payments toward taxes owed, etc.
|
||||
- :guilabel:`Assignment of Salary`: any deduction that is not required, but voluntary, such as a
|
||||
pre-tax allocation to a college savings account.
|
||||
- :guilabel:`Child Support`: any payments taken out specifically for child support.
|
||||
|
||||
To view the offers with a specific status, click on the status to expand the list. If a specific
|
||||
status has no offers, the status is not visible in the list.
|
||||
|
||||
.. image:: contracts/offers.png
|
||||
:align: center
|
||||
:alt: The offers in a list view, grouped by status.
|
||||
- :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 Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -42,6 +42,8 @@ for each click of the arrow, respectively.
|
||||
|
||||
At any point, to return to a view containing the current day, click the :guilabel:`Today` button.
|
||||
|
||||
.. _payroll/new-work-entry:
|
||||
|
||||
Add a new work entry
|
||||
====================
|
||||
|
||||
|
||||
@@ -490,270 +490,6 @@ the email pop-up.
|
||||
:alt: Send a custom survey, also referred to as an interview form, to an applicant using a
|
||||
pre-configured template.
|
||||
|
||||
Refuse
|
||||
~~~~~~
|
||||
|
||||
At any point in the recruitment pipeline, an applicant can be refused from the job application
|
||||
process. To refuse an applicant, click on an applicant's card to navigate to a detailed view of the
|
||||
applicant's card. At the top of the applicant's card, there are several buttons. Click the one
|
||||
labeled :guilabel:`Refuse`.
|
||||
|
||||
A :guilabel:`Refuse Reason` pop-up window appears. Click the :guilabel:`Refuse Reason` from the
|
||||
presented options. The default refuse reasons in Odoo, and their corresponding email templates, are:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
* - Email Template
|
||||
- Refusal Reason
|
||||
* - :guilabel:`Recruitment: Refuse`
|
||||
- | :guilabel:`Doesn't fit the job requirements`
|
||||
| :guilabel:`Language issues`
|
||||
| :guilabel:`Role already fulfilled`
|
||||
| :guilabel:`Duplicate`
|
||||
| :guilabel:`Spam`
|
||||
* - :guilabel:`Recruitment: Not interested anymore`
|
||||
- | :guilabel:`Refused by Applicant: don't like job`
|
||||
| :guilabel:`Refused by Applicant: better offer`
|
||||
| :guilabel:`Refused by Applicant: salary`
|
||||
|
||||
Additional refusal reasons :ref:`can be created and existing ones can be modified or deleted
|
||||
<recruitment/new-refuse>`.
|
||||
|
||||
.. note::
|
||||
Pre-configured email templates in Odoo sometimes use dynamic placeholders, which are customized
|
||||
pieces of data that populate dynamic content. For example, if the applicant's name is a piece of
|
||||
dynamic content, the applicant's name appears anytime that dynamic placeholder appears on the
|
||||
email template. For more detailed information on email templates, refer to the
|
||||
:doc:`../general/companies/email_template` documentation.
|
||||
|
||||
After a :guilabel:`Refuse Reason` is selected, two fields appear below the refusal reason:
|
||||
:guilabel:`Send Email` and :guilabel:`Email Template`.
|
||||
|
||||
The applicant's email address automatically populates the :guilabel:`Send Email` field; additional
|
||||
email recipients cannot be added. If an email should **not** be sent to the applicant, uncheck the
|
||||
:guilabel:`Send Email` checkbox.
|
||||
|
||||
The email template associated with the refusal reason populates the :guilabel:`Email Template`
|
||||
field. If a different email template is desired, select a different template from the
|
||||
:guilabel:`Email Template` drop-down menu. To view the email template, click the :guilabel:`External
|
||||
Link` icon to the right of the :guilabel:`Email Template` field. The email template loads in a
|
||||
:guilabel:`Open: Email Template` pop-up window, and can be modified if needed. After making
|
||||
modifications, click :guilabel:`Save & Close`.
|
||||
|
||||
To send the refusal email to the applicant, click :guilabel:`Refuse`. The refusal email is sent to
|
||||
the applicant, and a :guilabel:`Refused` banner appears on the applicant's card in the top-right
|
||||
corner.
|
||||
|
||||
.. image:: recruitment/refuse.png
|
||||
:align: center
|
||||
:alt: An applicant's card with the refused banner appearing in the top-right corner in red.
|
||||
|
||||
After refusal, the applicant's card is no longer visible in the job position's Kanban view. To view
|
||||
the refused applicants only, click the :guilabel:`▼ Toggle Search Panel` button in the search box,
|
||||
then click :guilabel:`Refused` under the :guilabel:`Filters` section. All applicants that have been
|
||||
refused for the job position appear, in the stage they were when they were refused.
|
||||
|
||||
To view all applicants that have been refused from all job positions, navigate to the
|
||||
:menuselection:`Recruitment app --> Applications --> All Applications`. Click the :guilabel:`▼
|
||||
Toggle Search Panel` button in the search box, then click :guilabel:`Refused` under the
|
||||
:guilabel:`Filters` section. All applications for all job positions are presented in a list view,
|
||||
organized by stage.
|
||||
|
||||
.. _recruitment/new-refuse:
|
||||
|
||||
Create or modify refuse reasons
|
||||
*******************************
|
||||
|
||||
To view all currently configured refuse reasons, navigate to :menuselection:`Recruitment app -->
|
||||
Settings --> Applications: Refuse Reasons`. All the refuse reasons appear in a list view.
|
||||
|
||||
To create a new refuse reason, click the :guilabel:`New` button in the top-left corner. A blank
|
||||
line appears at the bottom of the :guilabel:`Description` column.
|
||||
|
||||
Type in the new refuse reason in the field. It is recommended to enter a reason that is short and
|
||||
concise, such as `offer expired` or `withdrew application`.
|
||||
|
||||
Then, in the :guilabel:`Email Template` field, click on the field to reveal a drop-down menu.
|
||||
Select an :guilabel:`Email Template` from the list to be used when this refuse reason is selected.
|
||||
|
||||
If a new :guilabel:`Email Template` is desired, type in the name for the new template in the field.
|
||||
Then, click :guilabel:`Create and edit...` and a :guilabel:`Create Email Template` form pop-up
|
||||
window appears.
|
||||
|
||||
Enter a :guilabel:`Name` for the form and an email :guilabel:`Subject` in the corresponding fields.
|
||||
Enter the email content in the :guilabel:`Content` tab. Make any other desired modifications to the
|
||||
template, then click :guilabel:`Save & Close` to save the template and return to the
|
||||
:guilabel:`Refuse Reasons` list. The new template appears in the new refuse reason :guilabel:`Email
|
||||
Template` field.
|
||||
|
||||
To make any modifications to a refuse reason, click on the line, and make any desired changes.
|
||||
|
||||
New applicant
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
An applicant card can be manually added if needed. If an applicant needs to be added to the list of
|
||||
prospective candidates and an applicant card has not been created yet (they have not applied for the
|
||||
job online) an applicant card can be easily added from the job position Kanban view in one of two
|
||||
ways, using either the :ref:`quick add <recruitment/quick-add-applicant>` button or the :ref:`New
|
||||
<recruitment/create-new-applicant>` button.
|
||||
|
||||
.. _recruitment/quick-add-applicant:
|
||||
|
||||
Quick add
|
||||
*********
|
||||
|
||||
Quickly add a new applicant using the *quick add* button. If not already in the job position Kanban
|
||||
view, navigate to the main recruitment dashboard by going to :menuselection:`Recruitment app -->
|
||||
Applications --> By Job Positions`. Click the :guilabel:`(#) New Applications` button on the job
|
||||
position card that the applicant should be added to. Then, click on the small :icon:`fa-plus`
|
||||
:guilabel:`(plus)` icon in the top-right of the :guilabel:`New` stage to quickly add a new
|
||||
applicant.
|
||||
|
||||
Enter the following information on the card:
|
||||
|
||||
- :guilabel:`Subject/Application`: Enter the title for the card. Typically this is the applicant's
|
||||
name and job position being applied to, for example: `Laura Smith - HR Manager`. This field is not
|
||||
visible in the Kanban view, unless the :guilabel:`Applicant's Name` is left blank. If there is no
|
||||
:guilabel:`Applicant's Name`, then the :guilabel:`Subject/Application Name` is what is displayed
|
||||
on the applicant card in the Kanban view.
|
||||
- :guilabel:`Applicant's Name`: enter the applicant's name.
|
||||
- :guilabel:`Email`: enter the applicant's email address.
|
||||
- :guilabel:`Applied Job`: the current job position populates this field. If needed, the job
|
||||
position can be changed by selecting a different position from the drop-down menu. If a different
|
||||
job position is selected, after the card is created, the card appears in the selected job
|
||||
position.
|
||||
|
||||
After the information is entered, click :guilabel:`Add`. The applicant appears in the list, and a
|
||||
new blank applicant card appears. Click either the :icon:`fa-trash-o` :guilabel:`delete` icon or
|
||||
anywhere on the screen to close the card.
|
||||
|
||||
If preferred, after entering the applicant name, click :guilabel:`Edit` and a detailed
|
||||
:guilabel:`Applicant Form` loads. :ref:`Enter the information on the form
|
||||
<recruitment/applicant-details>`.
|
||||
|
||||
.. image:: recruitment/quick-add.png
|
||||
:align: center
|
||||
:alt: All the fields for a new applicant form entered when using the Quick Add option.
|
||||
|
||||
.. _recruitment/create-new-applicant:
|
||||
|
||||
New
|
||||
***
|
||||
|
||||
Add a new applicant including all the relevant information using the *New* button. If not already in
|
||||
the Kanban view for the job position to add an applicant to, navigate to the main recruitment
|
||||
dashboard by going to :menuselection:`Recruitment app --> Applications --> By Job Positions`. Then,
|
||||
click the :guilabel:`New` button in the top-left of the Kanban view and a blank applicant form
|
||||
loads.
|
||||
|
||||
Certain fields on the applicant card may be pre-populated, depending on how the job position is
|
||||
configured. Typically, the :guilabel:`Job` section, as well as the :guilabel:`Recruiter` field, are
|
||||
all pre-populated.
|
||||
|
||||
Enter the following information on the new applicant form. Note that not all fields listed below may
|
||||
be visible. Depending on installed applications and configurations, some fields may not be
|
||||
displayed.
|
||||
|
||||
.. _recruitment/applicant-details:
|
||||
|
||||
Applicant section
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
- :guilabel:`Subject/Application Name`: this is the only required field. Enter the title for the
|
||||
card. Typically this is the applicant's name and job position being applied to, for example:
|
||||
`John Smith - Experienced Developer`. This field is not visible in the Kanban view, unless the
|
||||
:guilabel:`Applicant's Name` is left blank. If there is no :guilabel:`Applicant's Name`, then the
|
||||
:guilabel:`Subject/Application Name` is what is displayed on the applicant card in the Kanban
|
||||
view.
|
||||
- :guilabel:`Applicant's Name`: enter the applicant's name.
|
||||
- :guilabel:`Email`: enter the applicant's email address.
|
||||
- :guilabel:`Phone`: enter the applicant's phone number.
|
||||
- :guilabel:`Mobile`: enter the applicant's mobile number.
|
||||
- :guilabel:`LinkedIn Profile`: enter the web address for the applicant's personal profile on
|
||||
LinkedIn.
|
||||
- :guilabel:`Degree`: select the applicant's highest level of education earned from the drop-down
|
||||
menu. Options are :guilabel:`Graduate`, :guilabel:`Bachelor Degree`, :guilabel:`Master Degree`, or
|
||||
:guilabel:`Doctoral Degree`. The :guilabel:`Graduate` option indicates graduating the highest
|
||||
level of school before a Bachelor's degree, such as a high school or secondary school diploma,
|
||||
depending on the country.
|
||||
- :guilabel:`Interviewers`: using the drop-down menu, select the people who will conduct the
|
||||
interview(s). The selected people must have either *recruiter* or *officer* rights configured for
|
||||
the Recruitment application to appear in the drop-down list.
|
||||
- :guilabel:`Recruiter`: select the person responsible for the entire recruitment process for the
|
||||
job position. Only *users* can be selected, and all users are presented in the drop-down to
|
||||
select from.
|
||||
- :guilabel:`Evaluation`: click on one of the stars to select a rating for the applicant. One star
|
||||
indicates :guilabel:`Good`, two stars indicates :guilabel:`Very Good`, and three stars indicates
|
||||
:guilabel:`Excellent.`
|
||||
- :guilabel:`Source`: using the drop-down menu, select where the applicant learned about the job
|
||||
position. The following options come pre-configured in Odoo: :guilabel:`Search engine`,
|
||||
:guilabel:`Lead Recall`, :guilabel:`Newsletter`, :guilabel:`Facebook`, :guilabel:`Twitter`,
|
||||
:guilabel:`LinkedIn`, :guilabel:`Monster`, :guilabel:`Glassdoor`, and :guilabel:`Craigslist`. To
|
||||
add a new :guilabel:`Source`, type in the source, then click :guilabel:`Create "(new source)"`.
|
||||
- :guilabel:`Medium`: using the drop-down menu, select the method, or :guilabel:`Medium`, for the
|
||||
:guilabel:`Source` that the applicant found the job listing with. The pre-configured options are:
|
||||
:guilabel:`Banner`, :guilabel:`Direct`, :guilabel:`Email`, :guilabel:`Facebook`, :guilabel:`Google
|
||||
Adwords`, :guilabel:`LinkedIn`, :guilabel:`Phone`, :guilabel:`Television`, :guilabel:`Twitter`
|
||||
(now known as "X"), or :guilabel:`Website`. To add a new :guilabel:`Medium`, type in the medium,
|
||||
then click :guilabel:`Create "(new medium)"`.
|
||||
- :guilabel:`Referred By User`: if referral points are to be earned for this job position in the
|
||||
*Referrals* application, select the user who referred the applicant from the drop-down menu. The
|
||||
*Referrals* application must be installed for this field to appear.
|
||||
- :guilabel:`Availability`: select the available start date for the applicant. To select a date,
|
||||
click on the field to reveal a calendar. Use the :guilabel:`< (left)` and :guilabel:`> (right)`
|
||||
arrows on either side of the month to navigate to the desired month, then click on the
|
||||
:guilabel:`day` to select the date. If no entry is selected that indicates the applicant is ready
|
||||
to begin work immediately.
|
||||
- :guilabel:`Tags`: select as many tags as desired from the drop-down menu. To add a tag that does
|
||||
not exist, type in the tag name, then click :guilabel:`Create "new tag"`.
|
||||
|
||||
Job section
|
||||
^^^^^^^^^^^
|
||||
|
||||
The following fields are pre-populated when creating a new applicant, as long as these field are
|
||||
specified on the Job Position. Editing the fields is possible, if desired.
|
||||
|
||||
- :guilabel:`Applied Job`: select the job position the applicant is applying to from the drop-down
|
||||
menu.
|
||||
- :guilabel:`Department`: select the department the job position falls under from the drop-down
|
||||
menu.
|
||||
- :guilabel:`Company`: select the company the job position is for using the drop-down menu. This
|
||||
field only appears when in a multi-company database.
|
||||
|
||||
Contract section
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
- :guilabel:`Expected Salary`: enter the amount the applicant is requesting for the role in this
|
||||
field. The number should be in a `XX,XXX.XX` format. The currency is determined by the
|
||||
localization setting for the company.
|
||||
- :guilabel:`Extra advantages...`: if any extra advantages are requested by the applicant, enter it
|
||||
in the :guilabel:`Extra advantages...` field to the right of the :guilabel:`Expected Salary`
|
||||
field. This should be short and descriptive, such as `1 week extra vacation` or `dental plan`.
|
||||
- :guilabel:`Proposed Salary`: enter the amount to be offered to the applicant for the role in this
|
||||
field. The number should be in a `XX,XXX.XX` format. The currency is determined by the
|
||||
localization setting for the company.
|
||||
- :guilabel:`Extra advantages...`: if any extra advantages are offered to the applicant, enter it in
|
||||
the :guilabel:`Extra advantages...` field to the right of the :guilabel:`Proposed Salary` field.
|
||||
This should be short and descriptive, such as `unlimited sick time` or `retirement plan`.
|
||||
|
||||
Application summary tab
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Any additional details or notes that should be added to the applicant's card can be typed into this
|
||||
field.
|
||||
|
||||
Skills tab
|
||||
^^^^^^^^^^
|
||||
|
||||
Skills can be added to the applicant's card. To add a skill, follow the same steps as outlined in
|
||||
the skills section of the :ref:`Create new employees <employees/skills>` document.
|
||||
|
||||
.. image:: recruitment/new-applicant.png
|
||||
:align: center
|
||||
:alt: All the fields for a new applicant form entered.
|
||||
|
||||
.. _recruitment/initial-qualification:
|
||||
|
||||
Initial qualification
|
||||
@@ -1132,3 +868,5 @@ Fill out the rest of the form. For detailed information on the fields, refer to
|
||||
:titlesonly:
|
||||
|
||||
recruitment/new_job
|
||||
recruitment/add-new-applicants
|
||||
recruitment/refuse_applicant
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
==================
|
||||
Add new applicants
|
||||
==================
|
||||
|
||||
Once an applicant submits an application, either using the online application, or emailing a job
|
||||
position alias, an applicant card is automatically created in the *Recruitment* application.
|
||||
|
||||
However, in some instances, applicants may need to be created manually in the database. This could
|
||||
be necessary if, for example, a company accepts paper applications in the mail, or is meeting
|
||||
prospective applicants at an in-person job fair.
|
||||
|
||||
To view current applicants, navigate to the :menuselection:`Recruitment` app, then click the desired
|
||||
job position card. Doing so reveals the :guilabel:`Applications` page, which displays all
|
||||
applicants for that specific role, in a default Kanban view, organized by stage.
|
||||
|
||||
Add new applicants from a job position's :guilabel:`Applications` page by using either: the
|
||||
:ref:`New <recruitment/create-new-applicant>` button or the :ref:`quick add
|
||||
<recruitment/quick-add-applicant>` button.
|
||||
|
||||
.. _recruitment/quick-add-applicant:
|
||||
|
||||
Quick add
|
||||
=========
|
||||
|
||||
On the :guilabel:`Applications` page, click the on the quick add button, represented by a small
|
||||
:icon:`fa-plus` :guilabel:`(plus)` icon in the top-right corner of each stage to quickly add a new
|
||||
applicant to that stage.
|
||||
|
||||
Enter the following information on the card:
|
||||
|
||||
- :guilabel:`Subject/Application`: enter the title for the card. Typically, this is the applicant's
|
||||
name, and job position being applied to. For example: `Laura Smith - HR Manager`. The text entered
|
||||
in this field is **not** visible in the Kanban view of the :guilabel:`Applications` page, unless
|
||||
the :guilabel:`Applicant's Name` field is left blank.
|
||||
- :guilabel:`Applicant's Name`: enter the applicant's name. Displays as the card title in the
|
||||
Kanban view of the :guilabel:`Applications` page.
|
||||
- :guilabel:`Email`: enter the applicant's email address.
|
||||
- :guilabel:`Applied Job`: the current job position populates this field. If needed, the job
|
||||
position can be changed by selecting a different position from the drop-down menu. If a different
|
||||
job position is selected, after the card is created, the card appears on the
|
||||
:guilabel:`Applications` page for that newly-selected job position.
|
||||
|
||||
After the information is entered, click :guilabel:`Add`. The applicant appears in the list, and a
|
||||
new blank applicant card appears.
|
||||
|
||||
If preferred, after entering the :guilabel:`Applicant's Name` in the Kanban card that appears, click
|
||||
:guilabel:`Edit`, and a detailed applicant form loads. Refer to the :ref:`New applicant form
|
||||
<recruitment/applicant-details>` section for details about filling out the form.
|
||||
|
||||
When doing a quick add, clicking away from an empty card, or clicking the :icon:`fa-trash-o`
|
||||
(:guilabel:`trash`) icon, discards the applicant.
|
||||
|
||||
.. image:: add-new-applicants/quick-add.png
|
||||
:align: center
|
||||
:alt: All the fields for a new applicant form entered when using the Quick Add option.
|
||||
|
||||
.. _recruitment/create-new-applicant:
|
||||
|
||||
New applicant form
|
||||
==================
|
||||
|
||||
On the new applicant form, the :guilabel:`Subject / Application` field is populated with the
|
||||
pre-selected job position, by default. Certain fields on the applicant card may also be
|
||||
pre-populated, depending on how the job position is configured. Typically, the :guilabel:`Job`
|
||||
section, as well as the :guilabel:`Recruiter` field, are pre-populated.
|
||||
|
||||
Complete the fields in the following sections on the new applicant form.
|
||||
|
||||
.. note::
|
||||
Depending on installed applications and configurations, some fields may **not** be displayed.
|
||||
|
||||
.. image:: add-new-applicants/new-applicant.png
|
||||
:align: center
|
||||
:alt: All the fields for a new applicant form entered.
|
||||
|
||||
.. _recruitment/applicant-details:
|
||||
|
||||
Applicant section
|
||||
-----------------
|
||||
|
||||
- :guilabel:`Subject/Application Name`: this is the **only** required field. Enter the title for the
|
||||
card in this field. Typically, this is the applicant's name, and the job position being applied
|
||||
to. For example: `John Smith - Experienced Developer`. This field is **not** visible in the Kanban
|
||||
view of the :guilabel:`Applications` page, unless the :guilabel:`Applicant's Name` is left blank.
|
||||
- :guilabel:`Applicant's Name`: enter the applicant's name. This field is displayed as the card
|
||||
title in the Kanban view of the :guilabel:`Applications` page.
|
||||
- :guilabel:`Email`: enter the applicant's email address.
|
||||
- :guilabel:`Phone`: enter the applicant's phone number.
|
||||
- :guilabel:`Mobile`: enter the applicant's mobile number.
|
||||
- :guilabel:`LinkedIn Profile`: enter the web address for the applicant's personal profile on
|
||||
LinkedIn.
|
||||
- :guilabel:`Degree`: select the applicant's highest level of education from the drop-down menu.
|
||||
Options are: :guilabel:`Graduate`, :guilabel:`Bachelor Degree`, :guilabel:`Master Degree`, or
|
||||
:guilabel:`Doctoral Degree`. The :guilabel:`Graduate` option indicates the applicant graduated at
|
||||
the highest level of school before a Bachelor's degree, such as a high school or secondary school
|
||||
diploma, depending on the country.
|
||||
- :guilabel:`Interviewers`: using the drop-down menu, select the people to conduct the interviews.
|
||||
The selected people **must** have either *recruiter* or *officer* rights configured for the
|
||||
*Recruitment* application to appear in the drop-down list. Refer to the :doc:`Access rights
|
||||
<../../general/users/access_rights>` documentation for more information.
|
||||
- :guilabel:`Recruiter`: select the user responsible for the entire recruitment process for the job
|
||||
position.
|
||||
- :guilabel:`Evaluation`: represents a rating for the applicant: one star (:icon:`fa-star`
|
||||
:icon:`fa-star-o` :icon:`fa-star-o`) is :guilabel:`Good`, two stars (:icon:`fa-star`
|
||||
:icon:`fa-star` :icon:`fa-star-o`) is :guilabel:`Very Good`, and three stars (:icon:`fa-star`
|
||||
:icon:`fa-star` :icon:`fa-star`)is :guilabel:`Excellent.`
|
||||
- :guilabel:`Source`: using the drop-down menu, select where the applicant learned about the job
|
||||
position. The following options come pre-configured in Odoo: :guilabel:`Search engine`,
|
||||
:guilabel:`Lead Recall`, :guilabel:`Newsletter`, :guilabel:`Facebook`, :guilabel:`Twitter`,
|
||||
:guilabel:`LinkedIn`, :guilabel:`Monster`, :guilabel:`Glassdoor`, and :guilabel:`Craigslist`. To
|
||||
add a new :guilabel:`Source`, type in the source, then click :guilabel:`Create "(new source)"`.
|
||||
- :guilabel:`Medium`: using the drop-down menu, specify how the job listing was found. The
|
||||
pre-configured options are: :guilabel:`Banner`, :guilabel:`Direct`, :guilabel:`Email`,
|
||||
:guilabel:`Facebook`, :guilabel:`Google Adwords`, :guilabel:`LinkedIn`, :guilabel:`Phone`,
|
||||
:guilabel:`Television`, :guilabel:`Twitter` (now known as "X"), or :guilabel:`Website`. To add a
|
||||
new :guilabel:`Medium`, type in the medium, then click :guilabel:`Create "(new medium)"`.
|
||||
- :guilabel:`Referred By User`: if referral points are to be earned for this job position in the
|
||||
*Referrals* application, select the user who referred the applicant from the drop-down menu. The
|
||||
*Referrals* application **must** be installed for this field to appear.
|
||||
- :guilabel:`Availability`: select the available start date for the applicant. To select a date,
|
||||
click on the field to reveal a popover calendar. Use the :icon:`fa-angle-left` :guilabel:`(left)`
|
||||
and :icon:`fa-angle-right` :guilabel:`(right)` arrows on either side of the month to navigate to
|
||||
the desired month, then click the desired date. Leaving this field blank indicates the applicant
|
||||
can start immediately.
|
||||
- :guilabel:`Tags`: select as many tags as desired from the drop-down menu. To add a tag that does
|
||||
not exist, type in the tag name, then click :guilabel:`Create "new tag"` from the resulting
|
||||
drop-down menu.
|
||||
|
||||
Job section
|
||||
-----------
|
||||
|
||||
The following fields are pre-populated when creating a new applicant, as long as these field are
|
||||
specified on the job position form. Editing the fields is possible, if desired.
|
||||
|
||||
- :guilabel:`Applied Job`: select the job position the applicant is applying to from the drop-down
|
||||
menu.
|
||||
- :guilabel:`Department`: select the department the job position falls under from the drop-down
|
||||
menu.
|
||||
- :guilabel:`Company`: select the company the job position is for using the drop-down menu. This
|
||||
field **only** appears when in a multi-company database.
|
||||
|
||||
Contract section
|
||||
----------------
|
||||
|
||||
- :guilabel:`Expected Salary`: enter the amount the applicant is requesting in this field. The
|
||||
number should be in a `XX,XXX.XX` format. The currency is determined by the localization setting
|
||||
for the company.
|
||||
|
||||
- :guilabel:`Extra advantages...`: if any extra advantages are requested by the applicant, enter
|
||||
it in the :guilabel:`Extra advantages...` field to the right of the :guilabel:`Expected Salary`
|
||||
field. This should be short and descriptive, such as `1 week extra vacation` or `dental plan`.
|
||||
|
||||
- :guilabel:`Proposed Salary`: enter the amount to be offered to the applicant for the role in this
|
||||
field. The number should be in a `XX,XXX.XX` format.
|
||||
|
||||
- :guilabel:`Extra advantages...`: if any extra advantages are offered to the applicant, enter it
|
||||
in the :guilabel:`Extra advantages...` field to the right of the :guilabel:`Proposed Salary`
|
||||
field. This should be short and descriptive, such as `unlimited sick time` or `retirement plan`.
|
||||
|
||||
Application Summary tab
|
||||
-----------------------
|
||||
|
||||
Any additional details or notes that should be added to the applicant's card can be typed into this
|
||||
field.
|
||||
|
||||
Skills tab
|
||||
----------
|
||||
|
||||
Skills can be added to the applicant's card. For details on adding skills, refer to the
|
||||
:ref:`Create new employees <employees/skills>` document.
|
||||
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
@@ -0,0 +1,144 @@
|
||||
=================
|
||||
Refuse applicants
|
||||
=================
|
||||
|
||||
At any point in the recruitment process, an applicant can be refused for a job position.
|
||||
|
||||
To refuse an applicant, start by navigating to the applicant's card in the *Recruitment* app. This
|
||||
is done in one of two ways:
|
||||
|
||||
- Navigate to :menuselection:`Recruitment app --> Applications --> All Applications`. In the
|
||||
:guilabel:`Applications` list, click anywhere on the desired applicant's line to open that
|
||||
specific applicant's card.
|
||||
- Navigate to the main *ob Positions* dashboard by navigating to :menuselection:`Recruitment app
|
||||
--> Applications --> By Job Position`. Next, click on the desired job position card, then click on
|
||||
the individual applicant card from the :guilabel:`Applications` page.
|
||||
|
||||
At the top of the applicant's card, there are several buttons. Click the one labeled
|
||||
:guilabel:`Refuse`.
|
||||
|
||||
.. _recruitment/refuse-reasons:
|
||||
|
||||
Refuse reasons
|
||||
==============
|
||||
|
||||
*Refuse reasons* allow recruiters to document why an applicant was not a good fit, and send specific
|
||||
refusal reason email templates to the applicant.
|
||||
|
||||
Clicking :guilabel:`Refuse` on an applicant's form makes the :guilabel:`Refuse Reason` pop-up window
|
||||
appear.
|
||||
|
||||
The default refuse reasons in Odoo, and their corresponding email templates, are:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:stub-columns: 1
|
||||
|
||||
* - Email Template
|
||||
- Refusal Reason
|
||||
* - :guilabel:`Recruitment: Refuse`
|
||||
- | :guilabel:`Doesn't fit the job requirements`
|
||||
| :guilabel:`Language issues`
|
||||
| :guilabel:`Role already fulfilled`
|
||||
| :guilabel:`Duplicate`
|
||||
| :guilabel:`Spam`
|
||||
* - :guilabel:`Recruitment: Not interested anymore`
|
||||
- | :guilabel:`Refused by Applicant: don't like job`
|
||||
| :guilabel:`Refused by Applicant: better offer`
|
||||
| :guilabel:`Refused by Applicant: salary`
|
||||
|
||||
Additional refusal reasons :ref:`can be created, and existing ones can be modified (or deleted)
|
||||
<recruitment/new-refuse>`.
|
||||
|
||||
Select a refusal reason to :ref:`send a refusal email <recruitment/send-refusal-email>`.
|
||||
|
||||
.. _recruitment/new-refuse:
|
||||
|
||||
Create or modify refuse reasons
|
||||
-------------------------------
|
||||
|
||||
To view and configure refuse reasons, navigate to :menuselection:`Recruitment app --> Configuration
|
||||
--> Applications: Refuse Reasons`. Doing so reveals the :guilabel:`Refuse Reasons` page, where all
|
||||
the existing refuse reasons are listed.
|
||||
|
||||
To create a new refuse reason from the :guilabel:`Refuse Reasons` page, click the :guilabel:`New`
|
||||
button in the top-left corner. A blank line appears at the bottom of the list, with an empty field
|
||||
present in the :guilabel:`Description` column.
|
||||
|
||||
Type in the new refuse reason in the field. It is recommended to enter a reason that is short and
|
||||
concise, such as `Offer expired` or `Withdrew application`.
|
||||
|
||||
Then, in the :guilabel:`Email Template` field, click on the field to reveal a drop-down menu.
|
||||
Select an :guilabel:`Email Template` from the list to be used when this refuse reason is selected.
|
||||
|
||||
If a new :guilabel:`Email Template` is desired, type in the name for the new template in the field.
|
||||
Then, click :guilabel:`Create and edit...`, and a :guilabel:`Create Email Template` form pop-up
|
||||
window appears.
|
||||
|
||||
In the :guilabel:`Create Email Template` pop-up window, enter a :guilabel:`Name` for the form, and
|
||||
an email :guilabel:`Subject` in the corresponding fields.
|
||||
|
||||
Enter the desired email content in the :guilabel:`Content` tab. Proceed to make any other
|
||||
modifications to the template in the :guilabel:`Email Configuration` and :guilabel:`Settings` tabs,
|
||||
then click :guilabel:`Save & Close` to save the template. Upon clicking that, Odoo returns to the
|
||||
:guilabel:`Refuse Reasons` list.
|
||||
|
||||
The new template appears in the new refuse reason :guilabel:`Email Template` field.
|
||||
|
||||
.. note::
|
||||
Pre-configured recruitment refusal email templates in Odoo use dynamic placeholders, which are
|
||||
personalized placeholders that populate data from the applicant's record in the email body.
|
||||
|
||||
For example, if the applicant's name is a used in a dynamic placeholder, the applicant's name
|
||||
appears anytime that dynamic placeholder appears on the email template.
|
||||
|
||||
For more detailed information on email templates, refer to the
|
||||
:doc:`../../general/companies/email_template` documentation.
|
||||
|
||||
.. _recruitment/send-refusal-email:
|
||||
|
||||
Send refusal email
|
||||
==================
|
||||
|
||||
After clicking the :guilabel:`Refuse` button on an applicant form, a :ref:`Refuse Reason
|
||||
<recruitment/refuse-reasons>` can be selected from the :guilabel:`refuse reason` pop-up window.
|
||||
Then, two fields appear below the selected refusal reason: :guilabel:`Send Email` and
|
||||
:guilabel:`Email Template`.
|
||||
|
||||
.. image:: refuse_applicant/refuse-pop-up.png
|
||||
:align: center
|
||||
:alt: The Refuse Reason pop-up window that appears when refusing an applicant.
|
||||
|
||||
The applicant's email address automatically populates the :guilabel:`Send Email` field; additional
|
||||
email recipients **cannot** be added.
|
||||
|
||||
If an email should **not** be sent to the applicant, uncheck the :guilabel:`Send Email` checkbox.
|
||||
|
||||
The email template associated with the refusal reason populates the :guilabel:`Email Template`
|
||||
field. If a different email template is desired, select a different template from the
|
||||
:guilabel:`Email Template` drop-down menu.
|
||||
|
||||
To send the refusal email to the applicant, ensure the :guilabel:`Send Email` checkbox is ticked,
|
||||
then click :guilabel:`Refuse` at the bottom of the :guilabel:`Refuse Reason` pop-up window. The
|
||||
refusal email is sent to the applicant, and a red :guilabel:`Refused` banner appears on the
|
||||
applicant's card in the top-right corner.
|
||||
|
||||
.. image:: refuse_applicant/refuse.png
|
||||
:align: center
|
||||
:alt: An applicant's card with the refused banner appearing in the top-right corner in red.
|
||||
|
||||
View refused applicants
|
||||
=======================
|
||||
|
||||
After refusal, the applicant's card is no longer visible in the job position's Kanban view. However,
|
||||
it is still possible to view applicants who have been refused.
|
||||
|
||||
To view only the refused applicants, go to :menuselection:`Recruitment app --> Applications --> By
|
||||
Job Positions`, or :menuselection:`Recruitment app --> Applications --> All Applications`.
|
||||
|
||||
On the :guilabel:`Applications` page, click the :icon:`fa-caret-down` :guilabel:`(caret down)`
|
||||
button in the :guilabel:`Search...` bar, then click :guilabel:`Refused`, located under the
|
||||
:guilabel:`Filters` section.
|
||||
|
||||
All applicants that have been refused for the job position appear on the :guilabel:`Applications`
|
||||
page for that position, organized by the stage they were in when they were refused.
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
@@ -1,3 +1,5 @@
|
||||
:show-content:
|
||||
|
||||
=========
|
||||
Referrals
|
||||
=========
|
||||
@@ -9,9 +11,9 @@ recruitment pipeline. Once enough referral points are earned, they can be exchan
|
||||
*Referrals* application integrates with the *Employees*, *Recruitment*, and *Website* applications,
|
||||
all of which must be installed in order for the *Referrals* application to function.
|
||||
|
||||
The only configurations needed for the *Referrals* application *after* installation are related to
|
||||
the :ref:`rewards <referrals/rewards>`; everything else is pre-configured when Odoo *Referrals* is
|
||||
installed.
|
||||
The only configurations needed for the *Referrals* application *after* it has been installed, are
|
||||
related to the :doc:`rewards <referrals/rewards>`; everything else is pre-configured when Odoo
|
||||
*Referrals* is installed.
|
||||
|
||||
Users with either :guilabel:`Referral User`, :guilabel:`Officer`, or :guilabel:`Administrator`
|
||||
access rights for the *Recruitment* application have access to the *Referrals* application. Only
|
||||
@@ -97,169 +99,6 @@ desired position.
|
||||
:align: center
|
||||
:alt: The onboarding slides in a list, with the drag and drop arrows highlighted.
|
||||
|
||||
Share job positions
|
||||
===================
|
||||
|
||||
In order to earn referral points, a user must first share a job position, so the applicant can apply
|
||||
for the position. Job positions can be shared in several ways within the *Referrals* application,
|
||||
through the :ref:`View Jobs <referrals/view-jobs>` button and the :ref:`Email A Friend
|
||||
<referrals/email-jobs>` button, located at the bottom of the *Referrals* app dashboard.
|
||||
|
||||
.. note::
|
||||
Sharing jobs can **only** occur after onboarding slides have been viewed or skipped.
|
||||
|
||||
.. _referrals/view-jobs:
|
||||
|
||||
View Jobs
|
||||
---------
|
||||
|
||||
To see all job positions that are actively recruiting candidates, click the :guilabel:`View Jobs`
|
||||
button on the main Referrals dashboard. This presents all job positions, with each individual job
|
||||
presented in its own card.
|
||||
|
||||
.. image:: referrals/jobs.png
|
||||
:align: center
|
||||
:alt: The 'View Jobs' screen, displaying all current open job positions. All information is
|
||||
displayed on the card.
|
||||
|
||||
Each job position card contains the following information:
|
||||
|
||||
- The title of the job position. This information is taken from the :guilabel:`Job Position` field
|
||||
of the job form.
|
||||
- The number of positions being recruited. This information is taken from the :guilabel:`Expected
|
||||
New Employees` field of the :guilabel:`Recruitment` tab of the job form.
|
||||
- The points a user will earn when an applicant applies for the position.
|
||||
- The job description detailing the job position. This information is taken from the :guilabel:`Job
|
||||
Position` tab of the job form.
|
||||
|
||||
To see all the details for a job position, click the :guilabel:`More Info` button on the specific
|
||||
card. This opens the job position webpage in a new browser tab. This is what an applicant sees
|
||||
before applying for a position.
|
||||
|
||||
.. note::
|
||||
Only published job positions will be visible in the Referrals app. To check which job positions
|
||||
are published or not, refer to the :doc:`recruitment/new_job` documentation.
|
||||
|
||||
Refer friends
|
||||
-------------
|
||||
|
||||
To share a job position with someone, click the :guilabel:`Refer Friend` button on the specific job
|
||||
position card. A pre-configured :guilabel:`Send Job Offer by Mail` email pop-up window appears.
|
||||
Enter the recipient's email address in the :guilabel:`Email` field.
|
||||
|
||||
The subject and body are populated using a default template. The subject `Job for you` appears, and
|
||||
can be modified if desired.
|
||||
|
||||
The specific title of the job position will populate the :guilabel:`Job Position` placeholder in the
|
||||
email body. The `See Job Offer` text in the email body is an individualized tracking link to the
|
||||
specific job position listed on the website. When the prospective employee receives the email, the
|
||||
link will send them to the job position page, where they can apply for the position, and the person
|
||||
who referred them is tracked in the *Referrals* application.
|
||||
|
||||
If desired, add any text or closing salutation to the email body. When all edits have been made,
|
||||
click :guilabel:`Send Email` to send the email, or click :guilabel:`Cancel` to close the email
|
||||
pop-up window.
|
||||
|
||||
.. image:: referrals/email.png
|
||||
:align: center
|
||||
:alt: Referral email pop-up window with the email message inside it.
|
||||
|
||||
Share a job
|
||||
-----------
|
||||
|
||||
Other than sending an email, job positions can be shared, via social media platforms, and tracking
|
||||
links to the job position. At the bottom of each job position card are four icons, and corresponding
|
||||
tracking links, that can be used to share the job position, keeping track of applicants in the
|
||||
*Referrals* application.
|
||||
|
||||
.. image:: referrals/share.png
|
||||
:align: center
|
||||
:alt: The various sharing icons that appear for each job.
|
||||
|
||||
Link
|
||||
~~~~
|
||||
|
||||
To share the job position with a customized tracking link, click the :guilabel:`Share Now` button
|
||||
with the :guilabel:`🔗 (chain)` icon inside it. A :guilabel:`Link to Share` pop-up window appears
|
||||
with the tracking link. Click :guilabel:`Copy` to copy the link. After the link is copied, click the
|
||||
:guilabel:`Close` button to close the pop-up window. Next, share the link with the prospective
|
||||
employee.
|
||||
|
||||
Facebook
|
||||
~~~~~~~~
|
||||
|
||||
To share the job position using Facebook, click the :guilabel:`Share Now` button with the
|
||||
:guilabel:`f (Facebook)` icon inside it.
|
||||
|
||||
If the user is already logged into Facebook, when the :guilabel:`f (Facebook)` icon is clicked, a
|
||||
:guilabel:`Share on Facebook` page loads in a new tab, with the link populated in the main body of
|
||||
the new post in a pop-up window. If the user is *not* already logged in, a log-in screen loads,
|
||||
instead, prompting the user to log-in to Facebook first.
|
||||
|
||||
Type in any additional information to add to the post, then share the job position using the
|
||||
available options in Facebook.
|
||||
|
||||
X (formerly Twitter)
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A job position can also be shared on X (formerly Twitter). Click the :guilabel:`Share Now` button
|
||||
with the :guilabel:`X` icon inside it.
|
||||
|
||||
If the user is already signed in to X (formerly Twitter), when the :guilabel:`Share Now` icon is
|
||||
clicked, an X (formerly Twitter) page loads in a new tab with a pre-populated message ready to post,
|
||||
in a draft pop-up window. If the user is *not* already signed in, a sign-in screen loads instead,
|
||||
prompting the user to sign in to X (formerly Twitter).
|
||||
|
||||
The default message is:
|
||||
|
||||
:guilabel:`Amazing job offer for (Job Position)! Check it live: (link to Job Position)`
|
||||
|
||||
Type in any additional information, or make any edits to the message, then share using the available
|
||||
options in X (formerly Twitter).
|
||||
|
||||
LinkedIn
|
||||
~~~~~~~~
|
||||
|
||||
To share a job position on LinkedIn, click the :guilabel:`Share Now` button with the :guilabel:`in
|
||||
(LinkedIn logo)` inside it.
|
||||
|
||||
If the user is already logged into LinkedIn, when the :guilabel:`Share Now` button is clicked, a new
|
||||
tab loads in LinkedIn, with a link to the job position at the top. If the user is *not* already
|
||||
logged in, a log-in screen loads instead, prompting the user to log-in to LinkedIn first.
|
||||
|
||||
The job position can be shared either in a public post, or in a private message to an individual (or
|
||||
group of individuals).
|
||||
|
||||
Type in any additional information, or make any edits to the message or post, then share using the
|
||||
available options in LinkedIn.
|
||||
|
||||
.. _referrals/email-jobs:
|
||||
|
||||
Email a friend
|
||||
--------------
|
||||
|
||||
Another way to share job opportunities is to share the entire current list of open job positions
|
||||
instead of one job position at a time. To do this, navigate to the main *Referrals* app dashboard.
|
||||
Click the :guilabel:`Email a friend` button at the bottom of the screen. A :guilabel:`Send Job Offer
|
||||
by Mail` pop-up window appears.
|
||||
|
||||
Enter the email address in the :guilabel:`Email` line. The email can be sent to multiple
|
||||
recipients, simply enter a comma followed by a single space after each email address. The
|
||||
:guilabel:`Subject` is pre-configured with `Job for you`, but can be edited.
|
||||
|
||||
The email body is also populated with pre-configured text. The text that appears is:
|
||||
|
||||
`Hello,`
|
||||
|
||||
`There are some amazing job offers in my company! Have a look, they can be interesting for you\:`
|
||||
|
||||
`See Job Offers`
|
||||
|
||||
The :guilabel:`See Job Offers` text is a tracking link to a complete list of all job positions
|
||||
currently being recruited for. Add any additional text and make any edits to the message body, if
|
||||
necessary. Then, click :guilabel:`Send Mail` to send the email. This sends the message, and closes
|
||||
the window.
|
||||
|
||||
.. _referrals/hired:
|
||||
|
||||
Hired referrals
|
||||
@@ -399,71 +238,6 @@ check mark appears next to the stage.
|
||||
earned for each stage are done in the *Recruitment* application. Refer to the
|
||||
:ref:`Recruitment <recruitment/modify-stages>` documentation to modify the points for each stage.
|
||||
|
||||
.. _referrals/rewards:
|
||||
|
||||
Rewards
|
||||
=======
|
||||
|
||||
Create rewards
|
||||
--------------
|
||||
|
||||
The rewards are the only configurations needed when setting up the *Referrals* application. Only
|
||||
users with :guilabel:`Administrator` rights for the *Recruitment* application can create or modify
|
||||
rewards. To add rewards, navigate to :menuselection:`Referrals app --> Configuration --> Rewards`.
|
||||
Click :guilabel:`New`, and a reward form loads. Enter the following information on the form:
|
||||
|
||||
- :guilabel:`Product Name`: enter the name as it should appear for the reward.
|
||||
- :guilabel:`Cost`: enter the amount of points required to redeem the reward.
|
||||
- :guilabel:`Company`: using the drop-down menu, select the company the reward appears for. If a
|
||||
reward is to be used for several companies, each company needs to have a record of the reward,
|
||||
with the company listed on the form. This field only appears if in a multi-company environment.
|
||||
- :guilabel:`Gift Responsible`: select the person who will be responsible for procuring and
|
||||
delivering the reward to the recipient, using the drop-down menu. This person is alerted when the
|
||||
reward is bought in the *Referrals* application, so they know when to deliver the reward to the
|
||||
recipient.
|
||||
- :guilabel:`Description`: type in the description for the reward. This will be visible on the
|
||||
reward card, beneath the title.
|
||||
- :guilabel:`Photo`: add a photo of the reward, which appears on the rewards page. Hover over the
|
||||
image square, and two icons appear, a :guilabel:`✏️ (pencil)` and a :guilabel:`🗑️ (garbage can)`.
|
||||
Click the :guilabel:`✏️ (pencil)` icon, and a file explorer appears. Navigate to the photo file,
|
||||
then click :guilabel:`Open` to select it.
|
||||
|
||||
The only required fields are the :guilabel:`Product Name`, :guilabel:`Company` (if applicable), and
|
||||
:guilabel:`Description`.
|
||||
|
||||
.. image:: referrals/rewards.png
|
||||
:align: center
|
||||
:alt: A filled out reward form with all details entered.
|
||||
|
||||
.. important::
|
||||
It is advised to enter a :guilabel:`Cost` and add a :guilabel:`Photo`. If a cost is not entered,
|
||||
the default cost will be listed as zero, which would list the reward as free in the reward shop.
|
||||
If a photo is not selected, a placeholder icon will be displayed on the rewards page.
|
||||
|
||||
Redeem rewards
|
||||
--------------
|
||||
|
||||
To redeem points for a reward, click the :guilabel:`Rewards` button on the main Referrals dashboard.
|
||||
All the configured rewards are listed in individual reward cards. The points required to purchase
|
||||
the reward is listed in the top-right corner of the card. If the user has enough points to purchase
|
||||
a reward, a :guilabel:`🧺 (basket) Buy` button appears at the bottom of the reward card. If they do
|
||||
not have enough points for a reward, the reward card displays :guilabel:`You need another (x) points
|
||||
to buy this` instead of a buy button.
|
||||
|
||||
Click the :guilabel:`🧺 (basket) Buy` button on a reward to purchase it. A :guilabel:`Confirmation`
|
||||
pop-up window appears, asking if the user is sure they want to purchase the reward. Click
|
||||
:guilabel:`OK` to purchase the item, or :guilabel:`Cancel` to close the window and cancel the
|
||||
purchase.
|
||||
|
||||
After :guilabel:`OK` is clicked, the pop-up window closes, and the points used to purchase the
|
||||
reward are subtracted from the user's available points. The rewards presented are now updated to
|
||||
reflect the user's current available points.
|
||||
|
||||
.. image:: referrals/redeem-rewards.png
|
||||
:align: center
|
||||
:alt: Buy button appears below a mug and backpack reward, while the bicycle reward states how
|
||||
many more reward points are needed to redeem.
|
||||
|
||||
.. _referrals/levels:
|
||||
|
||||
Levels
|
||||
@@ -549,56 +323,6 @@ points required.
|
||||
can be redeemed for rewards, but they are no longer able to level up. The ring around their photo
|
||||
remains solid cyan.
|
||||
|
||||
Alerts
|
||||
======
|
||||
|
||||
In the *Referrals* application, it is possible to post a message, also referred to as an *alert*, at
|
||||
the top of the dashboard to share important information with users. These alerts appear as a thin
|
||||
semi-transparent banner, with the word :guilabel:`New!` appearing on the far left. The text for the
|
||||
alert is in the center of the banner, and on the far right side is an :guilabel:`X`.
|
||||
|
||||
Alerts appear on the main dashboard for the specified time configured on the individual alert. If a
|
||||
user does not wish to see a specific alert again, click the :guilabel:`X` in the far right side of
|
||||
the alert. This removes the alert from the dashboard and will not appear again, even when opening
|
||||
the *Referrals* application for the first time in a new session.
|
||||
|
||||
.. image:: referrals/alerts.png
|
||||
:align: center
|
||||
:alt: Two alert banners appear above the user's photo.
|
||||
|
||||
Create an alert
|
||||
---------------
|
||||
|
||||
Only users with :guilabel:`Administrator` rights for the *Recruitment* application can create
|
||||
alerts. To add a new alert, navigate to the :menuselection:`Referrals application --> Configuration
|
||||
--> Alerts`.
|
||||
|
||||
Click :guilabel:`Create` and a blank alert form loads. Enter the following information on the form:
|
||||
|
||||
- :guilabel:`Date From`: the date the alert starts. On this date, the alert will be visible on the
|
||||
dashboard.
|
||||
- :guilabel:`Date To`: the date the alert ends. After this date, the alert will be hidden from view.
|
||||
- :guilabel:`Company`: the current company populates this field by default. To modify the company
|
||||
the alert should be displayed for, select the company from the drop-down menu. If this field
|
||||
remains blank, the alert is visible to everyone with access to the *Referrals* application. If a
|
||||
company is specified, only user's within that company (who also have access to the *Referrals*
|
||||
application) will see the alert. This field only appears when in a multi-company database.
|
||||
- :guilabel:`Alert`: enter the text for the alert. This message appears inside the alert banner on
|
||||
the main dashboard.
|
||||
- :guilabel:`On Click`: there are three options for the alert. Click the radio button next to the
|
||||
desired selection. The options are:
|
||||
|
||||
- :guilabel:`Not Clickable`: the alert only displays text, there is no link to click.
|
||||
- :guilabel:`Go to All Jobs`: the alert contains a link that when clicked, navigates to the
|
||||
website with all the currently posted job positions.
|
||||
- :guilabel:`Specify URL`: the alert contains a link to a specific URL, that when clicked,
|
||||
navigates to that URL. When selected, a :guilabel:`URL` field appears below the :guilabel:`On
|
||||
Click` section. Enter the URL in the field.
|
||||
|
||||
.. image:: referrals/alert-form.png
|
||||
:align: center
|
||||
:alt: An alert form completely filled in with all selections entered.
|
||||
|
||||
.. _referrals/reporting:
|
||||
|
||||
Reporting
|
||||
@@ -629,3 +353,14 @@ spreadsheet from the drop-down menu, or select :guilabel:`New Spreadsheet`. Clic
|
||||
.. note::
|
||||
The spreadsheet is stored in the *Documents* application. This application needs to be installed
|
||||
to use the :guilabel:`Insert in Spreadsheet` option.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`referrals/share_jobs`
|
||||
- :doc:`referrals/rewards`
|
||||
- :doc:`referrals/alerts`
|
||||
|
||||
.. toctree::
|
||||
|
||||
referrals/share_jobs
|
||||
referrals/rewards
|
||||
referrals/alerts
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
======
|
||||
Alerts
|
||||
======
|
||||
|
||||
In the *Referrals* application, it is possible to post a message, also referred to as an *alert*, at
|
||||
the top of the dashboard to share important information with users.
|
||||
|
||||
Alerts remain on the main *Referrals* dashboard for the specified amount of time configured on the
|
||||
individual alert.
|
||||
|
||||
.. image:: alerts/alerts.png
|
||||
:align: center
|
||||
:alt: Two alert banners appear above the user's photo.
|
||||
|
||||
Create an alert
|
||||
===============
|
||||
|
||||
Only users with *Administrator* access rights for the *Recruitment* application can create alerts.
|
||||
To add a new alert, navigate to the :menuselection:`Referrals app --> Configuration --> Alerts`.
|
||||
|
||||
Click :guilabel:`New` to open a blank alert form. Enter the following information on the form:
|
||||
|
||||
- :guilabel:`Date From`: the date the alert starts. On this date, the alert is visible on the
|
||||
dashboard.
|
||||
- :guilabel:`Date To`: the date the alert ends. After this date, the alert is hidden from view.
|
||||
- :guilabel:`Company`: the current company populates this field, by default. To modify the company
|
||||
the alert should be displayed for, select the desired company from the drop-down menu in this
|
||||
field.
|
||||
|
||||
If this field remains blank, the alert is visible to everyone with access to the *Referrals*
|
||||
application.
|
||||
|
||||
If a company is specified, only users within that company (who also have access to the *Referrals*
|
||||
application) see the alert. This field **only** appears when in a multi-company database.
|
||||
- :guilabel:`Alert`: enter the text for the alert. This message appears inside the alert banner on
|
||||
the main *Referrals* dashboard.
|
||||
- :guilabel:`On Click`: there are three options for the alert. Click the radio button next to the
|
||||
desired selection. The options are:
|
||||
|
||||
- :guilabel:`Not Clickable`: the alert only displays text, there is no link to click.
|
||||
- :guilabel:`Go to All Jobs`: the alert contains a link that, when clicked, navigates to the
|
||||
website with all the job positions that are currently posted.
|
||||
- :guilabel:`Specify URL`: the alert contains a link to a specific URL that, when clicked,
|
||||
navigates to that URL. When selected, a :guilabel:`URL` field appears below the :guilabel:`On
|
||||
Click` section. Enter the desired URL in that field.
|
||||
|
||||
.. image:: alerts/alert-form.png
|
||||
:align: center
|
||||
:alt: An alert form completely filled in with all selections entered.
|
||||
|
||||
Dismiss an alert
|
||||
================
|
||||
|
||||
It is possible to dismiss an alert, if a user does not wish to see a specific alert again.
|
||||
|
||||
To dismiss an alert, click the :icon:`fa-times` :guilabel:`(remove)` icon on the far-right side of
|
||||
the alert to remove the alert from the dashboard.
|
||||
|
||||
This prevents the alert from appearing again, even when opening the *Referrals* application for the
|
||||
first time in a new session.
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 31 KiB |
@@ -0,0 +1,87 @@
|
||||
=======
|
||||
Rewards
|
||||
=======
|
||||
|
||||
After employees have successfully earned referral points, they can exchange their points by
|
||||
purchasing rewards in Odoo's *Referrals* application. Rewards **must** be :ref:`created and
|
||||
configured <referrals/create>` before employees can :ref:`redeem points for rewards
|
||||
<referrals/redeem>`.
|
||||
|
||||
.. _referrals/create:
|
||||
|
||||
Create rewards
|
||||
==============
|
||||
|
||||
Rewards are the only configurations needed when setting up the *Referrals* application.
|
||||
|
||||
Only users with :guilabel:`Administrator` rights for the *Recruitment* application can create or
|
||||
modify rewards.
|
||||
|
||||
To add rewards, navigate to :menuselection:`Referrals app --> Configuration --> Rewards`. Click
|
||||
:guilabel:`New`, and a reward form loads. Enter the following information on the form:
|
||||
|
||||
- :guilabel:`Product Name`: enter the name as it should appear for the reward. This field is
|
||||
required.
|
||||
- :guilabel:`Cost`: enter the amount of points required to redeem the reward.
|
||||
- :guilabel:`Company`: using the drop-down menu, select the company the reward is configured for. If
|
||||
a reward is available for multiple companies, each company **must** configure a reward for their
|
||||
specific company. This field **only** appears if in a multi-company environment; if this field
|
||||
appears, it is required.
|
||||
|
||||
.. example::
|
||||
A corporation with three different companies offers a gift card as a reward. In the database,
|
||||
there are three separate rewards listed for a gift card, one for each of the three companies.
|
||||
|
||||
- :guilabel:`Gift Responsible`: using the drop-down menu, select the person responsible for
|
||||
procuring and delivering the reward to the recipient. This person is alerted when the reward is
|
||||
bought in the *Referrals* application, so they know when to deliver the reward to the recipient.
|
||||
- :guilabel:`Photo`: add a photo of the reward, which appears on the rewards page. Hover over the
|
||||
image box in the top-right corner (a square with a camera and plus sign inside it), and a
|
||||
:icon:`fa-pencil` :guilabel:`(pencil)` icon appears. Click the :icon:`fa-pencil`
|
||||
:guilabel:`(pencil)` icon to select and add a photo to the reward form. Once a photo is added,
|
||||
hovering over the image reveals two icons instead of one: a :icon:`fa-pencil`
|
||||
:guilabel:`(pencil)` icon and a :icon:`fa-trash-o` :guilabel:`(trash can)` icon. Click the
|
||||
:icon:`fa-trash-o` :guilabel:`(trash can)` icon to delete the currently selected image.
|
||||
- :guilabel:`Description` tab: type in the description for the reward. This is visible on the reward
|
||||
card, beneath the title. This field is required.
|
||||
|
||||
.. image:: rewards/rewards.png
|
||||
:align: center
|
||||
:alt: A filled out reward form with all details entered.
|
||||
|
||||
.. important::
|
||||
It is advised to enter a :guilabel:`Cost` and add a :guilabel:`Photo`. If a cost is not entered,
|
||||
the default cost is listed as zero, which would list the reward as free in the reward shop. If a
|
||||
photo is not selected, a placeholder icon is displayed on the rewards page.
|
||||
|
||||
.. _referrals/redeem:
|
||||
|
||||
Redeem rewards
|
||||
==============
|
||||
|
||||
In order to redeem a reward, points must be earned. These points can then be used to purchase a
|
||||
reward.
|
||||
|
||||
To purchase a reward, click the :guilabel:`Rewards` button on the main :guilabel:`Referrals`
|
||||
dashboard. All the configured rewards are listed in individual reward cards.
|
||||
|
||||
The required point amount needed to purchase a reward is listed in the top-right corner of the card.
|
||||
|
||||
If the user has enough points to purchase a reward, a :icon:`fa-shopping-basket` :guilabel:`Buy`
|
||||
button appears at the bottom of the reward card. If they do not have enough points for a reward, the
|
||||
reward card displays :guilabel:`You need another (x) points to buy this`, instead of a
|
||||
:icon:`fa-shopping-basket` :guilabel:`Buy` button.
|
||||
|
||||
Click the :icon:`fa-shopping-basket` :guilabel:`Buy` button on a reward to purchase it. A
|
||||
:guilabel:`Confirmation` pop-up window appears, asking if the user is sure they want to purchase the
|
||||
reward. Click :guilabel:`OK` to purchase the item, or :guilabel:`Cancel` to close the window, and
|
||||
cancel the purchase.
|
||||
|
||||
After :guilabel:`OK` is clicked, the pop-up window closes, and the points used to purchase the
|
||||
reward are subtracted from the user's available points. The rewards presented are now updated to
|
||||
reflect the user's current available points.
|
||||
|
||||
.. image:: rewards/redeem-rewards.png
|
||||
:align: center
|
||||
:alt: Buy button appears below a mug and backpack reward, while the bicycle reward states how
|
||||
many more reward points are needed to redeem.
|
||||
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
@@ -0,0 +1,165 @@
|
||||
===================
|
||||
Share job positions
|
||||
===================
|
||||
|
||||
In Odoo *Referrals*, users can earn referral points by sharing job positions with potential
|
||||
applicants. Job positions can be shared in several ways, through the :ref:`View Jobs
|
||||
<referrals/view-jobs>` button and the :ref:`Email A Friend <referrals/email-jobs>` button, located
|
||||
at the bottom of the *Referrals* app dashboard.
|
||||
|
||||
.. note::
|
||||
Sharing jobs can **only** occur after onboarding slides have been viewed or skipped.
|
||||
|
||||
.. _referrals/view-jobs:
|
||||
|
||||
View Jobs
|
||||
=========
|
||||
|
||||
To see all job positions that are actively recruiting candidates, click the :guilabel:`View Jobs`
|
||||
button on the main *Referrals* dashboard. This presents all job positions, with each individual job
|
||||
presented with its own card.
|
||||
|
||||
.. image:: share_jobs/jobs.png
|
||||
:align: center
|
||||
:alt: The 'View Jobs' screen, displaying all current open job positions. All information is
|
||||
displayed on the card.
|
||||
|
||||
Each job position card contains the following information:
|
||||
|
||||
- The title of the job position. This information is taken from the *Job Position* field of the job
|
||||
form.
|
||||
- The number of :guilabel:`Open Positions` being recruited. This information is taken from the
|
||||
*Expected New Employees* field of the *Recruitment* tab of the job form.
|
||||
- The points a user earns when an applicant applies for the position.
|
||||
- The job description detailing the job position. This information is taken from the *Job Position*
|
||||
tab of the job form.
|
||||
|
||||
To see all the details for a job position, click the :guilabel:`More Info` button on the specific
|
||||
card. This opens the job position webpage in a new browser tab. This is what an applicant sees
|
||||
before applying for a position.
|
||||
|
||||
.. note::
|
||||
Only published job positions are visible in the *Referrals* app. To check which job positions are
|
||||
published or not, refer to the :doc:`../recruitment/new_job` documentation.
|
||||
|
||||
Refer friends
|
||||
=============
|
||||
|
||||
To share a job position with someone, click the :guilabel:`Refer Friend` button on the specific job
|
||||
position card. A pre-configured :guilabel:`Send Job Offer by Mail` pop-up window appears. Enter the
|
||||
recipient's email address in the :guilabel:`Email` field.
|
||||
|
||||
The :guilabel:`Subject` and :guilabel:`Body` are populated using a default template. The
|
||||
:guilabel:`Subject` `Job for you` is present, by default, but can be modified, if desired.
|
||||
|
||||
The specific title of the job position populates the *Job Position* placeholder in the email body.
|
||||
The `See Job Offer` text in the email body is an individualized tracking link to the specific job
|
||||
position listed on the website.
|
||||
|
||||
When the prospective employee receives the email, the link sends them to the job position page,
|
||||
where they can apply for the position, and the person who referred them is tracked in the
|
||||
*Referrals* application.
|
||||
|
||||
If desired, add any text or closing salutation to the email body. When all edits have been made,
|
||||
click :guilabel:`Send Mail` to send the email, or click :guilabel:`Cancel` to close the pop-up
|
||||
window.
|
||||
|
||||
.. image:: share_jobs/email.png
|
||||
:align: center
|
||||
:alt: Referral email pop-up window with the email message inside it.
|
||||
|
||||
Share a job
|
||||
===========
|
||||
|
||||
Other than sending an email, job positions can be shared, via social media platforms, and by
|
||||
tracking links to the job position. At the bottom of each job position card are four icons, and
|
||||
corresponding tracking links, that can be used to share the job position, keeping track of
|
||||
applicants in the *Referrals* application.
|
||||
|
||||
.. image:: share_jobs/share.png
|
||||
:align: center
|
||||
:alt: The various sharing icons that appear for each job.
|
||||
|
||||
Link
|
||||
----
|
||||
|
||||
To share the job position with a customized tracking link, click the :guilabel:`Share Now` button
|
||||
with the :icon:`fa-chain` :guilabel:`(link)` icon above it. A :guilabel:`Link to Share` pop-up
|
||||
window appears with the tracking link. Click :guilabel:`Copy` to copy the link. After the link is
|
||||
copied, click the :guilabel:`Close` button to close the pop-up window. Next, share the link with
|
||||
the prospective employee.
|
||||
|
||||
Facebook
|
||||
--------
|
||||
|
||||
To share the job position using Facebook, click the :guilabel:`Share Now` button with the
|
||||
:icon:`fa-facebook` :guilabel:`(Facebook)` icon above it.
|
||||
|
||||
If the user is already logged into Facebook, when the the :guilabel:`Share Now` button is clicked, a
|
||||
:guilabel:`Share on Facebook` page loads in a new tab, with the link populated in the main body of
|
||||
the new post in a pop-up window. If the user is *not* already logged in, a log-in screen loads,
|
||||
instead, prompting the user to log-in to Facebook first.
|
||||
|
||||
Type in any additional information to add to the post, then share the job position using the
|
||||
available options in Facebook.
|
||||
|
||||
X (formerly Twitter)
|
||||
--------------------
|
||||
|
||||
A job position can also be shared on X. Click the :guilabel:`Share Now` button with the
|
||||
:guilabel:`(X)` icon above it.
|
||||
|
||||
If the user is already signed-in to X, when the :guilabel:`Share Now` button is clicked, an X page
|
||||
loads in a new tab with a pre-populated message ready to post, in a draft pop-up window. If the user
|
||||
is *not* already signed-in, a sign-in screen loads instead, prompting the user to first sign-in to
|
||||
X.
|
||||
|
||||
The default message is:
|
||||
|
||||
`Amazing job offer for (Job Position)! Check it live: (link to Job Position)`
|
||||
|
||||
Type in any additional information, or make any edits to the message, then share using the available
|
||||
options in X.
|
||||
|
||||
LinkedIn
|
||||
--------
|
||||
|
||||
To share a job position on LinkedIn, click the :guilabel:`Share Now` button with the
|
||||
:icon:`fa-linkedin` :guilabel:`(LinkedIn)` icon above it.
|
||||
|
||||
If the user is already logged into LinkedIn, when the :guilabel:`Share Now` button is clicked, a new
|
||||
tab loads in LinkedIn, with a link to the job position at the top. If the user is *not* already
|
||||
logged in, a log-in screen loads instead, prompting the user to log-in to LinkedIn first.
|
||||
|
||||
The job position can be shared either in a public post, or in a private message to an individual (or
|
||||
group of individuals).
|
||||
|
||||
Type in any additional information, or make any edits to the message or post, then share using the
|
||||
available options in LinkedIn.
|
||||
|
||||
.. _referrals/email-jobs:
|
||||
|
||||
Email a friend
|
||||
--------------
|
||||
|
||||
Another way to share job opportunities is to share the entire current list of open job positions,
|
||||
instead of one job position at a time. To do this, navigate to the :menuselection:`Referrals` main
|
||||
dashboard. Click the :guilabel:`Email a friend` button at the bottom of the screen. A
|
||||
:guilabel:`Send Job Offer by Mail` pop-up window appears.
|
||||
|
||||
Enter the email address in the :guilabel:`Email` field. The email can be sent to multiple
|
||||
recipients by separating each email address with a comma followed by a single space. The
|
||||
:guilabel:`Subject` is pre-configured with :guilabel:`Job for you`, but can be edited.
|
||||
|
||||
The email :guilabel:`Body` is also populated with pre-configured text. The text that appears is:
|
||||
|
||||
`Hello,`
|
||||
|
||||
`There are some amazing job offers in my company! Have a look, they can be interesting for you\:`
|
||||
|
||||
`See Job Offers`
|
||||
|
||||
The :guilabel:`See Job Offers` text is a tracking link to a complete list of all job positions
|
||||
currently being recruited for. Add any additional text and make any edits to the message body, if
|
||||
necessary. Then, click :guilabel:`Send Mail` to send the email. This sends the message, and closes
|
||||
the window.
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
@@ -1,3 +1,5 @@
|
||||
:show-content:
|
||||
|
||||
========
|
||||
Time Off
|
||||
========
|
||||
@@ -5,9 +7,10 @@ Time Off
|
||||
Odoo's *Time Off* application serves as a centralized hub for all time-off-related information. This
|
||||
application manages requests, balances, allocations, approvals, and reports.
|
||||
|
||||
Users can :ref:`request time off <time_off/request-time-off>`, and see an overview of their requests
|
||||
and time off balances. Managers can :ref:`allocate time off <time_off/allocate>` to individuals,
|
||||
teams, or the whole company, and :ref:`approve time off requests <time_off/manage-time-off>`.
|
||||
Users can :doc:`request time off <../hr/time_off/request_time_off>`, and see an overview of their
|
||||
requests and time off balances. Managers can :ref:`allocate time off <time_off/allocate>` to
|
||||
individuals, teams, or the whole company, and :ref:`approve time off requests
|
||||
<time_off/manage-time-off>`.
|
||||
|
||||
Detailed :ref:`reports <time_off/reporting>` can be run to see how much time off (and what kinds of
|
||||
time off) are being used, :ref:`accrual plans <time_off/accrual-plans>` can be created, and
|
||||
@@ -493,75 +496,6 @@ information:
|
||||
:alt: A new allocation form with all the fields filled out for the annual two week vacation
|
||||
granted to all employees.
|
||||
|
||||
.. _time_off/request-time-off:
|
||||
|
||||
Request time off
|
||||
================
|
||||
|
||||
Once an employee has been allocated time off, a request to use the time off can be submitted. Time
|
||||
off can be requested in one of two ways, either from the :ref:`dashboard <time_off/dashboard>` or
|
||||
from the :ref:`My Time Off <time_off/my-time-off>` view.
|
||||
|
||||
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` list view.
|
||||
|
||||
.. note::
|
||||
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 modal. When requested
|
||||
from the :guilabel:`My Time Off` list view, the screen navigates to a new time off request page,
|
||||
instead.
|
||||
|
||||
Enter the following information on the :guilabel:`New Time Off` request form:
|
||||
|
||||
- :guilabel:`Time Off Type`: select the type of time off being requested from the drop-down menu.
|
||||
- :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.
|
||||
|
||||
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).
|
||||
|
||||
If the time off requested is for a single day, click on the start date, then click the same date
|
||||
again for the end date.
|
||||
|
||||
When the correct dates are selected/highlighted, click the :guilabel:`Apply` button.
|
||||
|
||||
The selected dates now populate the two portions of the :guilabel:`Dates` field.
|
||||
|
||||
If the selected :guilabel:`Time Off Type` is configured to have the time off taken in hours, the
|
||||
following two fields also appear:
|
||||
|
||||
- :guilabel:`Half Day`: if the time off request is for a half day, check this box. 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.
|
||||
- :guilabel:`Custom Hours`: if the time off requested is not a whole or half day, check this box.
|
||||
A :guilabel:`From` and :guilabel:`To` field appears beneath this option, if selected. Using the
|
||||
drop-down menu, select the start and end time for the time off request.
|
||||
|
||||
- :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.
|
||||
- :guilabel:`Description`: enter a description for the time off request. This should include any
|
||||
details that managers and approvers may need in order to approve the request.
|
||||
- :guilabel:`Supporting Document`: this field only appears if the :guilabel:`Time Off Type` selected
|
||||
allows for the attachments of documents. Click the :guilabel:`Attach File` button, and a file
|
||||
explorer window appears.
|
||||
|
||||
Navigate to the desired files to attach, 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.
|
||||
|
||||
If the request was created from the :guilabel:`Dashboard`, click the :guilabel:`Save & Close` button
|
||||
to save the information and submit the request.
|
||||
|
||||
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 *save manually* button, represented by a :guilabel:`(cloud upload)` icon.
|
||||
|
||||
.. image:: time_off/time-off-request.png
|
||||
:align: center
|
||||
:alt: A time off request form filled out for an employee home sick for two days with the flu.
|
||||
|
||||
.. _time_off/request-allocation:
|
||||
|
||||
Request allocation
|
||||
@@ -680,6 +614,8 @@ To modify the request, make any desired changes to the form. All changes are aut
|
||||
It is also possible to approve or refuse the request from this form. Click the :guilabel:`Approve`
|
||||
button to approve, or the :guilabel:`Refuse` button to refuse the request.
|
||||
|
||||
.. _time_off/manage-allocations:
|
||||
|
||||
Manage allocations
|
||||
------------------
|
||||
|
||||
@@ -846,12 +782,13 @@ Time off that has been validated appears in a solid color (in the color specifie
|
||||
to be approved appear with white stripes in the color. Refused time off requests have a colored line
|
||||
through the dates.
|
||||
|
||||
New time off requests can be made from the dashboard. Click the :guilabel:`New` button at the top of
|
||||
the dashboard, and a :ref:`New Time Off <time_off/request-time-off>` modal appears.
|
||||
New time off requests can be made from the :guilabel:`Dashboard`. Click the :guilabel:`New` button
|
||||
at the top of the dashboard, and a :doc:`New Time Off <../hr/time_off/request_time_off>` pop-up
|
||||
window appears.
|
||||
|
||||
New allocation requests can also be made from the dashboard. Click the :guilabel:`New Allocation
|
||||
Request` button at the top of the dashboard to request more time off, and a :ref:`New Allocation
|
||||
<time_off/request-allocation>` modal appears.
|
||||
New allocation requests can also be made from the :guilabel:`Dashboard`. Click the :guilabel:`New
|
||||
Allocation Request` button at the top of the :guilabel:`Dashboard` to request more time off, and a
|
||||
:ref:`New Allocation <time_off/request-allocation>` modal appears.
|
||||
|
||||
.. image:: time_off/dashboard.png
|
||||
:align: center
|
||||
@@ -869,8 +806,8 @@ The list includes the following information for each request: the :guilabel:`Tim
|
||||
:guilabel:`Description`, :guilabel:`Start Date`, :guilabel:`End Date`, :guilabel:`Duration`, and the
|
||||
:guilabel:`Status`.
|
||||
|
||||
A new time off request can be made from this view. Click the :guilabel:`New` button to :ref:`request
|
||||
time off <time_off/request-time-off>`.
|
||||
A new time off request can be made from this view. Click the :guilabel:`New` button to :doc:`request
|
||||
time off <../hr/time_off/request_time_off>`.
|
||||
|
||||
.. _time_off/my-allocations:
|
||||
|
||||
@@ -958,5 +895,13 @@ top-right corner of the page to view the data in that way. The various options a
|
||||
:guilabel:`Graph` (the default view), :guilabel:`List`, or :guilabel:`Pivot` table.
|
||||
|
||||
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
|
||||
detailed information on the reports, and their various options, refer to the :doc:`reporting
|
||||
<../essentials/reporting>` documentation.
|
||||
|
||||
.. seealso::
|
||||
:doc:`time_off/request_time_off`
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
time_off/request_time_off
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
================
|
||||
Request time off
|
||||
================
|
||||
|
||||
Once time off has been allocated to an employee, a request to use it can be submitted.
|
||||
|
||||
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`).
|
||||
|
||||
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.
|
||||
|
||||
.. note::
|
||||
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.
|
||||
|
||||
Enter the following information on the :guilabel:`New Time Off` request form:
|
||||
|
||||
- :guilabel:`Time Off Type`: select the type of time off being requested from the drop-down menu.
|
||||
- :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.
|
||||
|
||||
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).
|
||||
|
||||
If only requesting time off for a single day, click on the start date, then click the same date
|
||||
again for the end date.
|
||||
|
||||
When the correct dates are selected, click the :guilabel:`Apply` button.
|
||||
|
||||
The selected dates now populate the two portions of the :guilabel:`Dates` field.
|
||||
|
||||
If the selected :guilabel:`Time Off Type` is configured to have the time off taken in hours, the
|
||||
following two fields also appear:
|
||||
|
||||
- :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.
|
||||
- :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.
|
||||
|
||||
- :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.
|
||||
- :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.
|
||||
- :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.
|
||||
|
||||
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.
|
||||
|
||||
If the request was created from the :guilabel:`Dashboard`, click the :guilabel:`Save & Close` button
|
||||
to save the information, and submit the request.
|
||||
|
||||
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.
|
||||
|
||||
.. image:: request_time_off/time-off-request.png
|
||||
:align: center
|
||||
:alt: A time off request form filled out for an employee home sick for two days with the flu.
|
||||
|
After Width: | Height: | Size: 18 KiB |
@@ -1,9 +1,8 @@
|
||||
:nosearch:
|
||||
|
||||
===============
|
||||
Inventory & MRP
|
||||
===============
|
||||
|
||||
============
|
||||
Supply Chain
|
||||
============
|
||||
|
||||
.. toctree::
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 40 KiB |
@@ -241,6 +241,8 @@ Doing so breaks down all perishable products, their expiration dates, and the as
|
||||
:align: center
|
||||
:alt: Group by expiration dates on lots and serial numbers page.
|
||||
|
||||
.. _inventory/product_management/expiration-alerts:
|
||||
|
||||
Expiration alerts
|
||||
-----------------
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Advanced operations
|
||||
advanced_operations_shipping/scheduled_dates
|
||||
advanced_operations_shipping/invoicing
|
||||
advanced_operations_shipping/multipack
|
||||
advanced_operations_shipping/labels
|
||||
advanced_operations_shipping/label_type
|
||||
advanced_operations_shipping/print_on_validation
|
||||
advanced_operations_shipping/dropshipping
|
||||
advanced_operations_shipping/cancel
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
Shipping cost invoicing
|
||||
=======================
|
||||
|
||||
.. _inventory/shipping/invoice:
|
||||
|
||||
Invoicing customers for shipping after delivery ensures accurate charges based on real-time shipping
|
||||
factors like distance, weight, and method.
|
||||
|
||||
@@ -122,4 +120,4 @@ Finally, invoice the customer the adjusted shipping cost by clicking :guilabel:`
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../setup_configuration/third_party_shipper`
|
||||
- :doc:`labels`
|
||||
- :doc:`../setup_configuration/labels`
|
||||
|
||||
@@ -0,0 +1,336 @@
|
||||
=======================
|
||||
Printable delivery PDFs
|
||||
=======================
|
||||
|
||||
Automatically print delivery-related PDFs documents and labels in Odoo, containing package recipient
|
||||
details, contents, or handling instructions.
|
||||
|
||||
The following PDFs can be configured to print upon validating an *Inventory* operation (e.g.
|
||||
receipt, picking, delivery orders, quality checks):
|
||||
|
||||
#. :ref:`Delivery slip <inventory/shipping_receiving/delivery-slip>`
|
||||
#. :ref:`Return slip <inventory/shipping_receiving/return-slip>`
|
||||
#. :ref:`Product labels of items in the order <inventory/shipping_receiving/product-labels>`
|
||||
#. :ref:`Lot and serial number labels <inventory/shipping_receiving/lot-sn-labels>`
|
||||
#. :ref:`Carrier labels <inventory/shipping_receiving/carrier-labels>`
|
||||
#. :ref:`Export documents <inventory/shipping_receiving/export-doc>`
|
||||
#. :ref:`Package content <inventory/shipping_receiving/package-content>`
|
||||
#. :ref:`Package label <inventory/shipping_receiving/package-label>`
|
||||
|
||||
.. _inventory/shipping_receiving/print_setup:
|
||||
|
||||
To automatically print these forms, navigate to :menuselection:`Inventory app --> Configuration -->
|
||||
Operations Types`, and select the desired operation type.
|
||||
|
||||
In the :guilabel:`Hardware` tab, tick each of the desired options available in the :guilabel:`Print
|
||||
on Validation` section to download the PDF of those selected documents automatically after
|
||||
validating the :guilabel:`Operation Type`. For details on what each of the checkbox options do, jump
|
||||
to the related section.
|
||||
|
||||
.. image:: print_on_validation/print-on-validation.png
|
||||
:align: center
|
||||
:alt: Show the *Print on Validation* option in the "Pick" *Operation Type*.
|
||||
|
||||
.. _inventory/shipping_receiving/delivery-slip:
|
||||
|
||||
Delivery slip
|
||||
=============
|
||||
|
||||
A *delivery slip* contains recipient and package details, usually placed inside (or attached to) the
|
||||
package.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Picking list <inventory/warehouses_storage/barcode_picking>`
|
||||
- :doc:`Tracking label <../setup_configuration/labels>`
|
||||
|
||||
After :ref:`enabling the Delivery Slip setting <inventory/shipping_receiving/print_setup>` in the
|
||||
:guilabel:`Hardware` tab configuration options, clicking :guilabel:`Validate` on the desired
|
||||
operation type downloads a PDF of the delivery slip.
|
||||
|
||||
The delivery slip shows products, quantities, the delivery order reference number, and the total
|
||||
order weight.
|
||||
|
||||
.. image:: print_on_validation/delivery-slip.png
|
||||
:align: center
|
||||
:alt: Example delivery slip.
|
||||
|
||||
.. _inventory/shipping_receiving/return-slip:
|
||||
|
||||
Return slip
|
||||
===========
|
||||
|
||||
Print a *return slip* to include in a delivery for customer return packages. It identifies the
|
||||
return, links to the sales order, and includes item details and customer information. It can also
|
||||
include specific return instructions for the customer.
|
||||
|
||||
After :ref:`enabling the Return Slip setting <inventory/shipping_receiving/print_setup>` in the
|
||||
:guilabel:`Hardware` tab configuration options, clicking :guilabel:`Validate` on the desired
|
||||
operation type downloads a PDF of the return slip.
|
||||
|
||||
The return slip displays the company's return address, along with barcodes for both the order and
|
||||
the return operation.
|
||||
|
||||
.. image:: print_on_validation/return-slip.png
|
||||
:align: center
|
||||
:alt: Example return slip.
|
||||
|
||||
.. _inventory/shipping_receiving/product-labels:
|
||||
|
||||
Product labels
|
||||
==============
|
||||
|
||||
Print *product labels* to affix to items in an order, providing essential information, such as
|
||||
product name, barcode, and price.
|
||||
|
||||
After navigating to the intended operation type (:menuselection:`Inventory app --> Configuration -->
|
||||
Operations Types`), in the :guilabel:`Hardware` tab, tick the :guilabel:`Product Labels` option.
|
||||
|
||||
Doing so makes the :guilabel:`Print label as:` drop-down menu visible, where each product label can
|
||||
be printed as:
|
||||
|
||||
- :guilabel:`2 x 7 with price`: PDF displays product name, barcode, and price, fitting two rows and
|
||||
seven columns of product labels per page.
|
||||
|
||||
.. spoiler:: Example 2 x 7
|
||||
|
||||
.. image:: print_on_validation/two-seven.png
|
||||
:align: center
|
||||
:alt: Example 2 x 7 with price.
|
||||
|
||||
- :guilabel:`4 x 7 with price`: displays product name, barcode, and price, fitting four rows and
|
||||
seven columns of product labels per page.
|
||||
|
||||
.. spoiler:: Example 4 x 7
|
||||
|
||||
.. image:: print_on_validation/four-seven.png
|
||||
:align: center
|
||||
:alt: Example 4 x 7 with price.
|
||||
|
||||
- :guilabel:`4 x 12`: displays product name and barcode. Fits four rows and twelve columns of
|
||||
product labels per page.
|
||||
|
||||
.. spoiler:: Example 4 x 12
|
||||
|
||||
.. image:: print_on_validation/four-twelve.png
|
||||
:align: center
|
||||
:alt: Example 4 x 12.
|
||||
|
||||
- :guilabel:`4 x 12 with price`: displays product name, barcode, and price. Fits four rows and
|
||||
twelve columns of product labels per page.
|
||||
- :guilabel:`ZPL Labels`: prints labels in the Zebra Programming Language (ZPL) containing the
|
||||
product name and barcode. Readable for Zebra printers to automatically print labels.
|
||||
- :guilabel:`ZPL Labels with price`: prints labels in the :abbr:`ZPL (Zebra Programming Language)`
|
||||
containing the product name, barcode, and price.
|
||||
|
||||
.. note::
|
||||
Product labels can be manually printed from any delivery order, by clicking the :guilabel:`Print
|
||||
Labels` button.
|
||||
|
||||
.. _inventory/shipping_receiving/lot-sn-labels:
|
||||
|
||||
Lot/SN Labels
|
||||
=============
|
||||
|
||||
Print *lot/SN labels* to affix to items in an order, providing essential information, such as
|
||||
product name, lot or serial number, and the barcode.
|
||||
|
||||
To automatically print this PDF, navigate to the intended operation type's options page
|
||||
(:menuselection:`Inventory app --> Configuration --> Operations Types`). Then, in the
|
||||
:guilabel:`Hardware` tab, tick the :guilabel:`Lot/SN Labels` option.
|
||||
|
||||
Doing so makes the :guilabel:`Print label as:` drop-down menu visible, where each product label can
|
||||
be printed as:
|
||||
|
||||
- :guilabel:`4 x 12 - One per lot/SN`: PDF with labels for unique lot/serial numbers in the order,
|
||||
including product name, lot/serial number, and barcode. Fits four rows and twelve columns per
|
||||
page.
|
||||
|
||||
.. spoiler:: Example 4 x 12 - One per lot/SN
|
||||
|
||||
.. figure:: print_on_validation/four-twelve-lots.png
|
||||
:align: center
|
||||
:alt: Order with only one unique set of lot/serial numbers.
|
||||
|
||||
Labels for an order with only one unique set of lot/serial numbers.
|
||||
|
||||
- :guilabel:`4 x 12 - One per unit`: PDF with labels matching the quantity of items, displaying the
|
||||
product name, lot/serial number, and barcode. Fits four rows and twelve columns per page.
|
||||
- :guilabel:`ZPL Labels - One per lot/SN`: prints labels in :abbr:`ZPL (Zebra Programming
|
||||
Language)`, containing the product name, lot/serial number, and barcode.
|
||||
- :guilabel:`ZPL Labels - One per unit`: prints labels with the quantity of items in :abbr:`ZPL
|
||||
(Zebra Programming Language)`, containing the product name, lot/serial number, and barcode.
|
||||
|
||||
.. _inventory/shipping_receiving/carrier-labels:
|
||||
|
||||
Carrier labels
|
||||
==============
|
||||
|
||||
To automatically print a *carrier label* with the recipient address, tracking number, and carrier
|
||||
details for specific third-party shipping carriers, complete the following setup:
|
||||
|
||||
#. Tick the :guilabel:`Carrier Labels` checkbox in the :ref:`operation type settings
|
||||
<inventory/shipping_receiving/print_setup>`.
|
||||
#. :doc:`Connect a printer <../../../../general/iot/devices/printer>` to Odoo's *IoT* app.
|
||||
#. :ref:`Assign the carrier label to the printer <inventory/shipping_receiving/assign-printer>`.
|
||||
#. Configure the shipping method's :ref:`label type <inventory/shipping_receiving/label-type>`.
|
||||
|
||||
.. _inventory/shipping_receiving/assign-printer:
|
||||
|
||||
Assign printer
|
||||
--------------
|
||||
|
||||
Refer to the :doc:`Connect a printer <../../../../general/iot/devices/printer>` documentation for
|
||||
details on connecting a printer to Odoo's *IoT* app. Upon completion, assign the carrier label to
|
||||
the printer, by navigating to :menuselection:`IoT app --> Devices`, and selecting the desired
|
||||
printer.
|
||||
|
||||
.. image:: print_on_validation/select-printer.png
|
||||
:align: center
|
||||
:alt: Show a list of IoT devices.
|
||||
|
||||
In the printer configuration form, go to the :guilabel:`Printer Reports` tab to configure the types
|
||||
of documents the printer automatically prints. Click :guilabel:`Add a line` to open the
|
||||
:guilabel:`Add: Reports` pop-up window. In the :guilabel:`Search...` bar, type `Shipping`, and
|
||||
select :guilabel:`Shipping Labels`.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Shipping Documents` report is for :ref:`export documents
|
||||
<inventory/shipping_receiving/export-doc>`.
|
||||
|
||||
.. image:: print_on_validation/printer-report.png
|
||||
:align: center
|
||||
:alt: Show carrier label report added to the *Printer Reports*.
|
||||
|
||||
After adding the :guilabel:`Shipping Labels` report in the :guilabel:`Printer Reports` tab, ensure
|
||||
the :guilabel:`Report Type` matches the IoT-connected printer's type.
|
||||
|
||||
- For laser printers, set the :guilabel:`Report Type` to :guilabel:`PDF`.
|
||||
- For Zebra printers, set the :guilabel:`Report Type` to :guilabel:`Text`.
|
||||
|
||||
.. _inventory/shipping_receiving/label-type:
|
||||
|
||||
Shipping carrier label type
|
||||
---------------------------
|
||||
|
||||
Next, complete the setup for the :doc:`third-party shipping connector
|
||||
<../setup_configuration/third_party_shipper>`. After that, go to :menuselection:`Inventory app -->
|
||||
Configuration --> Shipping Methods`, and select the desired shipping method.
|
||||
|
||||
On the shipping method configuration form, in the :guilabel:`[carrier name] Configuration` tab,
|
||||
ensure the :guilabel:`Label Format` matches the :ref:`report type assigned earlier
|
||||
<inventory/shipping_receiving/assign-printer>`:
|
||||
|
||||
- For laser printers, set the :guilabel:`Label Format` to :guilabel:`PDF`.
|
||||
- For Zebra printers, set the :guilabel:`Label Format` to :guilabel:`ZPL2`.
|
||||
|
||||
.. image:: print_on_validation/label-type.png
|
||||
:align: center
|
||||
:alt: Show the *Label Type* field on FedEx's shipping method configuration page.
|
||||
|
||||
Example carrier label
|
||||
---------------------
|
||||
|
||||
After validating the operation, the carrier label is generated in the chatter, and printed using the
|
||||
IoT-connected printer.
|
||||
|
||||
.. spoiler:: Example carrier label
|
||||
|
||||
.. figure:: print_on_validation/fedex-carrier-label.png
|
||||
:align: center
|
||||
:alt: Show an example carrier label for FedEx.
|
||||
|
||||
Carrier label for FedEx, containing the recipient address, tracking number, barcode, and
|
||||
other shipping information.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Print carrier labels <../setup_configuration/labels>`
|
||||
|
||||
.. _inventory/shipping_receiving/export-doc:
|
||||
|
||||
Export document
|
||||
===============
|
||||
|
||||
An *export document*, required by customs to ship packages from one country to another, can be
|
||||
automatically printed in Odoo by following these steps:
|
||||
|
||||
#. Tick the :guilabel:`Export Documents` checkbox in the :ref:`operation type settings
|
||||
<inventory/shipping_receiving/print_setup>`.
|
||||
#. :doc:`Connect a printer <../../../../general/iot/devices/printer>` to Odoo's *IoT* app.
|
||||
#. Assign the export document to the printer.
|
||||
|
||||
Assign printer
|
||||
--------------
|
||||
|
||||
Similar to the :ref:`printer assignment instructions for carrier labels
|
||||
<inventory/shipping_receiving/assign-printer>`, after connecting a compatible printer to the Odoo
|
||||
*IoT* app, go to :menuselection:`IoT app --> Devices`, and select the desired printer.
|
||||
|
||||
In the printer configuration form, go to the :guilabel:`Printer Reports` tab, and click
|
||||
:guilabel:`Add a line`. In the :guilabel:`Add: Reports` pop-up window that appears, add the
|
||||
:guilabel:`Shipping Documents` report to assign the export document to the printer.
|
||||
|
||||
.. spoiler:: Example export document
|
||||
|
||||
.. figure:: print_on_validation/export-doc.png
|
||||
:align: center
|
||||
:alt: Export document for a shipment from the USA to Belgium.
|
||||
|
||||
Export document for a shipment from the USA to Belgium.
|
||||
|
||||
.. _inventory/shipping_receiving/package-content:
|
||||
|
||||
Package content
|
||||
===============
|
||||
|
||||
A *package content* PDF includes the package's barcode, packed date, along with a list of contained
|
||||
products and quantities.
|
||||
|
||||
To print this form automatically, go to :menuselection:`Inventory app --> Configuration -->
|
||||
Operation Types`, and select the desired operation type. Then, go to the :guilabel:`Hardware` tab,
|
||||
and tick the :guilabel:`Package Contents` checkbox.
|
||||
|
||||
.. important::
|
||||
If the option is not available, enable the :doc:`Packages
|
||||
<../../product_management/product_tracking/package>` feature, by going to
|
||||
:menuselection:`Inventory app --> Configuration --> Settings`, ticking the :guilabel:`Packages`
|
||||
checkbox, and clicking :guilabel:`Save`.
|
||||
|
||||
After enabling the feature in the :guilabel:`Hardware` tab, validating the operation prints a PDF of
|
||||
the package contents.
|
||||
|
||||
.. spoiler:: Example package content PDF
|
||||
|
||||
.. figure:: print_on_validation/package-content.png
|
||||
:align: center
|
||||
:alt: Package contents form showing the package contents, barcode, and pack date.
|
||||
|
||||
Package contents showing the package contents, barcode, and pack date.
|
||||
|
||||
.. _inventory/shipping_receiving/package-label:
|
||||
|
||||
Package label
|
||||
=============
|
||||
|
||||
A *package label* that shows the package's barcode and pack date can be configured to print upon
|
||||
clicking the *Put in Pack* button.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Put in Pack` button is available **only** when the :doc:`Packages
|
||||
<../../product_management/product_tracking/package>` feature is enabled in
|
||||
:menuselection:`Inventory app --> Configuration --> Settings`.
|
||||
|
||||
After it is enabled, the :guilabel:`Put in Pack` button is available on all inventory operations
|
||||
(e.g. receipt, pickings, internal transfers, delivery orders, etc.).
|
||||
|
||||
To automatically print the package label when the :guilabel:`Put in Pack` button is clicked, go to
|
||||
:menuselection:`Inventory app --> Configuration --> Operation Types`. Select the desired operation
|
||||
type, and tick the :guilabel:`Package Label` checkbox in the :guilabel:`Hardware` tab. Labels can be
|
||||
printed in :guilabel:`PDF` or :guilabel:`ZPL` file formats, as defined in the :guilabel:`Print label
|
||||
as` field.
|
||||
|
||||
.. spoiler:: Example of package barcode
|
||||
|
||||
.. image:: print_on_validation/package-barcode.png
|
||||
:align: center
|
||||
:alt: PDF of package barcode and package date.
|
||||
|
||||