Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IMP] Manufacturing: update MO costs #11422

Open
wants to merge 1 commit into
base: 18.0
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ calculating the cost to complete each manufacturing order (MO), as well as the a
cost of a product, based on all completed |MOs|.

.. important::
Odoo's Manufacturing app distinguishes between the *manufacturing order cost* and the *real cost*
of an |MO|.
Odoo's Manufacturing app distinguishes between the *MO cost* and the *real cost* of an |MO|.

The |MO| cost represents how much it *should* cost to complete an |MO|, based on the
configuration of the product's bill of materials (BoM). This takes into account the cost and
Expand All @@ -31,7 +30,8 @@ Cost configuration

Odoo computes |MO| costs based on the configuration of the |BoM| used to manufacture a product. This
includes the cost and quantity of components and operations listed on the |BoM|, in addition to the
Comment on lines 31 to 32
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Odoo computes |MO| costs based on the configuration of the |BoM| used to manufacture a product. This
includes the cost and quantity of components and operations listed on the |BoM|, in addition to the
Odoo computes |MO| costs based on the configuration of the |BoM| used to manufacture a product. This
calculation includes the cost and quantity of components and operations listed on the |BoM|, in addition to the

operating costs of the work centers where those operations are carried out.
operating costs of the work centers where those operations are carried out, and the amount paid to
each employee who works on an operation.
Comment on lines 31 to +34
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paragraph repeats a lot of the 'important' admonition block above.


Component cost
--------------
Expand All @@ -46,40 +46,57 @@ the component's product form, and entering a value. However, any future |POs| fo
override a value entered manually, resetting the :guilabel:`Cost` field back to an automatically
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Super small nitpick - it's not letting me comment on line 45, but I would personally not put a comma before "entering a value", since it's not an independent clause or an aside.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
override a value entered manually, resetting the :guilabel:`Cost` field back to an automatically
override a manually-entered value entered, resetting the :guilabel:`Cost` field back to an automatically

computed value.

.. _manufacturing/mo-costs/work-center-cost:

Work center cost
----------------

To set the operating cost for a specific work center, navigate to :menuselection:`Manufacturing app
--> Configuration --> Work Centers`, and select a work center.

