Salary attachments

# Salary attachments

Salary attachments are portions of earnings taken directly out of a payslip for a specific purpose,
whether voluntary or required.
When the deduction is voluntary, they are typically considered deductions . When the deduction is
court-ordered, or involuntary, it is sometimes referred to as a wage garnishment . In Odoo, these
are all universally called salary attachments .
Note that salary attachments could also be used to give recurring amounts of money to employees,
like a bonus divided in multiple payments.

## Salary attachment types

To view the currently configured salary attachment types, navigate to Payroll app
â£ Configuration â£ Other Input Types . This displays all other salary inputs, not just the
various salary attachments.
The three default salary attachment types that appear in this list are: Attachment of
Salary , Assignment of Salary , and Child Support .
Each salary attachment type displays the Name of the attachment type, and the Code used when calculating payslips.

### Create new salary attachment types

Upon installation of the Payroll application, the preconfigured default salary attachment
types are linked to a variety of rules that are linked to various salary structures, as well as
the installed localization package .
It is not recommended to alter or modify any of the preconfigured salary attachment
types, especially if they have been previously used on payslips in the database. Doing so may
affect various salary rules, and can prevent the creation of payslips.
A new salary attachment type can be created, but this should only be done when absolutely
necessary. A salary attachment type needs to be linked to a salary rule in order to be considered
in the salary computation.
To make a new type of salary attachment, click the New button, and a blank Other Input Types form loads. Enter the Description for the new salary
attachment type in the corresponding field. Next, tick the Available in attachments checkbox, indicating it is available to use as a salary attachment. Enter the Code used
in the salary rules to compute payslips. Lastly, if the salary attachment type should only be
used in a specific payroll structure, use the drop-down menu in the Available in
Structure field, and select the specific structure.

## Create a salary attachment

All salary attachments must be configured separately for each employee, for each type of salary
attachment. To view the currently configured salary attachments, navigate to Payroll
app â£ Contracts â£ Salary Attachments .
All salary attachments appear in a default list view, and displays the name of the Employees , Description , the salary attachment Type , the payslips Amount , Start Date , and current Status .
At the end of each line is a Related Payslips button. Click this to view all payslips
containing the corresponding salary attachment.
To create a new salary attachment, click the New button in the top-left corner, and a
blank Salary Attachment form loads. Enter the following information on the form:
- Employees : Using the drop-down menu, select the desired employees. Multiple employees
can be listed in this field.
Employees : Using the drop-down menu, select the desired employees. Multiple employees
can be listed in this field.
- Description : Enter a short description of the salary attachment.
Description : Enter a short description of the salary attachment.
- Type : Using the drop-down menu, select the specific salary attachment type .
Type : Using the drop-down menu, select the specific salary attachment type .
- Start Date : Using the calendar selector, select the date the salary attachment goes
into effect.
Start Date : Using the calendar selector, select the date the salary attachment goes
into effect.
- Estimated End Date : This field is not modifiable, and only appears after the Payslip Amount field is populated. This field is the estimated date when the salary
attachment is completed. Todayâs date populates the field by default. Then, when the Total Amount field is populated, this date is updated.
Estimated End Date : This field is not modifiable, and only appears after the Payslip Amount field is populated. This field is the estimated date when the salary
attachment is completed. Todayâs date populates the field by default. Then, when the Total Amount field is populated, this date is updated.
- Document : If any documentation is needed, such as a court order, click the Upload your file button, and a file explorer window loads. Select the desired document
to attach it to the record. Only one document can be attached to a salary attachment.
Document : If any documentation is needed, such as a court order, click the Upload your file button, and a file explorer window loads. Select the desired document
to attach it to the record. Only one document can be attached to a salary attachment.
- No End Date : Tick this checkbox if the salary attachment runs indefinitely. If ticked,
the Total Amount field is hidden from view.
No End Date : Tick this checkbox if the salary attachment runs indefinitely. If ticked,
the Total Amount field is hidden from view.
- Payslip Amount : Enter the amount taken out of each paycheck in this field.
Payslip Amount : Enter the amount taken out of each paycheck in this field.
- Total Amount : Enter the total amount to be paid for the salary attachment. Note that
this field only appears if the No End Date option is not ticked.
Total Amount : Enter the total amount to be paid for the salary attachment. Note that
this field only appears if the No End Date option is not ticked.
- Negative Amount : Tick this checkbox if the salary attachment is a negative value.
Negative Amount : Tick this checkbox if the salary attachment is a negative value.
- Occurrences : This field is not editable, and only appears once both the Payslip Amount and Total Amount fields are populated. The number indicates
the amount of payslips needed to complete the salary attachment.
Occurrences : This field is not editable, and only appears once both the Payslip Amount and Total Amount fields are populated. The number indicates
the amount of payslips needed to complete the salary attachment.
Since the salary attachment form auto saves as the fields are populated, after making a salary
attachment for an individual employee, there is no further action required.
If creating salary attachments for multiple employees on a single salary attachment form, after the
form is filled out, click the Create Individual Attachments button. This creates
separate salary attachments for each of the employees listed in the Employees field.
After the separate salary attachments have been created, the screen returns to the Salary
Attachment dashboard, but with a Description filter, populated with the description
filled in on the salary attachment form. All the salary attachments have a status of Running , since they are currently active. Clear the filter in the search box to view the
default Salary Attachment dashboard in its entirety.

## Manage salary attachments

Salary attachments can have one of three statuses: Running , Completed , or Cancelled . To view
the current status of all salary attachments, navigate to Payroll app â£ Contracts
â£ Salary Attachments .
All salary attachments appear in chronological order, by Start Date , with the most
recent appearing at the top. To view the salary attachments by a particular metric, such as the Status , or Type , click on the column title to sort by that specific column.

### Completed salary attachments

When a salary attachment is created, it has a status of Running . Once the salary
attachment is finished (the Total Amount entered on the salary attachment form has been paid in full), the status automatically changes to Completed , and the employee no longer has the money taken out of future paychecks.
If a salary attachment has been fulfilled, but has not automatically changed to Completed , the
record can be manually updated. To change the status, open the Salary Attachment dashboard by
navigating to Payroll app â£ Contracts â£ Salary Attachments .
Click on the record to update, and the detailed Salary Attachment form loads. On the
individual Salary Attachment record, click the Mark as Completed button in
the upper-left corner, and the status changes to Completed .
The following is an example of when a payroll manager may need to manually change a salary
attachment from Active to Completed .
Rose Smith has a salary attachment for a lawsuit settlement, where she is required to pay
$3,000.00. A salary attachment is created that takes $250.00 a month out of Roseâs paycheck, to
go towards this settlement payment.
After six months, Rose has paid $1,500.00 from her salary. She received a tax refund, and uses
the money to pay off the remainder of the lawsuit settlement. After sending the relevant
documentation to the payroll manager, showing the settlement has been paid in full, the payroll
manager manually changes the status of her salary attachment to Completed .

### Cancel salary attachments

Any salary attachment can be cancelled at any time. To cancel a salary attachment, click on the
individual attachment record from the main Salary Attachment dashboard to open the
record. From the Salary Attachment record, click the Cancel button to cancel
the salary attachment, and stop having the designated money taken out of future paychecks.

Salary attachment types
Create new salary attachment types
Create a salary attachment
Manage salary attachments
Completed salary attachments
Cancel salary attachments


Time off to report

# Time off to report

Payroll is often processed a few days before the end of a pay period, so that employees can be paid
in a timely manner. When work schedules are predictable, this method often works. However, sometimes
employees take time off unexpectedly, especially sick time. When this occurs, there can be
discrepancies in payroll that must be addressed.
The payroll department for a medium-sized company processes paychecks every two weeks, on
Wednesdays. Each employee is paid on the Friday after.
One employee is sick on the last Thursday and Friday of the two-week pay period. Since they have
automatically generated work entries based on their working schedule, and payroll is processed on
Wednesdays, the paycheck they receive incorrectly states that they were paid for a regular work
day for all ten days of the two-week pay period.
Instead of cancelling the paycheck and reissuing it, causing delays for the employee and more
work for the payroll department, Odoo allows for the deferral of the time off taken, to the
following pay period.
This ensures all time off balances are correct, and the employee is properly compensated for
their time.

## Time off dashboard

When time off requests are submitted for a time period that was already processed on a payslip, the
time off requests appear in the Time Off page of the Payroll app. To access this, navigate to Payroll app â£ Work Entries â£ Time Off to Report .
The Time Off page default filter is To Defer , and displays all requests with
a Payslip State of To defer to next payslip . This is because the employee
was already paid for that time as worked time, and it was logged as regular time spent at work.

## Defer multiple time off entries

