diff --git a/models/__init__.py b/models/__init__.py index 98a507251a1e056c783e460702d12f862c8eef9d..c34981509f9c6ecfd42f18c4df619cc48a4f5832 100755 --- a/models/__init__.py +++ b/models/__init__.py @@ -5,6 +5,7 @@ from . import account_invoice from . import res_company from . import res_config_settings from . import scop_bordereau_cg +from . import scop_bordereau_cg_version from . import scop_cotisation_simulation from . import scop_liasse_fiscale from . import scop_cotisation_cg diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py index 75c5578070416425f8776aeb9023eb0b0d2b8247..368513e9d39159a37ac747fbaef7cabb8dbee740 100644 --- a/models/scop_bordereau_cg.py +++ b/models/scop_bordereau_cg.py @@ -188,6 +188,13 @@ class Bordereau(models.Model): # compute='_compute_emails' # ) + # Historique des versions + bordereau_version_ids = fields.One2many( + comodel_name='scop.bordereau.version', + inverse_name='bordereau_id', + string='Historique' + ) + # ------------------------------------------------------ # Compute # ------------------------------------------------------ diff --git a/models/scop_bordereau_cg_version.py b/models/scop_bordereau_cg_version.py new file mode 100644 index 0000000000000000000000000000000000000000..b84002b2a9c82c777b86694dd27db217c5c00af7 --- /dev/null +++ b/models/scop_bordereau_cg_version.py @@ -0,0 +1,53 @@ +# © 2021 Le Filament (<http://www.le-filament.com>) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from datetime import timedelta + +from odoo import fields, models + + +class BordereauVersion(models.Model): + _name = 'scop.bordereau.version' + _description = 'Historique des versions des bordereaux des cotisations CG' + + bordereau_id = fields.Many2one( + comodel_name='scop.bordereau', + string='Bordereau de rattachement', + required=True, + readonly=True, + ondelete='cascade') + name = fields.Char('Nom') + liasse_fiscale_id_old = fields.Many2one( + comodel_name='scop.liasse.fiscale', + string='Ancienne liasse fiscale', + ondelete='set null' + ) + type_assiette = fields.Selection( + string='Ancien type d\'assiette', + selection=[('ca', 'CA'), + ('va', 'VA'), ]) + date = fields.Date('Date') + montant_assiette = fields.Integer( + string='Ancien montant assiette',) + company_currency_id = fields.Many2one( + related='bordereau_id.company_currency_id') + amount_total_cotiz = fields.Monetary( + string='Ancien montant cotisation', + currency_field='company_currency_id',) + state = fields.Boolean('Validée', default=False) + + # ------------------------------------------------------ + # Compute + # ------------------------------------------------------ + # @api.depends('liasse_fiscale_id') + # @api.multi + # def _compute_values_calculation(self): + # for r in self: + # if r.liasse_fiscale_id: + # liasse = r.liasse_fiscale_id + # r.ca = liasse.revenue_cgsubv + # r.va = r.base_cotisation_cg.get_va(liasse) + # r.net_results = liasse.L2053_HN \ + # if liasse.L2053_HN > 0 else liasse.L2051_DI + # r.wage_cg = liasse.wage_cg + # else: + # r.ca = r.va = r.net_results = r.wage_cg = 0 diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv index 68bfdfbe3ce217b57d6aa7c62b09d3b8bf20a629..1f7f053e9fad6a1ce6120f4fd73a3503d117e271 100755 --- a/security/ir.model.access.csv +++ b/security/ir.model.access.csv @@ -5,3 +5,5 @@ access_scop_cotisation_cg,access_scop_cotisation_cg,model_scop_cotisation_cg,acc admin_access_scop_cotisation_cg,admin_access_scop_cotisation_cg,model_scop_cotisation_cg,cgscop_partner.group_cg_administrator,1,1,1,1 access_scop_bordereau,access_scop_bordereau,model_scop_bordereau,account.group_account_manager,1,1,1,1 admin_access_scop_bordereau,admin_access_scop_bordereau,model_scop_bordereau,cgscop_partner.group_cg_administrator,1,1,1,1 +access_scop_bordereau_version,access_scop_bordereau_version,model_scop_bordereau_version,account.group_account_manager,1,1,1,1 +admin_access_scop_bordereau_version,admin_access_scop_bordereau_version,model_scop_bordereau_version,cgscop_partner.group_cg_administrator,1,1,1,1 diff --git a/views/scop_bordereau_cg.xml b/views/scop_bordereau_cg.xml index 265f902e177fbfeca43cb010f6f3ae7142603a2a..9c0c67dfa20c342c4de10100b7927a91e5397a94 100644 --- a/views/scop_bordereau_cg.xml +++ b/views/scop_bordereau_cg.xml @@ -69,14 +69,15 @@ </group> <group> <span class="oe_grey" attrs="{'invisible': [('liasse_fiscale_id', '!=', False)]}">Pas de liasse fiscale pour le calcul</span> + <field name="liasse_fiscale_id" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}"/> + <field name="year_liasse" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}"/> + <field name="type_liasse_fiscale" options="{'no_open': True}" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}"/> <button name="action_change_liasse" class="btn-info mb5" string="Changer de liasse fiscale" type="object" states="new"/> - <field name="liasse_fiscale_id" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}"/> - <field name="year_liasse" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}"/> - <field name="type_liasse_fiscale" options="{'no_open': True}" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}"/> + <br/> <hr/> <field name="type_assiette" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}"/> <field name="montant_assiette" attrs="{'invisible': [('liasse_fiscale_id', '=', False)]}"/> @@ -112,6 +113,18 @@ </form> </field> </page> + <page string="Historique"> + <field name="bordereau_version_ids" widget="one2many" class="mt-2"> + <tree edit="false" create="false" delete="false" default_order="date desc"> + <field name="date"/> + <field name="liasse_fiscale_id_old"/> + <field name="type_assiette"/> + <field name="montant_assiette"/> + <field name="amount_total_cotiz"/> + <field name="state" widget="boolean_toggle"/> + </tree> + </field> + </page> </notebook> </sheet> <div class="oe_chatter"> diff --git a/wizard/scop_cotisation_cg_regul.py b/wizard/scop_cotisation_cg_regul.py index 7516ed43d9f1350ee0a51ef3ece268228e6e7a3f..f8aae7e00aa7e98599e4e9a50787627f501562e6 100644 --- a/wizard/scop_cotisation_cg_regul.py +++ b/wizard/scop_cotisation_cg_regul.py @@ -190,6 +190,15 @@ class ScopCotisationRegul(models.TransientModel): 'price_unit': refund_amount }) + self.env['scop.bordereau.version'].create({ + 'bordereau_id': bordereau_id.id, + 'date': self.date_regul, + 'name': bordereau_id.name[0:10], + 'liasse_fiscale_id_old': bordereau_id.liasse_fiscale_id, + 'type_assiette': bordereau_id.type_assiette, + 'montant_assiette': bordereau_id.montant_assiette, + 'amount_total_cotiz': bordereau_id.amount_total_cotiz, + }) bordereau_id.update({ 'name': bordereau_id.name[0:10] + '-' + str(bordereau_id.version + 1), 'version': bordereau_id.version + 1,