Commit Graph

47 Commits

Author SHA1 Message Date
Stéphane Bidoul (ACSONE)
7649f5b385 [IMP] contract: 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.
2021-04-01 13:53:02 +02:00
Stéphane Bidoul (ACSONE)
ea235974b8 [IMP] contract: 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.
2021-04-01 13:53:02 +02:00
Enrique
caa5cae7d7 [12.0][FIX] contract & contract_sale - security fix
The lowest model access for contract.contract model is group_account_invoice group. However the addon adds two smart buttons to res.partner view without any security restrictions and without compute_sudo attribute on computed fields.
This causes the view to crash when a user without the proper permissions tries to access the res.partner form view.
The solution adds groups_id to the partner form views in which the buttons are added, so the only loads when the user has proper permissions.
Other way to solve it would be to add compute_sudo attribute to the relevant fields, but this causes an access error when the user clicks on the smart buttons.
2021-04-01 13:53:02 +02:00
hparfr
cc7f8c66a1 Add commercial_partner_id fields into contract module
Remove string attribute
2021-04-01 13:53:02 +02:00
Pedro M. Baeza
a2cd6455ad [FIX+IMP+MIG] contract: Several refinements:
* Remove incorrect oldname attributes.
* Add filter on partners for running contracts (+ a support o2m field for that).
* Cover more tables in model renaming + cleaner code using a loop.
* Don't copy contract lines, but rename table + copy contract records on pre.
* Contract code is now populated to "Reference/Description" field in invoice.
* Order on new contract model has been restored to the same as old analytic accounts.
2021-04-01 13:53:02 +02:00
sbejaoui
f55b537d08 [IMP] - Make one migration from 12.0.1 to 12.0.4
[RMV] - Remove empty file

[IMP] - Update no_update cron after migration

[IMP] - move contract template recurrence info to line level

[FIX] - Fix contract line model description

[IMP] - Link contracts to analytic accounts

[FIX] - Fix pylint

[IMP] - Move chatter and attachments from analytic account to contract

[IMP] - Move account_analytic_id to contract line level

[IMP] - Improve version check in migration script

[IMP] - Move contracts followers from analytic accounts

[ADD] - Add mail.activity.mixin to contract.contract model

remove data drop from migration scripts

[12.0][FIX] - Fix _init_last_date_invoiced

fix flake8

[ADD] - Update contributors list
2021-04-01 13:53:02 +02:00
Thomas Binsfeld
c770e97adb [REF] Contract Sale Invoicing: split from analytic account
[REF] Contract Sale Invoicing: update translations

[IMP] - Assert that the predecessor is available for new link at uncancel

[RMV] - remove usless changes

[RMV] - Remove usless field recurring_invoices

after the total isolation between contract model and account analytic one.
recurring_invoices which was used to mark analytic account as contract became usless

[IMP] - P3 syntax

[IMP] - use @openupgrade.migrate() and openupgrade.logged_query

[IMP] - drop transient table in migration script
2021-04-01 13:53:02 +02:00
Thomas Binsfeld
3ca769e079 [REF] Contract: split from analytic account 2021-04-01 13:53:02 +02:00
Thomas Binsfeld
70db1094ff [REF] Contract: use context_today instead of time in filters 2021-04-01 13:53:02 +02:00
sbejaoui
5c8c875b61 [FIX] - don't play onchange date_start for old lines on contract template change
[FIX] - Fix stop post message

[FIX] - Fix sale_contract_count should count all partner contract

[FIX] - set recurring_next_date to False if contract line stoped at last date invoiced

[FIX] - Group by next_invoice also considers dates in the past
2021-04-01 13:53:02 +02:00
sbejaoui
5248e17bab [FIX] - Onchange contract line don't reste contract lines
[FIX] - Rename _get_invoiced_period to _get_period_to_invoice

[ADD] - Add stop_at_date_end to _get_period_to_invoice

[FIX] - Remove useless filter
2021-04-01 13:53:02 +02:00
sbejaoui
af8efa9505 [FIX] - Fix In progress contract filter 2021-04-01 13:53:02 +02:00
sbejaoui
4dd60400fd [FIX] - manual_renew_needed should be visible to all contract users 2021-04-01 13:53:02 +02:00
Thomas Binsfeld
62e1a7fd79 [IMP] Contract: matching invoice view depending on contract type
[ADD] Contract: invoice partner
2021-04-01 13:53:02 +02:00
Thomas Binsfeld
ac56addd2b [ADD] Contract: fiscal position
[ADD] Contract: new contributor

