The decimal precision `Account` no longer exist.
This check is therefore pointless, and prevent
to change the rounding of the currency of the main company
Commit b17e4a0f6b prevents gaps in payment numbering by keeping tack
of the account move name used. It also prevents the unlinking of a
payment which already generated an account move.
However, no 'Cancelled' state has been introduced for the payments. It
means that the cancellation of a payment will set it to a draft state,
and it won't be possible to delete or flag it as 'Cancelled' later on.
It will therefore be a misleading entry for the users.
opw-694351
Before this commit, amount updated from ajax request don't respect currency format.
Eg: 1.200,000 => 1200.00
Now we use the grouping/thousand separator/decimal separator from l10n,
and if class decimal_precision is defined in dom, we use it. (format=0.001)
This commits closes: #11553
This commits is related to #1103
valuation_price_unit must in the uom of the line.
Before the fix:
- Set "Use anglo-saxon accounting" True at company settings.
- Check that the "Account Properties" on product category are set (set a price difference account).
- Set costing method = Average price, Inventory valuation = Perpetual (automated).
- Create and confirm a PO (product purchased with unit of measure "Unit(s)" and purchase unit of measure "Dozen(s)")
- Validate shipment (Receive the product)
- Create and validate the supplier invoice
- View the accounting journal entries
Bug:
In the invoice journal entry, there were:
In the output account: debit=0.0 and credit=price unit of the PO line
In the price difference account: debit= (11/12)*price unit of the PO line and credit=0.0
In the input account: debit=(1/12)*price unit of the PO line and credit=0.0
Expected behavior:
In the output account: debit=0.0 and credit=price unit of the PO line
In the input account: debit=price unit of the PO line and credit=0.0
opw:694108
Since revision 458aaca328,
the `groups` args of the method `_notification_recipients`
is a list of tuple, and no longer a dict.
The code here has not been adapted to this change.
It is now.
opw-695300
The employee form view button box should be enabled for employees,
it's up to each button in their respective modules to define
more restrictive groups, and in fact they already do
(see hr_holidays, hr_timesheet_sheet, hr_contract ...)
For example, hr_holidays adds the "Leaves left" smart button
which is supposed to be visible for employees looking at their own profile,
but it was actually hidden because they couldn't see the entire buttonbox.
Also added fixes to buttons that came afterwards and relied on this behavior.
fix for https://github.com/odoo/odoo/pull/14164
The commercial_partner_id field on "account.invoice" is a stored related
field to commercial_partner_id on res.partner and this field is recomputed
when changing the is_company field (by the function _commercial_partner_store_triggers).
So when changing the "is_company" field, the commercial_partner_id is recomputed and
a write is made on each account.invoice linked to the commercial_partner_id.
To avoid access rights problem on account.invoice, the write on "is_company"
must be done in SUPERUSER.
opw:694687
Backport of ab279d9cea
When getting the price from a account.move.line, the uom set
on the line must be taken into account.
Before the fix:
-Set anglo-saxon accounting
-Create two units of measure Box and Mot where 1Mot = 10Box
-Create a stockable product with Box as unit of reference and set with
real price and perpetual
-Create a SO with a Mot of this product
-Confirm the SO and create the invoice
-Validate the invoice
Bug:
In the journal of entries, only one box was counted for the debit and the credit
instead of 10.
NB: The function _get_anglo_saxon_price_unit must return the price unit of the
product in the unit of measure of the account.invoice.line.
opw:693075
Rev. d6e1d41128 removed old API
compatibility layer, but failed to preserve the ability to
call certain public methods from the RPC layer, when extra
browse_record parameters were required.
In particular the @api.v7 version of
`prepare_move_lines_for_reconciliation_widget` was dropped
and there was no way to call it with a `target_currency` RPC
parameter anymore.
When processing a partial reconciliation in a foreign currency, a
currency exchange difference might be generated during the
reconciliation process (see OPW for a detailed use case).
This prevents the user to process the reconciliation since he will get
the error: 'You have to provide an account for the write off/exchange
difference entry.'
The fix is to use the company-related foreign echange gain and loss
accounts automatically to book this difference.
opw-687975
Call was done in ajax to speed up the moderation and don't wait refresh at each accpet/refuse post.
But the problem is that when you refuse a post, you need to be redirected to a new page to ask more
infos about the reason.
The fix is to do the request in ajax only when it is an 'accepted' post.
This commits fixes odoo/odoo@14462
When we enable in the settings 'Get 2 levels of approvals' with a
'Double validation amount', and then create a request for quotation.
When we confirm it, even if the total amount of the request for
quotation is below the amount set in the settings, the purchase order
needs to be approved.
We excpect that if a purchase order has a total amount below the
validation amount setting, the purchase order is automatically
confirmed.
So to fix it, we compare the amount when the user click on the button
confirm. And immediatly call the function 'button_approve' if the amount
is below the double validation amount set in settings.
Bug introduced in rev: https://github.com/odoo/odoo/commit/9d4efc81a
opw - 694381
I hereby confirm I have signed the CLA and read the PR guidelines at
www.odoo.com/submit-pr
(yes, github mutilates nicknames with underscores)
Closes#13875
When changing the company of a sales order,
the change was not propagated to the related, stored, company field
of its sale order lines
These triggers makes that happen.
opw-694683
When changing the company of a pricelist,
the change was not propagated to the related, stored, company fields
of the `product.pricelist.version` and the `product.pricelist.item`
These triggers makes that happen.
opw-694683
The module `payment_stripe` was apparently not designed to work with
module `website_payment`, althought the payment method is available. For
example:
- Go to '/my/home', select "Pay Now" on an invoice
- Try to pay with Stripe ==> nothing happens
This commit brings the necessary modifications to make it compatible
with `website_payment`. Moreover, it prevents the creation of 2
`payment.transactions`, which was not necessary.
opw-693421
During the conversion to the new api,
the method `product.uom`.`_compute_price` has had its signature
changed.
Formerly, it was:
`def _compute_price(self, cr, uid, from_uom_id, price, to_uom_id=False):`
Now, it is:
`def _compute_price(self, price, to_unit):`
Basically:
- the first argument `from_uom_id` is removed, and you now should
call this method from the model record directly
- the last argument is no longer a kwargs
Some calls to this method were still done the former way:
- Some have been added during forward ports
- Some are oversights when this method has been converted to the new api
This revision corrects the calls that were still done the former way
to the new way.
opw-694871
Before this commit, if the loadJS method was called two times with the
same url, the associated script was effectively put in the DOM only one
time. However, the second call returned deferred was immediatly
resolved while the script (added by the first call) might not be fully
loaded yet.
Now, calling loadJS for a same url multiple times will always return
the same deferred, resolved when the associated script is fully loaded.
This commit comments the code of the Animation class and allows
for lazy loading of resources before animations' start methods
are called.
This lazy loading can be performed in the willStart method (to use
the same way as in the Widget class).
This commits also removes the "stop" function of the module as it
was not really useful. It was used to restart the animations (by
immediatly calling start again after the stop call). Now the Animation
class contains a restart method and the module "start" function
automatically knows if it has to instanciate an animation or restart
an existing one.
Animation start should only be performed by instanciating an Animation
(thanks to new) or by calling the restart method, to insure the
willStart method is always called. Anyway, the best way to start
animations is to let the system handle them, using the "selector"
attributes in your Animation definitions as before.
See in-code comments for details.