Following commit 1dbccc8, there is no `user_id` field on the analytic
account anymore. However, a field `user_id` was added directly on the
project with commit 908f416.
opw-672333
There are 2 journal items missing on the accounting entry that
represents the assignation of the landed costs (for a product that has
already left the stock!) => expense account at the debit and stock
output account at the credit (amount is equal to the cost of the landed
cost)
opw-671311
1/ Add a stat button with history of activities (count of activities) on
the Customer form view
2/ Activity reports: When clicking on the list view, there shouldn't have any
group by (remove the Salesperson/leads group by)
Prevent drag'n'drop in the following cases:
- Group by field is read-only
- Group by field is a date or datetime
This is necessary to avoid, for example, changing the state of a sales
order or an invoice without going through all the business logic.
Related to #7047
opw-671697
When checking the route of a product, if the product is set with route drop shipping
then the product is available.
Inspired from 14fd46c0d5
opw:672392
Before this revision,
when a user tried to pay his cart with a first acquirer
e.g. Ogone
then came back to the shop (using the browser back button)
then chose another acquirer
e.g. Paypal
a new transaction is created, due to the change of acquirer
(following revision cb9d798)
and therefore, the transaction has a new reference compared
to the last payment transaction attempt (e.g. the ogone one)
but, the old reference is still referenced within
the `Pay now` form values, because the page wasn't re-rendered,
because the user pressed the browser back button, and this
doesn't refresh/re-render the page, and, therefore,
the old reference was still referenced within the `Pay Now`
form values.
Therefore, the wrong reference was sent to the acquirer
(e.g. paypal) and this prevented the payment validation
at the payment feedback, as the new reference was expected
in the feedback information, while we receive the older one.
This revision makes sure to always re-render the `Pay now`
form, so the transaction reference, as well as the other
possible changes in the values, are correctly set,
before sending the information to the acquirer.
Prevent drag'n'drop in the following cases:
- Group by field is read-only
- Group by field is a date or datetime
This is necessary to avoid, for example, changing the state of a sales
order or an invoice without going through all the business logic.
Related to #7047
opw-671697
POSBoxes will be registered with the government. If a POSBox is not
registered it won't load the blackbox driver, preventing communication
with the Fiscal Data Module.
When the user duplicates an event, the `menu_id` is copied. This causes
two issues. First, it links the event to the wrong menu. Then, the
controller `event` uses this `menu_id` to compute the target URL. It
will therefore redirect the user to the wrong event page.
opw-670353
When applying the accounting configuration wizard,
the `currency_id` was being re-written on the company,
even if there was no change (if the currency remained the same),
because of the related.
This leaded as well to the re-write of the company currency
on all journal items, because the `company_currency_id` on
`account.move.line` is a related to `company_id.currency_id`as well,
and they were being recomputed due to the above re-write.
Meaning, when you had a bunch of journal items, applying the
accounting configuration wizard could have take a while.
opw-672400
This is related to 3d58cd1ca2
`compute_all` indeed does expect ids, and not browse records,
but it expects a list of ids for the `ids` parameter, or a single
id, but not `False`.
Besides, `line.tax_id` is a many2many, despite the fact
its naming seems to say otherwise, and therefore `.ids`
should be used in order to pass all the taxes of the line,
not just one.
Apply the same domain which is appled in the form
view, which was redefined during the 9.0 accounting
refactoring (c04065abd8)
This is following the forward-port 51774f2a45
opw-672321
Introduced by 5bb64d40d0. Before doing
anything we should first ensure that the quantity keypress event targets
body (and that it is a number, but that's less important). Before this
we didn't do that and thus the _display_no_edit_mode_warning was given
when people where just typing in the associated thread of a picking.
opw-672350
This is a technical field corresponding to the discount amout to apply on a
ticket from a pricelist. As no form view for event.ticket was defined before
we added one to customize it.
This commit introduces "Sub-task", a concept remotely similar to
the "delegated tasks" available in version 7.0, but covering a
more specific and narrow scope.
Activating Sub-tasks
--------------------
Sub-tasks are made available within any project by configuring
a "sub-task project" in the project settings. This feature is
considered low-level and technical, and only accessible with
"Technical Features" enabled.
The "sub-task project" may be the project itself.
Using Sub-tasks
---------------
Conceptually, a sub-task represents the allocation of a part
of the scope of its parent task. Multiple sub-task levels
are possible.
Once activated in project settings, a new "Sub-tasks" smart button
will appear on the task form, giving the option to view and
create sub-tasks. In addition, a new field "Sub-tasks Hours" will
appear next to the other computed "Hours" fields, representing
the total hours allocated to sub-tasks.
(Technically, the sum of the maximum between the planned hours
and spent hours of all sub-tasks, with spent hours always used
when a task is closed)
These sub-task hours will be dynamically subtracted from the
remaining hours of the task, and will therefore affect the
task's progress as well.
Upon creation, a sub-task will inherit the link to the
original sales order and procurement from its parent task, and
will by default be assigned to the "sub-task project" set on
the project of the parent task.
Enhancement
-----------
The kanban view for tasks will now display a color-coded label
with the number of remaining hours, whenever the percentage
of remaining hours is below 20% (orange=20%-, red=1%-).
Note: This is a forward port of the commit 9eac32beea
- RPCs to load fields_views, fields and filters are batched for optimization
purposes.
- Those data are now stored in a JS cache.
- Views API has been refactored.
Introduction of 'data_manager' service which handles meta-data related to
actions and views (fields_views, fields and filters). Ideally, all RPCs to
get that kind of information should go through data_manager, as it holds an
internal cache.
Load the fields_view of all views of the action together. If a searchview is
required, also load its fields_view and its filters.
Use lazy-loading for fields as they are required for the Pivot and Graph
views only, and may be used by Filters and GroupBy menus of the Search view
if the users clicks on 'Add a custom Filter/Group'.
The fields are thus also loaded directly if the first view of the action is
Pivot or Graph, and otherwise, they are lazy-loaded when/if the user opens
a Pivot or Graph view, or if he wants to add a custom Filter/Group.
Some refactoring of views API as well:
- Views must now be instantiated with their fields_view
- Move code requiring fields_view from start() to init(), or willStart() for
heavy processing.
- Remove view_type attribute from views as it was used to call
fields_view_get.
- Remove view_id parameter to views' init as it is no longer used.
- Move duplicate code from various views' init to the View widget.
- Remove view_loading() function from views as they now follow the classical
lifecycle of widgets (init -> willStart -> start -> destroy).
- Searchview now extends View like all other views.
- Remove useless function guard_active() as it was used for the form_view's
action buttons to wrap handlers to ensure that they are executed only if
the form_view is the current active view. This is not useful anymore as
from v9, views and their control panel are appended in the DOM
simultaneously, so one can't click on a button of a view which is not the
current active view.
A special case for X2ManyKanban views was handled in the Kanban view itself.
This commit makes the X2Many case identical to the general case by setting
options.action_buttons to true if the X2Many field is not readonly.
When a stock move was created in a picking with a product set with
a unique serial number existing in the stock of a specific owner.
If the owner was not specified for the stock move then a wrong message
was raised "The serial number 00005 is already in stock.". But the real
problem could come from function quants_get_preferred_domain which didn't
find the existing quant due to the fact that the system didn't check in the
right stock(owner). A new quant was then created with the existing serial number.
And a wrong message was raised.
opw:671783
When searching for a dropshipping route, we need to access the field
`picking_type_id`. If user is not allowed to read it because of the
access rule `stock_picking_type_rule`, he will get an access error.
opw-668926