To set the operating cost for the work center, as a whole, enter a value in the :guilabel:`per
To set the cost of operating the work center for one hour, enter a value in the :guilabel:`per
workcenter` field, located beside the :guilabel:`Cost per hour` section on the work center's
:guilabel:`General Information` tab. This operating cost is used regardless of how many employees
are working at the work center at any given time.

To set the operating cost for the work center based on the number of employees working there at a
given time, enter a value in the :guilabel:`per employee` field, located beside the :guilabel:`Cost
per hour` section on the work center's :guilabel:`General Information` tab. For example, if `25.00`
is entered in the :guilabel:`per employee` field, it costs $25.00 per hour for *each* employee
working at the work center.
:guilabel:`General Information` tab.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not letting me edit these lines directly because there is a deleted line contained therein, but I think, instead of lines 57 - 63, it should say:

[ To set the cost of operating the work center for one hour, locate the :guilabel:Cost per hour field on the work center's :guilabel:General Information tab. The hourly cost can be set two different ways: :guilabel:per workcenter and :guilabelper employee. ]

...then continue with the examples :)


Note that, if values are entered in both the :guilabel:`per workcenter` *and* :guilabel:`per
employee` fields, the value in the :guilabel:`per workcenter` field takes precedence, and the value
in the :guilabel:`per employee` field is ignored.
To set the hourly cost of each employee that operates the work center, enter a value in the
:guilabel:`per employee` field, located beside the :guilabel:`Cost per hour` section on the work
center's :guilabel:`General Information` tab. For example, if `25.00` is entered in the
:guilabel:`per employee` field, it costs $25.00 per hour for *each* employee working at the work
center.

.. important::
It is also possible to set a per hour cost for specific employees, by navigating to the
:menuselection:`Employees` app, selecting an employee, clicking the :guilabel:`HR Settings` tab
on their employee form, and entering a value in the :guilabel:`Hourly Cost` field.
The value entered in the :guilabel:`per employee` field is only used to calculate the |MO| cost,
which is the estimated cost of completing the |MO|.

The actual cost of completing the |MO| is represented by the real cost. Instead of using the
value entered in the :guilabel:`per employee` field, the real cost is calculated using the hourly
cost specific to each employee.

For example, if the :guilabel:`per employee` cost of a work center is '$50.00', and an employee
with an hourly cost of '$60.00' completes a work order there, the |MO| cost (estimated) is
calculated using the $50/hr cost, while the real cost is calculated using the $60/hr cost.

Just like the *per workcenter* field on a work center form, the :guilabel:`Hourly Cost` field on
an employee's form overrides the *per employee* field on a work center form.
See the :ref:`section below <manufacturing/mo-costs/employee-cost>` for information on how to set
the cost for specific employees.

However, the *per workcenter* field takes precedence over both the *per employee* field on the
workcenter form *and* the :guilabel:`Hourly Cost` field on the employee form.
.. _manufacturing/mo-costs/employee-cost:

Employee cost
-------------

To set the hourly cost for a specific employee, navigate to the :menuselection:`Employees` app, and
select an employee. On the employee's form, select the :guilabel:`Settings` tab, and enter the
employee's rate in the :guilabel:`Hourly Cost` field of the :guilabel:`Application Settings`
section.

.. important::
As detailed in the :ref:`section above <manufacturing/mo-costs/work-center-cost>`, the value
entered in the :guilabel:`Hourly Cost` field on the employee's form is used to calculate the real
cost of an MO. The estimated cost of an MO, referred to as the MO cost, uses the per employee
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
cost of an MO. The estimated cost of an MO, referred to as the MO cost, uses the per employee
cost of an MO. The estimated cost of an MO, referred to as the MO cost, uses the :guilabel:`per employee`

cost set on each work center's form.

|BoM| cost
----------
|BoM| configuration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would consider moving this section, BoM configuration, to be above component cost, work center cost, and employee cost! Since it's sort of the basis of the MO cost.

-------------------

Configuring a |BoM| so Odoo can accurately calculate the cost of |MOs| that use it requires two
steps. First, components **must** be added, and the required quantity specified. Second, operations
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it could be nice for the steps to be enumerated (1) and (2), and then the steps for configuration can be listed after each of the 2 steps?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In lines 123-124, should 'default duration` be capitalized and stylized as :guilabel:?

Expand Down Expand Up @@ -137,7 +154,9 @@ same costs. This is the *estimated* cost of completing the |MO|.

However, once work commences, the values in the :guilabel:`Real Cost` column may begin to diverge
from the values in the :guilabel:`MO Cost` column. This happens if a different component quantity is
used than was listed on the |MO|, or if the duration of a work order is different than expected.
used than was listed on the |MO|, the duration of a work order is different than expected, or the
hourly cost of the employee performing a work order differs from the employee cost set on the work
center.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great call out!


Once the |MO| has been completed by clicking :guilabel:`Produce All`, the values in the
:guilabel:`MO Cost` column update to match those displayed in the :guilabel:`Real Cost` column.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not letting me comment on the individual lines below, but the example you walk through is awesome! Very clearly explained, and I am not left with any questions.

A couple minor suggestions/questions:

  • I notice in the bullet points that single digit numbers (e.g. seven) are spelled out, while two+ digit numbers (e.g. 15) use numbers. I am familiar with this practice as a journalistic/academic writing convention, but I feel like for something like Odoo, it is kind of awkward. Personally I would prefer to see all numbers, like 1, 15, 300, etc., instead of written out. But is it an Odoo style convention we have to adhere to?
  • Fairway Fields is italicized at the beginning of the example, but not when mentioned later. Is that intentional? Same with the putting green.

Expand Down