Compare commits

..

6 Commits

Author SHA1 Message Date
Sam Lieber (sali)
ce0ff4e598 [IMP] essentials: search filter and group
Co-authored-by: tiku-odoo <tiku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-04-04 11:52:09 -04:00
Lara Martini (larm)
3a16f09f78 [IMP] fleet: new vehicle updates
closes odoo/documentation#8162

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-04-03 19:00:20 +00:00
Brandon Seltenrich (BRSE)
aae54dedd2 [IMP] purchase: update alternative rfq doc
closes odoo/documentation#8261

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-04-03 16:27:07 +00:00
Jonathan
67058f8b96 [IMP] on_premise: update version number in source install
closes odoo/documentation#8513

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-04-03 14:29:12 +00:00
Donatienne (dopi)
fd5c4b21ca [IMP] Link trackers: updating content
task-3754778

closes odoo/documentation#8170

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-04-03 14:29:09 +00:00
Damien Bouvy
1b92d8ec99 [FIX] studio: incorrect screenshot of light layout
Since 16.0, the layout does not have intermediary borders in its tables
(this is an explicit choice in R&D since they seem to be using the
`table-borderless` class explicitely). This commit updates the
screenshot to match this reality.

opw-3266968

closes odoo/documentation#8503

X-original-commit: d56d85da69
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-04-03 09:05:11 +00:00
42 changed files with 721 additions and 362 deletions

View File

