We do not want to allow the change of a related config via a pos.order
and in case the pos.order is done or invoiced we should not be able to
change the user_id anymore and the fiscal position should never ever be
changed after the order is not in draft anymore.
User editable introduced at dca370d7.
Closes#16372
Before the migration, send_mail() used to be called with an untainted
context but after the API migration it inherited the altered context
with active_test=False which caused subsequent calls to
ir.mail_server#connect() to fetch inactive records.
When no email is defiend on the partner, a traceback is raised when
paying with Authorize.net.
The `text` attribute requires a string, not a boolean (`False` in this
case).
opw-728301
- Create a new account of type "Expenses". Allow the reconciliation and
assign this account on the internal category of a product on both
"Expense account", "Stock Input" and "Stock Output".
- Create a fiscal position to get the following tax behavior: apply two
taxes of the same amount but with opposite sign (+ 21% on the one
side; - 21% on the other side). Activate the tax cash basis feature on
these taxes. It should give, on the same FP:
Tax 21% -> Tax 21%
Tax 21% -> Tax -21%
- Create a journal for the tax cash basis, set it in the company
settings.
- Create a PO (with the previously created FP) for several products
belonging to the same internal category and receive the products. Each
line generates an entry recorded in the stock journal. The expense
account is used in those entries.
- Create the supplier invoice for the PO and validate which also
generates a journal entry with as many line on the expense account as
there are some products on the invoice.
- In the journal items, reconcile the expenses accounts entries
generated by the stock input and the supplier invoice.
It triggers a lot of lines on this expense account for 0 each.
opw-726120
When we set a period for preventive maintenance on an equipment which
has no maintenance team set, the cron cannot create the maintenance
requests.
To fix this issue, the maintenance team is now required when a period is
set on an equipment.
When a PO is created through the resolution of a procurement, the first
supplier of the list is automatically chosen. This is hardcoded and
cannot be extended.
We add a hook so it's possible to customize the selection of the
supplier, for example by selecting the one who offers the best price.
opw-726309
There was a bug with the icon edition when following these steps:
- Open the Media dialog to edit an existing icon
- Hit the "save" button in the dialog without choosing the icon
- The edited icon disappears
This happenned for icons whose original values were aliases of the
related icon. Indeed, following these steps to edit an "fa-facebook-f"
was leaving the icon unchanged as expected but doing it for a
"fa-facebook" icon made the icon disappeared. This is because the
last one is an alias of the first one and that the media dialog was
ignoring aliasies when saving the original value.
opw-725813
When we validate a SO with an MTO product, then an RFQ and a delivery
picking are created. The status of the delivery picking is in state
'confirmed', but should be 'waiting' as the delivery waits for a
specific delivery input.
The problem is caused by the unreserve method, which is called in the
'procurement_jit' module. This method only checks that a move has
ancestors to determine if the move should be in waiting or in confirmed,
which is not the case for our delivery move because the RFQ has not been
validated yet so there is not ancestors yet.
To fix this issue, we check the 'procure_method' of the move, and if it
is in 'make_to_order' we put it in 'waiting' instead of 'confirmed'.
We also fixed the function recalculate_move_state that could cause the
same problem.
To deduct the fiscal position, we should use the shipping partner.
The field `partner_shipping_id` is defined in the sale module.
Thus, we should choose this partner if the module sale is installed and if this field is set, or fallback to the original partner instead
Tribute to Ray Carnes
PURPOSE
=======
Since the fields shipping_partner_id has been added on the invoice model, the onchange triggered by the partner_id hasn't been modified.
SPECIFICATION
=============
The shipping_partner_id will be picked by default to select the fiscal position. If there's no shipping partner, it will check if a 'shipping' partner is a child on the partner_id.
In the beginning Odoo Enterprise addons contained a second web module. At some
point that was replaced with web_enterprise, but the documentation wasn't
updated.
Describe the proper changes.
Closes#16302
When copying a record in an other language L than US, first a translation
was created for L by the create called in the copy function and afterwards,
a second translation was created by the function copy_translations
So there were two duplicated translations for L instead of one.
opw:706865
The fields containing the quantity of product doesn't display numbers
over 999 correctly: only 3 digits display in the field.
We add a specific class `quantity` for input fields, with a padding of
zero. The class `js_quantity` is not used since it is linked to jQuery
events.
opw-727640
opw-725671
- Set discount policy: Show public price & discount to the customer
- Set a product with 100% discount
When added to a SO, the product discount is 0 %.
opw-727519
In case of error, paypal return some lines where error message and not a
string with 'key=value'.
This commit fix traceback:
ValueError: dictionary update sequence element #0 has length 1; 2 is required
In monetary field refactoring (3407fb70e4) there was a small issue that
made context lost so the language use to render the field could be
different from the one to render the view.
For example: if the user has english, and print a report using the lang
of a partner in language spanish, the report would use spanish to format
number for all fields but monetary (which would use english).
opw-708197
In case a product is a single variant we should not leave it with a BoM
of zero as soon there is a BoM for its template. This would for example
hide the `compute_price` object button which relies on the `bom_count`to
be visible.
BoM is not found for a single variant product and compute price not
possible from the `product.product` view although it is implemented
actually there.
Closes#16237
The constraint should only check for move lots with a lot number already
filled in. Indeed, in case we use work orders, we can potentially create
move lots without S/N, and fill in the S/N later.
opw-727679
Create a product P with a price = 1799
Make a pricelist P1 in USD with an item I1 for a product P with a
fixed price to 100.
Set P1 with discount_policy = "with_discount"(include in price)
Make another pricelist P2 in USD with an item I2 based on P1.
I2 is a formula = 50% of the price
Set P2 with discount_policy = "without_discount"
Create a SO with P2 for the product P
Bug: The subtotal of P is 899.5 instead of 50
The problem came from _get_display_price wich in this case recomputed
the price according to the discount(in this case equal to 50% and this is
the good discount to display because P1 include the discount) and the lst_price
of the product(=1799) So the displayed price was equal to 899.5 instead of
50.
All the other cases worked because
1. P1 without_discount and P2 without_discount:
Price returned by _get_display_price was equal to 1799 with a discount of 97,2%
So the subtotal was equal to 50
2. P1 without_discount and P2 with_discount:
Price returned by _get_display_price was equal to 100 with a discount of 50%
So the subtotal was equal to 50
3. P1 with_discount and P2 with_discount:
Price returned by _get_display_price was equal to 50 with a discount of 0%
So the subtotal was equal to 50
And the last case(P1 with_discount and P2 without_discount) didn't work because:
Price returned by _get_display_price was equal to 1799 with a discount of 50%
So the subtotal was equal to 899.5
NB: The subtotal is computed with function "_compute_amount" with the following line:
price = line.price_unit * (1 - (line.discount or 0.0) / 100.0)
opw:724924
When getting the default sales team, we could get erroneously the
team of another company (either because the use is in a team of another
company or the default sales team was in non-bethren company).
This fix when searching a sales team:
- search only teams the user should see (with access rules)
- make default teams "Website Sales" and "Direct Sales" not restricted
to one company (and it's ancestors).
opw-726461
When the quantities on a purchase or sale line decrease,
the amount of the receipt or delivery order is not adapted.
Also, when the quantities increase, it is good to follow it up.
That is why, when we change some quantity, a message is
posted in the chatter of the purchase/sale to indicate about
the change. There is also a message when you add a new line.
When grouping by a field datetime in kanban view, the name of the
column is an abreviated datetime. Afterwards, when making a quick
create, the abreviated datime was set in the context and
used as default value. So it raised a tracebacks because the value
of the datetime was not in the correct format.
Now it's only possible to make a quick create if the type of the field grouped
is a char, a boolean or a many2one.
opw:727266
Fixes#15101 (cf comment 273208287 for details)
Closes#15862
Restore the rescue mechanism from v9, without the field it will be based on
the session name containing '(RESCUE FOR'
Add tests