Sélectionner une révision Git
Bifurcation depuis
Le Filament / Confédération Générale des SCOP / cgscop_partner
Le projet source a une visibilité limitée.
scop_contribution.py 2,18 Kio
# © 2020 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields, api
class ScopContributions(models.Model):
_inherit = "scop.contribution"
invoice_id = fields.Many2one(
comodel_name='account.invoice',
string='Facture liée',
ondelete='cascade')
amount_paid = fields.Float(
compute='_compute_amount_paid', store=True)
amount_remaining = fields.Float(
compute='_compute_amount_remaining_previous', store=True)
is_exempt = fields.Boolean(
string='Exonération',
compute='_compute_is_exempt',
default=False
)
@api.depends('amount_remaining')
@api.multi
def _compute_amount_paid(self):
for r in self:
r.amount_paid = r.invoice_id.amount_total - r.amount_remaining
@api.depends('invoice_id.residual')
@api.multi
def _compute_amount_remaining_previous(self):
for r in self:
r.amount_remaining = r.invoice_id.residual
@api.multi
def _compute_is_exempt(self):
for contrib in self:
if contrib.invoice_id:
is_refund = contrib.invoice_id.search([
('refund_invoice_id', '=', contrib.invoice_id.id),
('state', 'in', ['open', 'paid'])])
if is_refund:
contrib.is_exempt = True
else:
contrib.is_exempt = False
else:
contrib.is_exempt = False
def view_refund(self):
tree_id = self.env.ref(
'cgscop_cotisation.invoice_scop_contribution_refund_tree').id
refund_ids = self.invoice_id.search([
('refund_invoice_id', '=', self.invoice_id.id),
('state', 'in', ['open', 'paid'])
])
print(refund_ids)
print(tree_id)
return {
'type': 'ir.actions.act_window',
'name': 'Exonérations',
'res_model': 'account.invoice',
'views': [[tree_id, 'tree']],
'target': 'new',
'domain': [['id', 'in', refund_ids.ids]],
'flags': {'action_buttons': False}
}