When a field is related, defining a selection or selection_add will
have no effect and the paramater is ignored.
Log a warning and fix all fields badly definied
Closesodoo/odoo#45716closesodoo/odoo#45832
Related: odoo/enterprise#8613
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Issue: as salesman you want to send and print the invoice of your customer
but you don't have the access to write on the invoice
and thus you don't have access to create a mail.message and
set the flag invoice_sent to True
Allow to post message on an invoice when you have read access
closesodoo/odoo#45629
X-original-commit: d23d872f885f34bbbd747471e35e6914ac79b6cf
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
to be able to inherit these methods to make it easier to
add fields in the refund wizard e.g.
closesodoo/odoo#44629
X-original-commit: e814374a20de096fd795aec34ab0e3de4977fc85
Signed-off-by: Josse Colpaert <jco@openerp.com>
Task 2146469
Rework the name computation:
* It doesn't use ir.sequence anymore
* It is an editable computed field
* Add a renaming tool
This allows the user to tweak the sequences more easily than having to
get through the ir.sequence settings.
The sequence depends on a parameter of the journal: continuous, montly
and yearly restart of the sequence. Everytime a new period is started,
try to make a pattern form another period.
The incrementing is done by taking the previous name, ordered
lexicographically, splitting it by taking the digits at the end, adding
1 and re contstruct with the prefix.
** This means there could be cases where the prefix has a big importance
on the next number. For instance, if you have
INVOICE/2019/0001
INVOICE/2019/0002
and then rename the last one to INV/2019/0002, don't expect the next
number to be INV/2019/0003. It will be INVOICE/2019/0002 (again) because
the highest number was INVOICE/2019/0001.
You will then end up with
INVOICE/2019/0001
INV/2019/0002
INVOICE/2019/0002
closesodoo/odoo#41485
Related: odoo/enterprise#7189
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Following changes needing ir.model.access on transient models too.
Remove groups declaration on the action to move it to ir.model.access
when possible.
Rules are strict by default with no unlink access by default and high
priviledge asked. Adaptations may be needed later.
Write access is given as a wizard may need to be modified in case the
action triggers an error and the user has to correct a value
account*: use account.group_account_user for all transient by default
remove account.print.journal relic
stock*: use stock.group_stock_user by default
survey: survey user can send invitations
mail: allow any employee to execute wizards
additional verifications are made to ensure they are executed
only on the documents the user has access to you
give portal access to mail.compose.message as portal still does
some actions like posting messages on the forum
add ir.rule to avoid reading somebody else messages
increase the query count because of undeterminist count
crm: saleman for lead2opp, manager for massmailing
partner manager for actions linked to partners
avoid a write in test_lead_lost
sms: any employee can send sms
mrp: mrp user can execute wizards
give unlink access as making write during do_produce operation
base_import: employees can import files
delivery: stock user can deliver
event_sale: sale user can configure the wizards
event user inherit from sale rights
gamification: employee can give badge
google_service: resolve FIXME
hr: add specific rights
manager can set a plan according to group on button
anyone who can write on an employee can register a departure
hr_expense: set rights based on buttons
hr_holidays: an approver can make a summary report
hr_recruitment: recruiter can refuse a candidate
hr_timesheet: can use the wizard if can create a timesheet
l10n_eu_service: managers can create fiscal positions
mass_mailing: same group as on mass.mailing.list
membership: accountant can create invoice from membership
payment: accountant can create a link
as the source is an account.move
keep the payment.acquirer.onboarding.wizard to system user
only as it is called during company configuration
point_of_sale: PoS manager only can use wizards
never create closing_balance_confirm_wizard records
product_expiry: stock user has rights on stock.picking
product_margin: access from accounting menus
repair: same rules as for above models
sale: set ir.rule for self wizard only
add rule from model introduced in payment to add salesman group
sale_crm: saleman can create a quotation from a lead
sale_coupon: any saleman can generate coupon
add self ir.rule
sale_product_configurator: salesman can select product variants
snailmail: employee can send letters
website: designers can write on website
website_crm_partner_assign: same rule as group on action
website_sale: sale ACL as for payment.acquirer.onboarding.wizard
website_slides: anyone can send invitation
base: base.language.*: allow employee (cf lang_install)
change.password.user: can not read change password wizard of
other users
test.*: no access is needed
Courtesy of Damien Bouvy, William Andre and Antoine Prieëls for review
of acl
Before this commit, Creating New Template from "Send Invoice" wizard doesn't update template_id on the Wizard.
In this commit, We write newly created template_id on the wizard.
closesodoo/odoo#44561
X-original-commit: 454e6ed9d956ac131d6476c95e59b2ab390df5b6
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Task 2092079
Accounting firms that want to give access to their customers avoiding
mistakes and risks will love this profile that can't do anything
wrong... Maybe as well as companies auditors..?
closesodoo/odoo#39860
Related: odoo/enterprise#6576
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
The `ref` field on `account.move` is not required and can yield a falsy
value. This produces a TypeError while doing the comparison in sorted().
closes#42434closesodoo/odoo#43674
X-original-commit: 3bb4c0c99b29bb85916af95361b86e9dc3287546
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
This wizard also reconciles automatically entries done on reconcilable accounts. It can hence for example be used to "move" the balance of a receivable account into a payable account (or the opposite), using the generated transfer entry to do as if the receivable and payable accounts were directly reconciled together.
[IMP] account: display 'P' as matching number when account.move.line objects are partially reconciled
For this, we introduce a new matching_number field, used in account.move.line's tree views instead of full_reconcile_id, which used to be shown directly.
Was task: 2037318
closesodoo/odoo#39415
Related: odoo/enterprise#6544
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
- Create a customer invoice.
- Validate it.
- A payment reference (`invoice_payment_ref`) is given.
- Refund with option 'Full refund and new draft invoice'
The `invoice_payment_ref` field is kept on the draft invoice, while we
want a new reference since it is a new invoice.
opw-2159166
closesodoo/odoo#42832
X-original-commit: 77c28421e6c7711e3d3c39dbece4e2bfa0b26b5c
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This method makes a write on res.company but many people do not have
access to the company
closesodoo/odoo#42644
X-original-commit: 130f08f13b49a529c1da0e1dc603c62337842f45
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
List of improvements:
Invoice/Bill
- Hide "untaxed amount" section when there is no tax.
- Remove tooltips for tax groups field.
- Remove invoice_partner_icon and set this icon in "Vendor" (in a list view)
Chart of Accounts
- Same views for config bar and regulare one
- By default don't show deprecated accounts and add filter to display them.
- Add some optional fields in list view (taxes, tags, ...)
Dashboard opening balance wizard
- The opening move entry date equals to the opening date - 1 day.
Bank Statements
- Set default order for the list view (by date desc and name desc)
Tax report configuration:
Add 3 new columns for the list view (country_id, code, tag_name)
Add 4 new searchs (name, tag_name, code, country_id)
Task ID: 2048225
closesodoo/odoo#38694
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
When we post multiple draft moves at the same time, the numbering should
be done by starting with the oldest one up to the newest.
closesodoo/odoo#41138
X-original-commit: 5b745eb61377e5b4532f2e370f9b1559a9b66c0a
Related: odoo/enterprise#6975
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
- Introduce a new account.tax.report object
> Tax report lines now refer to a tax report, and the tax report to a country
- Tax report lines can share tags accross reports within the same country
> To support the cases where some report is a simplified version of another one: some of its lines can be computed in the same way as the 'bigger' report.
> This is done by giving the same tag_name to the tax report lines, and the same country_id to their parent report.
> Full support for tag name modification, and the way it impacts the shared tags (sometimes, we can overwrite them all, sometimes we must delete them, sometimes, we create new tags to replace them on some report lines).
- Support copying tax report (and the lines/tags linked to it), so that it is possible to duplicate them and change the country set on the duplicate for use in another country (coopying is way better as replacing in place, as we don't keep any link to an xmlid, and still allow using the original report in the original country it was created for).
- Make all l10n* modules compatible with those changes
closesodoo/odoo#38964
Related: odoo/enterprise#6217
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Task 2085023
* Add a field that replaces the context to get the ids of the
entries/invoices
* Remove move_id, we can use move_ids instead
* Add text to explain invioces/bills will create refunds
closesodoo/odoo#38857
Related: odoo/enterprise#6263
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Add new move reversal line in wizard model, those new_move_ids are
usefull for the override in helpdesk.
Currently, we return a form or a list view according to the
number of generated reversed moves.
Now, we link the generated moves on the wizard, so that we can
link the invoice lines correctly to the helpdesk tickets. Now,
the invoice lines are correctly linked only if there is 1 reversed
line.
id=2017554
closesodoo/odoo#39576
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Create a customer without email address, go on the accounting module
create an invoice for this customer.
Go back to the invoices list and select some of them including your
invoice for your customer without email address. Send them by mail.
You will have a traceback and the wizard will be broken.
This bug is caused by a change in the account module, there is no more
reference, they are replaced by the name of the invoice.
OPW-2085837
closesodoo/odoo#39856
X-original-commit: d1feb088228e1fe74c917ecdd5f4c0e87d253263
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
- In the sales or accounting module, create some invoices.
- Select them then click on `action > send & print`
- The wizard opens but not in the mass mail mode.
It creates some inconsistency and if you click on send,
the invoices are sent to the wrong customer.
Sometimes, the invoices are not sent at all.
I think the problem comes from the `_compute_composition_mode` method
who set the value of `composition_mode` on the wizard instead of
on the composer.
OPW-2085837
X-original-commit: 2496125f29cf1bd5b7a37384897f49bed86e69d8
Tests can fail when they are run at the moment when `fields.Date.today`
is different from `fields.Date.context_today`.
closesodoo/odoo#39079
X-original-commit: 0405f4a35bcad60fd99b1a05ffc8d9774e9a2829
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Install Accounting, create a journal entry, post it, reverse it with
a date in the future.
The reverse entry will be posted, instead it should stay a draft (with
the appropriate 'auto_post' set to True)
opw-2083121
closesodoo/odoo#38802
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
The way the active_id(s) were retrieved made the wizard only take care
of one active_id. This prevented from reverse multiple invoices at the
same time.
closes odoo/odoo#38537
Fixes: #35759
X-original-commit: fe47011c3fdcec0bda5334f10679e853fe41e45a
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
When is created a refund from a invoice, the payment term its cleans,
but not the date due.
In the next case:
1. Create an invoice with date 05/26/2019, with payment term "30 days".
2. Create an invoice refund for invoice in 1, with the same date.
In this case, the payment term in the refund is empty, but the date_due
is the same that in the invoice.
With this change, the date due in the refund is the same that invoice
date.
closesodoo/odoo#38212
X-original-commit: 6828454dc3726d85e4d29b9399d6e8ddd1aaac21
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
In an onboarding situation, the company doesn't have a logo
make an invoice, send and print, print
The document layout editor's layout opens, because nothing is set up
on the company
Click Save
Before this commit, it was impossible to make the invoice print
because each time the document layout was displayed
After this commit, the invoice prints when clicking on Save
There is no default external layout for main_company
Also, the heuristic used to evaluate whether a company
has been set up, onboardingly speaking, has changed.
Before we used the existence of the logo, after we check if
a layout has been setup. When saving the document layout
modal, a report layout is written on the company
So, practically, the document layout modal only appears once
when trying to print invoices (or other documents)
closesodoo/odoo#37137
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
en_US may not be activated as it is possible to create a database in
another language using the database manager.
When trying to install a chart of account, the tax return entry tried
to format a date at the installation of the module, with no lang in
the context. The fallback was made on en_US but an error is raised if
that language is not activated.
As it is a very common scenario to retrieve a language from the
context, add a generic tool method to do it.
Replace and closesodoo/odoo#37629closesodoo/odoo#37568
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
This commit sets the call to default method on move field in reversal
wizard as lambda to ensure that the right method
is called when it is inherited (as in helpdesk_account module).
It also changes the form view so other module can use it to refund
invoices (move_id field first in the view as it will determine if refund
method should be visible or not).
Task-2047999
closesodoo/odoo#37635
X-original-commit: bcda50aeca44b292417024a5e422ffb8698e0c99
Signed-off-by: gla-odoo <gla-odoo@users.noreply.github.com>
- Remove the useless domain set on the field.
- Fix the belgium PCMN to work with accrual.
closesodoo/odoo#37560
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
- Multi-company: Fix domains on wizard / company.
- Multi-currency: Manage multi-currency when generating accrual lines.
- Moves creation: Avoid creating too much moves:
[1-2] moves was created per line before this commit.
[1-2] moves are created per invoice with this commit.
- Invoice type: Allow accrual only one posted journal entries.
closesodoo/odoo#37487
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Before, it was possible to select lines from different companies and create a line from a yet different company. This is now forbidden.
Also, add tests to ensure only the account is changed when creating an accrual entry.
closesodoo/odoo#36751
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
Install Account, do an invoice, send and print it. Install
snailmail_account, do the same process. The wizard refuses to send the
email because the Compose field is empty.
The `account.invoice.send` model is defined with an `_inherits` to
`mail.compose.message` on the `compose_id` key. When the model is first
created, that `compose_id` key is left unpopulated on the view as the
referenced model is not created yet. Hence posting the view is
impossible as it fails the form validation.
closesodoo/odoo#36715
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
This commit tries to fix the issue in the "Send Invoice" modal.
Because of this issue, the recipients and body are empty.
task-2032586
closesodoo/odoo#35536
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
=======
Purpose
=======
Accruals are revenues and expenses that are incurred during an accounting period for which no invoices or payments were received or made.
=> We suggest a wizard allowing recognizing the Expense/Revenue in a different period keeping tax return in the invoice period.
Example:
A vendor bill received in February which was for the December consumption.
You should recognize the expense in December but the tax return is still due to February.
1) Regular Vendor Bill in february
Account D C
600 ACHAT 10000
411 TVA 2100
440 FOUR 12100
2) Action opening a wizard that allows specifying when we have to move the expense.
- Targeted date, accrued account (expense, revenue, taxes, ...)
- Action from account.move.line ?
3) Wizard result
a) The expense account is replaced by the accrued expense account in the original vendor bill journal entry (february)
Compte D C
444 FAE 10000
411 TVA 2100
440 FOUR 12100
b) A new accrual journal entry is created for the original expense account in december
Compte D C
600 ACHAT 10000
444 FAE 10000
Was task 2006617
closesodoo/odoo#36053
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
- no default reason (otherwise the invoice ref is repeated twice)
- rewording of refund types and helper texts
- avoid 'Reversal of: INV/2019/001, False' as reference -_-
This branch is the combination of several optimizations in the ORM:
* store field values once in the cache: the cache reflects more
faithfully the database, only fields that explicitly depend on the
context have an extra indirection in the cache;
* delay recomputations by default: use method `recompute` to explicitly
flush out pending recomputations;
* delay updates in method `write`: updates are stored in a data
structure that can be flushed efficiently to the database with method
`flush` (which also flush out recomputations);
* make method `modified` take advantage of inverse fields to inverse
dependencies;
* filter records by evaluating a domain on records in Python;
* a computed field with `readonly=False` behaves like a normal field
with an onchange method;
* computed fields are computed in superuser mode by default.
Work done by Toufik Ben Jaa, Raphael Collet, Denis Ledoux and Fabien
Pinckaers.
closesodoo/odoo#35659
Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
Task 2031686
* Change some labels on the dashboard
* Move the action "Take money In/Out" to a button because it was also dsplayed in bank journals and we only want it for cash journals
* Add reconciliation param on the first account config list, as well as a button to go to the form (it is an editable list)
* Add an action to duplicate accounts in batch
* Smartly detect when a cash statement can be extended instead of creating a new one, making it more obvious to the user that he may need to validate his previous statement(s)
closesodoo/odoo#35137
Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com>
Fine-tuning of commit 5621ae3d6b.
While it focused on fixing the 'mass_mail' mode,
it forgot to keep the correct behaviour for the case where only one mail is sent.
In the latter case, it is typical to overwrite the template values, especially
for the body, before sending the mail.
In that case, applying the onchange on the templates overwrites the user input.
Note that in the case where the template is undefined it would set the composer
values to empty ones; while standard use would not allow in mass mail to both
send content and have no template, it could be done via a customisation.
opw 2041631
closesodoo/odoo#35164
Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
Create an invoice for a customer, send him an email from the chatter, in
the mail template set a specific "Reply to" and send the email. The
"Reply-To" template mail header is ignore and the one generated by
`mail_thread._notify_get_reply_to` is used.
See also 1c57d5e and 7b0806b
opw-2041640
closesodoo/odoo#35127
Signed-off-by: Julien Castiaux <Julien00859@users.noreply.github.com>