@@ -1,100 +1,214 @@
=========================
Search and filter records
=========================
=================================
Search, filter, and group records
=================================
Odoo uses filters to include only the most relevant records depending on the purpose of the view you
are on. However, you can edit the default filter or search for specific values.
.. _search/preconfigured-filters:
Preconfigured filters
=====================
You can modify the default selection of records by clicking :guilabel:`Filters` and selecting one or
several **preconfigured filters**.
.. example::
On the Sales Analysis report, only records at the sales order stage are selected by default.
However, you could *also* include records at the quotation stage by selecting
:guilabel:`Quotations`. Furthermore, you could *only* include records from a specific year, for
example *2022*, by selecting :menuselection:`Order Date --> 2022`.
.. image:: search/preconfigured-filters.png
:align: center
:alt: Using preconfigured filters on the Sales Analysis report
.. note::
If you select preconfigured filters from the same group (i.e., that are *not* separated by an
horizontal line), the records can match *any* condition to be included. However, if you select
filters from different groups, the records have to match *all* condition to be included.
.. _search/custom-filters:
Custom filters
==============
You can create custom filters using most fields present on the model by clicking
:menuselection:`Filters --> Add Custom Filter`, selecting a field, an operator, a value, and
clicking :guilabel:`Apply`.
.. example::
You could *only* include records from a single salesperson on the Sales Analysis report, for
example *Mitchell Admin*, by selecting :guilabel:`Salesperson` as the field, :guilabel:`is equal
to` as the operator, and typing `Mitchell Admin` as the value.
.. image:: search/custom-filter.png
:align: center
:alt: Using a custom filter on the Sales Analysis report
.. note::
If the records should *only* match one of several conditions, click :guilabel:`Add a condition`
before applying a custom filter. If the records should match *all* conditions, add new custom
filters instead.
Odoo allows for the searching, filtering, and grouping of records in a view to display only the most
relevant records. The search bar is located at the top of the view, start typing to :ref:`search for
values <search/values>`, or click the :guilabel:`🔽 (down arrow)` icon to access the :ref:`Filter
<search/filters>`, :ref:`Group By <search/group>`, and :ref:`Favorites <search/favorites>` drop-down
menus.
.. _search/values:
Search for values
=================
You can use the search field to quickly look for specific values and add them as a filter. Either
type the full value you are searching for and select the desired field, or type a part of the
value, click the dropdown button (:guilabel:`⏵`) before the chosen field, and select the exact
value you are looking for.
Use the search field to quickly look for specific values, and add them as a filter. Type the value
to search for, and select the desired option from the drop-down menu to apply the search filter.
.. example::
Instead of adding a custom filter to select records where *Mitchell Admin* is the salesperson on
the Sales Analysis report, you could search for `Mitch`, click the dropdown button
(:guilabel:`⏵`) next to :guilabel:`Search Salesperson for: Mitch`, and select
:guilabel:`Mitchell Admin`.
Instead of adding a :ref:`custom filter <search/custom-filters>` to select records where
*Mitchell Admin* is the salesperson on the *Sales Analysis* report (:menuselection:`Sales app -->
Reporting --> Sales`), search for `Mitch`, and click the :guilabel:`⏵ (right arrow)` next to
:guilabel:`Search Salesperson for: Mitch`, and select :guilabel:`Mitchell Admin`.
.. image:: search/search-values.png
:align: center
:alt: Searching for a specific value on the Sales Analysis report
.. note::
Using the search field is equivalent to using the *contains* operator when adding a custom
filter. If you enter a partial value and directly select the desired field, *all* records
containing the characters you typed for the selected field will be included.
Using the search field is equivalent to using the *contains* operator when adding a :ref:`custom
filter <search/custom-filters>`. If a partial value is entered, and the desired field is directly
selected (without selecting the :guilabel:`⏵ (right arrow)`), *all* records containing the typed
characters for the selected field are included.
.. _search/filters:
Filters
=======
Filters are used to select records that meet specific criteria. The default selection of records is
specific to each view, but can be modified by selecting one (or several) :ref:`preconfigured filters
<search/preconfigured-filters>`, or by adding a :ref:`custom filter <search/custom-filters>`.
.. _search/preconfigured-filters:
Preconfigured filters
---------------------
Modify the default selection of records by clicking the :guilabel:`🔽 (down arrow)` icon from the
search bar, and selecting one (or several) *preconfigured filters* from the :guilabel:`Filters`
drop-down menu.
.. example::
On the *Sales Analysis* report (:menuselection:`Sales app --> Reporting --> Sales`), only records
that are at the *sales order* stage, with an *order date* within the last 365 days, are selected
by default.
To also include records at the *quotation* stage, select :guilabel:`Quotations` from the
:guilabel:`Filters`.
Furthermore, to *only* include sales order and quotation records from a specific year, like
2024, for example, first remove the existing `Order Date: Last 365 Days` filter, by clicking the
:guilabel:`❌ (remove)` icon, then select :menuselection:`Order Date --> 2024`.
.. image:: search/preconfigured-filters.png
:align: center
:alt: Using preconfigured filters on the Sales Analysis report
.. note::
The preconfigured :guilabel:`Filters` are grouped, and each group is separated by a horizontal
line. Selecting preconfigured filters from the same group allows records to match *any* of the
applied conditions. However, selecting filters from different groups requires records to match
*all* of the applied conditions.
.. _search/custom-filters:
Custom filters
--------------
If the :ref:`preconfigured filters <search/preconfigured-filters>` are not specific enough, add a
custom filter. To do so, click the :guilabel:`🔽 (down arrow)` icon in the search bar, then select
:menuselection:`Filters --> Add Custom Filter`.
The :guilabel:`Add Custom Filter` pop-up window displays the matching option, filter rule, and a
toggle to :guilabel:`Include archived` records.
.. image:: search/custom-filter.png
:align: center
:alt: The Add Custom Filter pop-up window.
The default matching configuration is to :guilabel:`Match any of the following rules`, indicating
that each filter rule is applied independently. To change the matching configuration to
:guilabel:`Match all of the following rules`, at least two filter rules must be added to the custom
filter.
- :guilabel:`Match all 🔽 of the following rules`: **all** of the filter rules must be met.
Logically, this is an *AND* (`&`) operation.
- :guilabel:`Match any 🔽 of the following rules`: **any** of the filter rules can be met.
Logically, this is an *OR* (`|`) operation.
By default, a single filter rule is added to the custom filter. The following describes the
structure of a filter rule:
#. The first inline field is the *field name* to filter by. Some fields have refined parameters that
are nested within another field. These fields have an :guilabel:`> (arrow)` icon beside them,
which can be selected to reveal the nested fields.
#. The second inline field is the conditional *operator* used to compare the field name to the
value. The :ref:`available conditional operators <reference/orm/domains>` are specific to the
field's data type.
#. The third inline field is the variable *value* of the field name. The value input may appear as a
drop-down menu, a text input, a number input, a date/time input, a boolean selector, or it may be
blank, depending on the operator used and the field's data type.
Three inline buttons are also available to the right of the rule's filter criteria:
#. :guilabel:` (plus sign)`: adds a new rule below the existing rule.
#. :guilabel:`(Add branch)`: adds a new group of rules below the existing rule, with the
:guilabel:`any` and :guilabel:`all` matching options available to define how each rule within
this branch is applied to the filter. If the matching option is set to the same as the parent
group, the fields are moved to join the parent group.
.. example::
If the matching option is set to :guilabel:`Match all 🔽 of the following rules`, and a new
branch is added with its matching option changed from :guilabel:`any 🔽 of` to :guilabel:`all
🔽 of`, the newly-added branch disappears, and its group of rules are moved to the parent
group.
#. :guilabel:`🗑️ (garbage can)`: deletes the node. If a branch node is deleted, all children of
that node are deleted, as well.
A new filter rule can be added to the custom filter by clicking the :guilabel:`New Rule` button.
Once the filter criteria are defined, click :guilabel:`Add` to add the custom filter to the view.
.. example::
To target all leads and opportunities from the :menuselection:`CRM` app that are in the *Won*
stage, and have an expected revenue greater than $1,000, the following should be entered:
:guilabel:`Match all 🔽 (down arrow) of the following rules:`
#. :guilabel:`Stage` :guilabel:`is in` :guilabel:`Won`
#. :guilabel:`Expected Revenue` :guilabel:`>` `1,000`
#. :guilabel:`any 🔽 (down arrow)` :guilabel:`of:`
- :guilabel:`Type` :guilabel:`=` :guilabel:`Lead`
- :guilabel:`Type` :guilabel:`=` :guilabel:`Opportunity`
.. image:: search/custom-filter-example.png
:align: center
:alt: Adding a custom filter to filter specific records in CRM.
.. tip::
Activate :ref:`developer-mode` to reveal each field's technical name and data type, as well as
the :guilabel:`# Code editor` text area below the filter rules, to view and edit the domain
manually.
.. _search/group:
Group records
=============
You can click :guilabel:`Group By` below the search field to cluster records together according to
one of the **preconfigured groups**.
The display of records in a view can be clustered together, according to one of the *preconfigured
groups*. To do so, click the :guilabel:`🔽 (down arrow)` icon in the search bar, then select one of
the :guilabel:`Group By` options from the drop-down menu.
.. example::
You could group the records by salesperson on the Sales Analysis report by clicking
:guilabel:`Group By` and selecting :guilabel:`Salesperson`. No records are filtered out.
To group the records by salesperson on the *Sales Analysis* report (:menuselection:`Sales app -->
Reporting --> Sales`), click the :guilabel:`Salesperson` option from the :guilabel:`Group By`
drop-down menu. The view changes to group the records by salesperson, without filtering out any
records.
.. image:: search/group.png
:align: center
:alt: Grouping records on the Sales Analysis report
You can **customize groups** by using a wide selection of fields present on the model. To do so,
click :menuselection:`Group By --> Add Custom Group`, select a field, and click :guilabel:`Apply`.
It is possible to *customize groups* by using a field present on the model. To do so, click
:menuselection:`Add Custom Group`, and select a field from the drop-down menu.
.. note::
You can use several groups at the same time. The first group you select is the main cluster, the
next one you add further divides the main group's categories, and so on.
Several groups can be used at the same time. The first group that is selected is the main
cluster, the next one that is added further divides the main group's categories, and so on.
Furthermore, filters and groups can be used together to refine the view even more.
.. _search/favorites:
Favorites
=========
Favorites are a way to save a specific search for future use, or as the new default filter for the
view.
To save the current view as a favorite, click the :guilabel:`🔽 (down arrow)` icon in the search
bar, then select the :guilabel:`Save current search` drop-down menu to display the following
options:
- Filter name: name of the favorited search.
- :guilabel:`Default filter`: sets the favorited search as the default filter for the view.
- :guilabel:`Shared`: makes the favorited search available to all users. By default, the favorited
search is only available to the user who created it.
Once the options are set, click :guilabel:`Save` to save the favorited search.
.. image:: search/favorites.png
:align: center
:alt: Saving a favorite search on the Sales Analysis report
Saved favorites can be accessed by clicking the :guilabel:`🔽 (down arrow)` icon in the search bar,
then selecting the saved filter in the :guilabel:`Favorites` drop-down menu. To remove a saved
favorite, click the :guilabel:`🗑️ (garbage can)` icon next to the favorited search.
.. tip::
To view *all* favorited searches, first activate :ref:`developer-mode`, and navigate to
:menuselection:`Settings app --> Technical --> User Interface: User-defined Filters`. From here,
all favorited searches can be viewed, edited, archived, or deleted.

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -1,33 +1,47 @@
===================
Create new vehicles
===================
============
New vehicles
============
Odoo's *Fleet* app manages all vehicles and the accompanying documentation that comes with vehicle
maintenance and driver's records.
Odoo's *Fleet* app manages all vehicles, and the accompanying documentation that comes with vehicle
maintenance, and drivers records.
All vehicles are organized on the main :guilabel:`Fleet` dashboard. Each vehicle has its own
*vehicle form*, which is displayed as a card in the kanban view, according to it's status. Every
vehicle form is displayed in its current corresponding kanban stage. The default stages are
:guilabel:`New Request`, :guilabel:`To Order`, :guilabel:`Ordered`, :guilabel:`Registered`,
:guilabel:`Downgraded`, :guilabel:`Reserve`, and :guilabel:`Waiting List`.
Upon opening the :menuselection:`Fleet` application, all vehicles are organized within the
:guilabel:`Vehicles` dashboard, which is the default dashboard for the *Fleet* application. Each
vehicle is displayed in its corresponding Kanban stage, based on its status. The default stages are
:guilabel:`New Request`, :guilabel:`To Order`, :guilabel:`Registered`, and :guilabel:`Downgraded`.
To add a new vehicle to the fleet, click the :guilabel:`Create` button, and a blank vehicle form
loads. Enter the vehicle information in the vehicle form, then click :guilabel:`Save`.
To add a new vehicle to the fleet from the :guilabel:`Vehicles` page, click the :guilabel:`New`
button in the top-left corner, and a blank vehicle form loads. Then, proceed to enter the vehicle
information on the vehicle form.
The form auto-saves as data is entered. However, the form can be saved manually at any time by
clicking the *save manually* option, represented by a :guilabel:`(cloud upload)` icon, located in
the top-left corner of the page.
.. _fleet/new_vehicle/vehicle-form:
Vehicle form fields
===================
- :guilabel:`Model`: select the vehicle's model from the drop-down menu. If the model is not listed,
type in the model name and click either :guilabel:`Create` or :guilabel:`Create and Edit`.
- :guilabel:`Model`: select the vehicle's model from the drop-down menu. Once a model is selected,
additional fields may appear on the form.
If the model is not listed, type in the model name, and click either :guilabel:`Create "model"`,
or :guilabel:`Create and edit...` to :ref:`create a new model and edit the model details
<fleet/configuration/add-model>`.
- :guilabel:`License Plate`: enter the vehicle's license plate number in this field.
- :guilabel:`Tags`: select any tags from the drop-down menu, or type in a new tag. There is no limit
on the amount of tags that can be selected.
.. image:: new_vehicle/model.png
:align: center
:alt: The new vehicle form, showing the model section.
.. note::
The :guilabel:`Model` is the only required field on the new vehicle form. When a model is
selected, other fields will appear on the vehicle form, and relevant information will
auto-populate fields that apply to the model. If some of the fields do not appear, this may
indicate there is no model selected.
selected, other fields appear on the vehicle form, and relevant information auto-populates the
fields that apply to the model. If some of the fields do not appear, this may indicate there is
no model selected.
Driver section
--------------
@@ -36,58 +50,226 @@ This section of the vehicle form relates to the person who is currently driving
any plans for a change in the driver in the future, and when.
- :guilabel:`Driver`: select the driver from the drop-down menu, or type in a new driver and click
either :guilabel:`Create` or :guilabel:`Create and Edit`.
either :guilabel:`Create "driver"` or :guilabel:`Create and edit...` to :ref:`create a new driver,
and edit the driver details <fleet/new_vehicle/add-driver>`.
.. important::
A driver does **not** have to be an employee. When creating a new driver, the driver is added
to the *Fleet* application, **not** the *Employees* application.
If the *Contacts* application is installed, the driver information is also stored in the
*Contacts* application.
- :guilabel:`Mobility Card`: if the selected driver has a mobility card listed on their employee
card in the *Employees* application, the mobility card number will appear in this field. If there
is no mobility card listed and one should be added, :ref:`edit the employee card
card in the *Employees* application, the mobility card number appears in this field. If there is
no mobility card listed, and one should be added, :ref:`edit the employee record
<employees/hr-settings>` in the *Employees* application.
- :guilabel:`Future Driver`: if the next driver for the vehicle is known, select the next driver
from the drop-down menu, or type in the next driver and click either :guilabel:`Create` or
:guilabel:`Create and Edit`.
from the drop-down menu. Or, type in the next driver and click either :guilabel:`Create "future
driver"` or :guilabel:`Create and edit...` to :ref:`create a new future driver, and edit the
driver details <fleet/new_vehicle/add-driver>`.
- :guilabel:`Plan To Change Car`: if the current driver set for this vehicle plans to change their
vehicle, either because they are waiting on a new vehicle that is being ordered, or this is a
temporary vehicle assignment and they know which vehicle they will be driving next, check this
box. If the current driver does not plan to change their vehicle and use this current vehicle, do
not check this box.
- :guilabel:`Assignment Date`: select the date the vehicle will be available for another driver
using the drop-down calendar. Select the date by navigating to the correct month and year using
the :guilabel:`⬅️ (left arrow)` and :guilabel:`➡️ (right arrow)` icons, then click on the specific
day. If this field is blank, this indicates the vehicle is currently available and can be
reassigned to another driver. If it is populated, the vehicle will not be available to assign to
another driver until the date entered.
vehicle - either because they are waiting on a new vehicle that is being ordered, or this is a
temporary vehicle assignment, and they know which vehicle they are driving next - check this box.
Do **not** check this box if the current driver does not plan to change their vehicle.
- :guilabel:`Assignment Date`: using the drop-down calendar, select when the vehicle is available
for another driver. Select the date by navigating to the correct month and year using the
:guilabel:`⬅️ (left arrow)` and :guilabel:`➡️ (right arrow)` icons. Then, click on the specific
day. If this field is left blank, that indicates the vehicle is currently available, and can be
reassigned to another driver. If it is populated, the vehicle is not available for another driver
until the selected date.
- :guilabel:`Company`: select the company from the drop-down menu. This field only appears in a
multi-company database.
.. important::
A driver does **not** have to be an employee, but a driver must be listed in the *Contacts*
application. When creating a new driver, the driver is added to the *Contacts* application, not
the *Employees* application.
.. _fleet/new_vehicle/add-driver:
Create a new driver
~~~~~~~~~~~~~~~~~~~
If a driver is not already in the system, the new driver should first be configured and added to the
database. A new driver can be added either from the :guilabel:`Driver` or :guilabel:`Future Driver`
fields on the :ref:`vehicle form <fleet/new_vehicle/vehicle-form>`.
First, type in the name of the new driver in either the :guilabel:`Driver` or :guilabel:`Future
Driver` field, then click :guilabel:`Create and edit...`. A :guilabel:`Create Driver` or
:guilabel:`Create Future Driver` form appears, depending on which field initiated the form.
Both the :guilabel:`Create Driver` and :guilabel:`Create Future Driver` forms are identical.
.. _fleet/new_vehicle/general-info:
.. note::
Depending on the installed applications, different tabs or fields may be visible on the
:guilabel:`Create Driver` and :guilabel:`Create Future Driver` forms.
General information
*******************
Fill out the following information on the top-half of the form:
- :guilabel:`Individual` or :guilabel:`Company`: choose if the driver being added is an individual
driver or a company. Click the radio button to make a selection.
When a selection is made, some fields may disappear from the form. If any of the fields below are
not visible, that is because :guilabel:`Company` was selected instead of :guilabel:`Individual`.
- :guilabel:`Name`: enter the name of the driver or company in this field.
- :guilabel:`Company Name...`: using the drop-down menu, select the company the driver is associated
with.
If the :guilabel:`Company` radio button is selected at the top of the form, this field does not
appear.
- :guilabel:`Contact`: enter the contact information in this section.
If desired, the :guilabel:`Contact` field can be changed to a different type of contact. Click on
:guilabel:`Contact` to reveal a drop-down menu. The available options to select are
:guilabel:`Contact`, :guilabel:`Invoice Address`, :guilabel:`Delivery Address`,
:guilabel:`Follow-up Address`, or :guilabel:`Other Address`.
If desired, select one of these other options for the :guilabel:`Contact` field, and enter the
corresponding information.
If the :guilabel:`Company` radio button is selected at the top of the form, this field is labeled
:guilabel:`Address` and cannot be modified.
- :guilabel:`Tax ID`: enter the driver or company's tax ID in this field.
- :guilabel:`Job Position`: enter the driver's job position in this field. If the
:guilabel:`Company` radio button is selected at the top of the form, this field does not appear.
- :guilabel:`Phone`: enter the driver or company's phone number in this field.
- :guilabel:`Mobile`: enter the driver or company's mobile number in this field.
- :guilabel:`Email`: enter the driver or company's email address in this field.
- :guilabel:`Website`: enter the driver or company's website address in this field.
- :guilabel:`Title`: using the drop-down menu, select the driver's title in this field. The default
options are :guilabel:`Doctor`, :guilabel:`Madam`, :guilabel:`Miss`, :guilabel:`Mister`, and
:guilabel:`Professor`.
If the :guilabel:`Company` radio button is selected at the top of the form, this field does not
appear.
- :guilabel:`Tags`: using the drop-down menu, select any tags that apply to the driver or company.
To add a new tag, type in the tag, then click :guilabel:`Create "tag"`.
There is no limit to the number of tags that can be selected.
.. image:: new_vehicle/create-driver.png
:align: center
:alt: The top portion of the create driver form.
Contacts & Addresses tab
************************
After completing the top-half of the :guilabel:`Create Driver` or :guilabel:`Create Future Driver`
form, add any other contacts and addresses associated with the driver or company in this tab.
To add a new contact, click the :guilabel:`Add` button, and a :guilabel:`Create Contact` pop-up
window appears.
Before entering the necessary information on the form, select the type of contact being added from a
series radio button options located at the top of the form. Those options are:
- :guilabel:`Contact`: select this option to add general contact details for employees of the
associated company.
- :guilabel:`Invoice Address`: select this option to add a preferred address for all invoices. When
added to the form, this address is selected by default when sending an invoice to the associated
company.
- :guilabel:`Delivery Address`: select this option to add a preferred address for all deliveries.
When added to the form, this address is selected by default when delivering an order to the
associated company.
- :guilabel:`Follow-up Address`: select this option to add a preferred address for all follow-up
correspondence. When added to the form, this address is selected by default when sending reminders
about overdue invoices.
- :guilabel:`Other Address`: select this option to add any other necessary addresses for the company
or driver.
.. image:: new_vehicle/create-contact.png
:align: center
:alt: The create contact form with all parts filled in.
Depending on the :guilabel:`Contact Type`, some optional fields may not be visible. The available
fields are identical to the fields in the :ref:`general information
<fleet/new_vehicle/general-info>` section of the new driver form.
Add any notes to the :guilabel:`Internal notes...` section of the form.
After entering all of the information, click either :guilabel:`Save & Close` to add the one new
contact, or :guilabel:`Save & New` to add the current address record and create another address
record.
As contacts are added to this tab, each contact appears in a separate box, with an icon indicating
what type of contact is listed.
.. example::
An :guilabel:`Invoice Address` displays a :guilabel:`💲 (dollar sign)` icon inside that specific
address box, whereas a :guilabel:`Delivery Address` displays a :guilabel:`🚚 (truck)` icon
inside.
.. image:: new_vehicle/contacts-address.png
:align: center
:alt: The create contact form with all parts filled in.
Sales & Purchase tab
********************
Enter the following sales and purchasing information, in the :guilabel:`Sales & Purchase` tab of the
:guilabel:`Create Driver` or :guilabel:`Create Future Driver` pop-up form for the various sections
below.
Depending on the other installed applications, additional fields and sections may appear. The
following are all default fields for the *Fleet* application **only**.
Sales section
^^^^^^^^^^^^^
- :guilabel:`Salesperson`: using the drop-down menu, select the user who is the main point of
contact for sales with this driver's company.
This person **must** be an internal user of the company, meaning they can log into the database as
a user.
Misc
^^^^
- :guilabel:`Company ID`: if the company has an ID number, **other than** its *tax ID*, enter it in
this field.
- :guilabel:`Reference`: enter any text to give more information regarding the contact person. This
is an internal note to provide any additional information.
.. example::
A company has several people with the same name, John Smith. The :guilabel:`Reference` field
could state `John Smith at X205 - purchaser` to provide additional details.
Internal Notes tab
******************
Add any notes that pertain to the driver, or any other necessary information, in this tab.
Vehicle section
---------------
This section of the vehicle form relates to the physical vehicle, it's various properties, when it
was added, where it is located, and who is managing it.
This section of the vehicle form relates to the physical details of the vehicle.
- :guilabel:`Immatriculation Date`: select the date the vehicle is acquired using the drop-down
calendar.
- :guilabel:`Cancellation Date`: select the date the vehicle lease will expire, or when the vehicle
will be no longer available, using the drop-down calendar.
If a preexisting vehicle in the database was selected for the :guilabel:`Model` field in the top
portion of the form, some fields may auto-populate, and additional fields may also appear.
Fill in the following fields on the form:
- :guilabel:`Category`: using the drop-down menu, select the vehicle category from the available
options. To create a new category, type in the new category name, then click :guilabel:`Create
"category"`.
- :guilabel:`Order Date`: using the drop-down calendar, select the date the vehicle was ordered.
- :guilabel:`Registration Date`: using the drop-down calendar, select the date the vehicle was
registered.
- :guilabel:`Cancellation Date`: using the drop-down calendar, select the date the vehicle lease
expires, or when the vehicle is no longer available.
- :guilabel:`Chassis Number`: enter the chassis number in the field. This is known in some countries
as the :abbr:`VIN (Vehicle Identification Number)` number.
- :guilabel:`Last Odometer`: enter the last known odometer reading in the number field. Using the
drop-down menu next to the number field, select whether the odometer reading is in kilometers
:guilabel:`(km)` or miles :guilabel:`(mi)`.
- :guilabel:`Fleet Manager`: select the fleet manager from the drop-down menu, or type in a new
fleet manager and click either :guilabel:`Create` or :guilabel:`Create and Edit`.
- :guilabel:`Location`: type in the location for the vehicle in the field. The most common scenario
for when this field would be populated is if a company has several office locations. The typical
office location where the vehicle is located would be the location entered.
- :guilabel:`Company`: select the company that the vehicle will be used for and associated with from
the drop-down menu, or type in a new company and click either :guilabel:`Create` or
:guilabel:`Create and Edit`.
.. important::
Creating a new company may cause a subscription price change depending on the current plan. Refer
to `Odoo's pricing plan <https://www.odoo.com/pricing-plan>`_ for more details.
fleet manager, and click either :guilabel:`Create` or :guilabel:`Create and Edit`.
- :guilabel:`Location`: type in the specific location where the vehicle is typically located in this
field. The entry should clearly explain where the vehicle can be found, such as `Main Garage` or
`Building 2 Parking Lot`.
.. image:: new_vehicle/new-vehicle-type.png
:align: center
@@ -96,24 +278,18 @@ was added, where it is located, and who is managing it.
Tax Info tab
------------
Depending on the localization setting for the database, and what additional applications are
installed, other fields may be present on the form.
The sections below are default and appear for all vehicles, regardless of other installed
applications or localization settings.
Fiscality
~~~~~~~~~
- :guilabel:`Horsepower Taxation`: enter the amount that is taxed based on the size of the vehicles
- :guilabel:`Horsepower Taxation`: enter the amount that is taxed based on the size of the vehicle's
engine. This is determined by local taxes and regulations, and varies depending on the location.
It is recommended to check with the accounting department to ensure this value is correct.
- :guilabel:`Disallowed Expense Rate`: this is the amount of non-deductible expenses for the
vehicle. This amount is not counted towards any deductions on a tax return or as an allowable
expense when calculating taxable income. It is recommended to check with the accounting department
to ensure the value(s) entered are correct.
- :guilabel:`Start Date`: enter the :guilabel:`Start Date` and :guilabel:`(%) Percentage` for when
the :guilabel:`Disallowed Expense Rate` value goes into effect. Click :guilabel:`Add a line` to
enter a date. Click on the blank line to display a calendar. Select the date by navigating to
the correct month and year using the :guilabel:`⬅️ (left arrow)` and :guilabel:`➡️ (right
arrow)` icons, then click on the specific day. Enter the percentage that is disallowed in the
:guilabel:`% (percent)` field to the right of the date. The percentage should be entered in an
XX.XX format. Repeat this for all entries needed.
Contract
~~~~~~~~
@@ -126,8 +302,8 @@ Contract
- :guilabel:`Residual Value`: enter the current value of the vehicle.
.. note::
The values listed above will affect the accounting department. It is recommended to check with
the accounting department for more information and/or assistance with these values.
The values listed above affect the accounting department. It is recommended to check with the
accounting department for more information and/or assistance with these values.
.. image:: new_vehicle/new-vehicle-tax.png
:align: center
@@ -137,13 +313,13 @@ Model tab
---------
If the model for the new vehicle is already configured in the database, the :guilabel:`Model` tab
will be populated with the corresponding information. If the model is not already in the database
and the :guilabel:`Model` tab needs to be configured, :ref:`configure the new vehicle model
<fleet/configuration/add-model>`.
populates the corresponding information. If the model is **not** already in the database, and the
:guilabel:`Model` tab needs to be configured, it is recommended that :ref:`the new vehicle model
<fleet/configuration/add-model>` be configured so this information auto-populates.
Check the information in the :guilabel:`Model` tab to ensure it is accurate. For example, the color
of the vehicle, or whether there is a trailer hitch installed or not, are examples of information
that may need updating.
of the vehicle, or if a trailer hitch is installed, are examples of common information that may need
updating.
.. image:: new_vehicle/model-tab.png
:align: center

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -1,267 +1,315 @@
==============================================================
Create alternative requests for quotation for multiple vendors
==============================================================
================
Alternative RfQs
================
.. _purchase/manage_deals/alternative-rfqs:
.. |PO| replace:: :abbr:`PO (Purchase Order)`
.. |POs| replace:: :abbr:`POs (Purchase Orders)`
.. |RfQ| replace:: :abbr:`RfQ (Request for Quotation)`
.. |RfQs| replace:: :abbr:`RfQs (Requests for Quotation)`
Sometimes, companies might want to request offers from multiple vendors at the same time, by
inviting those vendors to submit offers for similar goods or services all at once. This helps
companies to select the cheapest (and fastest) vendors, depending on their specific business needs.
companies to select the cheapest, fastest vendors, depending on their specific business needs.
In Odoo, this can be done by adding alternative requests for quotation (RFQs) for different
vendors. Once a response is received from each vendor, the product lines from each :abbr:`RFQ
(Request for Quotation)` can be compared, and a decision can be made for which products to purchase
from which vendors.
In Odoo, this can be done by creating alternative requests for quotation (RfQs) for different
vendors. Once a response is received from each vendor, the product lines from each |RfQ| can be
compared, and a decision can be made for which products to purchase from which vendors.
Sometimes referred to as a *call for tender*, this process is primarily used by organizations in
the public sector, who are legally bound to use it when making a purchase. However, private
companies can also use alternative :abbr:`RFQs (Requests for Quotation)` to spend money efficiently,
as well.
.. note::
Sometimes referred to as a *call for tender*, this process is primarily used by organizations in
the public sector, who are legally bound to use it when making a purchase. However, private
companies can also use alternative |RfQs| to spend money efficiently.
.. seealso::
:doc:`blanket_orders`
Configuration
=============
Configure purchase agreement settings
=====================================
To create alternative |RfQs|, the *Purchase Agreements* feature **must** be enabled in the
*Purchase* app settings. To enable the feature, navigate to :menuselection:`Purchase app -->
Configuration --> Settings`. Under the :guilabel:`Orders` section, click the checkbox for
:guilabel:`Purchase Agreements`.
To create alternative :abbr:`RFQs (Requests for Quotation)` directly from a quotation, the *Purchase
Agreements* feature first needs to be enabled in the settings of the *Purchase* app. To do this, go
to :menuselection:`Purchase --> Configuration --> Settings`, and under the :guilabel:`Orders`
section, click the checkbox next to :guilabel:`Purchase Agreements`. Doing so will enable the
ability to create alternative :abbr:`RFQs (Requests for Quotation)`, as well as the ability to
create *blanket orders*.
Then, click :guilabel:`Save` to apply the change.
.. image:: calls_for_tenders/calls-for-tenders-settings-page.png
Doing so enables the ability to create alternative |RfQs|, as well as *blanket orders*.
.. image:: calls_for_tenders/calls-for-tenders-enabled-setting.png
:align: center
:alt: Purchase Agreements enabled in the Purchase app settings.
.. tip::
To save time on a *call for tender*, custom vendors, prices, and delivery lead times can be set
in the :guilabel:`Purchase` tab on a product form. To do so, navigate to
:menuselection:`Purchase --> Products --> Products`, and select a product to edit. From the
product form, click the :guilabel:`Purchase tab`, then click :guilabel:`Add a line`. From the
drop-down menu, choose a vendor to set under the :guilabel:`Vendor` column, and set a
:guilabel:`Price` and :guilabel:`Delivery Lead Time` if desired. Clicking the
:guilabel:`additional options (two-dots)` icon provides additional visibility options to add to
the line item.
To save time creating alternative |RfQs|, custom vendors, prices, and delivery lead times can be
set in the :guilabel:`Purchase` tab of a product form.
Create an :abbr:`RFQ (Request for Quotation)`
=============================================
To do that, navigate to :menuselection:`Purchase app --> Products --> Products`, and select a
product to edit. On the product form, click the :guilabel:`Purchase` tab, and click
:guilabel:`Add a line`.
To create a new :abbr:`RFQ (Request for Quotation)`, navigate to the :menuselection:`Purchase` app,
and click :guilabel:`New`.
From the drop-down menu, choose a vendor to set under the :guilabel:`Vendor` column, then set a
:guilabel:`Price` and :guilabel:`Delivery Lead Time`, if necessary. Clicking the
:guilabel:`(optional columns drop-down toggle)` icon, at the top right of the header row,
provides additional column options to add to the line item.
Then, add information to the :abbr:`RFQ (Request for Quotation)` form: add a vendor from the
drop-down next to the :guilabel:`Vendor` field, and click :guilabel:`Add a product` to select a
product from the drop-down menu in the :guilabel:`Product` column. Then, set the desired purchase
quantity in the :guilabel:`Quantity` column, and change the purchase price in the :guilabel:`Unit
Price` column, if desired.
.. _purchase/manage_deals/create-rfq:
Clicking the :guilabel:`additional options (two-dots)` icon provides additional visibility options
to add to the line item. Repeat these steps to add as many options as desired, including the
:guilabel:`UoM` (Units of Measure) to purchase the products in, and the :guilabel:`Expected Arrival`
date.
Create an |RfQ|
===============
Once ready, click :guilabel:`Send by Email`. This causes a :guilabel:`Compose Email` pop-up window
to appear, wherein the message to the vendor can be customized. Once ready, click :guilabel:`Send`.
This turns the :abbr:`RFQ (Request for Quotation)` into a purchase order (PO), and sends an email
to the vendor listed on the purchase order form.
To create a new |RfQ|, navigate to the :menuselection:`Purchase` app, and click :guilabel:`New`.
.. image:: calls_for_tenders/calls-for-tenders-email-popup.png
On the blank |RfQ| form, add a vendor from the drop-down menu, next to the :guilabel:`Vendor` field.
Then, click :guilabel:`Add a product`, in the :guilabel:`Products` tab, to select a product from the
drop-down menu in the :guilabel:`Product` column.
Then, set the desired quantity to purchase in the :guilabel:`Quantity` column, and change the
purchase price in the :guilabel:`Unit Price` column, if necessary.
Clicking the :guilabel:`(optional columns drop-down toggle)` icon, at the top right of the header
row, provides additional column options to add to the line item.
Repeat these steps to add as many column options in the :guilabel:`Products` tab as desired,
including the :guilabel:`UoM` (Units of Measure) to purchase the products in, and the
:guilabel:`Expected Arrival` date.
Once ready, click :guilabel:`Send by Email`.
This opens a :guilabel:`Compose Email` pop-up window, wherein the message to the vendor can be
customized, and attachments can be added, if needed. Once ready, click :guilabel:`Send`.
This sends an email to the vendor listed on the |RfQ| form.
.. image:: calls_for_tenders/calls-for-tenders-compose-email.png
:align: center
:alt: Compose and send quotation email pop-up.
.. note::
Sending emails to each vendor can be useful when creating alternative
:abbr:`RFQs (Requests for Quotation)`, because vendors can confirm if their past prices still
hold today, which can help companies choose the best offers for them.
Sending emails to each vendor can be useful when creating alternative |RfQs|, because vendors can
confirm if their past prices still hold today, which helps companies choose the best offers.
Create alternatives to an :abbr:`RFQ (Request for Quotation)`
=============================================================
.. _purchase/manage_deals/create-alternatives:
Once a :abbr:`PO (Purchase Order)` is created and sent by email to a vendor, alternative :abbr:`RFQs
(Requests for Quotation)` can be created and sent to additional, alternate vendors to compare
prices, delivery times, and other factors to make a decision from which vendors to order which
products.
Create alternative |RfQs|
=========================
To create alternative :abbr:`RFQs (Requests for Quotation)`, click the :guilabel:`Alternatives` tab
from the purchase order form, then click :guilabel:`Create Alternative`. When clicked, a
:guilabel:`Create alternative` pop-up window appears.
Once a |PO| is created and sent to a vendor, alternative |RfQs| can be created for additional
vendors to compare prices, delivery times, and other factors, to help make a decision for the order.
.. image:: calls_for_tenders/calls-for-tenders-alternatives-popup.png
To create alternative |RfQs| from the original, click the :guilabel:`Alternatives` tab. Then, click
:guilabel:`Create Alternative`. When clicked, a :guilabel:`Create alternative` pop-up window
appears.
.. image:: calls_for_tenders/calls-for-tenders-create-alternative.png
:align: center
:alt: Calls for tenders pop-up to create alternative quotation.
From this window, select a new/different vendor from the drop-down menu next to the
:guilabel:`Vendor` field to assign this alternative quotation to.
From this window, select an alternative vendor from the drop-down menu next to the
:guilabel:`Vendor` field, to whom the alternative quotation is assigned.
Next to this, there is a :guilabel:`Copy Products` checkbox that is selected by default. When
selected, the product quantities of the original :abbr:`PO (Purchase Order)` are copied to the
alternative. For this first alternative quotation, leave the checkbox checked. Once finished, click
:guilabel:`Create Alternative`. This creates (and navigates to) a new :abbr:`PO (Purchase Order)`.
selected, the product quantities of the original |RfQ| are copied over to the alternative. For this
first alternative quotation, leave the checkbox checked. Once finished, click :guilabel:`Create
Alternative`. This opens a new |RfQ| form.
Since the :guilabel:`Create Alternative` checkbox was left checked, this new purchase order form is
already populated with the same products, quantities, and other details as the previous, original
:abbr:`PO (Purchase Order)`.
Since the :guilabel:`Create Alternative` checkbox was left checked, the new form is already
pre-populated with the same products, quantities, and other details as the previous, original |RfQ|.
.. note::
When the :guilabel:`Copy Products` checkbox is selected while creating an alternative quotation,
additional products do not need to be added on the purchase order form unless desired. However,
if a chosen vendor is listed in the :guilabel:`Vendor` column under the :guilabel:`Purchase` tab
on a product form included in the purchase order, the values set on the product form carry over
to the :abbr:`PO (Purchase Order)`, and have to be changed manually, if desired.
additional products do **not** need to be added, unless desired.
Once ready, create a second alternative quotation by clicking the :guilabel:`Alternatives` tab, and
once again, click :guilabel:`Create Alternative`. This causes the :guilabel:`Create alternative`
pop-up window to appear again. This time, choose a different vendor from the drop-down menu next to
:guilabel:`Vendor`, and this time, *uncheck* the :guilabel:`Copy Products` checkbox. Then, click
:guilabel:`Create Alternative`.
However, if a chosen vendor is listed in the :guilabel:`Vendor` column under a specific product
form included in the order, the values set on the product form carry over to the |RfQ|, and
**must** be changed manually, if necessary.
Once ready, create a second alternative quotation by clicking the :guilabel:`Alternatives` tab,
followed by :guilabel:`Create Alternative`.
.. note::
An option to :guilabel:`Compare Product Lines` also appears. Clicking this navigates to the
:guilabel:`Compare Order Lines` page, where alternative |RfQs| can be compared, side-by-side. For
more information on this, refer to the :ref:`Compare Product Lines
<purchase/manage_deals/compare-product-lines>` section.
This opens the :guilabel:`Create alternative` pop-up window. Once again, choose a different vendor
from the drop-down menu next to :guilabel:`Vendor`. For this particular |RfQ|, however, *uncheck*
the :guilabel:`Copy Products` checkbox. Doing so removes all products on the new alternative |RfQ|,
leaving it blank. The specific products which should be ordered from this particular vendor can be
added in as needed.
Once ready, click :guilabel:`Create Alternative`.
.. tip::
If an alternative quotation needs to be removed from the :guilabel:`Alternatives` tab, they can
be individually removed by clicking on the :guilabel:`Remove (X)` icon at the end of their row.
If an alternative quotation should be removed from the :guilabel:`Alternatives` tab, they can be
individually removed by clicking on the :guilabel:`X (remove)` icon at the end of their row.
This creates a third, new purchase order. But, since the product quantities of the original
:abbr:`PO (Purchase Order)` were *not* copied over, the product lines are empty, and new products
need to be added by clicking :guilabel:`Add a product`, and selecting the desired products from the
drop-down menu. Once the desired number of products are added, click :guilabel:`Send by Email`.
This creates a third, new |RfQ|. But, since the product quantities of the original |RfQ| were
**not** copied over, the product lines are empty, and new products can be added as needed by
clicking :guilabel:`Add a product`, and selecting the desired products from the drop-down menu.
.. image:: calls_for_tenders/calls-for-tenders-blank-alternative.png
Once the desired number of specific products are added, click :guilabel:`Send by Email`.
.. image:: calls_for_tenders/calls-for-tenders-blank-quotation.png
:align: center
:alt: Blank alternative quotation with alternatives in breadcrumbs.
This causes a :guilabel:`Compose Email` pop-up window to appear, wherein the message to the vendor
can be customized. Once ready, click :guilabel:`Send` to send an email to the vendor listed on the
purchase order form.
This opens a :guilabel:`Compose Email` pop-up window, wherein the message to the vendor can be
customized, and attachments can be added, if necessary. Once ready, click :guilabel:`Send`.
From this newest purchase order form, click the :guilabel:`Alternatives` tab. Under this tab, all
three purchase orders can be seen in the :guilabel:`Reference` column. Additionally, the vendors
are listed under the :guilabel:`Vendor` column, and the order :guilabel:`Total` and
:guilabel:`Status` of the orders are in the rows, as well.
From this newest form, click the :guilabel:`Alternatives` tab. Under this tab, all three |RfQs| can
be seen in the :guilabel:`Reference` column. Additionally, the vendors are listed under the
:guilabel:`Vendor` column, and the order :guilabel:`Total` (and :guilabel:`Status`) of the orders
are in the rows, as well.
Link a new :abbr:`RFQ (Request for Quotation)` to existing quotations
=====================================================================
The date in the :guilabel:`Expected Arrival` column is calculated for each vendor, based on any
pre-configured lead times in the vendor and product forms.
Creating alternative quotations directly from a purchase order form under the
:guilabel:`Alternatives` tab is the easiest way to create and link quotations. However, separate
:abbr:`RFQs (Requests for Quotation)` can also be linked *after* the fact, even if they are created
completely separately at first.
.. _purchase/manage_deals/link-rfq:
To create a new :abbr:`RFQ (Request for Quotation)`, navigate to the :menuselection:`Purchase` app,
and click :guilabel:`New`.
Link new |RfQ| to existing quotations
=====================================
Then, add information to the :abbr:`RFQ (Request for Quotation)` form: add a vendor from the
drop-down next to the :guilabel:`Vendor` field, and click :guilabel:`Add a product` to select a
product from the drop-down menu in the :guilabel:`Product` column. Then, set the desired purchase
quantity in the :guilabel:`Quantity` column, and change the purchase price in the
:guilabel:`Unit Price` column, if desired.
Even if a quotation is not created directly from the :guilabel:`Alternatives` tab of another |RfQ|,
it can still be linked to existing |RfQs|.
Once ready, click :guilabel:`Send by Email`. This causes a :guilabel:`Compose Email` pop-up window
to appear, wherein the message to the vendor can be customized. Once ready, click :guilabel:`Send`
to send an email to the vendor listed on the purchase order form.
To do that, begin by creating a new |RfQ|. Navigate to :menuselection:`Purchase app --> New`. Fill
out the |RfQ|, according to the :ref:`previous instructions <purchase/manage_deals/create-rfq>`.
Then, click the :guilabel:`Alternatives` tab once more. Since this new :abbr:`PO (Purchase Order)`
was created separately, there are no other orders linked yet. To link this order with the
alternatives created previously, click :guilabel:`Link to Existing RfQ` on the first line in the
:guilabel:`Vendor` column.
Then, once ready, click the :guilabel:`Alternatives` tab. Since this new |RfQ| was created
separately, there are no other orders linked yet.
.. image:: calls_for_tenders/calls-for-tenders-link-existing-rfq.png
However, to link this |RfQ| with existing alternatives, click :guilabel:`Link to Existing RfQ` on
the first line in the :guilabel:`Vendor` column.
.. image:: calls_for_tenders/calls-for-tenders-link-rfq-popup.png
:align: center
:alt: pop-up to link new quotation to existing RFQs.
:alt: Pop-up to link new quotation to existing RFQs.
This causes an :guilabel:`Add: Alternative POs` pop-up window to appear. Select the three purchase
orders created previously, and click :guilabel:`Select`. All of these orders are now copied to this
:abbr:`PO (Purchase Order)` under the :guilabel:`Alternatives` tab.
This opens an :guilabel:`Add: Alternative POs` pop-up window. Select the desired previously-created
|RfQs|, and click :guilabel:`Select`. All of these orders are now copied to this |RfQ|, and can be
found under the :guilabel:`Alternatives` tab.
.. tip::
If a large number of purchase orders are being processed and the previous
:abbr:`POs (Purchase Orders)` can't be located, try clicking :menuselection:`Group By -->
Vendor` under the search bar at the top of the pop-up window to group by the vendors selected on
the previous orders.
If a large number of |POs| are being processed, and the previous |POs| can't be located, click
the :guilabel:`⬇️ (down arrow)` icon to the right of the search bar, at the top of the pop-up
window.
Then, under the :guilabel:`Group By` section, click :guilabel:`Vendor`. Vendors are displayed in
their own nested drop-down lists, and each vendor's list can be expanded to view open |POs| for
that vendor.
.. _purchase/manage_deals/compare-product-lines:
Compare product lines
=====================
When there are multiple :abbr:`RFQs (Requests for Quotation)` linked as alternatives, they can be
compared side-by-side in order to determine which vendors offer the best deals on which products.
To compare each quotation, go to the :menuselection:`Purchase` app, and select one of the
quotations created previously.
Alternative |RfQs| can be compared side-by-side, in order to determine which vendors offer the best
deals on the products included in the orders.
Then, click the :guilabel:`Alternatives` tab to see all the linked
:abbr:`RFQs (Requests for Quotation)`. Next, under the :guilabel:`Create Alternative` tab, click
:guilabel:`Compare Product Lines`. This navigates to a Compare Order Lines page.
To compare alternative |RfQs|, navigate to the :menuselection:`Purchase` app, and select one of the
previously-created |RfQs|.
.. image:: calls_for_tenders/calls-for-tenders-compare-product-lines.png
Then, click the :guilabel:`Alternatives` tab to see all linked |RfQs|. Next, under the
:guilabel:`Create Alternative` option, click :guilabel:`Compare Product Lines`. This navigates to
the :guilabel:`Compare Order Lines` page.
.. image:: calls_for_tenders/calls-for-tenders-compare-products.png
:align: center
:alt: Compare Product Lines page for alternative RFQs.
The Compare Order Lines page, by default, groups by :guilabel:`Product`. Each product included in
any of the :abbr:`RFQs (Requests for Quotation)` is displayed in its own drop-down, along with all
of the :abbr:`PO (Purchase Order)` numbers in the :guilabel:`Reference` column.
The :guilabel:`Compare Order Lines` page, by default, groups by :guilabel:`Product`. Each product
included in any of the |RfQs| is displayed in its own nested drop-down list, and features all of the
|PO| numbers in the :guilabel:`Reference` column.
Additional columns on this page include the :guilabel:`Vendor` from which products were ordered,
the :guilabel:`Status` of the quotation (i.e., RFQ, RFQ Sent); the :guilabel:`Quantity` of products
ordered from each vendor; the :guilabel:`Unit Price` per product and :guilabel:`Total` price of the
order, and more.
:guilabel:`OTD`, the :guilabel:`Reference` number, the :guilabel:`Status` of the quotation (e.g.,
:guilabel:`RFQ`, :guilabel:`RFQ Sent`, etc.), the product :guilabel:`Description`, the
:guilabel:`Expected Arrival` date, the :guilabel:`Quantity` of products ordered from each vendor,
the :guilabel:`Unit of Measure` used for each product (if any), the :guilabel:`Unit Price` per
product, the :guilabel:`Total` price of the order, and the :guilabel:`Currency` applied to the
order.
.. note::
To remove product lines from the Compare Order Lines page, click :guilabel:`Clear` at the far
right end of that product line's row. This removes this product as a chooseable option from the
page, and changes the :guilabel:`Total` price of that product on the page to **0**. On the
purchase order form in which that product was included, its ordered quantity is changed to
**0**, as well.
To remove product lines from the :guilabel:`Compare Order Lines` page, click :guilabel:`Clear` at
the far-right end of that product line's row.
Once the best offers have been identified, at the end of each row, individual products can be
selected by clicking :guilabel:`Choose`. Once all the desired products have been chosen, click
:guilabel:`Requests for Quotation` (in the breadcrumbs, at the top of the page) to navigate back to
an overview of all :abbr:`RFQs (Requests for Quotation)`.
Doing so removes this specific product as a selectable option from the page, and changes the
:guilabel:`Total` price of that product on the page to `0`.
Additionally, on the |RfQ| form, in which that product was included, its ordered quantity is also
changed to `0`.
Once the best offers have been identified, individual products can be selected by clicking the
:guilabel:`Choose` button at the end of each corresponding row.
Once all desired products have been chosen, click :guilabel:`Requests for Quotation` (in the
breadcrumbs, at the top of the page) to navigate back to an overview of all |RfQs|.
.. _purchase/manage_deals/cancel-keep-alternatives:
Cancel (or keep) alternatives
=============================
Now that the desired products have been chosen, based on which vendors provided the best offer, the
other :abbr:`RFQs (Requests for Quotation)` (from which no products were chosen) can be canceled.
Once the desired products have been chosen from the :guilabel:`Compare Order Lines` page, the
remaining |RfQs|, from which no products were chosen, can be canceled.
Under the :guilabel:`Total` column, at the far right of each row, the orders from which no products
were chosen have automatically had their total cost set to **0**. Although they haven't been
canceled yet, this means that they can ultimately be canceled without repercussions, *after* the
desired purchase orders have been confirmed.
The cost in the :guilabel:`Total` column for each product that wasn't chosen is automatically set to
`0`, indicated at the far-right of each corresponding row.
.. image:: calls_for_tenders/calls-for-tenders-canceled-quotes.png
Although they haven't been canceled yet, this indicates that each of those orders can be canceled
without having an effect on the other live orders, once those orders have been confirmed.
.. image:: calls_for_tenders/calls-for-tenders-zero-total.png
:align: center
:alt: Canceled quotations in the Purchase app overview.
To confirm a quotation that contains the chosen product quantities, click into one. Then, click
:guilabel:`Confirm Order`. This causes an :guilabel:`Alternative Warning` pop-up window to appear.
From there, either :guilabel:`Cancel Alternatives` or :guilabel:`Keep Alternatives` can be clicked.
If this :abbr:`PO (Purchase Order)` should *not* be confirmed, click :guilabel:`Cancel`.
To confirm an |RfQ| for which products were selected, click into one, and click :guilabel:`Confirm
Order`.
:guilabel:`Cancel Alternatives` automatically cancels the alternative purchase orders.
:guilabel:`Keep Alternatives` keeps the alternative purchase orders open, so they can still be
accessed if any additional product quantities need to be ordered. Once all products are ordered,
:guilabel:`Cancel Alternatives` can be selected from whichever :abbr:`PO (Purchase Order)` is open.
This causes a pop-up window reading :guilabel:`What about the alternative Requests for Quotations?`
to appear. From the pop-up window, two options are presented: :guilabel:`Cancel Alternatives` and
:guilabel:`Keep Alternatives`.
To view a detailed form of one of the :abbr:`RFQs (Requests for Quotation)` listed, click the line
item for that quotation. This causes an :guilabel:`Open: Alternative POs` pop-up window to appear,
from which all details of that particular quotation can be viewed. Click :guilabel:`Close` when
finished.
If this |PO| should **not** be confirmed, click :guilabel:`Discard`.
.. image:: calls_for_tenders/calls-for-tenders-keep-cancel-alternatives.png
Selecting :guilabel:`Cancel Alternatives` automatically cancels the alternative |RfQs|. Selecting
:guilabel:`Keep Alternatives` keeps the alternative |RfQs| open, so they can still be accessed, if
any additional product quantities need to be ordered later.
Once all products are ordered, :guilabel:`Cancel Alternatives` can be selected from whichever |PO|
is open at that time.
.. image:: calls_for_tenders/calls-for-tenders-keep-or-cancel.png
:align: center
:alt: Keep or cancel pop-up for alternative RFQs.
From the :guilabel:`Alternative Warning` pop-up window, click :guilabel:`Keep Alternatives` to keep
all alternative quotations open for now. Then, click :guilabel:`Requests for Quotation` (in the
breadcrumbs, at the top of the page) to navigate back to an overview of all :abbr:`RFQs (Requests
for Quotation)`.
To view a detailed form of one of the |RfQs| listed, click the line item for that quotation. This
opens an :guilabel:`Open: Alternative POs` pop-up window, from which all details of that particular
|RfQ| can be viewed.
Click into the remaining quotation(s) that contain products that need to be ordered, and click
:guilabel:`Confirm Order`. This causes the :guilabel:`Alternative Warning` pop-up window to appear
again. This time, click :guilabel:`Cancel Alternatives` to cancel all other alternative :abbr:`RFQs`
linked with this quotation.
Once ready, click :guilabel:`Close` to close the pop-up window.
If all alternative |RfQs| should stay open, from the :guilabel:`What about the alternative Requests
for Quotations?` pop-up window, click :guilabel:`Keep Alternatives`.
Then, click :guilabel:`Requests for Quotation` (in the breadcrumbs, at the top of the page) to
navigate back to an overview of all |RfQs|.
Click into the remaining |RfQs| that contain products that need to be ordered, and click
:guilabel:`Confirm Order`.
This opens the :guilabel:`What about the alternative Requests for Quotations?` pop-up window. If
desired, and the remaining alternative |RfQs| are no longer needed, click :guilabel:`Cancel
Alternatives` to cancel all other alternative |RfQs| linked with this order.
Finally, click :guilabel:`Requests for Quotation` (in the breadcrumbs, at the top of the page) to
navigate back to an overview of all :abbr:`RFQs (Requests for Quotation)`. The canceled orders can
be seen greyed out and listed with a :guilabel:`Cancelled` status under the :guilabel:`Status`
column at the far right of their rows.
navigate back to an overview of all |RfQs|.
Now that all product quantities have been ordered, the purchase process can be followed, and
continued to completion, until the products are received into the warehouse.
The canceled orders can be seen, greyed out and listed with a :guilabel:`Cancelled` status, under
the :guilabel:`Status` column at the far-right of their respective rows.
Now that all product quantities have been ordered, the purchase process can be completed, and the
products can be received into the warehouse.
.. seealso::
:doc:`blanket_orders`

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -1,56 +1,75 @@
=============
Link trackers
=============
============
Link tracker
============
Link Trackers allow you to track your marketing campaigns (emails, banner ads, blog posts, social
media posts, affiliate links, etc.). This way, you are able to identify your best traffic sources
and make informed decisions about the distribution of your marketing budget.
The link tracker allow you to create tracked links to measure your marketing campaigns'
effectiveness. They let you determine which channels bring you the most visitors and make informed
decisions.
Configuration
=============
Go to :menuselection:`Website --> Configuration --> Settings` and activate *Link Trackers*.
The :guilabel:`Link Tracker` module is not installed by default. You need to enable the
:guilabel:`Email Marketing` option by going to :menuselection:`Website --> Configuration -->
Settings.` Alternatively, you can :doc:`install <../../../general/apps_modules>` the :guilabel:`Link
Tracker` module itself or one of the marketing apps.
.. image:: link_tracker/enable_link_tracker.png
:align: center
:alt: View of Website settings page emphasizing the link trackers field in Odoo Website
Create a traceable URL
======================
Set up traceable URLs
---------------------
To create and manage tracked links, navigate to :menuselection:`Website --> Site --> Link Tracker`.
Fill in the following information and click :guilabel:`Get tracked link` to generate a tracking URL.
Go to :menuselection:`Website --> Go to website --> Promote --> Track this page`. Here, you are able
to get a specific tracked URL based on the campaign, medium, and source being used.
#. :guilabel:`URL`: The URL which is the target of the campaign. It is automatically populated with
the URL from where you access the menu.
.. image:: link_tracker/link_tracker_fields.png
:align: center
:alt: View of the link tracker fields for Odoo Website
#. :guilabel:`Campaign`: The specific campaign the link should be associated with. This parameter is
used to distinguish the different campaigns.
- **URL**: url of the page you want to track (e.g. the home page or a product's page).
- **Campaign**: context of your link (e.g. a special promotion).
- **Medium**: channel used to share (deliver) your link (e.g. an email or a Facebook ad).
- **Source**: platform where the traffic originates (e.g. Google or Twitter).
#. :guilabel:`Medium`: The medium describes the category or method through which the visitor arrives
at your site, such as organic search, paid search, social media ad, email, etc.
Now, click on *Get tracked link* to generate a URL that you can post or send by the source you have
decided on.
#. :guilabel:`Source`: The source identifies the precise platform or website that referred the
visitor, such as a search engine, a newsletter, or a website.
Follow-up on tracked links
==========================
.. image:: link_tracker/create-link-tracker.png
:alt: Create a link tracker URL
To look at statistics of your links, go to :menuselection:`Website --> Go to website --> Promote
--> Track this page`. Besides being able to see the *Most Clicked* and *Recently Used* links, you
can also see complete statistics by clicking on *Stats*, including the number of clicks, and the
country of origin for those clicks.
The :guilabel:`Campaign`, :guilabel:`Medium`, and :guilabel:`Source` are called :abbr:`UTM (Urchin
Tracking Module)` parameters. They are incorporated in the tracked URL.
.. image:: link_tracker/links_statistics.png
:align: center
:alt: View of the tracked list emphasizing the statistics buttons in Odoo Website
Website visibility
------------------
.. tip::
You can use the :abbr:`UTM (Urchin Tracking Module)` parameters to hide or show building blocks for
specific audiences. To achieve this, click the :guilabel:`Edit` button on your website, select a
building block, go to the :guilabel:`Customize` tab, scroll down to :guilabel:`Visibility`, and
click :guilabel:`Conditionally`.
#. You can also access the link tracker on *odoo.com/r* via your browser.
#. Activate the developer mode (:menuselection:`Settings --> Activate the developer mode`) and
get access to the *Link Tracker* module and its back-end functionalities.
#. Integrated with :ref:`analytics/google-analytics`, those trackers allow you to see the number
of clicks and visitors to keep you on top of your marketing campaigns.
#. The integration with the :doc:`CRM </applications/sales/crm/track_leads/prospect_visits>` application allows
you to understand where your leads and opportunities are coming from.
.. image:: link_tracker/conditional-visibility.png
:alt: Use the conditional visibility to display site elements to specific audiences.
For each parameter available in the :ref:`Visibility <blocks/visibility>` section, you can choose
:guilabel:`Visible for` or :guilabel:`Hidden for` and select the record you want from the dropdown
list.
Tracked links overview
======================
To get an overview of your tracked links, go to :menuselection:`Website --> Site --> Link Tracker`
and scroll down to :guilabel:`Your tracked links` section.
.. image:: link_tracker/your-tracked-links.png
:alt: Get an overview of all the links you track.
Statistics
----------
To measure the performance of tracked links, click the :guilabel:`Stats` button.
.. image:: link_tracker/statistics.png
:alt: View the statistics related to a specific tracked link.
Scroll down to the :guilabel:`Statistics` section to get an overview of the number of clicks of your
tracked links. You can display information for a specific period by clicking the
:guilabel:`All Time`, :guilabel:`Last Month`, or :guilabel:`Last Week` options.

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

@@ -88,6 +88,8 @@ You can also use the drag-and-drop icon to move a block manually.
.. image:: building_blocks/reordering-blocks.png
:alt: Reordering building blocks
.. _blocks/visibility:
Visibility
==========
@@ -117,7 +119,7 @@ instead. Then, configure the condition(s) to apply by selecting :guilabel:`Visib
:guilabel:`Hidden for` and which :guilabel:`Records` will be impacted.
.. seealso::
:doc:`Link Tracker and UTMs <../reporting/link_tracker>`
:doc:`Link Tracker <../reporting/link_tracker>`
Invisible elements
------------------