Skip to content
Extraits de code Groupes Projets
Valider 8bba17aa rédigé par jordan's avatar jordan
Parcourir les fichiers

[update] enable to choose multiple quarters for bordereau in cotiz

parent 9a878fcb
Branches
Aucune étiquette associée trouvée
1 requête de fusion!212.0 dev
.*
*.pyc
!.gitignore
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
# Security # Security
"security/security_rules.xml", "security/security_rules.xml",
"security/ir.model.access.csv", "security/ir.model.access.csv",
# Datas
"datas/bordereau_refund_wizard_quarter_data.xml",
"datas/mail_data.xml", "datas/mail_data.xml",
"datas/queue_job_data.xml", "datas/queue_job_data.xml",
"datas/ir_sequence_data.xml", "datas/ir_sequence_data.xml",
......
<?xml version="1.0"?>
<!-- Copyright 2021 Le Filament (<https://www.le-filament.com>)
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). -->
<odoo>
<data noupdate="1">
<record id="bordereau_wizard_quarter1" model="scop.bordereau.refund.wizard.quarter">
<field name="quarter">1</field>
</record>
<record id="bordereau_wizard_quarter2" model="scop.bordereau.refund.wizard.quarter">
<field name="quarter">2</field>
</record>
<record id="bordereau_wizard_quarter3" model="scop.bordereau.refund.wizard.quarter">
<field name="quarter">3</field>
</record>
<record id="bordereau_wizard_quarter4" model="scop.bordereau.refund.wizard.quarter">
<field name="quarter">4</field>
</record>
</data>
</odoo>
\ No newline at end of file
...@@ -7,3 +7,5 @@ access_scop_bordereau,access_scop_bordereau,model_scop_bordereau,account.group_a ...@@ -7,3 +7,5 @@ access_scop_bordereau,access_scop_bordereau,model_scop_bordereau,account.group_a
admin_access_scop_bordereau,admin_access_scop_bordereau,model_scop_bordereau,cgscop_partner.group_cg_administrator,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 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 admin_access_scop_bordereau_version,admin_access_scop_bordereau_version,model_scop_bordereau_version,cgscop_partner.group_cg_administrator,1,1,1,1
access_scop_bordereau_refund_wizard_quarter,access_scop_bordereau_refund_wizard_quarter,model_scop_bordereau_refund_wizard_quarter,account.group_account_manager,1,1,1,1
admin_access_scop_bordereau_refund_wizard_quarter,admin_access_scop_bordereau_refund_wizard_quarter,model_scop_bordereau_refund_wizard_quarter,cgscop_partner.group_cg_administrator,1,1,1,1
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models, api from odoo import fields, models, api
from odoo.exceptions import ValidationError from odoo.exceptions import ValidationError, UserError
class ScopBordereauRefundWizard(models.TransientModel): class ScopBordereauRefundWizard(models.TransientModel):
...@@ -23,10 +23,10 @@ class ScopBordereauRefundWizard(models.TransientModel): ...@@ -23,10 +23,10 @@ class ScopBordereauRefundWizard(models.TransientModel):
string='Type de cotisation', string='Type de cotisation',
selection=lambda self: self._selection_type_cotiz(), selection=lambda self: self._selection_type_cotiz(),
required=1) required=1)
cotiz_quarter = fields.Selection( quarter_ids = fields.Many2many(
string='Trimestre', relation='scop_bordereau_refund_wizard_quarter_rel',
selection=[(1, 1), (2, 2), (3, 3), (4, 4)], comodel_name='scop.bordereau.refund.wizard.quarter',
required=1, ) string='Trimestres')
# ------------------------------------------------------ # ------------------------------------------------------
# Constrains # Constrains
...@@ -100,6 +100,12 @@ class ScopBordereauRefundWizard(models.TransientModel): ...@@ -100,6 +100,12 @@ class ScopBordereauRefundWizard(models.TransientModel):
""" """
Create refund Create refund
""" """
if len(self.quarter_ids) == 0:
raise UserError('Vous devez sélectionner au moins un trimestre.')
if self.amount_refund <= 0:
raise UserError('Le montant de l\'avoir doit être supérieur à 0.')
if not self.type_cotiz:
raise UserError('Vous devez sélectionner un type de cotisation.')
bordereau_id = self.bordereau_id bordereau_id = self.bordereau_id
partner_id = bordereau_id.partner_id partner_id = bordereau_id.partner_id
ur_hdf = self.env.ref('cgscop_partner.riga_14232').id ur_hdf = self.env.ref('cgscop_partner.riga_14232').id
...@@ -148,6 +154,8 @@ class ScopBordereauRefundWizard(models.TransientModel): ...@@ -148,6 +154,8 @@ class ScopBordereauRefundWizard(models.TransientModel):
account_ur], account_ur],
} }
product = cotiz_type.get(int(self.type_cotiz))[0] product = cotiz_type.get(int(self.type_cotiz))[0]
for quarter_id in self.quarter_ids:
refund = self.env['account.invoice'].create({ refund = self.env['account.invoice'].create({
'partner_id': partner_id.id, 'partner_id': partner_id.id,
'journal_id': cotiz_type.get(int(self.type_cotiz))[1].id, 'journal_id': cotiz_type.get(int(self.type_cotiz))[1].id,
...@@ -162,7 +170,7 @@ class ScopBordereauRefundWizard(models.TransientModel): ...@@ -162,7 +170,7 @@ class ScopBordereauRefundWizard(models.TransientModel):
'bordereau_id': bordereau_id.id, 'bordereau_id': bordereau_id.id,
'is_contribution': True, 'is_contribution': True,
'year': bordereau_id.year, 'year': bordereau_id.year,
'cotiz_quarter': self.cotiz_quarter, 'cotiz_quarter': quarter_id.quarter,
'liasse_fiscale_id': bordereau_id.liasse_fiscale_id.id, 'liasse_fiscale_id': bordereau_id.liasse_fiscale_id.id,
'type_contribution_id': self.type_cotiz, 'type_contribution_id': self.type_cotiz,
'payment_mode_id': bordereau_id.payment_mode_id.id, 'payment_mode_id': bordereau_id.payment_mode_id.id,
...@@ -175,3 +183,16 @@ class ScopBordereauRefundWizard(models.TransientModel): ...@@ -175,3 +183,16 @@ class ScopBordereauRefundWizard(models.TransientModel):
'account_id': product.property_account_income_id.id, 'account_id': product.property_account_income_id.id,
'price_unit': self.amount_refund 'price_unit': self.amount_refund
}) })
class ScopBordereauRefundWizardQuarer(models.Model):
_name = 'scop.bordereau.refund.wizard.quarter'
_description = 'Trimestres pour échéance de cotisation'
name = fields.Char('Nom', compute='_compute_name')
quarter = fields.Integer('Trismestre', required=1)
@api.multi
def _compute_name(self):
for r in self:
r.name = str(r.quarter)
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<field name="date_refund"/> <field name="date_refund"/>
<separator/> <separator/>
<field name="amount_refund"/> <field name="amount_refund"/>
<field name="cotiz_quarter"/> <field name="quarter_ids" widget="many2many_checkboxes"/>
<field name="comment"/> <field name="comment"/>
</group> </group>
</sheet> </sheet>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter