Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 488ec2357b70baee52d89a255c2246073bbbfb96
  • 12.0-evo-202003 par défaut
  • 14-RV-20250324
  • 14-RV-20240830
  • 14-RV-20231222
  • 12-RV-Bug_ecrasement_date_radiation
  • 12-RV-revision-staff
  • 12-RV-copadev
  • 12-RV-Correctif-open-instagram
  • 12-RV-Tree-Coop-Ajout-effectif
  • 12.0-RV-Instagram
  • 12.0-RV-segment_visibility
  • 12.0 protégée
  • 12.0-RV-Abonnements
14 résultats

scop_period_wizard.py

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