Commit Graph

308 Commits

Author SHA1 Message Date
Jairo Llopis
4e570bd46f [FIX] contract: multi-company assignment notification
Steps to reproduce the problem:

1. Log in as Mitchell Admin.
2. Create contract CNT-A for company CMP-A, assigned to Marc Demo.
3. Create contract CNT-B for company CMP-B, assigned to Marc Demo.
4. Run cron to create recurring invoices.

Actual results:

- Odoo sends automated assignment emails to Marc Demo, which indicate the name of the company activated for `__system__` user whlie the cron was being executed.

Expected results after this patch:

- Odoo sends automated assignment emails to Marc Demo, which indicate the invoice company.

@Tecnativa TT24657
2023-03-15 12:38:43 +01:00
Matjaz Mozetic
1c6bfdb391 Translated using Weblate (Slovenian)
Currently translated at 7.4% (20 of 270 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/sl/
2023-03-15 12:38:43 +01:00
Pedro M. Baeza
cdce7019a8 [IMP] contract: Allow to set a manual currency
Done through an extra field + inverse in the existing compute. This way, we have
the flexibility of auto-remove custom value if it matches the computed one + we don't
need extra changes in the rest of the code.
2023-03-15 12:38:43 +01:00
Jairo Llopis
e94ff8bc26 [FIX] contract: do not die if modified partner has contracts in several companies
In a multicompany scenario where a contact belongs to a company and has contracts in several companies, if the user goes to the contact to edit anything, when saving, it will trigger the recomputation of the `commercial_partner_id` field, which gets populated to all the related contracts, and will undeniably fail with an `AccessError`.

A simple test is provided that, without the fix, fails like this:

```
2020-06-25 07:21:24,859 33 ERROR devel odoo.addons.contract.tests.test_contract: ERROR: test_multicompany_partner_edited (odoo.addons.contract.tests.test_contract.TestContract)
2020-06-25 07:21:24,859 33 ERROR devel odoo.addons.contract.tests.test_contract: ` Editing a partner with contracts in several companies works.
2020-06-25 07:21:24,859 33 ERROR devel odoo.addons.contract.tests.test_contract: Traceback (most recent call last):
2020-06-25 07:21:24,859 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/auto/addons/contract/tests/test_contract.py", line 2513, in test_multicompany_partner_edited
2020-06-25 07:21:24,859 33 ERROR devel odoo.addons.contract.tests.test_contract: `     'parent_id': parent_partner.id,
2020-06-25 07:21:24,859 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/auto/addons/partner_autocomplete/models/res_partner.py", line 183, in write
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `     res = super(ResPartner, self).write(values)
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/custom/src/odoo/odoo/addons/base/models/res_partner.py", line 570, in write
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `     result = result and super(Partner, self).write(vals)
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/auto/addons/mail/models/mail_thread.py", line 321, in write
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `     result = super(MailThread, self).write(values)
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/auto/addons/mail/models/mail_activity.py", line 613, in write
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `     return super(MailActivityMixin, self).write(vals)
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/custom/src/odoo/odoo/models.py", line 3381, in write
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `     self.recompute()
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/custom/src/odoo/odoo/models.py", line 5308, in recompute
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `     target._write(dict(vals))
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/custom/src/odoo/odoo/models.py", line 3433, in _write
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `     self.check_access_rule('write')
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `   File "/opt/odoo/custom/src/odoo/odoo/models.py", line 3081, in check_access_rule
2020-06-25 07:21:24,860 33 ERROR devel odoo.addons.contract.tests.test_contract: `     + ' - ({} {}, {} {})'.format(_('Records:'), invalid.ids[:6], _('User:'), self._uid)
2020-06-25 07:21:24,861 33 ERROR devel odoo.addons.contract.tests.test_contract: ` odoo.exceptions.AccessError: ('The requested operation cannot be completed due to security restrictions. Please contact your system administrator.\n\n(Document type: Contract, Operation: write) - (Records: [101], User: 12)', None)
```

@Tecnativa TT24482
2023-03-15 12:38:43 +01:00
Pedro M. Baeza
543b6d3e84 Translated using Weblate (Spanish)
Currently translated at 100.0% (270 of 270 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/es/
2023-03-15 12:38:43 +01:00
Fernando Colus
e51eb887e6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (270 of 270 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/pt_BR/
2023-03-15 12:38:43 +01:00
Pedro M. Baeza
e74cc4c023 [FIX] contract: Currency is not editable + pricelist from partner
Previous related field was not accurated nor editable. Now the field is got
properly from a computed field.

Reviewing this, as the currency was taken (and it continues being taken) from the partner
pricelist if no pricelist is explicitly set, automatic price should use the same logic for
using partner pricelist.

Also remove roadmap as already attended
2023-03-15 12:38:43 +01:00
Jorge Luis Quinteros
23e41c1275 Translated using Weblate (Spanish)
Currently translated at 89.3% (241 of 270 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/es/
2023-03-15 12:38:43 +01:00
sbejaoui
0bb199129b [IMP] - Contract: add new recurring_rule_type quarterly and semesterly 2023-03-15 12:38:43 +01:00
Ernesto Tejeda
63f98fde41 [FIX] contract: Select the correct sections/notes to be invoiced 2023-03-15 12:38:43 +01:00
Maria Sparenberg
a1e5546f68 Translated using Weblate (German)
Currently translated at 91.3% (240 of 263 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/de/
2023-03-15 12:38:43 +01:00
Pedro M. Baeza
9d35873bc5 [FIX+IMP] contract: improve test coverage with new sections + fix search method 2023-03-15 12:38:43 +01:00
Ernesto Tejeda
69df8ed71a [IMP] contract: add section and notes in contract line 2023-03-15 12:38:43 +01:00
Bejaoui Souheil
c51ac90345 [IMP] - Place id attribute before model
Co-Authored-By: Carlos Dauden <carlos.dauden@tecnativa.com>
2023-03-15 12:38:43 +01:00
Pedro M. Baeza
be4904bad1 [FIX] contract: Delete cascade line wizard
For avoiding problems while trying to remove the contract/contract line
2023-03-15 12:38:43 +01:00
Nelson Ramírez Sánchez
058dd8576c Translated using Weblate (Spanish)
Currently translated at 94.9% (241 of 254 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/es/
2023-03-15 12:38:43 +01:00
Stéphane Valaeys
060a2e5424 Set company_id earlier in the invoice preparation process so that _onchange_partner can execute as intended. 2023-03-15 12:38:43 +01:00
sbejaoui
00040dab2a [IMP] - Add contract tags 2023-03-15 12:38:43 +01:00
Valaeys Stéphane
cfaf10b7ee Translated using Weblate (French)
Currently translated at 100.0% (254 of 254 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/fr/
2023-03-15 12:38:43 +01:00
sbejaoui
9e364eff88 [IMP] contract: Improve partner With running contracts search view filter + contract termination 2023-03-15 12:38:33 +01:00
Ernesto Tejeda
a813ae715f [IMP] contract: add analytic_tag_ids field in contract lines 2023-03-15 12:38:33 +01:00
Jarmo Kortetjärvi
4e6f1cf3ef Translated using Weblate (Finnish)
Currently translated at 100.0% (234 of 234 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/fi/
2023-03-15 12:38:33 +01:00
OCA Transbot
1e101aea6a Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/
2023-03-15 12:38:33 +01:00
Pedro Castro Silva
fe2a171d67 Translated using Weblate (Portuguese)
Translated using Weblate (Portuguese)

Currently translated at 99.6% (233 of 234 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/pt/
2023-03-15 12:38:33 +01:00
Jarmo Kortetjärvi
2324f7403a Translated using Weblate (Finnish)
Currently translated at 100.0% (234 of 234 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/fi/
2023-03-15 12:38:33 +01:00
Marcel Savegnago
5bdfcddb21 Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.6% (226 of 234 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/pt_BR/
2023-03-15 12:38:33 +01:00
Mario Riva
c057bbce14 Translated using Weblate (Italian)
Currently translated at 91.0% (213 of 234 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/it/
2023-03-15 12:38:33 +01:00
sbejaoui
946f2e2d48 [12.0][IMP] - Add an action for contracts manual invoicing
It happen that a company has to trigger the invoicing action to generate invoices before
the scheduled date (to print and prepare invoices documents, check invoices, etc.).
This requires technical access for end users with the risk that this represents.

This commit adds a new wizard to run the invoicing action for a given date with a helper
to see and check the contract that will be invoiced. When the manual action is called,
the system displays all created invoices.

[12.0][IMP] - log the manual invoice action in contract chatter

[IMP] - Add alink to the invoice in contract message at manual invoicing

[IMP] - Improve code

[FIX] - log message for invoice creation only when there is an invoice

[IMP] - split the manual invoice menu into to menus sale & purhcase

[IMP] - hide invoice button if there is nothing to invoice
2023-03-15 12:38:33 +01:00
Pedro M. Baeza
36bf7203ba [IMP] contract: remove redundant method
I have detected a method that was created as redundant and with the same
technique used when preparing the line values, so better to have
everything together in the same method instead of having it spread.
2023-03-15 12:38:33 +01:00
qgroulard
bc5f535aaa Translated using Weblate (French)
Currently translated at 38.6% (86 of 223 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/fr/
2023-03-15 12:38:33 +01:00
OCA Transbot
b19c5e1e69 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/
2023-03-15 12:38:33 +01:00
Nelson Ramírez Sánchez
00ab811c5f Translated using Weblate (Spanish)
Currently translated at 99.6% (222 of 223 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/es/
2023-03-15 12:38:33 +01:00
Nelson Ramírez Sánchez
e2bdbfa745 Added translation using Weblate (Spanish (Chile))
Currently translated at 0.9% (2 of 223 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/es_CL/
2023-03-15 12:38:33 +01:00
OCA Transbot
afad88dacb Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/
2023-03-15 12:38:33 +01:00
Grégory Moka Tourisme
9c0d92ddb5 Translated using Weblate (French)
Currently translated at 38.1% (85 of 223 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/fr/
2023-03-15 12:38:33 +01:00
Pedro M. Baeza
63d36f1c5f [FIX] contract: Handle properly multi-company setups
If you have contracts in several companies, cron will create all of them, but
property fields will be populated with incorrect data as the taken company is
the main from the cron user (usually admin).
2023-03-15 12:38:33 +01:00
sbejaoui
d8e86aec6e [IMP+FIX] contract: Add failing test for wrong invoicing date after contract line stop + stop update recurring_next_date 2023-03-15 12:38:33 +01:00
OCA Transbot
d107eb8a54 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/
2023-03-15 12:38:33 +01:00
Andrea Cometa
9cca8b80f7 Translated using Weblate (Italian)
Currently translated at 91.9% (204 of 222 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/it/
2023-03-15 12:38:33 +01:00
sbejaoui
ddd6bfb967 [IMP+FIX] contract: Several things
- Add failing test for next invoice date before the last date invoiced
- raise an error when next invoice date before the last date invoiced
- Add note field to contract
- add new option: create_new_line_at_contract_line_renew
  Add a company config option to decide whether to create or to extend contract
  line at renew action
- extend contract line at renewal
- improve code: unify methods argument _renew_create_line and _renew_extend_line
2023-03-15 12:38:33 +01:00
Augusto D. Lisbôa
990ea36348 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (216 of 216 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/pt_BR/
2023-03-15 12:38:33 +01:00
Stéphane Bidoul (ACSONE)
ab4cc4d461 [IMP] contract: display invoicing offset 2023-03-15 12:38:33 +01:00
sbejaoui
2fab07b9e3 [FIX+REF] contract: Improve unit tests + add unit test for different combinations for next invoicing period + simplify _get_period_to_invoice 2023-03-15 12:38:21 +01:00
Stéphane Bidoul (ACSONE)
3afddeec07 [REF+FIX+IMP] contract: Several refactorings + fixes + imps
- REF: Refactor _update_recurring_next_date
  Reuse the logic that is now fully located in _get_recurring_next_date.
- REF: re-add _compute_first_recurring_next_date
  for backward compatibility
- FIX: add missing dependency in computed field
- REF: remove one monthlylastday special case
  get_relative_delta now works the same for all recurring rules.
  Move the special case handling to _init_last_date_invoiced
  which is used only for migration.
- IMP: support pre-paid for monthlylastday
  monthlylastday is (almost) not a special case anymore \o/.
  montlylastday is simply a montly period where the
  periods are aligned on month boundaries.
  The last bit of special casing is that postpaid generates
  invoice the day after the last dasy of the period, except
  for monthlylastday where the invoice is generated on the
  last day of the period. This last exception will disappear
  when we put the offset under user control.
  This is a breaking change because the post-paid/pre-paid
  mode becomes relevant for monthlylastday invoicing.
  The field becomes visible in the UI. Code that generate
  monthlylastday contract lines must now correctly set
  the pre-paid/post-paid mode too. Some tests have had
  to be adapted to reflect that.
- REF: make recurring_invoicing_offset a computed field
  In preparation to making it user modifiable.
- REF: make get_next_period_date_end public
  Make it public because it is the core logic of the module.
  Also, clarify that recurring_invoicing_type
  and recurring_invoicing_offset are needed only when
  we want the next period to be computed from a
  user chosen next invoice date.
- REF: rename _get_recurring_next_date as get_next_invoice_date
  It is easier to understand. Also make it public.
2023-03-15 12:38:21 +01:00
Martronic SA
04bd78f16d Translated using Weblate (French)
Currently translated at 40.1% (85 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/fr/
2023-03-15 12:38:21 +01:00
Stéphane Bidoul (ACSONE)
a0b85a2b0e [REF] contract: Several refactorings
- rename misnamed methods
- clarify _get_recurring_next_date
  First compute the next period end date,
  then derive the next invoice date from the next
  period stard and end date.
- handle max_date_end in _get_recurring_next_date
  This concentrates all next date calculation
  logic in one place, and will allow further simplifications.
- add next period start/end fields
  Add two computed field showing the next period
  start and end date. This improve the UX and will
  enable further simplifications in the code.
- refactor _get_period_to_invoice
  Move the part of the logic that compute the next
  period depending on the chosen next invoice date
  to _get_next_period_date_end.
2023-03-15 12:38:21 +01:00
Pedro M. Baeza
a9ed053585 [FIX] contract: Don't execute onchange after invoice creation + Tests with duplicated name
- Don't execute onchange after invoice creation
  Using that approach (that is the current one in core)  has a lot of side effects and
  performance bottlenecks. You can read odoo/odoo#40156 for summarizing them.
  This also improves the handling of the values of payment term an fiscal position
  for using the partner ones if not set.
- Tests with duplicated name
  So they are not executed at all. Detected by chance looking for a test for the other PR.
2023-03-15 12:38:21 +01:00
sbejaoui
440d83e9b2 [12.0][FIX] - Run onchange contract_type when changing the contract template
Fix this use-case:

If the contract journal is not set on the contract template the contract is created
without a journal when confirming the sale order
2023-03-15 12:38:20 +01:00
Bole
7962308e7b Translated using Weblate (Croatian)
Currently translated at 22.2% (47 of 212 strings)

Translation: contract-12.0/contract-12.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract/hr/
2023-03-15 12:38:20 +01:00
Pedro M. Baeza
c090760070 [MIG][FIX] contract: Move contracts, but disable them
There were an error in previous query for moving only contracts with the mark checked,
but it's also more logic to move them, but remain them disabled.
2023-03-15 12:38:20 +01:00