In order to keep the employeeâs time off balances correct, the time off request must be applied
to the following pay period. This not only ensures time off request balances are current, it also
eliminates the need to redo work entries, cancel paychecks, and reissue paychecks.
To select the work entries to defer, tick the box to the left of the work entry line on the Time Off page . To select all work entries in the list, tick the
box to the left of the Employee column title, at the top of the list.
Once any work entry is selected, two buttons appear at the top of the report: a (#)
selected button, and an Actions button. The (#) selected button indicates how many entries are currently selected.
When all the desired work entries are selected, click the Actions button, and a menu appears with several choices. Click Defer to Next Month in the list,
and all selected entries are deferred to the following month.

## Defer individual time off entries

Time off requests appearing on the Time Off page can be deferred
individually. Click on an individual time off request, and the details for that request load.
The specific details for the time off request appear on the left-hand side, and all of the
employeeâs submitted time off requests appear on the right-hand side (including the request in the
details on the left-hand side).
To defer the time off request to the next payslip, click the Report to Next Month button
in the upper-left corner. Once processed, the Report to Next Month button disappears,
and the Payslip State changes from To defer to next payslip to Computed in Current Payslip .

Time off dashboard
Defer multiple time off entries
Defer individual time off entries


Work entries

# Work entries

A work entry is an individual record on an employeeâs timesheet. Work entries can be configured to
account for all types of work and time off, such as Attendance , Sick Time
Off , Training , or Public Holiday .
The Payroll app automatically creates work entries based on the employeeâs salary
structure type , and from the Planning , Attendances , and Time
Off applications. When needed, work entries can also be created manually .
Work entries provide the Payroll app with the worked hours used to compute employee paychecks,
if the employeeâs salary is based on work entries, as opposed to a salaried position.
Odoo configures several work entry types by default, but additional work entry types can be
created , when necessary.

## Work entry dashboard

The Work Entries dashboard of the Payroll app provides a visual overview of the individual
work entries for every employee.
To open the dashboard, navigate to Payroll app â£ Work Entries â£ Work Entries .
On the Work Entry dashboard, work entries appear in alphabetical order, based on the
first name of the employees. The entire month is displayed, with the current day highlighted in pale
yellow.
The Work Entry dashboard has a default Conflicting filter, which displays
only work entries with conflicts to be resolved.
Remove the default Conflicting filter from the search bar to view all work entries.

## Add a new work entry

If a work entry is missing, such as sick time, or if an employee forgot to clock in and out for a
shift, a new work entry must be created for the missing shift.
Click New on the work entry dashboard , and a blank Create work entry pop-up form appears. Enter the following information on the form:
- Description : Enter a short description for the work entry, such as Sick Time . The
default entry is Attendance: (Employee) .
Description : Enter a short description for the work entry, such as Sick Time . The
default entry is Attendance: (Employee) .
`SickTime`
`Attendance:(Employee)`
- Employee : Select the employee the work entry is for, using the drop-down menu.
Employee : Select the employee the work entry is for, using the drop-down menu.
- Work Entry Type : Select the Work Entry Type using the drop-down menu.
Work Entry Type : Select the Work Entry Type using the drop-down menu.
- From and To : Enter the start ( From ) and end ( To )
dates and times for the work entry. First, click on either the From or To line to reveal a calendar pop-up
window. Select the date by navigating to the correct month, then click on the specific day to
select it. Next, select the time, by clicking on either the hour or minute fields at the bottom of the
calendar, and set the desired time. When the date and time for the entry are correct, click the Apply button.
From and To : Enter the start ( From ) and end ( To )
dates and times for the work entry.
First, click on either the From or To line to reveal a calendar pop-up
window. Select the date by navigating to the correct month, then click on the specific day to
select it.
Next, select the time, by clicking on either the hour or minute fields at the bottom of the
calendar, and set the desired time.
When the date and time for the entry are correct, click the Apply button.
- Duration : This field displays the hours based on the To and From entries. Modifying this field modifies the To field (the From field does not change).
Duration : This field displays the hours based on the To and From entries. Modifying this field modifies the To field (the From field does not change).
Once the desired information is entered, click Save & Close to save the entry, and close
the pop-up form.

## Conflicts

A conflict occurs when a request has not been approved, such as sick time or vacation, or if there
are any errors on the work entry. Conflicts that span the current pay period being processed must be resolved before payslips can be generated.
Any work entry that has a conflict to be resolved is indicated on the main Work Entry dashboard, which can be accessed by navigating to Payroll app â£ Work Entries â£
Work Entries . Only conflicts needing resolution are shown by default.
Conflicts are indicated with an orange triangle in the top-left corner of each individual work
entry. Click on an individual work entry to see the date and time for the specific work entry, then
click Edit to view the conflict details in a pop-up window.
The conflict is briefly explained in an orange text box in the Open pop-up window that
appears.
The Description , Employee , and Work Entry Type are listed on the
left side of the pop-up window. The From and To date and time range, as well
as the total time (in hours) in the Duration field, appears on the right side.

### Time off conflicts

The most common work entry conflicts are for time off requests. Odoo automatically generates work
entries for specific time periods. When time off is requested after these work entries are
generated, it results in duplicate work entries for that employee (one for time off and another for
regular work).
If there is a conflict because a time off request is in the system for the same time that a regular
work entry already exists, the time off request is entered in a Time Off field.
Conflicts can be resolved either directly on the work entry or in the detailed time off request
form.

#### Resolve on work entry

If no additional details are needed to determine if a time off request should be approved or
refused, the time off conflict can be resolved directly from the work entry pop-up window.
Click either the Refuse Time Off or Approve Time Off buttons to refuse or
approve the time off request, then the two buttons disappear. Click the Save & Close button to close the pop-up window.
The conflict disappears from the Work Entry dashboard, since the conflict is now
resolved.
If the time off is approved, the status of the work entry conflict changes to Cancelled . If the time off is refused, the status changes to Draft .

#### Resolve on time off request

If more details are needed to make a decision about the time off request, hover over the entry in
the Time Off field, and click the (Internal Link) icon that appears at the end of the line. This causes an Open: Time Off pop-up window to
load, with all the time off request details. Click either the Approve or Refuse buttons to approve or refuse the request.
To resolve the time off conflict on the detailed time off request pop-up window, click the Internal Link button at the end of the Time Off entry line, and the time off
request details appear in a new pop-up window. The request can be modified, if needed.
Click the Approve button to approve the request, then click the Save & Close button to save the changes, and go back to the work entry conflict pop-up window.
Now, the Approve Time Off button is hidden, only the Refuse Time Off button
is visible.
If the approval was a mistake, the request can be refused here, by clicking the Refuse
Time Off button.
Since the time off was approved in the time off window, click the X in the top-right
corner to close the window. The conflict disappears from the Work Entry dashboard, since
it has been resolved.

## Regenerate work entries

After conflicts are resolved, the affected work entries must be regenerated. This recreates the
specified work entries, and overwrites the previously conflicting work entries.
While conflicts can be resolved individually, if the conflicts are
caused by another application, such as Planning or Attendances , it is best practice to
correct the record in the application causing the conflict. The reason this method is recommended is
because, if the issue in the related application is not resolved, when work entries are
regenerated, the conflicts reappear.
First, ensure the issues are resolved in the specific applications that caused the work entry
conflicts. Once the conflicts have been resolved in the corresponding apps, open the work entry
dashboard by navigating to Payroll app â£ Work Entries â£ Work Entries .
Click the Regenerate Work Entries button at the top of the Work Entries dashboard, and a Work Entry Regeneration pop-up window appears.
Select the Employees to regenerate work entries for, using the drop-down menu. Adjust
the From and To fields, so the correct date range is displayed.
Click the Regenerate Work Entries button, and the work entries are recreated. Once
finished, the pop-up window closes.
An employee has incorrect work entries generated from the Planning app because they were
incorrectly assigned to two work stations simultaneously. This should be fixed in the Planning app, instead of the Payroll app.
To correct this issue, modify the employeeâs schedule in the Planning app, so they are
correctly assigned to only one work station. Then, in the Payroll app, regenerate work
entries for that employee, for that specific time period.
The Payroll app then pulls the new, corrected data form the Planning app, and recreates
the correct work entries for that employee. All conflicts for that employee are now resolved.

## Work entry types

When creating a work entry in the Payroll application, or when a
new time off type is created in the Time Off application, a work entry type needs to be
selected.
The Payroll app comes with nine preconfigured work entry types, and depending on the installed payroll localization , additional country-specific work entries may be
configured. If there is a need for additional work entry types, they can be created .
To view the current work entry types available, navigate to Payroll app â£
Configuration â£ Work Entries â£ Work Entry Types .
Each work entry type has a code to aid in the creation of payslips, and to ensure all taxes and fees
are correctly entered.
Depending on the installed localization, other sections and fields may appear on the form.

### New work entry type

To create a new work entry type, go to Payroll app â£ Configuration â£ Work
Entries â£ Work Entry Types and click New . Then, enter the information for the
following sections on the form.

#### General information section

- Work Entry Type Name : Enter a name for the work entry type. It should be short and
descriptive, such as Sick Time or Training .
Work Entry Type Name : Enter a name for the work entry type. It should be short and
descriptive, such as Sick Time or Training .
`SickTime`
`Training`
- Payroll Code : Enter a code for the work entry type. This code appears with the work
entry type on timesheets and payslips. Since the code is used in conjunction with the Accounting application, it is advised to check with the accounting department for a code to
use.
Payroll Code : Enter a code for the work entry type. This code appears with the work
entry type on timesheets and payslips. Since the code is used in conjunction with the Accounting application, it is advised to check with the accounting department for a code to
use.
- External Code : Enter a code to use for exporting data to a third-party payroll
service. Check with the third-party being used to determine the External Code to enter
for the new work entry type.
External Code : Enter a code to use for exporting data to a third-party payroll
service. Check with the third-party being used to determine the External Code to enter
for the new work entry type.
- Color : Select a color for the particular work entry type. This color appears on the
work entry dashboard to aid in identifying work entry types.
Color : Select a color for the particular work entry type. This color appears on the
work entry dashboard to aid in identifying work entry types.
The only required fields for a work entry type is the Work Entry Type Name and
the Payroll Code .

#### Display in payslip section

- Rounding : Select how the time entered for the work entry should be rounded. The
rounding method selected determines how the worked time on timesheet entries are calculated. The
options are: No Rounding : Work entries are not modified. Half Day : Work entries are rounded to the closest half day amount. Day : Work entries are rounded to the closest full day amount.
Rounding : Select how the time entered for the work entry should be rounded. The
rounding method selected determines how the worked time on timesheet entries are calculated. The
options are:
- No Rounding : Work entries are not modified.
No Rounding : Work entries are not modified.
- Half Day : Work entries are rounded to the closest half day amount.
Half Day : Work entries are rounded to the closest half day amount.
- Day : Work entries are rounded to the closest full day amount.
Day : Work entries are rounded to the closest full day amount.
- Rounding Type : If either Half Day or Day is selected in the Rounding field, this field appears. Select either Up or Down to determine how the rounding is handled.
Rounding Type : If either Half Day or Day is selected in the Rounding field, this field appears. Select either Up or Down to determine how the rounding is handled.
The working time is set to an 8-hour work day (a 40-hour work week). An employee enters a time of
5.5 hours on a work entry.
If the Rounding is set to No Rounding , the work entry remains at 5.5
hours.
If the Rounding is set to Half Day , and the Rounding Type is
set to Down , the work entry is changed to 4 hours. If the Rounding Type is set to Up , the work entry is changed to 8 hours.
If the Rounding is set to Day , and the Rounding Type is set
to Down , the work entry is changed to zero hours. If the Rounding Type is
set to Up , the work entry is changed to 8 hours.

#### Unpaid section

- Unpaid in Structures Types : If the work entry type is for work that is not paid ,
specify which pay structure the unpaid work entry type applies to, using the drop-down menu. Some
situations where work is logged on a payslip, but no compensation is given, such as unpaid
internships, unpaid training, or volunteer work.
Unpaid in Structures Types : If the work entry type is for work that is not paid ,
specify which pay structure the unpaid work entry type applies to, using the drop-down menu. Some
situations where work is logged on a payslip, but no compensation is given, such as unpaid
internships, unpaid training, or volunteer work.

#### Time off options section

- Time Off : Tick this box if the work entry type can be selected for a time off request
or time off entry, in the Time Off application. If Time Off is active, a Time Off Type field appears. This field has a
drop-down menu to select the specific types of time off, such as Paid Time Off , Sick Time Off ,
or Extra Hours . Select the Time Off Type associated with the work entry type.
Time Off : Tick this box if the work entry type can be selected for a time off request
or time off entry, in the Time Off application.
If Time Off is active, a Time Off Type field appears. This field has a
drop-down menu to select the specific types of time off, such as Paid Time Off , Sick Time Off ,
or Extra Hours . Select the Time Off Type associated with the work entry type.
`PaidTimeOff`
`SickTimeOff`
`ExtraHours`
- Keep Time Off Right : Tick this checkbox if the work entry type associated with the
selected time off type allows for rolling over unused time off to the following year.
Keep Time Off Right : Tick this checkbox if the work entry type associated with the
selected time off type allows for rolling over unused time off to the following year.

#### Reporting section

- Unforeseen Absence : Tick this box if the work entry type should be visible on the
unforeseen absences report.
Unforeseen Absence : Tick this box if the work entry type should be visible on the
unforeseen absences report.

Work entry dashboard
Add a new work entry
Conflicts
Time off conflicts
Regenerate work entries
Work entry types
New work entry type


Work entry analysis

# Work entry analysis

The default Work Entries Analysis report provides an overview of the validated work entries for
the current month. To view this report, navigate to Payroll app â£ Reporting â£
Work Entry Analysis .
The work entries appear in a pivot table, with the default filters of Current month:
(Month)(Year) and Validated . The various types of Work entries populate the
rows, while the Total values populate the only visible column.
To change the displayed information, click Total above the main
column, revealing a drop-down menu of available metrics. Click on one of the available groupings,
and the data is further organized by that selected metric. The default options are Work
Entry Type , Employee , and Department . If in a multi-company database, a Company option also appears.

## Work entry analysis comparison

It is possible to compare the work entries from one time period to a previous time period. To view
this comparison, first navigate to Payroll app â£ Reporting â£ Work Entry
Analysis .
Next, click the (down arrow) icon in the search bar, revealing a
drop-down menu. Under the Comparison section, click on either Current Month: Previous Period or Current Month: Previous Year .
The report updates and displays the data for the current time period, data for the selected previous
time period, as well as the Variation between the two, in a percentage.
If no work entries for a specific work entry type are logged
for the time period, it does not appear on the report. That does not mean the work entry
type does not exist, or is not configured.
Additionally, if the default Current month: (Month)(Year) filter is removed from the
search bar, the Comparison column does not appear; there must be a time-frame
selected to view the Comparison column.

## Use case: overtime report comparison

It is possible to alter the Work Entries Analysis report to show a comparison of only overtime
work entries, grouped by employee, for a specific time period. To view this data, first navigate to
the default Work entry analysis report by going to Payroll app â£ Reporting â£
Work Entry Analysis .
Next, click the (down arrow) icon in the search bar, revealing a
drop-down menu. Under the Filters column, click Add Custom
Filter , and a Add Custom Filter pop-up window appears.
Using the drop-down menu, select Work Entry Type for the first field, leave the middle
field as-is (with is in populating the field), and select Overtime Hours for
the last field. Click Add , and all other work entry types disappear, and Overtime Hours appear in the sole row.
To compare overtime from the current month to the previous month, to see which month had more
overtime logged, click the (down arrow) icon again in the search
bar. Under the Comparison section, click Current Month:
Previous Period . Click away from the drop-down menu to close it.
Now, the report displays the Overtime Hours for the current month and the previous
month, along with the Variation , in a percentage.
To view which employees received the most overtime, click Overtime
Hours , revealing a drop-down menu of options. Click Employee , and all employees with
overtime work entries for either the current or previous month appears.
In this example, it can be determined that Marc Demo worked the most overtime in August 2024 , whereas Beth Evans worked the most overtime hours in September 2024 . Additionally, Mitchell Admin had the largest variation
change, with a -100% change from August 2024 to September 2024 .

Work entry analysis comparison
Use case: overtime report comparison


Working schedules

# Working schedules

In Odoo, working schedules determine the hours employees are expected to work, according to their contract , and informs the Payroll app how to compute work entries, ultimately
affecting salaries and payslips. It is necessary to ensure all working schedules for employees are
configured in the database.
In Odooâs Payroll app, working schedules are referred to as working hours in salary
structures .
To view the currently configured working schedules, navigate to Payroll app â£
Configuration â£ Working Schedules , and the Working Schedules dashboard loads.
Working schedules are company-specific. In a multi-company database, each company must identify
each type of working schedule they use. If the database is created for only one company, the Company column is not available.
An Odoo database containing multiple companies that use a standard 40-hour work week needs to
have a separate working schedule entry for each company that uses the 40-hour standard work week.
A database with five companies that all use a standard 40-hour work week needs to have five
separate 40-hour working schedules configured.

## New working schedule

To create a new working schedule, navigate to Payroll app â£ Configuration â£
Working Schedules , and click New . The Working Schedules form has two
sections, a general information section and a Working Hours tab listing out all the
individual working hours by day and time.
Fill out the following information on the top-half of the form:
- Name : Type in the name for the new default working schedule. This should be
descriptive and clear to understand, such as Standard 20 Hours/Week .
Name : Type in the name for the new default working schedule. This should be
descriptive and clear to understand, such as Standard 20 Hours/Week .
`Standard20Hours/Week`
- Flexible Hours : Tick this checkbox if employees can work different hours from the
working schedule.
Flexible Hours : Tick this checkbox if employees can work different hours from the
working schedule.
- Company Full Time : Enter the number of hours per week an employee would need to work
to be considered a full-time employee. Typically, this is approximately 40 hours, and this number
affects what types of benefits an employee can receive, based on their employment status
(full-time vs part-time).
Company Full Time : Enter the number of hours per week an employee would need to work
to be considered a full-time employee. Typically, this is approximately 40 hours, and this number
affects what types of benefits an employee can receive, based on their employment status
(full-time vs part-time).
- Average Hour Per Day : The average hours per day field is auto-populated, based on the
working hours configured in the Working Hours tab. This entry affects resource
planning, since the average daily hours affect what resources can be used, and in what quantity,
per workday.
Average Hour Per Day : The average hours per day field is auto-populated, based on the
working hours configured in the Working Hours tab. This entry affects resource
planning, since the average daily hours affect what resources can be used, and in what quantity,
per workday.
- Work Time Rate : This percentage is auto-generated based on the entry for the Company Full Time and the working hours configured in the Working Hours tab. This number should be between 0.00% and 100% , so if the percentage is above 100% , it is
an indication that the working times and/or Company Full Time hours need adjustment.
Work Time Rate : This percentage is auto-generated based on the entry for the Company Full Time and the working hours configured in the Working Hours tab. This number should be between 0.00% and 100% , so if the percentage is above 100% , it is
an indication that the working times and/or Company Full Time hours need adjustment.
`0.00%`
`100%`
`100%`
- Company : Select the company that can use these new default working hours from the
drop-down menu. A blank field indicates it is available for all companies.
Company : Select the company that can use these new default working hours from the
drop-down menu. A blank field indicates it is available for all companies.
- Timezone : Select the time zone to be used for the new default working hours from the
drop-down menu.
Timezone : Select the time zone to be used for the new default working hours from the
drop-down menu.
Next, configure the individual hours in the Working Hours tab. This tab lists the
specific working hours for each day.
The Working Hours are auto-populated for a default 40-hour work week, with each day
divided into three timed sections.
Every day has morning (8:00-12:00), lunch (12:00-13:00), and evening (13:00-17:00) hours configured.
The Work From and Work To times must be in a 24-hour format. For
example, 2:00 PM is entered as 14:00 .
`2:00PM`
`14:00`
Modify the Day of Week , Day Period , and Work Entry Type selections by clicking on the drop-down menus in each column and making the desired selection. The Work From and Work To columns are modified by typing in the time.
Keep in mind, working hours are company-specific, and cannot be shared between companies.
Each company needs to have its own working hours set.
If the working hours are not consistent each week, and the hours are on a bi-weekly schedule
instead, click the Switch to 2 week calendar button at the top of the new default
working hours form. This changes the Working Hours tab to display two weeks of
working times that can be adjusted.


Inventory

# Inventory

Odoo Inventory is both an inventory application and a warehouse management system. The app allows
users to easily manage lead times, automate replenishment, configure advanced routes, and more.
- Odoo Tutorials: Inventory
Odoo Tutorials: Inventory


Configure product

# Configure product

A group of products in Odoo can be further defined using:
- Units of measure (UoM) : a standard quantity for specifying product amounts
(e.g., meters, yards, kilograms). Enables automatic conversion between measurement systems in
Odoo, such as centimeters to feet. Ex: Purchasing fabric measured in meters but receiving it in yards from a vendor.
Units of measure (UoM) : a standard quantity for specifying product amounts
(e.g., meters, yards, kilograms). Enables automatic conversion between measurement systems in
Odoo, such as centimeters to feet.
- Ex: Purchasing fabric measured in meters but receiving it in yards from a vendor.
Ex: Purchasing fabric measured in meters but receiving it in yards from a vendor.
- Packages : A physical container used to group products together, regardless of
whether they are the same or different. Ex: A box containing assorted items for delivery, or a storage box of two hundred buttons on a
shelf.
Packages : A physical container used to group products together, regardless of
whether they are the same or different.
- Ex: A box containing assorted items for delivery, or a storage box of two hundred buttons on a
shelf.
Ex: A box containing assorted items for delivery, or a storage box of two hundred buttons on a
shelf.
- Packaging : groups the same products together to receive or sell them in
specified quantities. Ex: Cans of soda sold in packs of six, twelve, or twenty-four.
Packaging : groups the same products together to receive or sell them in
specified quantities.
- Ex: Cans of soda sold in packs of six, twelve, or twenty-four.
Ex: Cans of soda sold in packs of six, twelve, or twenty-four.

## Comparison

This table provides a detailed comparison of units of measure, packages, and packaging to help
businesses evaluate which best suits their requirements.
Standardized measurement for product units (e.g., cm, lb, L)
Tracks the specific physical container and its contents
Groups a fixed number of items together for easier management (e.g., packs of 6, 12 or 24)
Defined per product; saved as one UoM in the database
Allows mixed products
Converts between vendor/customer UoMs and database UoM
Items can be added or removed from the container
Quantities are fixed (e.g., always packs of 6, 12 or 24)
Simplest for unit conversions
More complex due to container-level inventory tracking
Simpler; suitable for uniform product groupings
Tracks product quantities within the warehouse in the specific UoM defined in the product
form
Tracks package location and contents within the warehouse
Tracks grouped quantities but not individual itemsâ locations
Smooth barcode operations
Requires scanning both the package and individual items for reception. (even if there are 30
items in a package). Can enable the Move Entire Packages feature to update the packageâs contained
itemsâ locations, when moving the package
Scanning a packaging barcode automatically records all included units. (e.g. 1 pack = 12
units)
Scanning a productâs barcode identifies its typical storage location in the Odoo database
Barcode identifies grouped quantity, not storage location
Unique barcodes for individual packages (e.g. Pallet #12)
Barcodes set at the packaging type level (e.g. for a pack of 6)
Can be disposable or reusable, configured via the Package Use field
Weight of the container itself is included in the Shipping Weight field of a package
( Inventory app â£ Products â£ Packages )
Weight of the container is defined in the Package Type settings
Lot/serial number tracking
Requires manual adjustments to track UoMs via lots (See use case for details)
Applies only to contained products
Applies to both contained products and the container
Routes can define specific warehouse paths for a particular packaging type

## Use cases

After comparing the various features, consider how these businesses, with various inventory
management and logistics workflows, came to their decision.

### Pallets of items using packaging

A warehouse receives shipments of soap organized on physical pallets, each containing 96 bars. These
pallets are used for internal transfers and are also sold as standalone units. For logistical
purposes, the palletâs weight must be included in the total shipping weight for certain deliveries.
Additionally, the pallet requires a barcode to facilitate tracking, and the number of individual
bars of soap must be included in the stock count when the pallet is received.
After evaluating various options, product packaging was the most suitable solution. Packaging
enables assigning a barcode to a pallet, identifying it as a âpallet typeâ containing 96 soap bars.
This barcode streamlines operations by automatically registering the grouped quantity. Key
distinctions include:
- Warehouse tracking limitations : Odoo tracks only the total quantity, not the number of
packagings. For instance, if a pallet with 12 and 24 quantities is received, Odoo records 36
quantities, not the pallet details.
Warehouse tracking limitations : Odoo tracks only the total quantity, not the number of
packagings. For instance, if a pallet with 12 and 24 quantities is received, Odoo records 36
quantities, not the pallet details.
- Packaging barcodes are type-specific, not unique : Barcodes represent packaging types (e.g.,
âpallet of 96 soap barsâ) but do not uniquely identify individual pallets, such as Pallet #1 or
Pallet #2.
Packaging barcodes are type-specific, not unique : Barcodes represent packaging types (e.g.,
âpallet of 96 soap barsâ) but do not uniquely identify individual pallets, such as Pallet #1 or
Pallet #2.

### Capture product information using barcode

An Odoo user expects the Barcode app to display the typical storage location of a product by
scanning a barcode for a container.
Packages was the most suitable. When the appropriate setting is enabled , scanning a package barcode displays its contents in
the Barcode app.
Packages represent physical containers, enabling detailed tracking of the items they hold.
Scanning a package provides visibility into its contents and facilitates operations, like inventory
moves.

### Track different units of measure in storage

A fruit juice distributor tracks multiple UoMs for their operations:
- Fruits are purchased in tons.
Fruits are purchased in tons.
- Juice is produced and stored in kilograms.
Juice is produced and stored in kilograms.
- Small samples are stored in grams for recipe testing.
Small samples are stored in grams for recipe testing.
Unit of Measure was most suitable. Odoo automatically converts tons to kilograms during
receipts. However, since Odoo tracks only one UoM per product in the database, the company uses
lot numbers to differentiate UoMs :
- LOT1: Grams (g)
- LOT2: Kilograms (kg)
Manual inventory adjustments are required to convert between lots, such as subtracting 1 kg from
LOT2 to add 1,000 g to LOT1. While functional, this workaround can be time-consuming and prone to
errors.


Packages

# Packages

A package is a physical container holding one or more products. Packages can also be used to store
items in bulk.
Packages are commonly used for the following purposes:
- Grouping products to move them in bulk .
Grouping products to move them in bulk .
- Shipping to customers : configure package types
to align with shipping carriersâ size and weight requirements, streamlining the packing process,
and ensuring compliance with carrier shipping specifications.
Shipping to customers : configure package types
to align with shipping carriersâ size and weight requirements, streamlining the packing process,
and ensuring compliance with carrier shipping specifications.
- Storing items in bulk.
Storing items in bulk.
Package use is a field on the package form in Odoo that is only visible by enabling the Batch
Transfers and Packages features ( Inventory app â£ Configuration â£ Settings ).
By default, the Package Use field on a packages form is set to Disposable Box . Change this field
to Reusable Box only when configuring packages for cluster pickings .
Package type is an optional feature used for calculating shipping cost , based on real shipping weight. Create package types
to include the weight of the package itself (e.g. boxes, pallets, other shipping containers) in
shipping cost calculations.
While packages are commonly used in the three-step delivery route , they can be used in any
workflow involving storable products.

## Configuration

To use packages, first go to Inventory app â£ Configuration â£ Settings . Under
the Operations heading, activate the Packages feature. Then, click Save .
When moving packages internally, the Move Entire Packages feature can be enabled on an operation
type to update a packageâs contained itemâs location upon updating the packageâs location.
To do that, go to Inventory app â£ Configuration â£ Operations Types and select
the desired operation this feature will apply to (may have to set it for multiple).
On the operation type page, in the Packages section, tick the Move Entire
Packages checkbox.

## Pack items

Products can be added to packages in any transfer by:
- Clicking each Detailed Operations icon
on the product line.
Clicking each Detailed Operations icon
on the product line.
- Using the Put in Pack button to place
everything in the transfer into a package.
Using the Put in Pack button to place
everything in the transfer into a package.

### Detailed operations

On any warehouse transfer (e.g. receipt, delivery order), add a product to a package by clicking the â¦â£ (bulleted list) icon in the Operations tab.
Doing so opens the Detailed Operations pop-up window for the Product .
To put the Product in a package, click Add a line , and assign the product to
a Destination Package . Select an existing package, or create a new one by typing the
name of the new package, then select Createâ¦ .
Twelve units of Acoustic Bloc Screen are placed in PACK0000001 .
`AcousticBlocScreen`
`PACK0000001`
Then, specify the quantity of items to go into the package in the Done column. Repeat
the above steps to place the Product in different packages. Once finished, click Confirm to close the window.
Ship one order in multiple packages

### Put in pack

Alternatively, click the Put in Pack button on any warehouse transfer to create a
new package, and place all the items in the transfer in that newly-created package.
The Put in Pack button appears on receipts, delivery orders, and other transfer forms
with the Packages feature enabled in Inventory app â£ Configuration â£
Settings .
In batch transfer BATCH/00003 , the Put in Pack button was clicked to create a new
package, PACK0000002 , and assign all items to it in the Destination Package field.
`BATCH/00003`
`PACK0000002`

## Package type

Create package types by navigating to Inventory app â£ Configuration â£ Package
Types , in order to set custom dimensions and weight limits. This feature is mainly used to
calculate package weights for shipping costs.
- Shipping carriers
- Delivery methods
On the Package Types list, clicking New opens a blank package type form. The
fields of the form are as follows:
- Package Type (required): define the package typeâs name.
Package Type (required): define the package typeâs name.
- Size : define the dimensions of the package in millimeters (mm). The fields, from left
to right, define the Length , Width , and Height .
Size : define the dimensions of the package in millimeters (mm). The fields, from left
to right, define the Length , Width , and Height .
- Weight : weight of an empty package (e.g. an empty box, pallet).
Weight : weight of an empty package (e.g. an empty box, pallet).
Odoo calculates the packageâs weight by adding the weight of the empty package plus the weight of
the item(s), which can be found in the Weight field, in the Inventory tab, of each product form.
- Max Weight : maximum shipping weight allowed in the package.
Max Weight : maximum shipping weight allowed in the package.
- Barcode : define a barcode to identify the package type from a scan.
Barcode : define a barcode to identify the package type from a scan.
- Company : specify a company to make the package type available only at the selected
company. Leave the field blank if it is available at all companies.
Company : specify a company to make the package type available only at the selected
company. Leave the field blank if it is available at all companies.
- Carrier : specify the intended shipping carrier for this package type.
Carrier : specify the intended shipping carrier for this package type.
- Carrier Code : define a code that is linked to the package type.
Carrier Code : define a code that is linked to the package type.

## Cluster packages

To use cluster packages , first navigate to Inventory app â£ Configuration â£
Settings , and activate the Batch Transfers feature, located in the Operations section. Doing so makes the Package Use field become visible on a package
form.
Add new packages by going to Inventory app â£ Products â£ Packages . Then, click New , or select an existing package. Doing so opens the package form, which contains the
following fields:
- Package Reference (required): name of the package.
Package Reference (required): name of the package.
- Package Type : used for configuring shipping boxes to ship to the customer . Note Package Type is unnecessary for configuring packages for cluster pickings.
Package Type : used for configuring shipping boxes to ship to the customer .
Package Type is unnecessary for configuring packages for cluster pickings.
- Shipping Weight : used to input the weight of the package after measuring it on a
scale.
Shipping Weight : used to input the weight of the package after measuring it on a
scale.
- Company : specify a company to make the package available only at the selected
company. Leave the field blank if the package is available at all companies.
Company : specify a company to make the package available only at the selected
company. Leave the field blank if the package is available at all companies.
- Location : current location of the package.
Location : current location of the package.
- Pack Date : the date the package was created.
Pack Date : the date the package was created.
- Package Use : choose Reusable for packages used for moving products within
the warehouse; Disposable for packages used to ship products to customers.
Package Use : choose Reusable for packages used for moving products within
the warehouse; Disposable for packages used to ship products to customers.
Using cluster packages

## View packages

To view all packages go to Inventory app â£ Products â£ Packages . By default,
packages are shown in Kanban view, in their current storage location.
Drag-and-drop packages to move them between internal locations.

Configuration
Pack items
Detailed operations
Put in pack
Package type
Cluster packages
View packages


Packaging

# Packaging

In Odoo Inventory , packaging refers to disposable containers holding multiple units of a
specific product.
For example, different packages for cans of soda, such as a 6-pack, a 12-pack, or a case of 36, must be configured on the individual product form. This is because packagings are product
specific, not generic.
Packaging can be used in conjunction with Odoo Barcode .
When receiving products from suppliers, scanning the packaging barcode automatically adds the
number of units in the packaging to the internal count of the product.

## Configuration

To use packagings, navigate to Inventory app â£ Configuration â£ Settings . Then,
under the Products heading, enable the Product Packagings feature, and click Save .

## Create packaging

Packagings can be created directly on the product form, or from the Product Packagings page.

### From product form

Create packagings on a product form by going to Inventory app â£ Products â£
Products , and select the desired product.
Under the Inventory tab, scroll down to the Packaging section, and click Add a line . In the table, fill out the following fields:
- Packaging (required): name of packaging that appears on sales/purchase orders as a
packaging option for the product.
Packaging (required): name of packaging that appears on sales/purchase orders as a
packaging option for the product.
- Contained quantity (required): amount of product in the packaging.
Contained quantity (required): amount of product in the packaging.
- Unit of Measure (required): measurement unit for quantifying the product.
Unit of Measure (required): measurement unit for quantifying the product.
- Sales : check this option for packagings intended for use on sales orders.
Sales : check this option for packagings intended for use on sales orders.
- Purchase : check this option for packagings intended for use on purchase orders.
Purchase : check this option for packagings intended for use on purchase orders.
Access additional fields in the Packaging table below by clicking the (additional options) icon
to the far-right of the column titles in the Packaging section, and selecting the
desired options from the drop-down menu that appears.
- Barcode : identifier for tracing packaging in stock moves or pickings, using the Barcode app . Leave blank if not in use.
Barcode : identifier for tracing packaging in stock moves or pickings, using the Barcode app . Leave blank if not in use.
- Company : indicates the packaging is only available at the selected company. Leave
blank to make the packaging available across all companies.
Company : indicates the packaging is only available at the selected company. Leave
blank to make the packaging available across all companies.
To create a packaging type for six units of the product, Grape Soda , begin by clicking Add a line . In the line, name the Packaging 6-pack , and set the Contained quantity to 6 . Repeat this process for additional packagings.
`GrapeSoda`
`6-pack`
`6`

### From product packagings page

To view all packagings that have been created, go to Inventory app â£ Configuration
â£ Product Packagings . Doing so reveals the Product Packagings page with a complete
list of all packagings that have been created for all products. Create new packagings by clicking New .
Two soda products, Grape Soda and Diet Coke , have three types of packagings configured. On
the Product Packagings page, each product can be sold as a 6-Pack that contains 6
products, as a 12-Pack of 12 products, or as a Case of 32 products.
`GrapeSoda`
`DietCoke`
`6-Pack`
`12-Pack`
`Case`

### Partial reservation

After completing the packaging setup ,
packagings can be reserved in full or partial quantities for outgoing shipments. Partial packaging
flexibility expedites order fulfillment by allowing the immediate shipment of available items, while
awaiting the rest.
To configure packaging reservation methods, go to Inventory app â£ Configuration
â£ Product Categories . Then, click New , or select the desired product category.
On the product categoryâs form, in the Logistics section, Reserve Packagings can be set to Reserve Only Full Packagings or Reserve Partial Packagings .
To see the Reserve Packaging field, the Product Packaging feature must be enabled. To enable this feature, go to Inventory app â£
Configuration â£ Settings , scroll to the Products section, tick the Product Packagings checkbox, and click Save .
To better evaluate the options based on business needs, consider the following example:
- a product is sold in twelve units per packaging.
a product is sold in twelve units per packaging.
- an order demands two packagings.
an order demands two packagings.
- there are only twenty-two units in stock.
there are only twenty-two units in stock.
When Reserve Only Full Packagings is selected, only twelve units are reserved for the
order.
Conversely, when Reserve Partial Packagings is selected, twenty-two units are
reserved for the order.

## Apply packagings

When creating a sales order in the Sales app, specify the packagings that should be
used for the product. The chosen packaging is displayed on the SO under the Packaging field.
18 cans of the product, Grape Soda , is packed using three 6-pack packagings.
`GrapeSoda`

## Routes for packaging

When receiving packagings, by default, they follow the warehouseâs configured reception route . To optionally set up a packaging-specific route,
go to Inventory app â£ Configuration â£ Routes .
The Product Packagings , Storage Locations , and Multi-Step Routes features (found by going
to Inventory app â£ Configuration â£ Settings ) must be activated, and
saved.
Routes and push/pull rules

### Create route

On the Routes page, click New , or select a route that is not for a
warehouse. Next, in the Applicable on section, tick the Packagings checkbox.
Route with âPackagingsâ selected, with âProductsâ and âWarehousesâ not selected.

### Apply route on packaging

Then, to apply the route, go to Inventory app â£ Products â£ Products , and select
the product that uses packaging.
In the product form, switch to the Inventory tab. In the Packaging section
that contains configured packagings , click the (additional options) icon. Tick the Routes checkbox to make the column visible in the Packaging table.
In the Routes field, select the packaging-specific route. Repeat these steps for all
packaging intended to use the route.

Configuration
Create packaging
From product form
From product packagings page
Partial reservation
Apply packagings
Routes for packaging
Create route
Apply route on packaging


Product type

# Product type

In Odoo, goods and services are both set up as products . When setting up a new product, there are
several fields that should be carefully chosen, as they determine how to invoice and track a
businessâ goods or services.
To configure an existing product, go to Inventory app â£ Products â£ Products ,
and select the desired product from the list. Alternatively, from the Products menu,
click New to create a new product.
Odoo Tutorials: Product Type

## For sale vs. purchase

Goods and services can be designated as those that can be bought, sold, or both. On the product
form, tick the Sales checkbox if a product can be sold to a customer (e.g. finished
goods). Tick Purchase if the product can be purchased (e.g. raw materials).
If a resale clothing shop buys discounted denim jackets and sells them at a higher cost to the
end consumer, the Jacket product form might have both the Sales and Purchase checkbox ticked.
`Jacket`
On the other hand, say the store occasionally sews new jackets using denim and thread as
raw materials. In the Denim and Thread product forms, only Purchase should be
ticked, whereas the Handmade Jacket product form would only tick Sales .
`Denim`
`Thread`
`HandmadeJacket`

## Goods vs. services

When configuring a product, a Product Type needs to be selected on the General Information tab of a product form. Each product type impacts different
operations in other Odoo applications, such as Sales and Purchase , and should be chosen
carefully.
- Goods : a tangible, material object (e.g. anything from a hamburger to a house)
Goods : a tangible, material object (e.g. anything from a hamburger to a house)
- Service : an intangible, immaterial offering (e.g., a repair, a haircut, call center
assistance)
Service : an intangible, immaterial offering (e.g., a repair, a haircut, call center
assistance)
- Combo : any mix of goods and services (e.g. a new car ( good ) with an oil change
included ( service ))
Combo : any mix of goods and services (e.g. a new car ( good ) with an oil change
included ( service ))
Due to their immaterial nature, services are not trackable in Odooâs Inventory application.

## Configure goods

Selecting Goods as the Product Type automatically triggers the appearance of
a few fields and tabs in the product form:
- Inventory tab: From here, purchasing and manufacturing routes and product logistics, such as product weight and customer lead time, can be specified.
Inventory tab: From here, purchasing and manufacturing routes and product logistics, such as product weight and customer lead time, can be specified.
- Invoicing Policy field: This field
determines at what point in the sales process a customer is invoiced. Important The Invoicing Policy field only appears if the Sales app is installed.
Invoicing Policy field: This field
determines at what point in the sales process a customer is invoiced.
The Invoicing Policy field only appears if the Sales app is installed.
- Track Inventory field: This checkbox
determines whether Odoo tracks inventory for this product.
Track Inventory field: This checkbox
determines whether Odoo tracks inventory for this product.
- Smart buttons: Some smart buttons appear above the form when Goods is selected;
others show upon selecting a Track Inventory method. For example, On Hand and Forecasted display when Track Inventory is
ticked. In general, most smart buttons on a product form link to inventory operations .
Smart buttons: Some smart buttons appear above the form when Goods is selected;
others show upon selecting a Track Inventory method. For example, On Hand and Forecasted display when Track Inventory is
ticked. In general, most smart buttons on a product form link to inventory operations .

### Invoicing policy

The Invoicing policy field only shows on the product form if a product is for sale (in
other words, if Sales is ticked, and the Sales app is installed).
When configuring a product for sale, it is necessary to choose an invoicing policy . When an invoicing
policy of Ordered quantities is selected, customers are invoiced once the sales order
is confirmed. When Delivered quantities is selected, customers are invoiced once the
delivery is completed.

### Tracked vs. untracked goods

The Track Inventory field on the product form determines a lot of Odooâs Inventory operations.
Tracked products are those for which stock and inventory are maintained. Examples include finished
goods and, often, the raw materials or components needed to make them.
When Track Inventory is ticked, a drop-down menu appears, offering for inventory to be
tracked one of three ways: By Unique Serial Number , By Lots , or By Quantity .
Untracked products (sometimes referred to as non-inventory products) are typically consumed in a
short period of time, meaning that stock/inventory does not need to be maintained. Non-inventory
products are often essential, but exact counts are unnecessary. Examples include: office supplies,
packaging materials, or items used in production that do not need to be individually tracked.
Tick the Track Inventory checkbox if it is necessary to track a productâs stock at
various locations, for inventory valuation, with lots and/or serial numbers, or when using
reordering rules.
Tracking storable products using lot and serial numbers

### Inventory operations by product type

Whether a good is tracked or untracked affects common Inventory operations, like transfers and reordering rules.
The table below summarizes which operations (and smart buttons) are enabled for tracked vs.
untracked goods. Click highlighted chart items to navigate to detailed sections and related
documents.
Show on-hand quantity
Show forecasted quantity
Can be included in a purchase order
Can be manufactured, subcontracted, or used in another goodâs BoM
Use inventory adjustments
Use inventory valuation
Use lot/serial number tracking
Can be placed in a kit
Can be placed in a package
Appears on inventory reports

#### Inventory

A tracked productâs on-hand and forecasted quantities, based on incoming and outgoing orders, are
reflected on the product form with two smart buttons:
- On-Hand Quantity : This represents the number of units currently
available in inventory. Click the button to view or add stock levels for a tracked product.
On-Hand Quantity : This represents the number of units currently
available in inventory. Click the button to view or add stock levels for a tracked product.
- Forecasted : This represents the number of units expected to be
available in inventory after all orders are taken into account. In other words, \(\text{forecasted} = \text{on hand quantity} + \text{incoming shipments} - \text{outgoing shipments}\) .
Click the button to view the Forecasted Report .
Forecasted : This represents the number of units expected to be
available in inventory after all orders are taken into account. In other words, \(\text{forecasted} = \text{on hand quantity} + \text{incoming shipments} - \text{outgoing shipments}\) .
Click the button to view the Forecasted Report .
On the other hand, untracked products are regarded as always available. Consequently, On-Hand Quantity is not tracked, and there is no Forecasted quantity
available.
Both tracked and untracked goods can optimize storage using:
- Putaway Rules :
This represents putaway rules that apply to a good, such as where to store it when a new shipment
arrives.
Putaway Rules :
This represents putaway rules that apply to a good, such as where to store it when a new shipment
arrives.
- Storage Capacities :
This represents any storage capacity limitations specified for this good. For example, a warehouse
may require that only ten (or less) sofas be stored there at any given time, due to their large
size.
Storage Capacities :
This represents any storage capacity limitations specified for this good. For example, a warehouse
may require that only ten (or less) sofas be stored there at any given time, due to their large
size.
Only tracked products can trigger reordering rules to generate
purchase orders. Untracked goods cannot be managed using reordering rules.
Reordering rules can be configured directly on the product form via the (refresh) icon.
If reordering rules already exist on a product, Odoo re-labels this button to Min / Max , to show the minimum and maximum number of units that must be in stock.
Both tracked and untracked products can be included in a request for quotation in the Purchase app. However, when receiving untracked products, their on-hand quantity does not change upon
validating the receipt ( WH/IN ).
`WH/IN`
The Replenish smart button allows all goods to be restocked directly from the product
form, according to the Preferred Route .
Replenishment Odoo Tutorials: Replenishment Methods for Manufacturing

#### Manufacturing

Both tracked and untracked products can be manufactured, subcontracted , or included in another productâs bill of materials (BoM) .
On the product form for a tracked or untracked good, there are several smart buttons that may
appear for manufacturing operations:
- Bill of Materials : This shows the BoMs used to make this product.
Bill of Materials : This shows the BoMs used to make this product.
- Used In : This shows other goods that include this product in their
BoM.
Used In : This shows other goods that include this product in their
BoM.

#### Transfer goods

Transfers are warehouse operations that involve the movement of goods. Examples of transfers
include deliveries and receipts , as well as internal transfers between
warehouses.
When creating a transfer for tracked products in the Inventory app, transfers modify the on-hand
quantity at each location. For example, transferring five units from the internal location WH/Stock to WH/Packing Zone decreases the recorded quantity at WH/Stock and increases it at WH/Packing Zone .
`WH/Stock`
`WH/PackingZone`
`WH/Stock`
`WH/PackingZone`
For untracked products, transfers can be created, but exact quantities at each storage location are
not tracked.

#### Packages

Both tracked and untracked (non-inventory), products can be placed in packages .
However, for non-inventory products, the quantity is not tracked, and the product is not listed in
the packageâs Contents (which can be accessed by going to Inventory app
â£ Products â£ Packages , and selecting the desired package).
An untracked product was placed in the package, but the Content section does not list it.
Additionally, if the Move Entire Packages feature is enabled, moving a package updates the
location of the contained tracked products but not the contained untracked products. To enable this
feature, navigate to Inventory app â£ Configuration â£ Operations Types , select
any operation, and tick the Move Entire Packages checkbox.

#### Inventory reports

Only tracked products appear on the following reports.
These reports are only available to users with administrator access .
- Stock report : This report provides a
comprehensive list of all on-hand, unreserved, incoming, and outgoing tracked inventory. To access
the report, go to Inventory app â£ Reporting â£ Stock .
Stock report : This report provides a
comprehensive list of all on-hand, unreserved, incoming, and outgoing tracked inventory. To access
the report, go to Inventory app â£ Reporting â£ Stock .
- Location report : This report shows a
breakdown of which tracked products are held at each location (internal, external, or virtual).
The report is only available with the Storage Location feature activated
( Inventory app â£ Configuration â£ Settings ). To access it, go to Inventory app â£ Reporting â£ Locations .
Location report : This report shows a
breakdown of which tracked products are held at each location (internal, external, or virtual).
The report is only available with the Storage Location feature activated
( Inventory app â£ Configuration â£ Settings ). To access it, go to Inventory app â£ Reporting â£ Locations .
- Moves History report : This report
summarizes where and when this good has moved in/out of stock. To access the report, go to Inventory app â£ Reporting â£ Moves History . Alternatively, click the In / Out smart button on a product form to filter the report
on that productâs specific moves history.
Moves History report : This report
summarizes where and when this good has moved in/out of stock. To access the report, go to Inventory app â£ Reporting â£ Moves History . Alternatively, click the In / Out smart button on a product form to filter the report
on that productâs specific moves history.
- Moves Analysis : This report provides a pivot table view of inventory transfers by
operation type.
Moves Analysis : This report provides a pivot table view of inventory transfers by
operation type.
- Stock Valuation report : A detailed record
of the monetary value of all tracked inventory.
Stock Valuation report : A detailed record
of the monetary value of all tracked inventory.

For sale vs. purchase
Goods vs. services
Configure goods
Invoicing policy
Tracked vs. untracked goods
Inventory operations by product type


Units of measure

# Units of measure

In some cases, handling products in different units of measure is necessary. For example, a business
can buy products from a country that uses the metric system, and then sell those products in a
country that uses the imperial system. In that case, the business needs to convert the units.
Another case for unit conversion is when a business buys products in a big pack from a supplier, and
then sells those products in individual units.
Odoo can be set up to use different units of measure (UoM) for one product.

## Configuration

To use different units of measure in Odoo, first go to Inventory app â£
Configuration â£ Settings , and under the Products section, activate the Units of Measure setting. Then, click Save .

## Units of measure categories

After enabling the Units of Measure setting, view the default units of measure categories in Inventory app â£ Configuration â£ UoM Categories . The category is important for
unit conversion; Odoo can convert a productâs units from one unit to another only if both units
belong to the same category.
Each units of measure category has a reference unit. The reference unit is highlighted in blue in
the Uom column of the Units of Measure Categories page. Odoo uses the
reference unit as a base for any new units.
To create a new unit, first select the correct category from the Units of Measure
Categories page. For example, to sell a product in a box of six units, click the Unit category line. Then, on the category page that appears, click Add a line in the Units of Measure tab. Then, in the Unit of Measure field, title the new
unit, such as Box of 6 , then in the Type field, select the appropriate size reference,
such as Bigger than the reference Unit of Measure .
`Boxof6`
If applicable, enter a UNSPSC Category , which is a globally recognized code managed by
GS1 , that must be purchased in order to use.
In the Ratio field, enter how many individual units are in the new UoM , such as 6.00000 when using the example of the 6-Pack (since a box of six is six times bigger than the
reference unit, 1.00000 ).
`6.00000`
`6-Pack`
`1.00000`

## Specify a productâs units of measure

To set units of measure on a product, first go to Inventory app â£ Products â£
Products and select a product to open its product form page.
In the General Information tab, edit the Unit of Measure field to specify
the unit of measure that the product is sold in. The specified unit is also the unit used to keep
track of the productâs inventory and internal transfers.
Edit the Purchase UoM field to specify the unit of measure that the product is purchased
in.

## Unit conversion

Odoo automatically converts unit measurements when products have different UoMs and purchase UoMs .
This occurs in various scenarios, including:
- Vendor orders : purchase UoM on purchase
orders (POs) converts to UoM on internal warehouse documents
Vendor orders : purchase UoM on purchase
orders (POs) converts to UoM on internal warehouse documents
- Automatic replenishment : generates POs when
the stock levels of a product (tracked in UoM ) dips below a certain level. But, the POs are
created using the purchase UoM
Automatic replenishment : generates POs when
the stock levels of a product (tracked in UoM ) dips below a certain level. But, the POs are
created using the purchase UoM
- Sell products : if a different UoM is used
on the sales order (SO), the quantity is converted to the warehouseâs preferred UoM on the
delivery order
Sell products : if a different UoM is used
on the sales order (SO), the quantity is converted to the warehouseâs preferred UoM on the
delivery order

### Buy products in the purchase UoM

When creating a new request for quotation (RFQ) in the Purchase app, Odoo automatically uses the
productâs specified purchase unit of measure. If needed, manually edit the UoM value on
the RFQ .
After the RFQ is confirmed into a PO , click the Receipt smart button at the top of
the PO .
Odoo automatically converts the purchase unit of measure into the productâs sales/inventory unit of
measure, so the Demand column of the delivery receipt shows the converted quantity.
When the productâs purchase UoM is Box of 6 , and its sales/inventory unit of
measure is Units , the PO shows the quantity in boxes of six, and the receipt (and other
internal warehouse documents) shows the quantity in units.
`Boxof6`
`Units`
An order of three quantities is placed using the purchase âUoMâ: Box of 6 .
`Boxof6`
Upon warehouse receipt, the recorded quantities are in the internal âUnit of Measureâ: Units .
`Units`

### Replenishment

A request for quotation for a product can also be generated directly from the product form using
the Replenish button.
After clicking Replenish , a replenish assistant box pops up. The purchase unit of
measure can be manually edited in the Quantity field, if needed. Then, click Confirm to create the RFQ .
A PO can only be automatically generated if at least one vendor is listed in the
product formâs Purchase tab.
Navigate to the created PO by clicking the Forecasted smart button on the product
form. Scroll down to the Forecasted Inventory section, and in the Requests
for quotation line, click the RFQ reference number to open the draft RFQ . If necessary, the
purchase UoM can be edited directly on the PO .

### Sell in a different UoM

When creating a new quotation in the Sales app, Odoo automatically uses the productâs specified
unit of measure. If needed, the UoM can be manually edited on the quotation.
After the quotation is sent to the customer, and confirmed into a sales order (SO), click the Delivery smart button at the top of the SO . Odoo automatically converts the unit of
measure into the productâs inventory unit of measure, so the Demand column of the
delivery shows the converted quantity.
For example, if the productâs UoM on the SO was changed to Box of 6 , but its inventory unit of
measure is Units , the SO shows the quantity in boxes of six, and the delivery shows the quantity
in units.
`Boxof6`
`Units`

Configuration
Units of measure categories
Specify a productâs units of measure
Unit conversion
Buy products in the purchase UoM
Replenishment
Sell in a different UoM


Automatic inventory valuation

# Automatic inventory valuation

All of a companyâs stock on-hand contributes to the valuation of its inventory. That value should
be reflected in the companyâs accounting records to accurately show the value of the company and
all of its assets.
By default, Odoo uses a periodic inventory valuation (also known as manual inventory valuation).
This method implies that the accounting team manually posts journal entries, based on the physical
inventory of the company, and warehouse employees take the time to count the stock. In Odoo, each
product category reflects this, with the Costing Method set to Standard
Price , and the Inventory Valuation (not visible by default) set to Manual .
Alternatively, perpetual (automatic) inventory valuation creates real-time journal entries in the Accounting app whenever stock enters or leaves the companyâs warehouse.
This document is focused on the proper setup of automatic inventory valuation, which is an
integrated valuation method that ensures journal entries in the Accounting app match stock
valuation updates in the Inventory app. For an introduction of inventory valuation in Odoo, refer
to the Using inventory valuation documentation.
Switching from manual to automatic inventory valuation may cause discrepancies between stock
valuation and accounting journals.
One successful strategy for switching to automated valuation:
- Clear existing stock (possibly with an inventory adjustment )
Clear existing stock (possibly with an inventory adjustment )
- Change the inventory valuation method to Automatic
Change the inventory valuation method to Automatic
- Return the existing stock, with the original monetary value (using an inventory adjustment)
Return the existing stock, with the original monetary value (using an inventory adjustment)
Once the existing stock is recovered, the Odoo Accounting app automatically generates the
journal entries to corresponding stock valuation records.

## Configuration

To properly set up automatic inventory valuation, follow these steps in Odoo:
- Install Accounting app and enable specific settings
Install Accounting app and enable specific settings
- Set Automatic inventory valuation on product categories
Set Automatic inventory valuation on product categories
- Set costing method

### Accounting setup

To use automatic inventory valuation, install the Accounting app. Next, go to Accounting app â£ Configuration â£ Settings , and in the Stock
Valuation section, tick the Automatic Accounting checkbox. Then, click Save .
Enabling Automatic Accounting shows the previously invisible Inventory Valuation field on a product category.
Refer to the Expense and Stock
input/output sections of documentation for details on
configuring the accounting journals shown.

### Product category setup

After enabling inventory valuation , the next
step is to set the product category to use automatic inventory valuation.
Go to Inventory app â£ Configuration â£ Product Categories , and select the
desired product category. In the Inventory Valuation section, set the Inventory Valuation field to Automated . Repeat this step for every product
category intending to use automatic inventory valuation.
After enabling automatic accounting, each new stock move layer (SVL), that is created during
inventory valuation updates, generates a journal entry.

## Costing method

After enabling inventory valuation , the costing method for calculating and recording inventory costs is defined on the product category in
Odoo.
Go to Inventory app â£ Configuration â£ Product Categories and select the desired
product category. In the Inventory Valuation section, select the appropriate Costing Method :
The default costing method in Odoo. The cost of the product is manually defined on the product
form, and this cost is used to compute the valuation. Even if the purchase price on a purchase
order differs, the valuation is the cost defined on the product form.
Receive 8 products for $10/unit
Receive 4 products for $16/unit
Receive 2 products for $9/unit
Calculates the valuation of a product based on the average cost of that product, divided by
the total number of available stock on-hand. With this costing method, inventory valuation is dynamic , and constantly adjusts based on the purchase price of products.
Receive 8 products for $10/unit
Receive 4 products for $16/unit
Receive 2 products for $6/unit
How are unit cost and inventory value calculated at each step?
- When receiving four products for $16 each: Inventory value is calculated by adding the previous inventory value with the incoming
value: \($80 + (4 * $16) = $144\) . Unit cost is calculated by dividing the inventory value by the quantity on-hand: \($144 / 12 = $12\) .
When receiving four products for $16 each:
- Inventory value is calculated by adding the previous inventory value with the incoming
value: \($80 + (4 * $16) = $144\) .
Inventory value is calculated by adding the previous inventory value with the incoming
value: \($80 + (4 * $16) = $144\) .
- Unit cost is calculated by dividing the inventory value by the quantity on-hand: \($144 / 12 = $12\) .
Unit cost is calculated by dividing the inventory value by the quantity on-hand: \($144 / 12 = $12\) .
- When delivering ten products, the average unit cost is used to calculate the inventory
value, regardless of the purchase price of the product. Therefore, inventory value is \($144 + (-10 * $12) = $24\) .
When delivering ten products, the average unit cost is used to calculate the inventory
value, regardless of the purchase price of the product. Therefore, inventory value is \($144 + (-10 * $12) = $24\) .
- Receive two products for $6 each: Inventory value: \($24 + (2 * $6) = $36\) Unit cost: \($36 / 4 = $9\)
Receive two products for $6 each:
- Inventory value: \($24 + (2 * $6) = $36\)
Inventory value: \($24 + (2 * $6) = $36\)
- Unit cost: \($36 / 4 = $9\)
Unit cost: \($36 / 4 = $9\)
When choosing Average Cost (AVCO) as the Costing Method , changing
the numerical value in the Cost field for products in the respective product category
creates a new record in the Inventory Valuation report to adjust the value of the
product. The Cost amount is then automatically updated, based on the average purchase
price of both the inventory on-hand and the costs accumulated from validated purchase
orders.
Tracks the costs of incoming and outgoing items in real-time, and uses the real price of the
products to change the valuation. The oldest purchase price is used as the cost for the next
good sold, until an entire lot of that product is sold. When the next inventory lot moves up
in the queue, an updated product cost is used based on the valuation of that specific lot.
This method is arguably the most accurate inventory valuation method for a variety of reasons,
but it is highly sensitive to input data and human error.
Receive 8 products for $10/unit
Receive 4 products for $16/unit
Receive 2 products for $6/unit
How are unit cost and inventory value calculated at each step?
- When receiving four products for $16 each: Inventory value is calculated by adding the previous inventory value to the incoming
value: \($80 + (4 * $16) = $144\) . Unit cost is calculated by dividing the inventory value by the quantity on-hand: \($144 / 12 = $12\) . When delivering ten products, eight units were purchased for $10, and two units were
purchased for $16. First, the incoming value is calculated by multiplying the on-hand quantity by the
purchased price: \((-8 * $10) + (-2 * $16) = -112\) . The inventory value is calculated by subtracting the incoming value from the previous
inventory value: \($144 - $112 = $32\) . Unit cost is calculated by dividing the inventory value by the remaining quantity: \($32 / 2 = $16\) .
When receiving four products for $16 each:
- Inventory value is calculated by adding the previous inventory value to the incoming
value: \($80 + (4 * $16) = $144\) .
Inventory value is calculated by adding the previous inventory value to the incoming
value: \($80 + (4 * $16) = $144\) .
- Unit cost is calculated by dividing the inventory value by the quantity on-hand: \($144 / 12 = $12\) .
Unit cost is calculated by dividing the inventory value by the quantity on-hand: \($144 / 12 = $12\) .
- When delivering ten products, eight units were purchased for $10, and two units were
purchased for $16.
When delivering ten products, eight units were purchased for $10, and two units were
purchased for $16.
- First, the incoming value is calculated by multiplying the on-hand quantity by the
purchased price: \((-8 * $10) + (-2 * $16) = -112\) .
First, the incoming value is calculated by multiplying the on-hand quantity by the
purchased price: \((-8 * $10) + (-2 * $16) = -112\) .
- The inventory value is calculated by subtracting the incoming value from the previous
inventory value: \($144 - $112 = $32\) .
The inventory value is calculated by subtracting the incoming value from the previous
inventory value: \($144 - $112 = $32\) .
- Unit cost is calculated by dividing the inventory value by the remaining quantity: \($32 / 2 = $16\) .
Unit cost is calculated by dividing the inventory value by the remaining quantity: \($32 / 2 = $16\) .
- When receiving two products for $6, inventory value is \($32 + $12 = $44\) . Unit cost is \($44 / 4 = $11\) .
When receiving two products for $6, inventory value is \($32 + $12 = $44\) . Unit cost is \($44 / 4 = $11\) .
Changing the costing method greatly impacts inventory valuation. It is highly recommended to
consult an accountant first before making any adjustments here.
Using inventory valuation
When the Costing Method is changed, products already in stock that were using the Standard costing method do not change value; rather, the existing units keep their
value, and any product moves from then on affect the average cost, and the cost of the product will
change. If the value in the Cost field on a product form is changed manually, Odoo
generates a corresponding record in the Inventory Valuation report.
It is possible to use different valuation settings for different product categories.

## Types of accounting

With automated inventory valuation set up, the generated journal entries depend on the chosen
accounting mode: Continental or Anglo-Saxon .
Verify the accounting mode by activating the Developer mode (debug mode) , and navigating to Accounting app â£ Configuration â£ Settings .
Then, in the Searchâ¦ bar, look for Anglo-Saxon Accounting , to see if the feature
is enabled. If it is not enabled, Continental accounting mode is in use.
`Anglo-SaxonAccounting`
In Anglo-Saxon accounting, the costs of goods sold (COGS) are reported when products are sold or
delivered. This means the cost of a good is only recorded as an expense when a customer is invoiced
for a product.
So, for manual valuation method, set the Expense Account to Stock Valuation for the current
asset type; for automatic valuation method, set the Expense Account to an Expenses or a Cost of Revenue type (e.g. Cost of Production , Cost of Goods Sold , etc.).
In Continental accounting, the cost of a good is reported as soon as a product is received into
stock. Because of this, the Expense Account can be set to either Expenses or a Cost of
Revenue type, however, it is more commonly set to an Expenses account.
Refer to the Expense and Stock
input/output sections for details on configuring each
account type.

### Expense account

To configure the expense account , which is used in both manual and automatic inventory valuation,
go to the Account Properties section of the intended product category
( Inventory app â£ Configuration â£ Product Categories ). Then, choose an existing
account from the Expense Account drop-down menu.
To ensure the chosen account is the correct Type, click the (right arrow) icon to the
right of the account. Then, set the account type based on the information below.
In Anglo-Saxon accounting for automated inventory valuation, set the Expense
Account to the Expenses account. Then, click the (right arrow) icon to the right of
the account.
`Expenses`
In the pop-up window, choose Expenses or Cost of Revenue from
the Type drop-down menu.
To configure the Expense Account , choose Stock Valuation from
the fieldâs drop-down menu. Verify the accountâs type by clicking the (right arrow) icon, and then ensure the Type is Current Assets .
Set the Expense Account to the Expenses or Cost of
Revenue account type.
Set the Expense Account to the Expenses or Cost of
Revenue account type.

#### Stock input/output (automated only)

To configure the Stock Input Account and Stock Output Account , go to Inventory app â£ Configuration â£ Product Categories and select the desired
product category.
In the Inventory Valuation field, select Automated . Doing so makes the Account Stock Properties section appear. These accounts are defined as follows:
- Stock Valuation Account : when automated inventory valuation is enabled on a product,
this account will hold the current value of the products.
Stock Valuation Account : when automated inventory valuation is enabled on a product,
this account will hold the current value of the products.
- Stock Journal : accounting journal where entries are automatically posted when a
productâs inventory valuation changes.
Stock Journal : accounting journal where entries are automatically posted when a
productâs inventory valuation changes.
- Stock Input Account : counterpart journal items for all incoming stock moves will be
posted in this account, unless there is a specific valuation account set on the source location.
This is the default value for all products in a given category, and can also be set directly on
each product.
Stock Input Account : counterpart journal items for all incoming stock moves will be
posted in this account, unless there is a specific valuation account set on the source location.
This is the default value for all products in a given category, and can also be set directly on
each product.
- Stock Output Account : counterpart journal items for all outgoing stock moves will be
posted in this account, unless there is a specific valuation account set on the destination
location. This is the default value for all products in a given category, and can also be set
directly on each product.
Stock Output Account : counterpart journal items for all outgoing stock moves will be
posted in this account, unless there is a specific valuation account set on the destination
location. This is the default value for all products in a given category, and can also be set
directly on each product.
In Anglo-Saxon accounting, the Stock Input Account and Stock Output
Account are set to different Current Assets accounts. This way, delivering
products and invoicing the customer balance the Stock Output account, while receiving
products and billing vendors balance the Stock Input account.
To modify the account type, go to the click the (right arrow) icon to the right of the stock
input/output account. In the pop-up window, choose Current Assets from the Type drop-down menu.
The Stock Input account is set to Stock Interim (Received) , a Current Asset account
type.
`StockInterim(Received)`
In Continental accounting, the Stock Input Account and Stock Output
Account are set to the same Current Assets account. That way, one account can
be balanced when items are bought and sold.
The stock input and output accounts are both set to Stock Interim (Received) , a Current Assets account type. They can also be set to the Stock Interim (Delivered) , as long as the input and output accounts are assigned to the same account.
`StockInterim(Received)`
`StockInterim(Delivered)`

## Inventory valuation reporting

To start, go to Accounting app â£ Reporting â£ Balance Sheet . Click the Current Assets line item to unfold the drop-down menu, and look for the nested Stock Valuation , Stock Interim (Received) , and Stock Interim
(Delivered) lines.
At the top of the dashboard, click the As of [date] button to display accounting
records up to a specified date.
- Stock accounts and what they do
Stock accounts and what they do
- Accounting cheat sheet
Accounting cheat sheet
Access more specific information by clicking the (ellipsis) icon
to the right of the desired journal. Select General Ledger to see a list of all of the
journal entries, where each line itemâs (ellipsis) icon can be
clicked to reveal the View Journal Entry option to open the individualized journal
entry.
Additionally, annotations to the Balance Sheet can be added by choosing Annotate , filling in the text box, and clicking Save .

Configuration
Accounting setup
Product category setup
Costing method
Types of accounting
Expense account
Inventory valuation reporting