contract
contract copied to clipboard
Migration to version 13.0
Todo
https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-13.0
Modules to migrate
- [ ] agreement --> base_contract - by @newtratip -
- [ ] agreement_legal_sale --> contract_legal_sale
- [x] agreement_maintenance - By @olgamarcocb - #762
- [ ] agreement_mrp --> contract_mrp
- [ ] agreement_project --> contract_project
- [ ] agreement_repair --> contract_repair
- [ ] agreement_sale --> contract_legal
- [ ] agreement_serviceprofile --> contract_service
- [ ] agreement_stock --> contract_stock
- [x] contract - By @pedrobaeza - #533
- [x] contract_layout_category_hide_detail - By @victoralmau - #554
- [x] contract_mandate - By @Willerr-mo - #559
- [x] contract_payment_mode - By @Willerr-mo - #558
- [x] contract_price_revision - By @rousseldenis - #864
- [x] contract_sale - By @victoralmau - #555
- [ ] contract_sale_generation - By @marionumza - #863
- [ ] contract_sale_invoicing - By @dantiller2 - #842
- [x] contract_variable_qty - By @CarlosRoca13 - #567
- [x] contract_variable_qty_timesheet - By @flachica - #580
- [x] product_contract - By @sbejaoui - #561
Missing module? Check https://github.com/OCA/maintainer-tools/wiki/%5BFAQ%5D-Missing-modules-in-migration-issue-list
I'm working on agreement
Hello @newtratip
Beware that we are discussing converging contract and agreement in version 13 to have a complete solution with recurring invoices, integration with operations and legal content management.
Please open a specific issue if the migration of contract and contract_sale is not clear and needs to be discussed further.
CC: @alexis-via @sbejaoui
ok
@max3903
Beware that we are discussing converging
contractandagreementin version 13 to have a complete solution with recurring invoices, integration with operations and legal content management.
Hello, can you point me to this discussion? I have some interest in this with the work about service level agreement / terms and conditions (and this is related to #397 and #398 and the work I initiated on #396 for 12.0 and for which I need a migration path to 13.0)
cc @alexis-via @sbejaoui @i-vyshnevska
@gurneyalex The discussion happened during the OCA Days in LLN. The result of the discussion is the description of this issue (renaming/merging modules).
thanks
I personally generally agree with the idea of converging contract and agreement, as briefly discussed in LLN. The details on how to do this are far from clear in my mind, though. Would it be worth fleshing out the plan a little bit?
A few notes:
- the
contractname is inherited from Odoo <= 8, IIRC - the contract module it is almost exclusively focusing on recurring invoicing.
- a recurring invoicing "contract" is certainly a kind of agreement, or rather we can see recurring invoicing as something that some type of agreements can require
- most of the recurring invoicing logic of
contractis based on contract lines, fields currently on thecontractmostly influence the invoice header (invoicing contact, payment term, mandate and so on).
I'm not sure about renaming agreement to base_contract, because agreement sounds as a more generic term that may be a better fit for the polymorphic beast it becomes. So an alternative approach could be rename contract to agreement_recurring_invoicing, with the purpose of adding recurring invoicing logic to the agreement object?
More difficult questions can probably arise if we start thinking about the relationship between sale order and contract / agreement (currently in module product_contract for recurring invoicing). Also do agreement have lines? If yes what is an agreement line exactly? What is the relationship between an agreement line and a recurring invoicing line, if any (probably not a 1-1)? ...
My understanding of the different use cases and a proposal of module name:
@alexis-via needs an object with a name --> base_contract Some people needs a little more info than just a name --> contract @ygol and I needs the legal content management --> contract_legal @sbidoul and @sbejaoui need the recurring invoicing --> contract_account @gurneyalex and I need integrations with the other Odoo modules --> contract_sale, contract_stock, contract_service, etc.
Another use case is the use of "framework contract" which is an extension of agreement_legal (possibly), where prices and/or cost are set depending on being within/outside of the contract
Since contract no more depends of analytic, I'm agreed with @sbidoul. He has my agreement to go on with contract only ;-)
It seems than @alexis-via needs is just above than just the name https://github.com/OCA/contract/pull/144 ;-)

@sbidoul
So an alternative approach could be rename
contracttoagreement_recurring_invoicing, with the purpose of adding recurring invoicing logic to the agreement object?
I proposed contract because the name is shorter than agreement and I am lazy :)
Also do agreement have lines?
Yes
If yes what is an agreement line exactly?
A pseudo copy of the sale order line that were sold: it only has product and quantity
What is the relationship between an agreement line and a recurring invoicing line, if any (probably not a 1-1)?
There is no relationship yet. Agreement does NOT support recurring invoicing.
@sbidoul @bealdav @gurneyalex
What do you think of:
| Requirements | Module Name |
|---|---|
| Name, Code, Partner, Date | base_contract |
| Contract lines | contract |
| Legal content management | contract_legal |
| Recurring invoicing from contract lines | contract_account |
| Integrations with other Odoo modules | contract_sale, contract_stock, contract_service, etc. |
I'm not sure about renaming agreement to base_contract, because agreement sounds as a more generic term that may be a better fit for the polymorphic beast it becomes
+ 1
You may have agreement.line depending of a company setting activated by default in agreement module
@sbidoul @bealdav @gurneyalex @ygol
| Requirements | Module Name |
|---|---|
| Name, Code, Partner, Date, Agreement Lines (only shown if you are in a specific group) | agreement |
| Legal content management | agreement_legal |
| Recurring invoicing from contract lines | agreement_account |
| Integrations with other Odoo modules | agreement_sale, agreement_stock, agreement_service, etc. |
Do agreement_account necessarily mean recurring invoicing? I kind of remember @alexis-via had other requirement wrt to the invoice / agreement relationship.
Regarding lines, I'm not sure at all it is possible to conflate generic agreement lines with lines used for the purpose of recurring invoicing. (note I don't know use cases for generic agreement lines).
If yes what is an agreement line exactly?
A pseudo copy of the sale order line that were sold: it only has product and quantity
Regarding agreement_sale, there is probably a difference between selling such "generic" agreement lines, and selling lines for the purpose of recurring invoicing (as done in product_contract).
It could be we need two sets of lines in agreement for different purposes. Which may or may not be a problem.
| Requirements | Module Name |
|---|---|
| Name, Code, Partner, Date, Agreement Lines (only shown if you are in a specific group) | agreement |
| Legal content management | agreement_legal |
| Integration with Accounting | agreement_account |
| Recurring invoicing from contract lines | agreement_account_recurring_invoice |
| Integrations with other Odoo modules | agreement_sale, agreement_stock, agreement_service, etc. |
The agreement lines define the scope covered by the agreement, what you are supposed to provide. It could be inventory items or services.
not blocking but agreement_recurring_invoice is sufficient
Everybody know than invoice depends on account whatever accounting refactor ;-)
It's not ambiguous.
| Requirements | Module Name |
|---|---|
| Name, Code, Partner, Date, Agreement Lines (only shown if you are in a specific group) | agreement |
| Legal content management | agreement_legal |
| Integration with Accounting | agreement_account |
| Recurring invoicing from agreement lines | agreement_recurring_invoice |
| Integrations with other Odoo modules | agreement_sale, agreement_stock, agreement_service, etc. |
Agreement vs contract; the difference is agreement is informal whereas contract is formal and legal.
https://www.diffen.com/difference/Agreement_vs_Contract
Recurring billing is mostly a consequence of a legal contract, thus "contract" sounds to be a better prefix to me.
It's not a problem for me if the chosen word is contract.
Choose your according your preferences, thanks
Hi! Any progress with this topic?
Hi! Is there any update on the migration status of the contract module as we need the "Recurring - Contracts Management" for Odoo 13. Thanks
To be a bit more specific about my needs:
- a contract object with at least a name, a code, a partner and a company. This is what we have in base_contract in PR #397 I don't need more on that point.
- a module that depend on account and add a M2O from invoice to the contract object
- a module that depend on sale and add a M2O from sale.order to the contract object and copies it from sale.order to invoice upon invoice generation.
Point 2 and 3 were implemented in the agreement modules of v10 and I re-introduced the feature in v12 with the modules agreement_account and agreement_sale in this PR https://github.com/OCA/contract/pull/520 I'll port these modules agreement_sale and agreement_account to v13. It you think I need to change the name of those modules, tell me now!
base_contract depends on base. agreement_account depends on base_contract and account. Just don't install agreement_account.
Hello Folks, may I kindly ask if there is a rough estimation, when the first release for v13 might be available? Need to plan if it's possible to wait or if we have to search for alternatives. Best Regards!
@aschlager it depends also on you: if you review current PRs, you can check the state and approve it if it's everything OK for its final inclusion in the repo.
I'm working on contract_layout_category_hide_detail https://github.com/OCA/contract/pull/554
I'm working on contract_sale https://github.com/OCA/contract/pull/555
contract_mandate #559
contract_payment_mode #558