Repository
OCA/l10n-france · module folder · Try on Runboat
Module version
1.0.0
Category
Invoicing Management
Folder size
0.17 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/l10n-france
Last tracking update
2026-08-07 09:06:34
Authors
Akretion, Odoo Community Association (OCA)
Maintainers
Akretion, Odoo Community Association (OCA)
Committers
Alexis de Lattre, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
pyfrdas2>=0.10, python-stdnum
System dependencies
None
Required by
None
Description
This module adds support for `DAS2
<https://www.impots.gouv.fr/portail/formulaire/das2/etat-des-honoraires-vacations-commissions-courtages-ristournes-et-jetons>`_____,
which is an annual fiscal declaration also called *Déclaration
d'honoraires*. It will allow you to auto-generate the lines of DAS2 from
the accounting entries, check the result, manually update lines if
needed and eventually generate a declaration file. Then send the
declaration file to the French tax office via your professional account
on *impots.gouv.fr*

The specifications of the file are available on [this
page](https://www.impots.gouv.fr/les-cahiers-des-charges-tdbilateral).

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
l10n_fr_das2_form l10n.fr.das2.form l10n.fr.das2 form New
l10n_fr_das2_line_form l10n.fr.das2.line.form l10n.fr.das2.line form New
l10n_fr_das2_line_search l10n.fr.das2.line.search l10n.fr.das2.line search New
l10n_fr_das2_line_tree l10n.fr.das2.line.list l10n.fr.das2.line list New
l10n_fr_das2_search l10n.fr.das2.search l10n.fr.das2 search New
l10n_fr_das2_tree l10n.fr.das2.list l10n.fr.das2 list New
view_partner_property_form l10n.fr.das2.res.partner.form res.partner form Inherits account.view_partner_property_form
view_res_partner_filter l10n.fr.das2.res.partner.search res.partner search Inherits base.view_res_partner_filter
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (3)

New fields (14)
  • attachment_datas Binary
    related='attachment_id.datas' string='Declaration File'
  • attachment_id Many2one → ir.attachment
    readonly=True args: 'ir.attachment'
  • attachment_name Char
    related='attachment_id.name' string='Filename'
  • company_id Many2one → res.company
    default=<expr> ondelete='cascade' required=True args: 'res.company'
  • contact_id Many2one → res.partner
    default=<expr> help='Contact in the company for the fiscal administration: the name, email and phone number of this partner will be used in the file.' string='Administrative Contact' tracking=True args: 'res.partner'
  • currency_id Many2one
    related='company_id.currency_id' store=True string='Company Currency'
  • dads_type Selection
    default=<expr> required=True tracking=True args: [('4', 'La société verse des salaires'), ('1', 'La société ne verse pas de salaires')], 'DADS Type'
  • line_ids One2many → l10n.fr.das2.line
    string='Lines' args: 'l10n.fr.das2.line', 'parent_id'
  • partner_declare_threshold Integer
    compute='_compute_partner_declare_threshold' precompute=True store=True string='Partner Declaration Threshold'
  • payment_journal_ids Many2many → account.journal
    check_company=True compute='_compute_payment_journal_ids' domain="[('company_id', '=', company_id)]" precompute=True readonly=False required=True store=True string='Payment Journals' args: 'account.journal'
  • state Selection
    default='draft' index=True readonly=True tracking=True args: [('draft', 'Draft'), ('done', 'Done')]
  • unencrypted_attachment_id Many2one → ir.attachment
    readonly=True string='Unencrypted Attachment' args: 'ir.attachment'
  • warning_msg Html
    readonly=True
  • year Integer
    default=<expr> index=True required=True tracking=True
Public methods (4)
  • back2draft(self)
  • button_lines_fullscreen(self)
  • done(self)
  • generate_lines(self)

New fields (29)
  • allowance_amount Integer
    string='Indemnités et remboursements'
  • allowance_employer Boolean
    args: "Prise en charge directe par l'employeur"
  • allowance_fixed Boolean
    args: 'Allocation forfaitaire'
  • allowance_real Boolean
    args: 'Sur frais réels'
  • attendance_fee_amount Integer
    string='Jetons de présence'
  • benefits_in_kind_accomodation Boolean
    args: 'Logement'
  • benefits_in_kind_amount Integer
    string='Avantages en nature'
  • benefits_in_kind_car Boolean
    args: 'Voiture'
  • benefits_in_kind_food Boolean
    args: 'Nourriture'
  • benefits_in_kind_nict Boolean
    args: 'Outils issus des NTIC'
  • benefits_in_kind_other Boolean
    args: 'Autres'
  • brokerage_amount Integer
    string='Courtages'
  • commission_amount Integer
    string='Commissions'
  • company_id Many2one
    related='parent_id.company_id' store=True
  • copyright_royalties_amount Integer
    string="Droits d'auteur"
  • currency_id Many2one
    related='parent_id.company_id.currency_id' store=True string='Company Currency'
  • discount_amount Integer
    string='Ristournes'
  • fee_amount Integer
    string='Honoraires et vacations'
  • job Char
    compute='_compute_job' precompute=True readonly=False size=30 store=True string='Profession'
  • licence_royalties_amount Integer
    string="Droits d'inventeur"
  • note Html
  • other_income_amount Integer
    string='Autres rémunérations'
  • parent_id Many2one → l10n.fr.das2
    ondelete='cascade' string='DAS2 Report' args: 'l10n.fr.das2'
  • partner_id Many2one → res.partner
    domain=[('parent_id', '=', False)] ondelete='restrict' required=True string='Supplier' args: 'res.partner'
  • partner_siret Char
    compute='_compute_partner_siret' precompute=True readonly=False size=14 store=True string='SIRET'
  • state Selection
    related='parent_id.state' store=True
  • to_declare Boolean
    compute='_compute_total_amount' readonly=True store=True
  • total_amount Integer
    compute='_compute_total_amount' readonly=True store=True
  • withholding_tax_amount Integer
    string='Retenue à la source'
Public methods (0)

No public methods.

New fields (2)
  • fr_das2_job Char
    help="Used in the field 'Profession' of DAS2." size=30 string='DAS2 Job'
  • fr_das2_type Selection
    string='DAS2 Type' tracking=100 args: [('fee', 'Honoraires et vacations'), ('commission', 'Commissions'), ('brokerage', 'Courtages'), ('discount', 'Ristournes'), ('attendance_fee', 'Jetons de présence'), ('copyright_royalties', "Droits d'auteur"), ('licence_royalties', "Droits d'inventeur"), ('other_income', 'Autres rémunérations'), ('allowance', 'Indemnités et remboursements')]
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…