Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 6080cd348a28044e0f21cf407c0ddd778a0f83f9
  • 14.0 par défaut
  • 13.0
  • 12.0 protégée
4 résultats

cgscop_timesheet_sheet.py

Blame
  • 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}
            }