Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
313 commits
Select commit Hold shift + click to select a range
5ce189f
[FIX] Contract to Invoice: take contract vendor instead of partner's
ThomasBinsfeld Feb 20, 2019
836c447
[REF+FIX+IMP] contract: Several things
sbejaoui Feb 28, 2019
9a3522f
[IMP]pass the payment term to the contract from the partner
AaronHForgeFlow May 28, 2019
143fd9a
[REF] contract: Several things
ThomasBinsfeld May 28, 2019
fc19914
[IMP] - Make one migration from 12.0.1 to 12.0.4
sbejaoui Jul 15, 2019
b8e9b6a
[FIX+IMP+MIG] contract: Several refinements:
pedrobaeza Sep 13, 2019
d2891af
Translated using Weblate (Chinese (Simplified))
liweijie0812 Sep 17, 2019
92024f1
[MIG+FIX] contract: Missing pieces for moving info from analytic acco…
pedrobaeza Sep 18, 2019
4310bd4
Add commercial_partner_id fields into contract module
hparfr Aug 14, 2019
61e7968
Translated using Weblate (Italian)
eLBati Oct 8, 2019
5008804
[MIG] contract: Assign old partner's salesman to migrated contracts
pedrobaeza Oct 8, 2019
934528b
Translated using Weblate (German)
marylla Oct 9, 2019
5cafaaa
[12.0][FIX] contract & contract_sale - security fix
enriquemartin Oct 9, 2019
fc2cc14
Translated using Weblate (Catalan)
albertpons Oct 9, 2019
7eef57b
Translated using Weblate (Portuguese (Brazil))
britoederr Oct 10, 2019
12cd302
[MIG] contract: Missing renaming of invoice link
pedrobaeza Oct 15, 2019
2144cc2
Translated using Weblate (Chinese (Simplified))
liweijie0812 Oct 16, 2019
15a7608
[MIG] contract: Create contract sequence for allowing to create records
pedrobaeza Oct 23, 2019
1c872c3
Translated using Weblate (Dutch)
thomaspot Oct 23, 2019
fe4fd0a
[IMP+FIX] contract: Add multi-company access rule for contract object…
sbejaoui Oct 25, 2019
518bd66
Translated using Weblate (German)
rschnapka Oct 29, 2019
3ea5dd1
Translated using Weblate (Spanish)
josepmy Oct 29, 2019
8d5ec61
[FIX] contract: Fix performance issue on contract line read + Fix con…
sbejaoui Oct 30, 2019
69f3d0a
[MIG] contract: No contract on AA without recurring invoices flag
pedrobaeza Nov 11, 2019
190f738
Translated using Weblate (Croatian)
badbole Nov 12, 2019
517417c
[IMP] contract: Fix test crash with other modules
sergio-teruel Nov 14, 2019
8b575bb
[MIG][FIX] contract: Move contracts, but disable them
pedrobaeza Nov 18, 2019
06a3585
Translated using Weblate (Croatian)
badbole Dec 2, 2019
167d0b3
[12.0][FIX] - Run onchange contract_type when changing the contract t…
sbejaoui Nov 26, 2019
3149202
[FIX] contract: Don't execute onchange after invoice creation + Tests…
pedrobaeza Dec 2, 2019
03c16c5
[REF] contract: Several refactorings
sbidoul Dec 6, 2019
069f5df
Translated using Weblate (French)
Martronic-SA Dec 6, 2019
63a8d4f
[REF+FIX+IMP] contract: Several refactorings + fixes + imps
sbidoul Dec 6, 2019
8b6e80c
[FIX+REF] contract: Improve unit tests + add unit test for different …
sbejaoui Dec 9, 2019
a404873
[IMP] contract: display invoicing offset
sbidoul Dec 9, 2019
7b85e52
Translated using Weblate (Portuguese (Brazil))
augustodinizl Dec 16, 2019
aa3d8d9
[IMP+FIX] contract: Several things
sbejaoui Dec 21, 2019
efe3926
Translated using Weblate (Italian)
scigghia Dec 26, 2019
dfbe904
[IMP+FIX] contract: Add failing test for wrong invoicing date after c…
sbejaoui Dec 19, 2019
6b6384f
[FIX] contract: Handle properly multi-company setups
pedrobaeza Jan 8, 2020
28d4be2
Translated using Weblate (French)
gregory-moka Jan 9, 2020
99d8bbb
Added translation using Weblate (Spanish (Chile))
Jan 17, 2020
46111a5
Translated using Weblate (Spanish)
Jan 17, 2020
de65d9b
Translated using Weblate (French)
qgroulard Jan 21, 2020
f6c4e99
[IMP] contract: remove redundant method
pedrobaeza Jan 8, 2020
8d23f07
[12.0][IMP] - Add an action for contracts manual invoicing
sbejaoui Nov 13, 2019
256377c
Translated using Weblate (Italian)
Feb 4, 2020
507f398
Translated using Weblate (Portuguese (Brazil))
marcelsavegnago Feb 12, 2020
81650b0
Translated using Weblate (Finnish)
jarmokortetjarvi Feb 13, 2020
1f30b5f
Translated using Weblate (Portuguese)
pedrocs-exo Feb 17, 2020
de5eb66
Translated using Weblate (Finnish)
jarmokortetjarvi Feb 26, 2020
40dc3a6
[IMP] contract: add analytic_tag_ids field in contract lines
Feb 28, 2020
e619bd0
[IMP] contract: Improve partner With running contracts search view fi…
sbejaoui Feb 12, 2020
b0580ca
Translated using Weblate (French)
svalaeys Mar 17, 2020
ee16456
[IMP] - Add contract tags
sbejaoui Oct 24, 2019
d33ddeb
Set company_id earlier in the invoice preparation process so that _on…
svalaeys Mar 23, 2020
bc5dad2
Translated using Weblate (Spanish)
Mar 25, 2020
572a67f
[FIX] contract: Delete cascade line wizard
pedrobaeza Apr 1, 2020
2dad356
[IMP] - Place id attribute before model
sbejaoui Apr 2, 2020
e43e2b8
[IMP] contract: add section and notes in contract line
Mar 17, 2020
d68254f
[FIX+IMP] contract: improve test coverage with new sections + fix sea…
pedrobaeza Apr 14, 2020
b8c9ef7
Translated using Weblate (German)
marylla May 6, 2020
58e6d4d
[FIX] contract: Select the correct sections/notes to be invoiced
Apr 28, 2020
25d56a7
[IMP] - Contract: add new recurring_rule_type quarterly and semesterly
sbejaoui Apr 14, 2020
3f9e4d9
Translated using Weblate (Spanish)
JorgeQuinteros May 21, 2020
49d5b5f
[FIX] contract: Currency is not editable + pricelist from partner
pedrobaeza Jun 2, 2020
d6e2c6c
Translated using Weblate (Portuguese (Brazil))
fcolus Jun 16, 2020
af76c76
Translated using Weblate (Spanish)
pedrobaeza Jun 17, 2020
3a19714
[FIX] contract: do not die if modified partner has contracts in sever…
Jun 25, 2020
0c3e769
[IMP] contract: Allow to set a manual currency
pedrobaeza Jun 5, 2020
a730050
Translated using Weblate (Slovenian)
sysadminmatmoz Jun 30, 2020
7e45401
[FIX] contract: multi-company assignment notification
Jul 28, 2020
65bb3c9
[12.0][FIX] - fiscal position, payment mode and pricelist obtained ac…
sbejaoui Aug 17, 2020
68d8acd
[IMP] : black, isort, prettier
pedrobaeza Jul 13, 2020
38b5dd8
[MIG] contract: Migration to 13.0
pedrobaeza Jul 14, 2020
a07a98e
[IMP+REF] contract: Allow to set recurrency at header level
pedrobaeza Jul 14, 2020
1936f55
[13.0][FIX] contract: Recompute recurring next date
rousseldenis Sep 9, 2020
d8b8dd8
[IMP] contract: Set a condicion to avoid create lines on invoices
CarlosRoca13 Oct 28, 2020
c2bd537
[FIX] contract: Only include 'section_and_note_one2many' js widget in…
victoralmau Nov 4, 2020
c5baf50
Translated using Weblate (Spanish (Argentina))
ibuioli Nov 22, 2020
7d59192
[IMP] contract: Add followers to invoices created
victoralmau Nov 30, 2020
77c1af6
Translated using Weblate (Dutch)
bosd Dec 15, 2020
f6f5f20
Translated using Weblate (Spanish (Argentina))
ibuioli Dec 22, 2020
542e74c
[IMP] contract: Portal
victoralmau Dec 16, 2020
330ee65
[IMP] contract: JS tour on test assets
pedrobaeza Dec 25, 2020
76ed109
[IMP] contract: Add contract modification + contract: Add fields to c…
victoralmau Dec 28, 2020
794722c
Translated using Weblate (Spanish (Argentina))
ibuioli Jan 10, 2021
057a03c
[FIX] contract: Modification mail + Auto-create follower in contract …
victoralmau Jan 4, 2021
4d72d09
[13.0][FIX] contract: Impossible to create invoices from contract lin…
rousseldenis Jan 31, 2021
eac2aac
[FIX] contract: Error in test_contract_invoice_followers
victoralmau Feb 2, 2021
68f2643
[FIX] contract: remove groupby if it is in context + consistency betw…
Feb 15, 2021
62d31d4
[13.0][FIX] contract: consistency between contract count and contract…
newtratip Feb 23, 2021
df91da4
[OU-FIX] contract: Don't alter v12 recurrence mechanism + Transfer co…
pedrobaeza Feb 27, 2021
a6a4c84
[FIX] contract: Changed modification_mail auto to appear like email a…
victoralmau Mar 17, 2021
ab7ebfb
[IMP] contract: black, isort, prettier
ozono Apr 1, 2021
09d24ef
[MIG] contract: Migration to 14.0
ozono Apr 2, 2021
168d20c
[FIX] contract: restore readme images
ozono Apr 4, 2021
f9d0815
Added translation using Weblate (French (France))
Yvesldff Apr 11, 2021
eccf008
Translated using Weblate (Dutch)
bosd Apr 18, 2021
00f6b92
[FIX] contract: Don't change period start date having line recurrence
pedrobaeza May 18, 2021
546d5d0
[13.0][FIX] contract: Set layout for section and note in portal template
rousseldenis Apr 30, 2021
a28e17b
[IMP] contract: Improve code to show recurring_rule_type from contrac…
victoralmau May 24, 2021
f9be0b1
Translated using Weblate (Spanish (Argentina))
ibuioli May 30, 2021
2c796bb
Translated using Weblate (Spanish (Argentina))
ibuioli Jun 14, 2021
5a7aa2e
[FIX] contract: Cleanup values on line when invoicing
pedrobaeza Jul 1, 2021
48ba8f5
Translated using Weblate (Turkish)
tate11 Aug 5, 2021
50bbaca
[FIX] contract: fix an obvious crash when self is a multi-recordset
alexis-via Aug 30, 2021
e88c38b
[FIX] contract: Fix invoice creation and salesperson assignment
joao-p-marques Sep 10, 2021
799e126
Translated using Weblate (Catalan)
pere-aquarian Sep 13, 2021
de17ee4
Translated using Weblate (Portuguese)
pedrocs-exo Oct 25, 2021
534fef7
[IMP] contract: black, isort, prettier
jcdrubay Oct 28, 2021
1b84e36
[MIG] contract: Migration to 15.0
jcdrubay Oct 28, 2021
dd5cf92
[FIX] contract: Avoid error in invoicing contracts crone
manuelregidor Oct 29, 2021
6a95551
[15.0][IMP] modify production beta to stable
JoanMForgeFlow Jan 25, 2022
2458ca8
[IMP] contract: Add discount + price_subtotal fields to the contract …
victoralmau Jan 25, 2022
cb50fc0
ADJ: When generating invoices from the Wizard to create invoices manu…
jcdrubay Feb 11, 2022
fee6fe9
Translated using Weblate (Catalan)
Noel000 Feb 25, 2022
6ee473f
Translated using Weblate (Spanish (Argentina))
ibuioli Feb 26, 2022
5a5f706
[FIX+IMP] contract: Several things
rousseldenis Feb 25, 2022
22a77ac
Translated using Weblate (Catalan)
juliap98 Apr 7, 2022
f7efde8
Translated using Weblate (Turkish)
tate11 Apr 19, 2022
9cbfeee
[FIX] contract: add default_move_type in context
mariadforgeflow May 23, 2022
afaebed
[FIX+IMP] contract: lots of things
rousseldenis Nov 3, 2021
1a34bea
[FIX] contract: change where security is given to group_account_invoi…
albariera Oct 7, 2021
e415b74
[FIX] contract: Remove noupdate in mail template data
joao-p-marques Jun 7, 2021
2e62d12
Translated using Weblate (Spanish (Argentina))
ibuioli Jun 29, 2022
644f2b9
Translated using Weblate (French)
gregory-moka Jul 4, 2022
e3a966f
[15.0][IMP] contract : show tags with colors in the contract
chandni299 Jul 27, 2022
de15465
Translated using Weblate (Spanish (Argentina))
ibuioli Aug 2, 2022
07c7715
Translated using Weblate (French)
gregory-moka Aug 17, 2022
0508e3a
Translated using Weblate (German)
wpichler Aug 22, 2022
6ecf42c
[IMP] contract: Use _prepare_home_portal_values() function.
victoralmau Sep 2, 2022
bcc3537
Translated using Weblate (Portuguese (Brazil))
douglascstd Sep 26, 2022
3079745
Translated using Weblate (Spanish)
pere-aquarian Oct 10, 2022
b9cd8ca
[IMP] contract: Set invoice_user_id field with Form() to apply the co…
victoralmau Oct 18, 2022
7a7a12d
[IMP] Add link to contract in invoice chatter
Sep 21, 2022
84df535
[FIX] contract: bug onchange date_start (comparison between bool and …
mourad-ehm May 13, 2022
3388084
[IMP] contract: Set fixed start dates in test contracts
victoralmau Dec 1, 2022
36f8525
[FIX] contract: Switch string > title in buttons
pedrobaeza Nov 3, 2022
7052fab
[MIG] contract: Migration to 16.0
wpichler Oct 24, 2022
89d0124
Translated using Weblate (Italian)
francesco-ooops Jul 12, 2023
f83cea2
Translated using Weblate (Italian)
mymage Jul 13, 2023
f37372a
Added translation using Weblate (Catalan (ca_ES))
miquelalzanillas Jul 18, 2023
0e8843e
Translated using Weblate (German)
NICO-SOLUTIONS Jul 19, 2023
86f0b82
[IMP] contract: Make portal link configurable
Jul 26, 2023
c94d050
Translated using Weblate (Italian)
mymage Aug 1, 2023
ee4a494
Translated using Weblate (Spanish)
Ivorra78 Aug 2, 2023
aece819
Translated using Weblate (Italian)
mymage Aug 22, 2023
2103a79
Translated using Weblate (Spanish)
Ivorra78 Sep 4, 2023
d84c6b7
[16.0][FIX] contract: invoice message create
carolinafernandez-tecnativa Oct 9, 2023
e97928c
Translated using Weblate (Italian)
mymage Oct 12, 2023
ee724fa
Translated using Weblate (Portuguese (Brazil))
adrianojprado Oct 13, 2023
a809594
[FIX] No contract line and invoices when contract is archived
fkantelberg Jan 24, 2023
0f5413c
Translated using Weblate (Italian)
mymage Oct 23, 2023
8459867
Translated using Weblate (Portuguese (Brazil))
adrianojprado Oct 28, 2023
348dd7a
Translated using Weblate (Italian)
mymage Oct 31, 2023
d553706
Translated using Weblate (Italian)
alessandro-fiorino Nov 8, 2023
ec94519
[FIX] contract: removed dateutil from dependencies
Nov 8, 2023
b31b796
Translated using Weblate (Italian)
alessandro-fiorino Nov 8, 2023
8ae7181
Translated using Weblate (Dutch)
ThijsvOers Nov 14, 2023
c98b6fa
Translated using Weblate (Italian)
mymage Nov 14, 2023
9dbb827
Translated using Weblate (Italian)
francesco-ooops Dec 15, 2023
12b8f5e
Translated using Weblate (French)
remi-filament Dec 20, 2023
46ca7a4
Translated using Weblate (Italian)
mymage Dec 24, 2023
1733cf6
[FIX] Show analytic distribution and hide analytic account
fkantelberg Nov 7, 2023
49bdb15
[MIG] contract: Remove analytic_account_id and add migration
fkantelberg Jan 4, 2024
c4511b2
Translated using Weblate (Italian)
mymage Jan 25, 2024
d2bcc43
[FIX] contract: Change web_ribbon text to title to make it translatable
victoralmau Jan 30, 2024
3e80129
[FIX] contract: Move migration to post migration
fkantelberg Feb 1, 2024
d986c93
[16.0] contract: Show discount lines for users with the group 'Discou…
fkantelberg Feb 9, 2024
dcb2fdd
[IMP] contract: Protect line recurrrency change
pedrobaeza Jan 9, 2024
a1ed198
Translated using Weblate (Italian)
mymage Feb 20, 2024
fdd9180
[16.0][IMP] contract and contract_sale_generation: Add translations
aliciagaarzo Mar 11, 2024
abd2b65
Translated using Weblate (French)
houzefa-abba Mar 13, 2024
1dfd0b4
[FIX] contract: Fix modifications layout
pedrobaeza Mar 14, 2024
dea4b29
[IMP] contract: Remove buttons from contract lines if recurrence is n…
victoralmau Mar 12, 2024
26c45f3
Translated using Weblate (Italian)
francesco-ooops Mar 20, 2024
f7574d7
[16.0][IMP] contract: improve visual
aliciagaarzo Mar 21, 2024
dc5a578
[16.0][IMP] contract and contract_variable_quantity: improve visual o…
aliciagaarzo Apr 1, 2024
9b2d0ed
[IMP] contract: black, isort, prettier
CRogos Mar 23, 2024
6cdba87
[MIG] contract: Migration to 17.0
CRogos Mar 27, 2024
e5c1acf
Translated using Weblate (Italian)
mymage Apr 11, 2024
52a1ea7
[17.0][IMP] contract: solve error for last_date_invoiced field
aliciagaarzo Apr 15, 2024
338ef91
[17.0][FIX] contract: report translations & change structure
peluko00 Apr 23, 2024
f90cd22
Translated using Weblate (Spanish)
Ivorra78 Apr 24, 2024
47b2ccc
Translated using Weblate (Italian)
mymage May 6, 2024
062b17f
Translated using Weblate (Italian)
mymage May 30, 2024
79953bc
Translated using Weblate (Swedish)
jakobkrabbe Jun 5, 2024
bd3271c
Translated using Weblate (Italian)
mymage Jul 29, 2024
3da3474
[FIX] contract: Fix error when sending contract by email
carolinafernandez-tecnativa Aug 12, 2024
be934c8
Translated using Weblate (Spanish)
pedrobaeza Aug 12, 2024
59b7ee3
Translated using Weblate (Italian)
mymage Aug 20, 2024
dd4765c
Translated using Weblate (Italian)
mymage Aug 26, 2024
7d1c79d
Translated using Weblate (Italian)
mymage Aug 29, 2024
93d99e5
[FIX] contract: Link format error for messages posted when creates ma…
sergio-teruel Sep 3, 2024
c59ba1a
Translated using Weblate (Italian)
mymage Sep 9, 2024
8530f13
Translated using Weblate (Finnish)
jarmokortetjarvi Sep 23, 2024
51cded2
[FIX] contract : ignore date constraint for a note
florian-dacosta Dec 3, 2024
1e5a76e
[IMP] Add INVOICEMONTHNAME marker to line description
stenext May 8, 2023
9be6b43
[I18N] contract: Spanish translations
victoralmau Dec 5, 2024
42d5467
Translated using Weblate (Italian)
mymage Dec 6, 2024
2f7291f
[FIX] contract: link contract instead of move
carlos-lopez-tecnativa Dec 24, 2024
64ce418
[IMP] contract: Use %m instead of %B to obtain month
victoralmau Dec 20, 2024
014a063
[IMP] contract: Add contract lines entry point for reporting
rousseldenis May 15, 2022
1280838
Translated using Weblate (Spanish)
victoralmau Jan 10, 2025
446ef13
[IMP] contract: Terminate contract lines with last_date_invoiced if i…
sergio-teruel Jan 9, 2025
fcaf2aa
Translated using Weblate (Italian)
mymage Jan 10, 2025
52a93fe
Translated using Weblate (Italian)
mymage Jan 11, 2025
e1454f6
[IMP] contract Report correction, prevent unintended styling when usi…
arielbarreiros96 Jan 10, 2025
d1a586e
[FIX] contract: Invoice creation message translatable
pedrobaeza Feb 1, 2025
c6b7f74
Translated using Weblate (Italian)
mymage Feb 13, 2025
09b38c7
[FIX]contract: Malformed expression in the column_invisible attribute.
adasatorres Feb 13, 2025
e77181f
Translated using Weblate (Chinese (Traditional) (zh_TW))
tekvinci Mar 2, 2025
1870f73
Translated using Weblate (Spanish)
pedrobaeza Mar 2, 2025
03fab64
Translated using Weblate (Italian)
mymage Mar 26, 2025
2a77e3c
Translated using Weblate (Turkish)
bo-eska Apr 15, 2025
5dab242
Translated using Weblate (Turkish)
bo-eska Apr 17, 2025
883ec74
[IMP] contract: Adapting portal contract design to odoo style
pilarvargas-tecnativa Apr 22, 2025
4396b36
[FIX] contract: Don't lose modification email layout
pedrobaeza May 6, 2025
bb92010
Translated using Weblate (Catalan)
pere-aquarian May 27, 2025
a7eea25
[18.0][MIG] contract
sbejaoui Nov 4, 2024
68b1763
[REF] split contract module into: contract, contract_line_successor, …
sbejaoui Apr 16, 2025
332b832
[IMP] contract: Change `automatic_price` fields to stored
rousseldenis Jun 3, 2025
bb990ca
[IMP] contract: Remove duplicate compute function for `price_unit` field
rousseldenis Jun 3, 2025
b809ec9
[IMP] contract: Reintroduce comment about onchanges on _inverse methods
rousseldenis Jun 3, 2025
672d1fc
[IMP] contract: Remove onchange on `product_id`
rousseldenis Jun 3, 2025
2c40eeb
[IMP] contract: Use account.journal `_check_company_domain()` to get …
rousseldenis Jun 3, 2025
9da6c99
[IMP] contract: Remove wrong api.model decorators + use Environment t…
rousseldenis Jun 3, 2025
72b1564
[IMP] contract: remove blocking view in migration script
CRogos Jun 4, 2025
8ec65cb
Translated using Weblate (Italian)
mymage Jun 5, 2025
5cc496c
[IMP] contract and product_contract: pre-commit auto fixes
Anxo82 Jun 16, 2025
2366a35
Update translation files
weblate Jun 20, 2025
7f9f2d0
Translated using Weblate (Italian)
mymage Jun 23, 2025
a03a163
[IMP] contract: make label for notes visible on contract view form
glitchov Jun 30, 2025
18549c2
Translated using Weblate (Italian)
mymage Jul 7, 2025
1543431
[FIX] contract: Remove test flag from contract because of "unknown ke…
CRogos Jul 18, 2025
0a17bfb
[OU-FIX] contract: migration scripts
MiquelRForgeFlow Jul 28, 2025
65e47e4
[IMP] Contract line: compute display name
qgroulard Aug 4, 2025
b162c66
Translated using Weblate (Swedish)
jakobkrabbe Aug 5, 2025
255366d
[FIX] contract.recurring_create_invoice: Add ensure_one
tobiaszehntner Sep 11, 2025
c147bb4
[IMP] contract: skip assignment when value unchanged to avoid trigger…
sbejaoui Sep 23, 2025
ecbbdd8
[FIX] contract: automatic pricing should resptect pricelist quantity-…
RicardCForgeFlow Nov 19, 2025
666f4df
[18.0][IMP] contract: hook for line is invoiceable
tobiaszehntner Nov 18, 2025
8fbc8ed
[IMP] contract: compute group_id based on analytic accounts in contra…
carlos-lopez-tecnativa Oct 2, 2025
118be9d
[IMP] contract: store additional fields for analysis purposes
carlos-lopez-tecnativa Nov 24, 2025
8cb1e26
[IMP] contract: enhance search filters and add a pivot view for contr…
carlos-lopez-tecnativa Nov 24, 2025
f133b55
[FIX] contract: Avoid the error when accessing the portal if the user…
victoralmau Nov 28, 2025
1bdd848
[FIX] contract: Visual hint for cancelled lines in portal
pedrobaeza Dec 6, 2025
b462945
[IMP] contract: pre-commit auto fixes
BhaveshHeliconia Oct 1, 2025
974db1c
[MIG] contract: Migration to 19.0
BhaveshHeliconia Oct 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
180 changes: 180 additions & 0 deletions contract/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

================================
Recurring - Contracts Management
================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:9113fca91ae857348dfcda39b18ae300714b6e728492df9b1df80bfcf95f3ce6
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fcontract-lightgray.png?logo=github
:target: https://github.com/OCA/contract/tree/19.0/contract
:alt: OCA/contract
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/contract-19-0/contract-19-0-contract
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/contract&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module enables contracts management with recurring invoicing
functions. Also you can print and send by email contract report.

It works for customer contract and supplier contracts.

Contracts are shown in portal.

**Table of contents**

.. contents::
:local:

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

To view discount field in contract line, you need to set *Discount on
lines* in user access rights.

Contracts can be viewed on the portal (list and detail) if the user
logged into the portal is a follower of the contract.

Usage
=====

1. Contracts are in Invoicing -> Customers -> Customer and Invoicing ->
Vendors -> Supplier Contracts
2. When creating a contract, fill fields for selecting the invoicing
parameters:

- a journal
- a price list (optional)

3. And add the lines to be invoiced with:

- the product with a description, a quantity and a price
- the recurrence parameters: interval (days, weeks, months, months
last day or years), start date, date of next invoice (automatically
computed, can be modified) and end date (optional)
- auto-price, for having a price automatically obtained from the
price list
- #START# - #END# or #INVOICEMONTHNAME# in the description field to
display the start/end date or the start month of the invoiced
period in the invoice line description
- pre-paid (invoice at period start) or post-paid (invoice at start
of next period)

4. The "Generate Recurring Invoices from Contracts" cron runs daily to
generate the invoices. If you are in debug mode, you can click on the
invoice creation button.
5. The *Show recurring invoices* shortcut on contracts shows all
invoices created from the contract.
6. The contract report can be printed from the Print menu
7. The contract can be sent by email with the *Send by Email* button
8. Contract templates can be created from the Configuration -> Contracts
-> Contract Templates menu. They allow to define default journal,
price list and lines when creating a contract. To use it, just select
the template on the contract and fields will be filled automatically.

- Contracts appear in portal to following users in every contract:

|image|

|image1|

|image2|

.. |image| image:: https://raw.githubusercontent.com/OCA/contract/19.0/contract/static/src/screenshots/portal-my.png
.. |image1| image:: https://raw.githubusercontent.com/OCA/contract/19.0/contract/static/src/screenshots/portal-list.png
.. |image2| image:: https://raw.githubusercontent.com/OCA/contract/19.0/contract/static/src/screenshots/portal-detail.png

Known issues / Roadmap
======================

- Recover states and others functional fields in Contracts.
- Add recurrence flag at template level.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/contract/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/contract/issues/new?body=module:%20contract%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Tecnativa
* ACSONE SA/NV

Contributors
------------

- Angel Moya <angel.moya@domatix.com>

- Dave Lasley <dave@laslabs.com>

- Miquel Raïch <miquel.raich@eficent.com>

- Souheil Bejaoui <souheil.bejaoui@acsone.eu>

- Thomas Binsfeld <thomas.binsfeld@acsone.eu>

- Guillaume Vandamme <guillaume.vandamme@acsone.eu>

- Raphaël Reverdy <raphael.reverdy@akretion.com>

- `Tecnativa <https://www.tecnativa.com>`__:

- Pedro M. Baeza
- Carlos Dauden
- Vicent Cubells
- Rafael Blasco
- Víctor Martínez

- Iván Antón <ozono@ozonomultimedia.com>

- `APSL <https://www.apsl.tech>`__:

- Antoni Marroig <amarroig@apsl.net>

- `Heliconia Solutions Pvt. Ltd. <https://www.heliconia.io>`__

- Bhavesh Heliconia

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/contract <https://github.com/OCA/contract/tree/19.0/contract>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions contract/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import controllers
from . import models
from . import wizards
48 changes: 48 additions & 0 deletions contract/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Copyright 2004-2010 OpenERP SA
# Copyright 2014-2018 Tecnativa - Pedro M. Baeza
# Copyright 2015 Domatix
# Copyright 2016-2018 Tecnativa - Carlos Dauden
# Copyright 2017 Tecnativa - Vicent Cubells
# Copyright 2016-2017 LasLabs Inc.
# Copyright 2018-2019 ACSONE SA/NV
# Copyright 2020-2021 Tecnativa - Pedro M. Baeza
# Copyright 2020 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).


{
"name": "Recurring - Contracts Management",
"version": "19.0.1.0.0",
"category": "Contract Management",
"license": "AGPL-3",
"author": "Tecnativa, ACSONE SA/NV, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/contract",
"depends": ["base", "account", "product", "portal"],
"development_status": "Production/Stable",
"data": [
"security/contract_tag.xml",
"security/ir.model.access.csv",
"security/contract_security.xml",
"report/report_contract.xml",
"report/contract_views.xml",
"data/contract_cron.xml",
"data/mail_template.xml",
"data/template_mail_notification.xml",
"data/mail_message_subtype.xml",
"data/ir_ui_menu.xml",
"views/contract_tag.xml",
"views/contract_template.xml",
"views/contract_template_line.xml",
"views/contract.xml",
"views/contract_line.xml",
"views/res_partner_view.xml",
"views/res_config_settings.xml",
"views/contract_portal_templates.xml",
"wizards/contract_manually_create_invoice.xml",
],
"assets": {
"web.assets_frontend": ["contract/static/src/scss/frontend.scss"],
"web.assets_tests": ["contract/static/src/js/contract_portal_tour.esm.js"],
},
"installable": True,
}
3 changes: 3 additions & 0 deletions contract/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import main
110 changes: 110 additions & 0 deletions contract/controllers/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Copyright 2020-2022 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import http
from odoo.exceptions import AccessError, MissingError
from odoo.http import request

from odoo.addons.portal.controllers.portal import CustomerPortal
from odoo.addons.portal.controllers.portal import pager as portal_pager


class PortalContract(CustomerPortal):
def _prepare_home_portal_values(self, counters):
values = super()._prepare_home_portal_values(counters)
if "contract_count" in counters:
contract_model = request.env["contract.contract"]
contract_count = (
contract_model.search_count([])
if contract_model.has_access("read")
else 0
)
values["contract_count"] = contract_count
return values

def _contract_get_page_view_values(self, contract, access_token, **kwargs):
values = {
"page_name": "Contracts",
"contract": contract,
}
return self._get_page_view_values(
contract, access_token, values, "my_contracts_history", False, **kwargs
)

def _get_filter_domain(self, kw):
return []

@http.route(
["/my/contracts", "/my/contracts/page/<int:page>"],
type="http",
auth="user",
website=True,
)
def portal_my_contracts(
self, page=1, date_begin=None, date_end=None, sortby=None, **kw
):
values = self._prepare_portal_layout_values()
contract_obj = request.env["contract.contract"]
# Avoid error if the user does not have access.
if not contract_obj.has_access("read"):
return request.redirect("/my")
domain = self._get_filter_domain(kw)
searchbar_sortings = {
"date": {
"label": request.env._("Date"),
"order": "recurring_next_date desc",
},
"name": {"label": request.env._("Name"), "order": "name desc"},
"code": {"label": request.env._("Reference"), "order": "code desc"},
}
# default sort by order
if not sortby:
sortby = "date"
order = searchbar_sortings[sortby]["order"]
# count for pager
contract_count = contract_obj.search_count(domain)
# pager
pager = portal_pager(
url="/my/contracts",
url_args={
"date_begin": date_begin,
"date_end": date_end,
"sortby": sortby,
},
total=contract_count,
page=page,
step=self._items_per_page,
)
# content according to pager and archive selected
contracts = contract_obj.search(
domain, order=order, limit=self._items_per_page, offset=pager["offset"]
)
request.session["my_contracts_history"] = contracts.ids[:100]
values.update(
{
"date": date_begin,
"contracts": contracts,
"page_name": "Contracts",
"pager": pager,
"default_url": "/my/contracts",
"searchbar_sortings": searchbar_sortings,
"sortby": sortby,
}
)
return request.render("contract.portal_my_contracts", values)

@http.route(
["/my/contracts/<int:contract_contract_id>"],
type="http",
auth="public",
website=True,
)
def portal_my_contract_detail(self, contract_contract_id, access_token=None, **kw):
try:
contract_sudo = self._document_check_access(
"contract.contract", contract_contract_id, access_token
)
except (AccessError, MissingError):
return request.redirect("/my")
values = self._contract_get_page_view_values(contract_sudo, access_token, **kw)
return request.render("contract.portal_contract_page", values)
12 changes: 12 additions & 0 deletions contract/data/contract_cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record model="ir.cron" id="contract_cron_for_invoice">
<field name="name">Generate Recurring Invoices from Contracts</field>
<field name="model_id" ref="model_contract_contract" />
<field name="state">code</field>
<field name="code">model.cron_recurring_create_invoice()</field>
<field name="user_id" ref="base.user_root" />
<field name="interval_number">1</field>
<field name="interval_type">days</field>
</record>
</odoo>
9 changes: 9 additions & 0 deletions contract/data/ir_ui_menu.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<menuitem
id="menu_config_contract"
name="Contracts"
sequence="1"
parent="account.menu_finance_configuration"
/>
</odoo>
15 changes: 15 additions & 0 deletions contract/data/mail_message_subtype.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="mail_message_subtype_invoice_created" model="mail.message.subtype">
<field name="name">Invoice created</field>
<field name="res_model">contract.contract</field>
</record>
<record
id="mail_message_subtype_contract_modification"
model="mail.message.subtype"
>
<field name="name">Contract modifications</field>
<field name="res_model">contract.contract</field>
<field name="default" eval="False" />
</record>
</odoo>
Loading