[REF] Contract: indexes
2021-04-01 13:53:02 +02:00
sbejaoui
c2555ea18a [IMP] - Replace is_suspended flag by manual_renew_needed
Add a computed field for the first date of the termination notice period

Adapt state compute and search method

[IMP] - Improve unit tests
2021-04-01 13:53:02 +02:00
sbejaoui
46133d4175 [IMP] - Link invoice line to contract lines
[IMP] - Add index on contract line

[IMP] - Add is_suspended flag and _search_state

[IMP] - Add is_suspended flag to stop contract line
2021-04-01 13:53:02 +02:00
sbejaoui
8bef36cdd3 [IMP] - Improve inprogress search filter 2021-04-01 13:53:02 +02:00
Thomas Binsfeld
4f574d57d5 [ADD] Contract: payment term 2021-04-01 13:53:02 +02:00
sbejaoui
efff64f817 [IMP] - Add responsible to contract form view 2021-04-01 13:53:02 +02:00
sbejaoui
03be9609a9 [FIX] - compute recurring_next_date for contract
[IMP] - get contract line default data onchange product_id
2021-04-01 13:53:02 +02:00
sbejaoui
c83f3162a0 [IMP] - store last_date_invoiced on contract_line
Improve CRITERIA_ALLOWED_DICT

[IMP] - code improvement

[IMP] - Use last_date_invoiced to set marker in invoice description

[IMP] - add migration script to init last_day_invoiced and some other improvement

[FIX] - a contract line suspended should start a day after the suspension end
2021-04-01 13:53:02 +02:00
sbejaoui
0275254a4f [IMP] - hide recurring_invoicing_type if recurring_rule_type is monthlylastday
for the monthlylastday case, pre-paid is logicly impossible,
if monthlylastday is set, we consider only post-paid case

[IMP] - Improve unit tests
2021-04-01 13:53:02 +02:00
sbejaoui
752a332d13 [IMP] - improve cancel/uncancel process
[FIX] - Test if start_date is set before compute

[FIX] - date_end include in the period in auto_renew case

[FIX] - in suspension case, contract line should start a day after the end

[IMP] - confirm message on contract line cancel
2021-04-01 13:53:02 +02:00
sbejaoui
0e27aa2365 [IMP] - Add primary views for contract
[IMP] - don't use related filed for partner_id and pricelist_id
2021-04-01 13:53:02 +02:00
sbejaoui
48d7ec9631 [FIX] - invoice last period for post-paid case 2021-04-01 13:53:02 +02:00
sbejaoui
c43a9fb533 [12.0][IMP] - Add strat/stop wizard to contract line
[12.0][IMP] - Add pause button to contract line

[IMP] - Add state filed in contract line form

[FIX] - stop don't change date_end for finished contract line

[IMP] - Change contract line buttons visibility

Add renewal process with termination notice

[FIX] - don't consider stop_date If it is after the contract line end_date

[IMP] - consider more cases in stop_plan_successor

[IMP] - cancel upcoming line on stop

[IMP] - Chnage next invoice date on un-cancel

[IMP] - Post message in contract on contract line actions

[IMP] - check contract line overlap
2021-04-01 13:53:02 +02:00
sbejaoui
e5672914df [IMP] - Make recurrence mechanism on contract line
Make recurrence mechanism on contract line and some other refactoring

[FIX] - Keep contract_cron on account_analytic_account model

contract_cron defined with no_update option.
Changing it, will cause issue to past version installation.

[IMP] - Fix recurring_next_date default value

recurring_next_date should have start_date as default value in prepaid policy
and start_date + invoicing_interval if postpaid

[FIX] - Fix test check no journal

[IMP] - Return created invoices on recurring_create_invoice

[IMP] - Specific process to compute recurring_next_date for  monthly-last-day

fixes: #198

[ADD] - Add Post-migration script to bring recurrence info from contract to contract lines

[ADD] - Add search filter based on date_end and recurring_next_date

 - not_finished filter in contract search view
 - finished filter in contract search view
 - Next Invoice group by in contract search view

[ADD] - Add unit tests

- cases to compute first recurring next date
- contract recurring_next_date
- contract date_end

