Purpose: Sometimes, taxes are distinct on parts of the expense
(for example alcohol and food).
Therefore the expense should be split in two.
In order to split the expense, we added an wizard.
When creating a new expense from the split, we also
copy the attachments.
'hr.expense.split' has to have the similar logic and dependencies between
the fields as 'hr.expense' does. For example, in case we change the
product_id to the product that has cost defined on it, it should have
the same behavior as expense has. In particular, the 'total_price'
will be set and the user should not be able to modify the amount.
Similarly, if we change the product_id to the one that has no tax defined
on it, then split tax_ids should be cleared out and be set to readonly.
Similar logic goes to sale_order_id (Customer to Reinvoice'),
we should not be able to set it, in case the product can not be re-invoiced.
All of the above constraints leads to the amount of similar code to to the 'hr.expense.split' side.
But it could not have been avoided, if we want the smooth flow.
task - 2831024
closesodoo/odoo#90770
Signed-off-by: Kevin Baptiste <kba@odoo.com>
Display a confirmation dialog when a user creates duplicate expenses.
Two expenses (or more) are considered duplicates when they share the same
date, amount, product, employee, company and currency.
closesodoo/odoo#64190
Taskid: 2368636
Related: odoo/upgrade#2061
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
- Use the one defined in the account module allowing paying multiple journal entries
and group payments together.
- Remove the hr_expense_check module that contains only duplicated features regarding the
register payment wizard.
--task: 2273528
Purpose
=======
Currently, a manager or a accountant can only refuse one expense report with a justification message.
If there are a lot of lines too comment individually or if only one line should be modified, the manager or the accountant can now refused one line and give a reason for it. That will refused the expense report automatically while waiting the employee to make the modifications.
Specification
=============
- Rename wizard files, models and ids according to the model
- Allow to refuse one or several lines with a reason
- Use a qweb template to log messages, use message_post_with_view instead of message_post
- Print expense name instead of sheet name. In the log when expense is refused, it prints expense report name instead of expense
- Prevent modifying approved expenses
* A user should not be able to modify an expense once approved
* Method refuse_expense renamed to refuse_sheet when applied to a whole
expense report/sheet
* 'model' dict key renamed to something more explicit and less prone to
confusion (passed in context to the refuse wizard)
* Usage of explicit fields in the wizard to avoid confusion
* Overriding 'default_get' to get default values for those fields
- When an expense is paid or reported, it must be impossible to refuse it.
- Replace refused expenses tree
Purpose: The menu 'Refused expenses' is confusing. This improvement
replaces it by 'Refused Reports' and leads to the refused reports tree
view. That way, it's easier for the user to find back his refused
expenses reports.
- Hide create button on refused
NB:
- The option no_delete is not working, a fix will come from chm
- The many2many widget on a sheet creation is not working correctly as
the called command is a (1, id, values) without a (4, id, _) before.
A fix will also come from chm, but a disgusting hack has been
provided for this particular case (to remove after chm fix)