Commit Graph

266 Commits

Author SHA1 Message Date
Alexandre Fayolle
af0ceba6b6 [FIX] add missing newlines in readme files 2020-10-27 13:33:07 +01:00
黎伟杰
fbf7d9649e Translated using Weblate (Chinese (Simplified))
Currently translated at 32.4% (11 of 34 strings)

Translation: contract-12.0/contract-12.0-contract_variable_quantity
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract_variable_quantity/zh_CN/
2020-10-27 13:33:07 +01:00
Eder Brito
a8b81798dc Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (34 of 34 strings)

Translation: contract-12.0/contract-12.0-contract_variable_quantity
Translate-URL: https://translation.odoo-community.org/projects/contract-12-0/contract-12-0-contract_variable_quantity/pt_BR/
2020-10-27 13:33:07 +01:00
sbejaoui
af5433dcf2 [12.0][REF] - Contract Variable quantity: split from analytic accoun 2020-10-27 13:33:07 +01:00
sbejaoui
caf7976d6c [REF] - Use method _get_quantity_to_invoice. 2020-10-27 13:33:07 +01:00
sbejaoui
765a9f1ba7 [FIX] - fix check quantity = 0 2020-10-27 13:33:07 +01:00
sbejaoui
c77eb25cc8 [FIX] fix unit tests 2020-10-27 13:33:07 +01:00
sbejaoui
c9e173d720 [FIX] - Fix unit tests 2020-10-27 13:33:07 +01:00
sbejaoui
9516d2edac [IMP] - Skip zero should ignore lines with qty zero even for fixed qty 2020-10-27 13:33:07 +01:00
Thomas Binsfeld
f2b6299e8a [REF] Contract: invoice in prepare_invoice_line is optional 2020-10-27 13:33:07 +01:00
sbejaoui
4077610688 [IMP] - refresh contract_variable_quantity.pot 2020-10-27 13:33:07 +01:00
sbejaoui
e18f1f04da [IMP] - Adapt contract_variable_quantity to contract new views 2020-10-27 13:33:07 +01:00
sbejaoui
3d27d9daa2 [IMP] - Add ace-widget with python mode 2020-10-27 13:33:07 +01:00
sbejaoui
733f7751d3 [IMP] Adapt unit test 2020-10-27 13:33:07 +01:00
sbejaoui
0a57ee93a7 [MIG] contract_variable_quantity: Migration to 12.0 2020-10-27 13:33:07 +01:00
Dmytro Katyukha
e8df3eb6cf Update addon versions
- contract
- contract_variable_quantity
2020-10-27 13:33:07 +01:00
Dmytro Katyukha
7602f5acbe [FIX] analytic invoice/contract lines inheritance
Bug description
---------------

`account.analytic.contract.line` inherits
`account.analytic.invoice.line`

`account.analytic.invoice.line` defines field `analytic_account_id`:
   - comodel='account.analytic.account'

`account.analytic.contract.line` redefines field `analytic_account_id`:
   - comodel='account.analytic.contract'

On attempt to extend `account.analytic.invoice.line` model adding
field that depends on `analytic_account_id.date_start`
Odoo fails to update, because it adds this field to
`account.analytic.contract.line` through inheritance,
and `account.analytic.contract` model have no this field.

What is done
------------

Change inheritance order:
- `account.analytic.invoice.line` inherits
`account.analytic.contract.line`
- no file renames at this stage (this wil be done in next commit)
2020-10-27 13:33:07 +01:00
Pedro M. Baeza
186d4a1419 [IMP] contract_variable_quantity: Recompute price when changing qty
If you have contract lines with automatic price and your pricelist
contains different prices per quantity, the price is not changed
when computing quantity.