[IMP] - Improve Unit tests
2021-04-01 13:53:02 +02:00
Jordi Ballester Alomar
230917136a [FIX] Errors in navigation to customer invoices / vendor bills 2021-04-01 13:53:02 +02:00
sbejaoui
558c12551c [MIG] contract: Migration to 12.0 2021-04-01 13:53:02 +02:00
mreficent
1e32b84b22 [IMP] Make sure it works for sale and purchase contracts 2021-04-01 13:53:02 +02:00
Stefan Becker
73410fe97a [IMP] Add type to analytic account / contract 2021-04-01 13:53:02 +02:00
Pedro M. Baeza
1aef20ba82 [IMP] contract: Automatic prices for lines 2021-04-01 13:53:02 +02:00
Carlos Dauden
9112d35972 [IMP+FIX] contract: Several things:
* [IMP] Add computed dates from/to period invoiced (#140)
* [IMP] Improve partner contract smartbutton
* [FIX] Onchange contract template raise error
* [FIX] Invalid pricelist name
2021-04-01 13:53:02 +02:00
Pedro M. Baeza
f2cd1616f1 [FIX+IMP] contract: Real fix to company_id missing + improvements
* company_id was empty because an onchange, not inheritance nor visibility
* Added multi-company group to company_id fields
* Added multi-company access rule to contract templates
* Fix double %% in XML dates that was causing an error
* When creating a contract, recurring_invoices is set by default
2021-04-01 13:53:02 +02:00
Gustavo Orozco H
e5e211b981 [10.0][FIX] Correct domain attribute in field journal_id (#120)
* Correct domain attribute in field journal_id

Original domain includes unknown value company_id. Throws error when selecting the journal.

* Corregidos errores detectados por Lint

* Refactoring, DRY

* [FIX] Add missing field company_id to account_analytic_contract

* Small refactoring for company_id field
2021-04-01 13:53:02 +02:00
Pedro M. Baeza
06031fcdef [10.0][FIX+IMP] contract: Improve usability and don't fail on wrong data (#130)
* [FIX+IMP] contract: Improve usability and don't fail on wrong data

* Cron create invoices masked for avoiding silent errors
* New constraints for assuring data consistency
* UI helps for entering consistent data
* Spanish translation
* Remove double company_id field on form
2021-04-01 13:53:02 +02:00
Pedro M. Baeza
65ad5bd6eb [IMP] contract: Menu position 2021-04-01 13:53:02 +02:00
Pedro Castro Silva
c868de7779 [IMP] contract: Add display sequence on contract lines (#119) 2021-04-01 13:53:02 +02:00
Carlos Dauden
422afcbda2 [IMP] contract: Module contract improvements (#107) 2021-04-01 13:53:02 +02:00
Pedro M. Baeza
3538b6a552 [FIX] contract: fix views assignment + improvement on tests + copyright in headers
**Be totally deterministic about which views to use**

Having a primary view that is not explicitly declared to be uses and w/o priority
makes Odoo to choose between one of them randomly (well, not exactly, but kind of),
so we put here which views to use.

I have also put tree view as primary and put a large priority for not being
selected on other actions that don't have this explicit views.

A friendly name in views is also assigned.

**Improvements in tests**

* Use SavepointCase for making the setup only once for all tests
* Make them inheritable, creating a base class with only the setup,
  so that it can be inherited without the need of executing all tests
  contained here each time you inherit it, and adding other class
  in the same module that inherits from the base class that actually
  performs the tests.
* Removed duplicated test method
2021-04-01 13:53:02 +02:00
cubells
24de150c83 [IMP][10.0] contract: Add report + send by mail (#86)
* [IMP][9.0] contract: Add report + send by mail

* Update translation and rename contract report

* Changes requested and translation updated
2021-04-01 13:53:02 +02:00
Andrea
4f92db2ab1 Add 'Date of Next Invoice' in contract list view 2021-04-01 13:53:02 +02:00
Dave Lasley
4615a1bd18 [IMP][10.0] contract: Add templating (#42)
Add template functionality for contracts
2021-04-01 13:53:02 +02:00
Pedro M. Baeza
1897314dce [MIG] contract: Migration to version 10.0 2021-04-01 13:53:02 +02:00
Carlos Dauden
671c8b9c3c [IMP] contract: Add past receipt type. Fix yearly. Add month last day 2021-04-01 13:53:02 +02:00
Carlos Incaser
bf72221fb5 [MIG] contract: from v7 to v9 improving features
* Tests added
* Filters added.
* Add _id/_ids in old property fields
* Translations
2021-04-01 13:53:01 +02:00