mirror of https://gitlab.federez.net/re2o/re2o
committed by
chirac
6 changed files with 120 additions and 6 deletions
@ -0,0 +1,28 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.11.23 on 2019-09-30 09:19 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
import cotisations.payment_methods.mixins |
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('cotisations', '0038_auto_20181231_1657'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.CreateModel( |
||||
|
name='FreePayment', |
||||
|
fields=[ |
||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||
|
('payment', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, related_name='payment_method', to='cotisations.Paiement')), |
||||
|
], |
||||
|
options={ |
||||
|
'verbose_name': 'Free payment', |
||||
|
}, |
||||
|
bases=(cotisations.payment_methods.mixins.PaymentMethodMixin, models.Model), |
||||
|
), |
||||
|
] |
||||
@ -0,0 +1,27 @@ |
|||||
|
# -*- mode: python; coding: utf-8 -*- |
||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
# se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
# quelques clics. |
||||
|
# |
||||
|
# Copyright © 2019 Hugo Levy-Falk |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License along |
||||
|
# with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
""" |
||||
|
This module contains a method to pay online using user balance. |
||||
|
""" |
||||
|
from . import models |
||||
|
NAME = "FREE" |
||||
|
|
||||
|
PaymentMethod = models.FreePayment |
||||
@ -0,0 +1,61 @@ |
|||||
|
# -*- mode: python; coding: utf-8 -*- |
||||
|
# Re2o est un logiciel d'administration développé initiallement au rezometz. Il |
||||
|
# se veut agnostique au réseau considéré, de manière à être installable en |
||||
|
# quelques clics. |
||||
|
# |
||||
|
# Copyright © 2018 Hugo Levy-Falk |
||||
|
# |
||||
|
# This program is free software; you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU General Public License as published by |
||||
|
# the Free Software Foundation; either version 2 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU General Public License along |
||||
|
# with this program; if not, write to the Free Software Foundation, Inc., |
||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||||
|
from django.db import models |
||||
|
from django.utils.translation import ugettext_lazy as _ |
||||
|
from django.contrib import messages |
||||
|
|
||||
|
|
||||
|
from cotisations.models import Paiement |
||||
|
from cotisations.payment_methods.mixins import PaymentMethodMixin |
||||
|
|
||||
|
|
||||
|
class FreePayment(PaymentMethodMixin, models.Model): |
||||
|
""" |
||||
|
The model allowing you to bypass payment if the invoice is free. |
||||
|
""" |
||||
|
|
||||
|
class Meta: |
||||
|
verbose_name = _("Free payment") |
||||
|
|
||||
|
payment = models.OneToOneField( |
||||
|
Paiement, |
||||
|
on_delete=models.CASCADE, |
||||
|
related_name='payment_method', |
||||
|
editable=False |
||||
|
) |
||||
|
|
||||
|
def end_payment(self, invoice, request): |
||||
|
"""Ends the payment normally. |
||||
|
""" |
||||
|
return invoice.paiement.end_payment( |
||||
|
invoice, |
||||
|
request, |
||||
|
use_payment_method=False |
||||
|
) |
||||
|
|
||||
|
def check_price(self, price, user, *args, **kwargs): |
||||
|
"""Checks that the price meets the requirement to be paid with user |
||||
|
balance. |
||||
|
""" |
||||
|
return ( |
||||
|
price == 0, |
||||
|
_("You cannot validate this invoice for free.") |
||||
|
) |
||||
Loading…
Reference in new issue