This PR fixes this.
2020-10-27 13:33:07 +01:00
Pedro M. Baeza
378c6c408b [IMP] contract_variable_quantity: Make name translatable 2020-10-27 13:33:07 +01:00
Carlos Dauden
295c7c1ee7 [IMP] contract_variable_quantity: Add option to don't create zero qty invoice lines 2020-10-27 13:33:07 +01:00
Pedro M. Baeza
7b0d4ee154 [FIX] contract_variable_quantity: Correct README menus references 2020-10-27 13:33:07 +01:00
Carlos Dauden
fef699a9ed [MIG] contract_variable_quantity: Migration to 11.0 2020-10-27 13:33:07 +01:00
Moisés López
276efddaac [FIX] contract_payment_auto: Fix freze wkhtmltopdf freezed 2020-10-27 13:33:07 +01:00
Dave Lasley
b471266ab1 [10.0][IMP] Add variable qty to contract template view (#66)
* [IMP] Add variable qty to contract template view

* Bump minor version
2020-10-27 13:33:07 +01:00
Dave Lasley
8b4849c6db [IMP][10.0] contract: Add templating (#42)
Add template functionality for contracts
2020-10-27 13:33:07 +01:00
Dave Lasley
04ea45a067 [MIG] contract_variable_quantity: Migrate to v10
* Bump version
* Change openerp references to odoo
* Installable to True
* Change permissions & views to accounting dependency
2020-10-27 13:33:07 +01:00
Pedro M. Baeza
848b435d7e [MIG] Rename manifest files 2020-10-27 13:33:07 +01:00
Pedro M. Baeza
604e84426a [MIG] Make modules uninstallable 2020-10-27 13:33:07 +01:00
Carlos Dauden
66baa2b7f8 [IMP] contract: Add past receipt type. Fix yearly. Add month last day 2020-10-27 13:33:07 +01:00
Pedro M. Baeza
da8e6f36aa Update README.rst 2020-10-27 13:33:07 +01:00
Pedro M. Baeza
0e26286c45 [IMP] contract_variable_quantity: Spanish translation 2020-10-27 13:30:08 +01:00
Pedro M. Baeza
9cf74613c3 [IMP] contract_variable_quantity: Screenshot 2020-10-27 13:30:08 +01:00
Pedro M. Baeza
e026e60fb8 [ADD] contract_variable_quantity:
=================================================
Variable quantity in contract recurrent invoicing
=================================================

With this module, you will be able to define in recurring contracts some
lines with variable quantity according a provided formula.

Configuration
=============

* Go to Sales > Configuration > Contracts > Formulas (quantity).
* Define any formula based on Python code that stores at some moment a
  float/integer value of the quantity to invoice in the variable 'result'.

  You can use these variables to compute your formula:

  * *env*: Environment variable for getting other models.
  * *context*: Current context dictionary.
  * *user*: Current user.
  * *line*: Contract recurring invoice line that triggers this formula.
  * *contract*: Contract whose line belongs to.
  * *invoice*: Invoice (header) being created.

Usage
=====

To use this module, you need to:

* Go to Sales -> Contracts and select or create a new contract.
* Check *Generate recurring invoices automatically*.
* Add a new recurring invoicing line.
* Select "Variable quantity" in column "Qty. type".
* Select one of the possible formulas to use (previously created).
2020-10-27 13:30:08 +01:00
OCA Transbot
9652c7613a Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: contract-13.0/contract-13.0-contract
Translate-URL: https://translation.odoo-community.org/projects/contract-13-0/contract-13-0-contract/
2020-10-26 23:58:43 +00:00
oca-git-bot
ef225245c0 [IMP] pre-commit: pin node version [ci skip] 2020-10-27 00:58:30 +01:00
OCA-git-bot
6177f9de43 [ADD] setup.py 2020-10-24 18:41:22 +00:00
oca-travis
f009a4341f [UPD] Update contract.pot 2020-10-24 18:04:40 +00:00
OCA-git-bot
a87a79ab0d Merge PR #533 into 13.0
Signed-off-by pedrobaeza
2020-10-24 17:32:12 +00:00
Denis Roussel
3a5ec60fd4 [13.0][FIX] contract: Recompute recurring next date
After invoice creation, the recurring next date has to be recomputed
in order to get good values
2020-10-24 19:30:50 +02:00
Pedro M. Baeza
cd086ddbb4 [IMP+REF] contract: Allow to set recurrency at header level
Big refactoring for allowing to define recurrency at header level for simplifying
the use of the module for most of the cases where you don't need different
recurrency at line level.
2020-10-24 19:30:50 +02:00
Pedro M. Baeza
321c688b75 [MIG] contract: Migration to 13.0
- Standard procedure
- Adapt invoice creation to new account.move
- Tests adapted
2020-08-28 20:07:40 +02:00
Pedro M. Baeza
ac2e2b15bc [IMP] : black, isort, prettier 2020-08-28 20:07:39 +02:00
sbejaoui
afd12bafd1 [12.0][FIX] - fiscal position, payment mode and pricelist obtained according to contract company 2020-08-28 20:06:38 +02:00
Jairo Llopis
28782178d8 [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
2020-07-28 13:02:32 +02:00
Matjaz Mozetic
690ba00580 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/
2020-07-17 19:29:41 +02:00
Pedro M. Baeza
af8097a027 [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.
2020-07-17 19:29:41 +02:00
Jairo Llopis
ea83dfa277 [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
2020-07-14 11:53:19 +02:00
Pedro M. Baeza
cabc5c5c11 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/
2020-07-14 11:53:19 +02:00
Fernando Colus
8a1ed4383a 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/
2020-07-14 11:53:19 +02:00
Pedro M. Baeza
f453599eea [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.
2020-07-14 11:53:18 +02:00