Skip to content

Conversation

@bosd
Copy link
Contributor

@bosd bosd commented Dec 29, 2025

Standard migration using odoo-module-migrator
/ocabot migration contract_variable_quantity .
depends on #1312

pedrobaeza and others added 30 commits December 29, 2025 14:02
=================================================
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).
* Bump version
* Change openerp references to odoo
* Installable to True
* Change permissions & views to accounting dependency
Add template functionality for contracts
* [IMP] Add variable qty to contract template view

* Bump minor version
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.
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)
- contract
- contract_variable_quantity
sbejaoui and others added 20 commits December 29, 2025 14:02
…lds from template

**Steps to reproduce the problem**

- Define a contract template with one line with variable quantity and formula.
- Use that template in a new contract.
- Variable quantity type and formula are not transferred from template to contract.

This is due to the lack of that fields in the tree view that prevents web client to fetch
and store them.

We solve it adding those fields to the contract line tree view, also providing some
visibility logic for not showing the corresponding fields according the type.

No regression tests is provided, as this is only reproducible with web client, not through
code.
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.
[UPD] Update contract_variable_quantity.pot

[UPD] README.rst
Currently translated at 100.0% (35 of 35 strings)

Translation: contract-16.0/contract-16.0-contract_variable_quantity
Translate-URL: https://translation.odoo-community.org/projects/contract-16-0/contract-16-0-contract_variable_quantity/it/
Currently translated at 68.5% (24 of 35 strings)

Translation: contract-16.0/contract-16.0-contract_variable_quantity
Translate-URL: https://translation.odoo-community.org/projects/contract-16-0/contract-16-0-contract_variable_quantity/hr/
Currently translated at 100.0% (35 of 35 strings)

Translation: contract-16.0/contract-16.0-contract_variable_quantity
Translate-URL: https://translation.odoo-community.org/projects/contract-16-0/contract-16-0-contract_variable_quantity/sv/
Currently translated at 97.0% (33 of 34 strings)

Translation: contract-18.0/contract-18.0-contract_variable_quantity
Translate-URL: https://translation.odoo-community.org/projects/contract-18-0/contract-18-0-contract_variable_quantity/tr/
@bosd bosd mentioned this pull request Dec 29, 2025
25 tasks
@bosd bosd force-pushed the 19.0-mig-contract_variable_quantity branch from e3a5cca to c139627 Compare December 29, 2025 14:01
@bosd
Copy link
Contributor Author

bosd commented Dec 29, 2025

/ocabot migration contract_variable_quantity

@OCA-git-bot
Copy link
Contributor

Sorry @bosd you are not allowed to mark the addon to be migrated.

To do so you must either have push permissions on the repository, or be a declared maintainer of all modified addons.

If you wish to adopt an addon and become it's maintainer, open a pull request to add your GitHub login to the maintainers key of its manifest.

@bosd bosd force-pushed the 19.0-mig-contract_variable_quantity branch from c139627 to b003959 Compare December 29, 2025 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.